I made a new implementation for ambient lighting, based on vertex colors. Visually there is no difference, but it should be faster.
0.31 release for Iron Cube for Windows and Android, tank multiplayer combat in a voxel world.
New features and bug fixes:
New cinematic trailer with
I am running automated tests with Iron Cube - every second some action is randomly chosen - move forward/backward, rotate left/right or shoot. This screenshot was made after hours of tests. The surface is heavily damaged. And surprisingly, there are no crashes or problems! I’m ready to upload the new version to Google Play Store.
I am debugging some network issues of Iron Cube’s Android version. Saving of network data on the client that arrived from the server became very useful for debugging bugs. You can record gameplay on an Android device and play it back on a Windows machine in the Editor and it helps a lot to fix defects.
There is one bug on the Android version, when bullets are not disappearing from the screen. I hope to fix it soon.
I am reading books and articles about mobile/indie game marketing, and it’s quite interesting. One of the most important things for game marketing is a good trailer, so I decided to add movie recording/playback to Iron Cube and Glow engine.
The task looked complicated but actually has simple solution - to record a game you just need to save all incoming data from a server to a client. Later, in the editor, you can just load this file and emulate network communication from the server to restore the original game. It automatically becomes compressed, because I’m using a snapshot-based system for networking in Glow engine and only changed data is sent between the server and client. For example the movie below is less than 1 MB.
And this allows many interesting options - for example you can reduce the speed of playback to have Matrix-like slow motion! There is no interpolation between frames, so it may look slightly laggy.
I participated in the Intel Perceptual Computing Challenge, stage 2, where I improved my first prototype, which won a First Prize of a 1st stage. Intel SDK was improved since June, becoming more robust. Last time I received a camera one day before my deadline, so didn’t have enough time to properly implement gesture support.
In the current demo, I added several new gestures - the size of brush can be changed by a “zoom” gesture (moving open hands), undo of previous operation is implemented by a “circle” gesture, provided by SDK, start of “potter” mode by swiping up, down, left, or right. Also API was changed from DirectX to OpenGL and lighting became more simpler (forward) to optimize rendering. Save/Load of the model was added. There are many improvements with robustness and smoothness of brush movement there.
It has now become some kind of Paint editor for voxel models.
Iron Cube, a tank multiplayer combat game in a voxel world, is ported to Android and available on the Google Play store for free!
The game is available on all Android 4.0+ (from Ice Cream Sandwich) devices and was tested on Samsung Galaxy Note 3, Samsung Galaxy Note 4 and Samsung Galaxy Note 2.
Currently there are 3 levels and 2 tanks with different features, the M1 tank is more heavy and powerful, but slower than the Merk tank. 2 players can play by using local Wi-Fi network or by using phones, connected by Wi-Fi Direct. Also it’s possible to compete with an AI-controlled bot. To win you should destroy the enemy tanks 5 times (by the way, the bot is very smart and it kills me very often). Enemies usually appear on the opposite side of the map. After destroying an enemy tank it will respawn.
The environment is fully destructible, the water is dynamic.
I spent several weeks on preparing the Iron Cube release (v.0.15.). I added a lot of new functionalities, AI bots, dynamic navigation meshes, new voxel based lighting and new OpenGL based rendering and water.
AI Bots are added to gameplay, and they’re pretty smart! (actually not really, a team member still can shoot one of its own friends when one of them is on the line of fire, but it will be fixed soon). They can follow their leader (player), find an optimal way to find the enemy and give way to the player. I am actually thinking how to make them slightly dumber.
Bots use new navigation systems, based on the updated Recast library. Meshes are dynamic, it means they will be rebuilt when the voxels are changed.
And now a demonstration on how dynamic navigation meshes work:
a new voxel-based lighting system is developed, the lighting from the sun is ambient and allows smooth shadows (relatively smooth, because of the overall pixelated style). Lighting is made using a modified flood-fill of skylight from the top of the world.
Also I switched the render from DirectX+Deferred Shading to an OpenGL+simple voxel based lighting to be compatible with future mobile ports. It’s faster and allows you to play the game on old hardware.
A lot of work was put into making the editor, and it’s now fully functional, allowing you to render random polygonal models into the voxel world, edit the meshes, setup lighting and AI.
Now I’m one step closer to the final release!
I implemented the new CPU based lighting, which helps with rendering on mobile devices. Lighting is divided into sky and local lighting. Sky emits lights from top to bottom of the voxel world, also it creates shadows and darkens caves. Local light’s currently without shadows, but uses normals of objects. Lights are calculated in the editor and then saved to the file to help with loading time on mobile devices.