It seems like every project update usually contains a bunch of notes about boring engine internals. So here’s a screenshot of Demo 5’s first battle instead.

Some of the graphics are still placeholders, but it’s slowly starting to look like a game. And it wouldn’t be the same game without a bushman to ruin your day.

One thing I really wanted to improve on from previous demos was how the battlefield affects movement. There are already some slow and defensive paths, as well as some aggressive but risky ones.

Internally there have been some big improvements made. Basic character inventory and magic screens are up and running, although they’re rather ugly and will be getting a redesign at some point.

I also spent some time building tools to help with development. Seeing as I spent so much time trying to make everything data-driven, it seemed silly to have to restart the game to load new changes. With that in mind, I built three tools:

blamit – Listens for changes to a directory, and when a change occurs will execute one or more build targets. This is used to listen for changes to the various data folders, and then to re-pack everything and copy it to the project directory.

listener – Starts a server and listens for changes to a directory, and sends a message to every connected client when a change is made. The main game connects to this server during startup and will reload resources when a message is sent. If an interface screen is showing (such as the character summary screen) it will reload its definition file and redraw itself. This makes it much quicker to tweak screen layouts.

slime-server – This is built into the engine as a service. When running, slime clients can connect to the game and run script commands. This makes it easier to spawn entities or move them around without recompiling or reloading things.

Even though they took a while to develop, they’ve made development go a little quicker. But more importantly, they’ve made some of the boring parts much more pleasant to create.