Imagine a world where the villages of humans were scattered along mountaintops, and the world below was completely blocked off by an impassible wall of clouds. In a world like that, advancements in air travel would precede both land and sea. This is the kind of world that Aero Empire is set in.

In this world, the player can rise through the ranks, from a lowly gunner manning a turret aboard an airship to the commander of a nation, controlling the tides of war and the armies beneath you. With the ability to influence your shipmates and superiors, you can also perform a rebellion or coup d'etat, breaking free from authority and creating your own empire.

Aero Empire is a cross-genre game, incorporating elements of role-playing games, shooters, flight simulators, real-time strategy and tactical simulations. It is populated with thousands of AI with their own desires and personalities, all set against a backdrop of war and bloodshed, creating a dynamic and ever changing world.

The game is planned to release in late 2010 / early 2011. The single player version will be free to download and play, with no restrictions. A multiplayer version is also planned.

If you have any questions about the project, feel free to contact me, or post a comment here.
Image RSS Feed Latest Screens
Cave Snow and Rain Images Snow and Rain Images
Blog RSS Feed Report abuse Latest News: Infinite Twilisphere

7 comments by terra0nova on Nov 3rd, 2009 digg this super bookmark


Many of you may have noticed that the twilisphere (the massive cloud covering Aero Empire's world) is rather small, and does not cover the horizon like it should if it extended all the way around the planet. This is because I had not done any work making the twilisphere, and had just stuck a box cloud in there the size of the scene. However, the size of the scenes were only 6km by 6km, which at the heights many of the screenshots took place made the box look very small.


An old screenshot showing off the obvious problem of a finite sized twilisphere.

One obvious solution is to just make the twilisphere object bigger - scale the size of the box up. However, because of the way rasterization on graphics hardware works (by transforming points using a projection matrix), you must set a near and far plane for rendering the scene, where everything before the near plane and everything after the far plane is cut off. While you can increase the size of the near and far plane arbitrarily (in fact, you can even increase the far plane to infinity using projection matrix tricks), this lowers the rendering quality because of floating point precision errors, the depth map which has lower resolution the farther apart the near and far planes are (causing z-buffering errors), and finally the split shadow mapping technique which can get better shadow resolution using less shadow splits if the near and far plane are closer together. In practice, the farther out you can push the near plane, and the closer in you can bring the far plane, the better - you just have to make sure you aren't clipping anything in the scene that would be noticeable. Unfortunately, if you scale the twilisphere to a size where it fills the horizon at any in-game reachable height, you either have to push the far plane much farther out which lowers the rendering quality, or you have to accept the fact that the twilisphere will be clipped, in which case, it doesn't fill the horizon anyways.

So, the solution to this problem was to use raytracing instead of rasterization to render the twilisphere. One nice advantage of raytracing over rasterization is that it can render implicit shapes - all raytracing needs to render a shape is to have an intersection function that determines where a ray intersects that shape. So, you can render a true sphere with raytracing, by having a ray-sphere intersection function. No matter how close you get to a raytraced sphere, it will still look spherical, whereas a rasterized sphere must be triangulated, which means if you get close enough, you can see the individual triangles. You can also render an infinitely large plane with raytracing - even though it is infinitely large, as long as you can compute the intersection between a ray and a plane, you can raytrace the plane. The ray-plane intersection function happens to be very simple:

distance = dot(P - O, N) / dot(D, N)

Where distance is the distance between the ray origin and the plane, P is a point on the plane, O is the ray origin, D is the ray direction and N is the normal of the plane. While in general raytracing is too slow to do in real time - for a single simple shape like this, with the intersection computation running in a pixel shader, it happens to be very fast. Using the ray intersection point and some manipulation of the output data structure I created for rendering clouds, I can render an infinitely large and infinitely deep flat cloud plane.


Sinking into an infinitely deep twilisphere: no bottom in sight, no bottom at all!


A flat twilisphere at the horizon as far as the eye can see, and farther...


A few questions people might have about the new twilisphere is whether being infinitely large and infinitely deep is accurate - I mean, the planet isn't infinitely sized. However, the infinite plane is only what is being rendered, meaning that the actual size of the planet and it's curvature is taken into account in terms of where you are and what mountains you see on the planet. So, except for the fact that the twilisphere shows no curvature of the planet that it should due to the curvature of the planet, it is a fine representation for what you would actually see. As for the curvature of the planet, while at the higher altitudes you would be able to see the curvature, and that would be pretty cool, it is not a big deal, and unfortunately the atmospheric scattering algorithm does not take altitude into account (nor do the clouds have any atmospheric scattering on them either). Swapping out the flat twilisphere with a curved one would just require swapping the flat plane intersect function with a very large sphere intersect function (which is also very cheap to compute and easy to add), but unless the atmospheric scattering problems are fixed, it would not really fix the problem of viewing the scene at very high altitudes.

As for infinitely deep - don't worry about that. I assure you, your ship will be destroyed long before it could get deep enough to tell that the twilisphere was infinitely deep. There will not be any ships capable of venturing below the twilisphere in the initial release (although maybe in expansions). To fix this problem, the intersect function just has to be changed to also compute the exit depth of the cloud (which increases the complexity a little, but is not a big deal).


Some screenshots of the infinitely large twilisphere as seen from an airship.

The only problem with the twilisphere now is the fact that the twilisphere is a plane, meaning it is perfectly flat. However, the solution to this is simple: Just place stratus clouds right on top of the twilisphere within the scene - that way it gets the details and bumpiness it should get within the scene, and outside the scene the twilisphere still exists, it's just infinitely flat (but at that distance, it would look flat anyways). So, that's the twilisphere taken care of. The new mountains still need textures (our texture artist is working on mountain textures), but other than that we have the basic landscape and clouds set up for the upcoming demo.

Stay tuned for more updates - including the initial design of the HUD and controls for the gyros!

- David

Media RSS Feed Latest Video
Downloads RSS Feed Latest Downloads
Model Viewer

Model Viewer

Jun 01, 2009 Graphics Tool 1 comment

The Model Viewer tool allows entire scenes to be viewed using Aero Empire's rendering engine.

Comments  (0 - 10 of 64)
Djehuty
Djehuty Oct 19 2009, 7:29am says:

Im starting to love this more and more :D

+1 vote     reply to comment
aloha2436
aloha2436 Oct 14 2009, 1:21am says:

Okay, thanks. Really interesting though.

+1 vote     reply to comment
aloha2436
aloha2436 Oct 13 2009, 5:22pm says:

Wow, I am really stunned by what you are trying to accomplish, and by the look of it, this is going to work! Hell, if you really wanted too, you could go commercial on this game.
This is like, revolutionary. I had a similar idea myself once, just with trees instead of mountains. I may even learn to code just to help! P.S. newb question, what code?

+1 vote     reply to comment
aloha2436
aloha2436 Oct 13 2009, 8:33pm replied:

please excuse that comment i was getting a bit exited

+1 vote     reply to comment
terra0nova
terra0nova Oct 13 2009, 9:43pm replied:

That's ok! Comments like that are nice and help motivate us. It's great to hear that people are as excited about this game as we are.

As for your question about what code - did you mean what programming language? Aero Empire's game engine was written from scratch in C++ - but if you're learning programming, just learn programming principles, and you'll be able to pick up new languages easily (just have to learn new syntax), so you wont be restricted based on what languages you know.

+1 vote     reply to comment
budric
budric Oct 6 2009, 6:48pm says:

My god it just gets better and better. I was getting scared between updates. :C
This is the sort of game I've been longing for over several, several years. I have "some" experience writing, but nothing I can really show off, but let me know if you need anything, and I'd be more than willing to throw some stuff your way, guidelines dependant, of course. In any case, I'm excited as all get-out about this game! MP especially will be wonderful no matter how you handle it, I'm sure!

+1 vote     reply to comment
.Havoc.
.Havoc. Jul 25 2009, 5:12pm says:

This looks like a great idea :) I hope you guys have the best of luck with this as its an amazing idea :)

+1 vote     reply to comment
Mithril-hound
Mithril-hound Jul 11 2009, 12:26am says:

wow, this looks great

+1 vote     reply to comment
terra0nova
terra0nova Jun 26 2009, 5:04pm replied:

We will definitely have birds in the game, and they could easily be the means for communication and determining whether a ship is friendly or not (as there is no radar). It wont be impossible to tell friend from foe just from sight, as ships from different nations will have a different "base coat" of paint to distinguish between them. But for far distances, scouting and searching clouds (as you can hide in clouds), trained birds could add an interesting aspect to gameplay - I'll have to think about that. However, having upgradeable birds and battles between birds is going a little too far - maybe in an expansion.

+1 vote     reply to comment
Hamtaro
Hamtaro Oct 24 2009, 8:09pm replied:

How about bigger flying non-player-animals, like sky-whales or something?
Reminds me of the world in the movie "Battle for Terra" (or later know just as "Terra") with wooden flying machines and so on.

Anyway, looks really nice and interesting, I'm tracking this one.

+1 vote     reply to comment
Post a Comment

Only registered members can share their thoughts. So come on! Join the community today (totally free) and do things you never thought possible.

Icon
Aero Empire
Platforms
PC, Linux, Mac
Developer & Publisher
Aerosphere Studios
Contact
Send Message
Release Date
Coming 2011
Game Watch
Track this game
Bookmark
Digg Super bookmark
Style
Genre
Role Playing
Theme
Sci-Fi
Players
Single & Multiplayer
Project
Indie
Statistics
Rank
134 of 1,270
Last Update
6 days ago
Watchers
290 members
Files
1
News
15