The creation process for a custom engine along side my co-programmer Keamu Hill was a very long and exhausting, but overwhelmingly exhilarating and inspiring experience. Fuelled by an existing passion for creating my own solutions for problems and an insatiable itch to write everything from scratch, I was driven in the direction of custom tech, finding the inspiration for this project through Keamu himself with his voxel engine which in turn drove me to seek out new avenues of research. These avenues included graphics programming, custom engine backends, Flecs, Jolt, the list goes on!

We then shared in a passion for custom tech, and a drive to prove to ourselves what we could accomplish in 4 and a half months. That shared passion (and many near sleepless nights) presented itself as Cauda Engine, which allowed us to develop:

For a quick overview, my contributions to the engine were:
  • The Application and backends (Build configurations, Layer Stack, SDL3 setup)
  • The Input System and custom Gamepad Input handling (Input listeners, Drop in/out functionality)
  • The Audio System (SoLoud wrapper)
  • The custom event structure and event handling

Below I've written some blogs and devlogs on the process and my findings working on a custom engine, and translating it to a playable game:

Cauda's Development

Here I go over the process of creating Cauda Engine, the challenges overcome, and priceless learning experiences made during the development cycle.

Understanding ECS

A blog about learning to use an ECS - specifically Flecs - and the pros and cons I found while using it for this project.

Learning our own scripting system

During development of Cauda we created several iterations of our Grimorium and Grimoire scripting system (inspired by Unity's mono behaviours), how we had to learn our own system as we used it, and what I'm planning to do better in future projects.

Reflecting on my backend code

A reflection on my development process of Cauda's backend application class, and underlying core loop, going over how I would do this better in a new project and what I've learned and code practices that I found incredibly important.

Tumult

Our first game project using Cauda Engine.