A youtube video from the voxel game prototype I built on my Glow3D engine some time ago. The idea was something like the original Zelda game (isometric, adventure, but on voxels). Art from the video was created by Sir carma. I built a parser of the MagicaVoxel file format and updated significantly the source code I created for the Iron Cube game. Support for nVidia HBAO+ and nVidia Shadows was added using Shadow Works middleware to improve picture quality. nVidia HBAO+ is Screen space ambient occlusion technology to emulate global illumination and I gave up on creating my own implementation of SSAO (at least for some time). I have some support for shadows in the engine but I didn’t have efficient Cascaded Shadow Maps at that time and decided to use nVidia libraries instead. It’s efficient and used in many modern games.
I spent several evenings on rebuilding my website and blog - www.glow3d.com. The first platform I used to write periodically about my hobby game engine was blogger.com. I started it several years ago, but for some reason decided to switch to AWS based website and WordPress - basically the only reason was to learn basics of html and web site development. Also, I wanted to try it as a server for my prototypes of multiplayer games. WordPress-based blog was bad - SQL database periodically crashed for some reason and I had no idea why (probably memory configuration). I was tired and cancelled my subscription to AWS services (honestly the main reason was the expiration of the free period) and closed the website and blog.
To rebuild it I decided to use Jekyll - a static site generator, written in Ruby by Tom Preston-Werner, GitHub’s co-founder. It’s called ‘static’, because websites created using this technology don’t have SQL databases, complex scripts etc. It’s fast, simple and blog-oriented. Also, it natively supports Markdown with syntax highlighting for almost every programming language. You basically compile your Markdown posts, templates to the final static site and GitHub can be used to serve a site for free. This was exactly what I needed.
Jekyll is relatively mature technology, started in 2008, so it’s easy to find templates for a website. I liked the design by the company html5up and it’s under the Creative Commons license. I started from the simple Jekyll-based blog template Jekyll-Now and applied the html5up theme on top of it a day later. Some additional pain was the porting of my old blog, exported from WordPress to Markdown but I used some scripts. This link is useful to port WordPress blogs to Jekyll.
I used Disqus for comments originally but afterwards this article (shortly - 105 additional network requests and a ton of tracking for some shady sites) replaced it with Facebook comments. The source code for the website and blog can be checked on my GitHub account here.
I hope that no exciting new technology will appear soon and I will not port this site to it again.
P.S. The broken English of the old blog was fixed by my 9 year old son, who is the winner of his school’s Spelling Bee competition. Now he is my fulltime editor.
“Pied Piper” – stupid little game about dancing zombies. It’s my first attempt to participate and finish a game for Ludum Dare.
What went right – The idea to use Fuse tool for characters and mixamo.com for animations really saved time. It’s easy to make a realistic character in Fuse and I prepared a pipeline for exporting characters from mixamo.com to my engine before Jam. Also, making the game was a lot of fun (really loud laughing for the first 10 minutes when I saw the first dance) and it was an important motivation to finish it.
What went not so right – planning (as usual) – I spent one evening on selecting proper music from freesound.org and had only one evening and night to actually write the code. As usual, I found several weird glitches (downside of the usage of my own engine). One glitch leaked to the first release for LD (and fixed in the latest version)
This is my first LD, so the goal was just to finish something. Engine is mature now and can be used for next LD. I’ll probably continue to work on Pied Piper if I receive positive feedback from the community.
Some time ago I worked with excellent voxel artist Sir carma. This is a screenshot from that project, the art + glow3d rendering.
Screenshot of the editor with DirectX 11 renderer and simple scene with 2 light sources.
I added support of DirectX 11 to Glow engine, which took me couple of weeks. DirectX 11 seems much simpler and better designed than DirectX 9, with less calls to the graphics driver. Source code now is 2 times more compact than the DirectX 9 version. Still, DirectX 9 is supported, and nothing is broken.
I started support for DirectX 11 with hope to fix my issues with Oculus SDK.
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:
- 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
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.