Aliens of Earth is a 3D third-person Action/Adventure game for the iPhone, iPod Touch and iPad with destructible environments and gameplay that is inspired by games such as Super Metroid and The Guardian Legend. You control a transforming mech with both flight and humanoid forms with the ability to transform whenever you want - though flight mode is only really usable in larger, open areas. What this means is that you will be running around in humanoid form when exploring smaller caves, corridors, rooms and other smaller environments. These areas will consist of slightly slower gameplay with an emphasis on exploration and puzzle solving, similar to a game like Super Metroid or Metroid Prime. Larger, more open areas will consist more of action and exploration and will be best experienced with the faster and more agile flight mode. But at any time, if you want to get a closer look at something, you'll be able to transform back to humanoid form and walk around.
But there's a couple of additional elements which serve to make the experience more unique:
The first is that the environments are destructible. However, these environments are made up of different materials which take different weapons to destroy. Basically as you progress through the game, your ability to destroy the environment grows as well. In addition, through most of the game, you'll be able to re-visit old areas, allowing you to more fully explore those areas and find things you may have missed. This is accomplished using the custom voxel engine, as described below.
In addition, there will be some "Cellular Automata" based physics, allowing for limited amounts of flowing water, lava, even for parts of the environment to fall once support is lost. This will allow you to use the environment to aid you in battle, such as destroying enough rock to cause a stalactite to fall onto an enemy.
The voxel engine is being used to allow malleable environments and for volumetric physics using Cellular Automata but also to further the aesthetic of the game. The goal is to produce a game created using a combination of 3D pixel art and controlled procedural environments. Even the menus, text, HUD and so forth is drawn using voxels - with some subtle animation to highlight the 3D nature.
This is a rough draft and will be modified and improved in the future.
The year is 2050.
Humanity has been actively seeking intelligent "alien" life for nearly 200 years. When it is finally discovered, the alien life is unlike anything we ever expected . . .
You are a pilot of the new VR-1X3 transforming battle mech, based on technology just "discovered" within the last decade. Being the first, and currently only, prototype unit you've not seen any action yet. But this time it's different, strange giant - alien - machines have been crawling out of the Earth. Only a few have emerged so far, but they destroyed several cities in the area before finally being taken out. Most feel that a large, concentrated attack by these creatures could not be stopped by humanity. That their final goal is to invade the surface and eradicate the human species.
The aliens that have emerged are coming from a giant cave in New Mexico that suddenly appeared within the last decade. All explorations within have failed. All attempts to blow up the material or alter the cave in any way have failed. Now you're going in there to find out where these alien creatures are coming from and to stop them from invading the surface.
Note the exact numbers listed below are subject to change as needed.
At it's core, the engine is voxel based - though the results are meshed and rendered using the GPU where things like lighting and post effects are done (such as bloom and AA on the iPad 2/iPhone). There are two types of entities: the world, which consists of 128^3 voxel cells which are then grouped into 8^3 cell tiles (1024^3 voxels) and "voxel sprites" which can be up to 256^3 voxels and can have frame-based animations. Obviously, on the surface, this seems like way too much memory, which is where multiple layers are "compression" are used. A cell consists of 3 components, though all but one is optional. The first component is a procedural index (the offset is implicit), the second component is a cell index and finally a mipmapped, compressed delta map. I'll explain each below:
Specially tuned procedurals are used to create the basis for many of the environments. There are a certain number of procedurals in an area, each with their own settings, offsets and so on. A given cell can use one of those procedurals, where the offset within the procedural is computed based on the cell's position. This will allow for vast caves (and other environments which will be talked about later in development) to be generated with all sorts of cool forms and textures, which would be very hard to create by hand. But using the next two components, these "natural" environments can be further tuned and customized. In addition, the procedurals are designed so that each mipmap for the voxel cell can be generated directly.
Simply put, many cells will be constructed with the game's editor. Each level will have a palette of these hand-crafted cells which are then placed as needed throughout the level - similar to using tilesets in a 2D game or texture sets in a normal 3D game. Since not every cell in the world has to be uniquely defined, I can carefully control the memory and storage use.
Compressed Delta Map:
In the level editor, once the procedural and hand-made components are combined further editing can take place. Delta-maps are basically the difference between the Procedural + Hand-Made cell and the final result after in-level editing. These are compressed and stored in a palette for each level similar to the hand-made cells. As the player or enemies affect the environments, these delta-maps are updated. If the updated delta-maps are saved, then player changes can also be saved.
Each cell is stored with only as much data as needed for the current mipmap, meaning the amount of memory the "uncompressed" cells take up is consistent as you fly or walk through the levels.
In addition, the engine is a hybrid system. It uses multi-resolution raycasting to determine visibility and then meshs only those voxels that are most likely visible. This means that the number of polygons that need to be generated and rendered are mostly consistent as well. Because the raycasting is done at a lower resolution then the display, the visiblity must be a little conservative. However the amount of geometry culled is still insane and still fairly consistent from frame to frame. This allows for high voxel densities even on mobile platforms such as the iPhone 3GS.
Finally while cells are stored as solid voxels in order to allow for malleability (the interior structures can be different then the surface), "voxel sprites" only store the surface voxels. So voxel sprites are stored using a Sparse Point Cloud, which is then compressed.
I'll talk more about the game and the technology in the future, this barely scratches the surface. Any comments are welcome.
While I'm not ready to show the real areas yet, I will show some early screenshots from the early engine and gameplay tests. In the near future I will be showing the real first area and showing the first gameplay video.
Comments are welcome, of course. I want to stress again that this isn't final rendering or assets. Everything you see is from early tests of the engine and gameplay, thus WIP. However when I took these screenshots the engine did support fog, lighting, dynamic meshing, voxel sprites (the craft, which is why it can be rotated), voxel cells/tiles, player control (though no HUD is displayed yet) and a decent 3rd person camera. When I show the first area soon it'll have collision detection, enemies, AI and combat. Multiple areas are also in the works and partially complete, however I've decided to bring one area up to completion soon in order to be able to show a "vertical slice" of the game. Useful for things like trailers and gameplay videos.