D2 log 042 – Icon

I made the first draft of an application icon for the game. A small but rewarding task which got me the following:

  1. Some idea about the icon itself
  2. Blender export pipeline
  3. Script that scales the icon into all required dimensions & writes icon metadata

Now I can tweak the model & lighting (as one does), push a button and get a fresh set of app icons for each platform.

Icons for my other games:

D2 log 041 – Logo animation

The logo animation is a rather small feature and it’s been a while since I put it in, but I still love it when I see it.

It’s designed to resemble a gun being reloaded – a clip goes in and one bullet is loaded into the chamber. Based on AK47.

I’m glad I took the time to do it early on. Devastro 2 code is derived from Superforce so it was important to make a clear step away.


D2 log 040 – Saucers

Adding more variety and detail to the saucers. Finally.

The original Devastro had only one type of saucer. Granted, it came in two colors, but it was the same shape. It was based on a photo of a physical object (something from the kitchen I think).

For Type Raiders, I made several different 2D silhouettes in Adobe Illustrator, processed the .ai files with Python to turn them into 3D meshes and then rendered those using a Java-based renderer called Sunflow. That worked quite well, thankfully.

Now I’m using Blender for everything. Making the silhouettes, generating 3D meshes and rendering. I use PBR materials to give the saucers a scratched, banged up look.


It’s work in progress but I’m already quite happy with these.

The new Blender “cloth brush” tool was handy for making realistic looking, sloppily rolled out rugs. They too, as the saucers, look a bit used. God knows what liquids have been spilled on them throughout the universe…

♫ Turn every invasion
into a special occasion…
…with rugs!


So let’s take one more look at the entire saucer lineup:


Oh look, a Fisher Price™ Saucer! Not 100% sure what to do with it yet but it’s going in. I can

  1. treat it as a regular saucer
  2. use it for the “final boss” battle
  3. hide it somewhere as an easter egg

D2 log 039 – Collision shapes, pt.2

My custom shape editor has been a great tool for making Box2D collision meshes. Except I never used it. It was WAY too much work. I just kept putting it off, telling myself that the default boxes would be fine “for now”.

So I ditched it (all 400 lines of it) and decided to use some more Blender scripting to simplify my workflow.

I extended my export script to look for a mesh named “Collision” attached to each object. If found, it reads its vertex coordinates (x,y) and writes them into a file.

Took a while to match the camera transform correctly but now I can edit all the shapes directly in Blender!

Collision shape in Blender Collision shape in game


Keeping track of installed applications on multiple computers is a hassle.

Homebrew had been great for installing command line tools and libraries on macOS. Using Chocolatey on my Windows machine inspired me to take things a step further and try the “cask” subcommand for installing desktop Mac apps as well.

brew cask install firefox blender handbrake vlc

Works great. It’s now really easy to keep all the apps updated. Setup on a new computer is very quick. I also found that Tiny Player for Mac already had an entry in Homebrew:

brew cask install tiny-player

Thanks to whoever added it.

D2 log 037 – Windows

Devastro 2 now runs on Windows.

There were many issues I had to deal with, compared with Mac and Linux. Clang, CMake, Visual Studio, MinGW, the linker… It seems that a project using C++17, OpenGL and SDL is not exactly on the “happy path” for Windows development in 2020. But what is, anyway?

The game is up and running now. IMGUI is disabled because of some OpenGL compatibility problems. Not sure if this is worth fixing – all the editing is done on a Mac.

Would Sokol help? Will try for next project.

D2 log 036 – Linux

Devastro 2 now runs on Linux.

Devastro 2 running on Linux

After building my new PC, the first thing I tried was to compile the game on Windows. However, Visual Studio was giving me a hard time and I wasn’t in the mood for a fight. Instead I installed Ubuntu and got the game up and running there first, as a stepping stone. That went quite well.

No idea about packaging the game for distribution yet. Are .tar.gz packages still a thing?

Building a PC

After many years of using Macs exclusively, I decided to build a PC.

I wanted to get a Windows machine for development purposes, play a few games and have some fun with the build.

The goal was to get a computer that would last a few years while keeping the budget reasonable. I started with a (hopefuly) future-proof motherboard and a solid CPU. Got a used GPU and reused a few older parts. Here’s what I ended up with:

CPU Ryzen 5 3600
RAM 32GB DDR4 3200
GPU Sapphire RX 570 Nitro+ OC 8GB
STORAGE Kingston M.2 SSD 1TB
COOLING ARCTIC Freezer 34 eSports DUO + 3× ARCTIC P12 PWM 120mm
PSU SilentiumPC Vero M2 Bronze 600W
CHASSIS SilentiumPC Signum SG1 TG
OS Windows 10 Professional

SilentiumPC Signum SG1 TG

There were no problems with the hardware, everything worked the first time. Phew!

The machine wasn’t very loud but I could hear the CPU fan constantly spinning up and down, reacting to small temperature changes. Very annoying. I adjusted the fan curves directly in BIOS. The fans now stay at the lowest possible speed until the temperature gets a bit higher. Turns out it never does! Even under sustained load the CPU only reaches about 45℃.

After installing Windows I used Chocolatey to install most 3rd party software and Steam to get some games.

Next step is adding another drive and installing Ubuntu on it. I’m not very much into Linux but Devastro 2 is already using SDL so I figured I might as well give it a try.

A Hackintosh is also an option but it’s low priority because I’m going to keep using my iMac for work anyway. It is a bit slower but also dead silent, and the 5K screen is hard to beat.