Featured Projects
See all projects

4D Geometry Viewer
Developing a game that uses the fourth dimension is rarely discussed, if discussed at all. I created an interactive visualisation of 4D geometry to learn how to apply 3D rendering concepts to higher dimensions.

Hogs of War: Level Editor
A cross-platform tool that allows for the visualisation and manipulation of Hogs of War map files.
Recent Activity
See everything

Notakto: A Haskell game with Apecs and Raylib
My previous post on Apecs was very well received, but I've seen a lot of people using the now-out-of-date code and somewhat struggling. Time to dive back in!

Laplace's rule of succession
- July 20, 2022
- 8 Minutes
I find myself talking to many people about this bit of maths simply because I've actually been able to apply it in my life and work. Hopefully in this post I can explain how!

Voronoi.haxe
After spending a while wandering the internet in search of something new to learn, I found something I somehow missed: the language, Haxe, and the game framework, Heaps. This was the result of my learning.

What is Nix?
I seem to be nixifying everything, from my operating system to my website. I wanted to go into a bit of detail about what it's like working with Nix.

Hexagonal.hs
- June 25, 2020
- 12 Minutes
I've been playing around with Haskell for quite a while and I wanted to have a play around with a purely-functional graphics pipeline.

4D Geometry Viewer
Developing a game that uses the fourth dimension is rarely discussed, if discussed at all. I created an interactive visualisation of 4D geometry to learn how to apply 3D rendering concepts to higher dimensions.

Hogs of War: Level Editor
A cross-platform tool that allows for the visualisation and manipulation of Hogs of War map files.

Street Fighter Clone
A university assignment where the goal was to study and recreate Street Fighter's mechanics in our own clone of the game.

Clojure: Another functional programming language
I've always been aware of the Lisp language, but always been afraid to dive in. However, after reading 'Clojure for the brave and true', I now recognise Clojure as a simple, pleasant and powerful language.

Relocate Engine
Relocate is a physics is an experiment with Box2D physics, Lua scripting, ImGui debugging and the SFML framework, and has been used as a starting point for a few of my other C++ projects.

SimpleRoguelike.hs
My first attempt at game development in the functional language, Haskell, as well as a description of the challenges I had to overcome to get things working.

An Introduction to game development in Haskell using Apecs
There have been so many attempts to pioneer gamedev in Haskell, and yet still no commercial releases. In this post I hope to clear the air a little bit and encourage new developers to try Haskell.

Of Boxes and Threads: Game development in Haskell
- June 9, 2018
- 20 Minutes
My experiences of making a game in Haskell and how I think it's is a pioneering process. Despite a wiki and subreddit dedicated to gamedev in Haskell, not many people have actually succeeded making anything close to current games.