• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
  • entries
    232
  • comments
    1462
  • views
    953133

Tech Demo Video 2010

Sign in to follow this  
Followers 0
Ysaneya

3554 views

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

0
Sign in to follow this  
Followers 0


27 Comments




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
0

Share this comment


Link to comment
Absolutely amazing. I don't know where you find the time to do all of this single handedly. Keep up the good work!
0

Share this comment


Link to comment
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. :)
0

Share this comment


Link to comment
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.
0

Share this comment


Link to comment
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.
0

Share this comment


Link to comment

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.
0

Share this comment


Link to comment
@Trefall, click through and watch the video on his site - it's more impressive in motion!
0

Share this comment


Link to comment
@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!
0

Share this comment


Link to comment
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.)
0

Share this comment


Link to comment
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 :))
0

Share this comment


Link to comment

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)?
0

Share this comment


Link to comment
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..
0

Share this comment


Link to comment
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!
0

Share this comment


Link to comment
cockpit are always cool, do not remove them pleaseeee
0

Share this comment


Link to comment

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?
0

Share this comment


Link to comment
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.
0

Share this comment


Link to comment
Magnifique !!

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

Keep on the tremendous good work :)
0

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now