IsoEngine

First published 6 May 2020 · Updated 23 August 2026

Overview

IsoEngine was the editor behind “Reign of Rains”, the game made by Arkode, the studio I ran with Joshua Matthews. A medieval sandbox built on voxel terrain, with a built-in level editor.

Built in UE4 with C++ and Blueprints, with accompanying weekly devlogs and live-streams. First prototyped from 2019 to 2020, and further developed solo during my final year of university in 2021.

The editor runs in two modes: voxel mode and prop mode. Voxel mode allowed painting with 3D brushes, and prop mode allowed you to place conventional 3D models, but aligned to the grid for pathfinding and gameplay purposes.

Voxel systems

The name IsoEngine came from the pseudo-isometric style that the voxel models used, allowing for additional shapes and slopes beyond the simple cubes seen in other games.

Simplifying the terrain model placement to a voxel grid allowed other systems to receive algorithmic benefits. For example, it was relatively simple to implement A* pathfinding, and do lookups that told AI what materials were easy or slow to walk on. Additionally, terrain was destructible, and objectives could be updated in real-time.

Data oriented design for props

I strongly believe in separating behaviours and data in any project, and empowering gameplay designers with simple front-ends. For my final year university project, I created a DataTable system and C++ backend for configuring new props and AI in IsoEngine games.

I followed database best practice, linking to optional sub-tables for AI behaviours. This provided options for things such as animal and plant growth stages, and food chains.

Devlog

These articles provide a snapshot of my work from December 2019 to May 2020, first published on the Arkode blog.

IsoEngine update 06/05/20206 May 2020So quarantine and personal issues have meant slow progress for both of us here at Arkode, but that doesn’t mean we haven’t made important advancements for the project!IsoEngineDevlogVoxelIsoEngine update 08/04/20208 April 2020Explanation of absence.IsoEngineDevlogVoxelIsoEngine update 05/03/20205 March 2020So I just wanted to quickly explain last weeks absence, both for the blog and for the YouTube channel.IsoEngineDevlogVoxelIsoEngine update 21/02/202021 February 2020So due to having to catch up on last weeks content schedule (in part to my day off and trip to IKEA that I wrote about in the last post), this week will be short and sweet.IsoEngineDevlogVoxelIsoEngine update 17/02/202018 February 2020So again, we’ve had a bit of a weird week last week, which is why this is going up a bit late, but rest assured I am working hard to catch up on the work I’ve missed.IsoEngineDevlogVoxelIsoEngine update 07/02/20207 February 2020Hi everyone! So this week has been really fun for us, as we’ve been getting all of our old content re-released on our new central channel (look up Arkode on YouTube), and we’re nearly done.IsoEngineDevlogVoxelIsoEngine update 31/01/202031 January 2020This week is just going to be a quick one.IsoEngineDevlogVoxelIsoEngine update 24/01/202027 January 2020Hi again everyone! Feels like it’s been ages since we kept you guys updated (sure there’s room for a date related 2020 joke somewhere here, but I’ve taken a vow not to do them hahaIsoEngineDevlogVoxelIsoEngine update 08/12/19 | Optimizing our voxel engine8 December 2019Firstly, I want to apologize for getting this up so late (almost a week!).IsoEngineDevlogVoxel

Final-year project

For more details on my later work, please see my final year project. It contains implementation details on AI and prop systems.

Where it ended

Development stopped in late-2021. I ended up with a very small playable demo with working combat AI, level editor, and some basic props.

I always intended to return to this project, but have yet to identify a clear unique selling point to justify the time investment. Instead it serves as a lesson for me in systems design, and I learnt a lot from the project’s failures just as much as the successes.