iakov.dev

Voxel art by Sir carma in Glow3D

· 1 min read

Voxel art by Sir carma in Glow3D

A while ago I worked with Sir carma, an excellent voxel artist. This screenshot is from that project. The art is his, and the rendering is done by my Glow3D engine.

The project was a voxel game prototype, an isometric adventure in the spirit of the original Zelda. To get his models into the game I wrote a parser for the MagicaVoxel file format and reused a lot of the voxel code from Iron Cube. For the lighting I added NVIDIA HBAO+ for ambient occlusion and NVIDIA’s shadow library.

A DirectX 11 renderer for the Glow engine

· 1 min read

A DirectX 11 renderer for the Glow engine

The screenshot shows the editor running on the new DirectX 11 renderer, with a simple scene and 2 light sources.

Adding DirectX 11 support to the Glow engine took me a couple of weeks. DirectX 11 seems much simpler and better designed than DirectX 9, and it needs fewer calls to the graphics driver. The DirectX 11 renderer’s source code is half the size of the DirectX 9 version. DirectX 9 is still supported, and nothing is broken.

I started the port in the hope that it would fix my problems with the Oculus SDK.

Ambient lighting with vertex colours

· 1 min read

Ambient lighting with vertex colours

I rewrote the ambient lighting in Iron Cube. The ambient term is now stored in the vertex colours of the voxel mesh.

The screenshot from the editor shows the result on plain white voxels. The tops of the stepped hill are lit from above, while the sides and the gaps between the steps go dark.

Visually there is no difference from the old version, but it should be faster. Iron Cube also runs on Android phones, so every bit of rendering time I save counts there.

Automated tests for Iron Cube

· 1 min read

Automated tests for Iron Cube

I’m running automated tests on Iron Cube. Every second the test picks a random action: move forward or backward, turn left or right, or shoot.

I took this screenshot after several hours of testing. The ground is covered in craters from all the random shots, which is a decent stress test for the destructible voxel terrain. To my surprise there were no crashes and no other problems, so I’m ready to upload the new version to the Google Play store.

Debugging Iron Cube with recorded network traffic

· 1 min read

Debugging Iron Cube with recorded network traffic

I’m debugging some network issues in the Android version of Iron Cube. Saving the network data that the client receives from the server, which I added for recording trailers, has turned out to be very useful for this. I can record a game on an Android device and then play it back in the editor on a Windows machine, which makes bugs much easier to find and fix. In the screenshot the editor has a recording, net_record.glw, loaded in the Cinematic panel, next to the pause, stop and playback speed buttons.

There is still one bug in the Android version where bullets don’t disappear from the screen. I hope to fix it soon.

Recording and replaying games in Iron Cube

· 1 min read

Video

I’ve been reading books and articles about marketing mobile and indie games, and I find it more interesting than I expected. One of the most important things for marketing a game is a good trailer, so I decided to add movie recording and playback to Iron Cube and the Glow engine.

It looked like a complicated task, but the solution turned out to be simple. To record a game you save everything the client receives from the server. Later you load that file in the editor and emulate the server’s network traffic, and the original game plays out again. The recording comes out compressed for free: networking in the Glow engine is snapshot-based, so only changed data travels between server and client. The movie below takes less than 1 MB.

This opens up some fun options. For example, you can slow playback down and get Matrix-style slow motion. There is no interpolation between frames yet, so it can look a bit laggy.

Mercury in stage 2 of the Intel challenge

· 1 min read

Video

I took part in stage 2 of the Intel Perceptual Computing Challenge with an improved version of my first prototype, the one that won first prize in stage 1. Intel has improved the SDK since June, and it is more robust now. Last time the camera reached me one day before the deadline, so I didn’t have time to implement gesture support properly.

Iron Cube 0.15

· 1 min read

Video

Download Iron Cube 0.15 from Mod DB

I spent several weeks preparing this Iron Cube release, version 0.15. It has a lot of new features: AI bots, dynamic navigation meshes, new voxel-based lighting, and a new OpenGL renderer with water.