Tech Demo Video 2010

Published May 04, 2010
Advertisement
It's been many years since the release of the last video showcasing the seamless planetary engine, so I'm happy to release this new video. This is actually a video of the game client, but since there's little gameplay in it, I decided to label it as a "tech demo". It demonstrates an Earth-like planet with a ring, seamless transitions, a little spaceship ( the "Hornet" for those who remember ), a space station and a couple of new effects.

You can view it in the videos section of the gallery.

Making-of the video

Before I get into details of what's actually shown in the video, a few words about the making-of the video itself, which took more time than expected.

What a pain ! First of all, it took many hours to record the video, as each time I forgot to show something. In one case, the framerate was really low and the heavy stress required to dump a 1280x720 HQ uncompressed video to the disk. The raw dataset is around 10 GB for 14 minutes of footage.

14 minutes ? Yep, that video is pretty long. Quite boring too, which is to be expected since there's no action in it. But I hope you'll still find it interesting.

Once the video was recorded, I started the compression process. My initial goal was to upload a HQ version to YouTube and a .FLV for the video player embedded on the website. The second was quite easily done, but the quality after compression was pretty low. The bitrate is capped to 3600 kbps for some reason, and I didn't find a way to increase it. I suspect it's set to this value because it's the standard with flash videos.

I also wanted to upload a HQ version to YouTube to save bandwidth on the main site, but so far it's been disappointing. I tried many times, each time YouTube refused to recognize the codec I used for the video ( surprisingly, H264 isn't supported ). After a few attempts I finally found one that YouTube accepted, only to discover that the video was then rejected due to its length: YouTube has a policy to not accept videos that are more than 10 minutes long. What a waste of time.

So instead I uploaded it to Dailymotion , but it's very low-res and blurry, which I cannot understand since the original resolution is 1280x720; maybe it needs many hours to post-processing, I don't know. There's also now a two parts HQ video uploaded to youtube:
" target="_self">part 1 and
" target="_self">part 2 . If you're interested in watching it, make sure you switch to full screen :)

Content of the video

The video is basically split in 3 parts:

1. Demonstration of a space station, modelled by WhiteDwarf and using textures from SpAce and Zidane888. Also shows a cockpit made by Zidane888 ( I'll come back on that very soon ) and the Hornet ( textured by Altfuture ).

2. Planetary approach and visit of the ring. Similar to what's already been demonstrated in 2007.

3. Seamless planetary landings.

Cockpit

I've been very hesitant in including the cockpit in the video, simply because of the exceptations it could potentially generate. So you must understand that it's an experiment, and in no way guarantees that cockpits will be present for all ships in the game at release time. It's still a very nice feature, especially with the free look around. You will notice that you can still see the hull of your ship outside the canopy, which is excellent for immersion. Note that the cockpit isn't functionnal, so if we indeed integrate it to the game one day, I would like that all instruments display functionnal informations, that buttons light on/off, etc..

patd7_med.jpg

Background

The backgrounds you see in the video ( starfield, nebula ) are dynamically generated and cached into a cube map. This means that if you were located in a different area of the galaxy, the background would be dynamically refreshed and show the galaxy from the correct point of view.

Each star/dot is a star system that will be explorable in game. In the video, as I fly to the asteroids ring, you will see that I click on a couple stars to show their information. The spectral class is in brackets, and follows is the star's name. At the moment, star names are using a unique code which is based on the star location in the galaxy. It is a triplet formed of lower/upper case characters and numbers, like q7Z-aH2-85n. This is the shortest representation that I could find that would uniquely identify a star. This name is then followed by the distance, in light-years ( "ly" ).

I still have to post a dev-journal about the procedural rendering of the galaxy on the client side, in which I'll come back on all the problems I've had, especially performance related.

patd7_med.jpg

Planet

I'm not totally happy with the look of the planet, so it is likely that in the future, I will at least do one more update of the planetary engine. There are various precision artifacts at ground level, as the heightmaps are generated on the GPU in a pixel shader ( so are limited to 32-bits of floating point precision ). I've also been forced to disable the clouds, which totally sucks as it totally changes the look & feel of a planet seen from space. The reason for that is that I implemented the Z-Buffer precision enchancement trick that I described in a previous dev journal, and it doesn't totally work as expected. With clouds, the clouds surface is horribly Z-fighting with the ground surface, which wasn't acceptable for a public video. At the moment, I use a 32-bits floating point Z-Buffer, reverse the depth test and swap the near/far clipping planes, which is supposed to maximize Z precision.. but something must have gone wrong in my implementation, as I see no difference with a standard 24-bits fixed point Z Buffer.

The terrain surface still lacks details ( vegetation, rocks, etc.. ). I still have to implement a good instancing system, along with an impostor system, to get an acceptable performance while maintening a high density of ground features.

patd7_med.jpg

patd7_med.jpg

Look & Feel

Don't think for one second that the "look & feel" of the camera and ship behavior is definitive in this video. I'm pretty happy with the internal view and the cockpit look, but the third-person camera still needs a lot of work. It theorically uses a non-rigid system, unlike the ICP, but it still needs a lot of improvements.

Effects

As you may notice, the ship's thrusters correctly fire depending on the forces acting on the ship, and the desired accelerations. Interestingly, at one given point in time, almost all thrusters are firing, but for different reasons. First, the thrusters that are facing the planet are continuously firing to counter-act the gravity. It is possible to power down the ship ( as seen at the end of the video ), in which case the thrusters stop to work. Secondly, many thrusters are firing to artifically simulate the drag generated by the auto-compensation of inertia. For example when you rotate your ship to the right, if you stop moving the mouse the rotation will stop after a while. This is done by firing all the thrusters that would generate a rotation to the left. Of course, some parameters must be fined tuned.

When the ship enters the atmosphere at a high velocity, there's a friction/burning effect done in shaders. It still lacks smoke particles and trails.

This video will also give you a first idea of how long it takes to land or take off from a planet. The dimensions and scales are realistic. Speed is limited at ground level for technical reasons, as higher speeds would make the procedural algorithms lag too much behind, generating unacceptable popping. At ground level, I believe you can fly at modern airplanes speeds. A consequence of this system is that if you want to fly to a far location on the planet, you first have to fly to low space orbit, then land again around your destination point.

patd7_med.jpg

patd7_med.jpg
1 likes 27 comments

Comments

Ivo Leitao
Amazing !!
May 04, 2010 08:09 AM
NineYearCycle
Jaw, meet Floor!

You can call me "Suitably impressed"! That video makes me want to play around in the universe you've made whether it's finished or not. I just want to travel from star to star and down to planets just to see a different sun rise over each one! What does a red giant sun rise look like in the atmosphere of a gas giant!

I tell you no-one would ever catch me playing the actual game, I'd just be found loitering around far flung star systems bouncing off the troposhere at high speed whooping and grinning like a fool! :)

Andy
May 04, 2010 09:02 AM
weasalmongler
Absolutely amazing. I don't know where you find the time to do all of this single handedly. Keep up the good work!
May 04, 2010 09:16 AM
roel
I admire your dedication. And skills. I don't game much, but I'm looking forward to climb into my ship and explore that massive universe. :)
May 04, 2010 09:20 AM
evanofsky
This is incredible, as usual. My only suggestion would be to put in more visual/audio cues to let the player know how impossibly fast they're going. There's no discernible difference between when you're floating around that one asteroid and when you continue your journey to the planet at Mach 23.
May 04, 2010 11:59 AM
evolutional
That cockpit view looks absolutely brilliant.
May 04, 2010 12:02 PM
Trefall
Yeah, the cockpit is great. Would be really cool if those screens actually animated and meant something! Though, if you were to have one cockpit type per spaceship type, I can easily see the extra asset requirement building up. Each cockpit would also probably require special coding attention to animate and connect the different "HUD" elements to game logic.
May 04, 2010 01:00 PM
glaeken
I agree, the cockpit view looks excellent.
May 04, 2010 01:14 PM
Radan

Great work as always. I really don't like MMOs and never played one, but I think I won't be able to resist getting a subscription to Infinity!


P.S. Just one minot thing. In the video, in the music, you have this four tone sequence repeating all the time. What's up with that? I had to turn off sound half way through the video cause it was getting on my nerves.
May 04, 2010 01:18 PM
evolutional
@Trefall, click through and watch the video on his site - it's more impressive in motion!
May 04, 2010 03:12 PM
Trefall
@evolutional: Oh, I wasn't trying to degrade his work at all. It looks absolutely amazing :D I actually shamelessly have experimented with the Ferox cockpit a bit myself (contacted Zidane888 for permission of course), and the model and texture work is truly high level! And the shader work on IA's part makes it come out that much better than I managed to do with my experimental shader work :) So, nothing but respect and awe from this chair!
May 04, 2010 03:32 PM
dgreen02
Oh....my...god....
May 04, 2010 05:03 PM
dbaumgart
Simply gorgeous.
May 04, 2010 09:00 PM
alexmoura
A suggestion - on the lookaround, instead of just rotating the camera around a fixed point, make it so that is rotates around a point below and behind the camera - it might make it look more natural, being closer to how we move our eyes around our neck.

(details: it should rotate horizontally around a vertical axis behind the camera, and tilt up/down around an axis placed below and behind the camera.)
May 05, 2010 01:18 AM
davepermen
Quote:Original post by et1337
This is incredible, as usual. My only suggestion would be to put in more visual/audio cues to let the player know how impossibly fast they're going. There's no discernible difference between when you're floating around that one asteroid and when you continue your journey to the planet at Mach 23.


there was once some simulation on how space voyage would look alike when going near light speeds, how the fov gets distorted and all. would be fun to see this implemented (even if i have no clue how to do :))
May 05, 2010 03:49 AM
remigius

Regarding the depth issues, did you abandon the logarithmic approach or am I misunderstanding your explaination? You seemed quite fond of it back then and as I understand Cameni's post even with those tricks a plain floating point zbuffer still has worse precsision than a fixed point logarithmic one. I'm no expert on the matter, so at the risk of asking a dumb question I was wondering if there are any new performance issues or artifacts why you don't use the logarithmic approach (if in fact you don't)?
May 05, 2010 06:17 AM
Ysaneya
Quote:Original post by remigius

Regarding the depth issues, did you abandon the logarithmic approach or am I misunderstanding your explaination? You seemed quite fond of it back then and as I understand Cameni's post even with those tricks a plain floating point zbuffer still has worse precsision than a fixed point logarithmic one. I'm no expert on the matter, so at the risk of asking a dumb question I was wondering if there are any new performance issues or artifacts why you don't use the logarithmic approach (if in fact you don't)?


It's weird really. In theory, it should work well. I even experimented the logarithmic trick in a pixel shader in my ASEToBin model viewer a few months ago, and the results were as expected, very good.

So I switched to the technique that cameni and Humus mentionned, which is very simple:
- use a 32-bits floating point Z Buffer format
- change the depth test to GL_GREATER instead of GL_LOWER
- swap the near and far planes in the projection matrix

Cameni explained in his journal that it'd give enough resolution for a whole planet. The problem is that in my tests, the clouds surface is horribly z-fighting with the ground surface. The distance between those 2 surfaces is around 10 Km, with a viewer at around 10000 Km from the planet and a planetary radius of around 6350 Km.

Theory says it should work, so it must be a bug in my implementation. But I don't get where it could be, as there aren't that many places where it could have gone wrong, so what I'll probably end up doing is creating a small standalone prototype to render two spheres in different colors with the above parameters, and verify if they Z-fight or not..
May 05, 2010 07:58 AM
Aardvajk
Stunning. I want one.
May 05, 2010 01:05 PM
Jason Z
That is really a great video - congratulations on the great work. The only thing I found objectionable in the whole thing was that while entering the asteroid belt, there seemed to be quite a bit of popping when the asteroids came within a certain distance of the view. Perhaps the LOD is a little aggressive, although with so many objects in the view I'm sure it is difficult to balance.

All together, it looks great and I can't wait to see what else is coming!
May 05, 2010 03:46 PM
tamat
cockpit are always cool, do not remove them pleaseeee
May 06, 2010 04:57 AM
remigius

Quote:Original post by Ysaneya
the logarithmic trick ... the results were as expected, very good.

So I switched to ... a 32-bits floating point Z Buffer format


I hope I'm not being dumb, but I don't follow your explaination. If I understand Cameni's posts correctly, the logarithmic depth buffer is fundamentally different from the floating point one and precission isn't better:

"the floating point depth buffer with the reversed planes should be almost on par with the logarithmic one", Cameni in the comments here

Am I misunderstanding the issue in that these approaches aren't that different? If they are different though, why did you switch to the floating point approach instead of the working, very-good-result-having logarithmic approach?
May 06, 2010 05:19 AM
Litheon
amazing
May 06, 2010 06:05 AM
rip-off
As always, extrememly impressive.
May 08, 2010 08:04 AM
swiftcoder
Quote:Original post by remigius
If I understand Cameni's posts correctly, the logarithmic depth buffer is fundamentally different from the floating point one and precission isn't better...
You are correct in that there are differences, and the floating-point version has slightly lower precision. However, this precision loss doesn't seem to be enough to cause much of a problem, and floating-point also comes with some benefits: it is braindead-simple to implement, and it doesn't suffer from hideous artefacts when a polygon intersects the near plane.
May 10, 2010 12:38 PM
voodoohaust
Magnifique !!

I just want to play this game.... Can't wait !!

Keep on the tremendous good work :)
May 18, 2010 11:34 AM
tori
Breathtaking :)

By the way, you can push H264 to youtube, they support everything ffmpeg does (which is, pretty much, everything). Even HD MKVs with H264 video and AAC or Vorbis sound. One less reencoding should have a positive impact on the quality.
July 03, 2010 09:39 AM
Emmanuel Deloget
When I leaved, your work was gorgeous. I come back, and your work is still gorgeous.

So that wasn't luck, n'est-ce pas ? :)
January 20, 2011 01:26 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement