Back to the freezing Midwestern wastelands, and development is chugging along nicely.


  • Fixed a silly bug in which I forgot to load a shader, and was mystified by the absence of some details. This took far too long to figure out!
  • Cosmetic: made windows a little shinier. I like it this way.
  • Removed the old sprite-based settler graphics. They were nice and realistic, but had two problems: they followed an entirely different render-path to EVERYTHING else, and it is really hard to make super-realistic graphics with my artistic skill level. I’d also had a couple of people contact me on Twitter indicating that they liked pixel-art more than Makehuman’s almost-realistic people – which got me thinking, and I decided that they were right.
  • Added in voxel-based settler graphics. They are a little primitive, but I feel they fit well with the artistic direction of the project as a whole. They are composited from a body, hair, and each clothing layer. The voxel models are re-colored as necessary (there are 9 skin tones, 24 hair colors, 5 hair cuts, and a whole bunch of clothing options – each of which selects from a color scheme). I really like this; you can clearly see the level of procedurally generated differentiation between models (aside: I think it’s really important to help the player “bond” a little with their characters, and this helps). The render system supports scaling, but I’m not doing it yet – once I’ve figured out some details, I may make tall/short models bigger/smaller (to a certain extent). The voxel engine is already integrated into lighting/shadows, so characters are automatically included in this now.
  • Facing has been in the engine for a LONG time, but I’ve not really had a good way to show it. Now, the voxel models rotate to indicate which way a character is facing. It’s surprising how much difference this made to the look/feel of the game (and answered “why isn’t Jennie shooting?” – she’s facing the wrong way).
  • Fixed a creepy bug in which settlers rotated, but their hair didn’t. It looked really weird.
  • Fixed up an issue that was causing NPCs to spawn naked.
  • Fixed an issue that was causing blonde hair to render neon-pink.
  • Adjusted the NPC raws to use the same voxel render path as settlers, but it is still lacking some models. I didn’t like having invisible creatures roaming, so they temporarily all look human.
  • Finished up the particle laser blasts.
  • Rewrote the fluid rendering system. Fluids can change a lot more frequently than most terrain elements, so having them be part of the “chunk” system was causing issues (and hurting the main reason to have a chunk system, which is infrequent updates to terrain geometry so I can render tham FAST). So now fluids are re-rendered every few frames (always enough to catch changes in game as water flows). This looked decent, and was fast enough, so I started thinking about how to take it to the next level. I’ve always loved how Brogue handles water, albeit ASCII/2D – so I did some reading. The water system maintains a Perlin noise map now (calculated once and cached for speed), and this is used to slightly offset water height. Each tick cycles the positions on the noise map slightly – so water moves up and down in wave motion. It’s probably a little stronger than it needs to be right now, but the effect really brings things to life.
  • Fought with MSYS2 on Windows until I could build the game under a gcc+CMake environment once more. Tweaked compiler settings, documented what packages are required, and eventually got it working in CLion as well. It’s about as fast as the Windows build. This was the first step towards restoring cross-platform builds. It also means that the open source purists of the world can build the game on Windows.
  • Setup a Linux Mint VM, and got the game to build/run on that platform too. It’s not the most pleasant experience in the world, taking nearly an hour to compile in VirtualBox. I’ll have to resurrect a native install to continue supporting this platform.
  • Updated the build tools on my Hackintosh, and got the game building on there too. Much to my surprise, it compiled on the first try. It didn’t link, but I tend to expect that. I spend far too much of my life persuading ld to interact with things!


. Turrets are deliberately over-powered at the moment (they have a super-high initiative, and can zap a LOT), mostly so my settlers can live through the early stages of the game while I develop it. Dead bodies and blood splatters/stains are coming soon, but for now you can zap things to your heart’s content.

Voxel Settlers