Sep 24, 2014 - Lighting

I made a new implementation for ambient lighting, based on vertex colors. Visually there is no difference, but it should be faster.

Jan 7, 2014 - Iron Cube 0.31

0.31 release for Iron Cube for Windows and Android, tank multiplayer combat in a voxel world.

Iron Cube 0.32

New features and bug fixes:

  • 3 different levels
  • 2 tanks with different features
  • map is displayed
  • robust online gameplay for 2 players (currently)
  • tank on a client is simulated locally, so there are no lags on a client
  • game continues until 5 deaths of either you or your enemy, and enemies respawn on the opposite side of the map
  • new title page
  • startup made much faster
  • damage indicator
  • 3D sound
  • friendly bots are currently disabled, but will be restored soon.

New cinematic trailer with dubstep music!

Dec 23, 2013 - Automation

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.

Dec 16, 2013 - Debugging

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.

Dec 2, 2013 - Cinematic effects

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.

Nov 12, 2013 - The Challenge

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.


Oct 23, 2013 - Iron Cube!

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.

Gameplay video:

Screenshot_2013-10-23-16-47-44 Screenshot_2013-10-23-16-47-35Screenshot_2013-10-23-16-47-26 

Jul 3, 2013 - Iron Cube 0.15

Iron Cube 0.15

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!

Mar 29, 2013 - Lighting

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.

Mar 28, 2013 - The winner!

I am the First Prize winner of the Intel Perceptual Computing Challenge with the Mercury prototype. Thanks Intel!