Projects
This is a list of a few projects I worked on in my free time. Not all of them are in the best shape, though.
Orb Programming Language (GitHub | Docs) - It started with me wanting to create a simpler C++ style language, but somewhere along the way I learned a thing or two about Lisp and felt compelled to shape Orb’s syntax and metaprogramming capabilities based on that enlightenment. I went deep down the rabbit hole and the result is an odd language that lets you do things some of which are past the sanity threshold.
libwfc (GitHub | Devlog) - My implementation of the Wave Function Collapse algorithm. The algorithm takes a small reference image and generates a larger one that resembles the input. I also created a CLI and a GUI tool with their own set of features. The most interesting part of this project are the optimizations - see devlog #2 and devlog #4 for more on that.
unargs (GitHub) - Single-header C library for parsing argv. Implemented quickly and mostly for my own needs, it does not even pretend to follow any common conventions but it was still of use to me.
Stateorio (Unity Asset Store) - Implementation of finite state machines in Unity. Designed to be easily configurable with Unity components and properties. It’s outdated at this point and no longer maintained.
PlaneSmith (GitHub | Release) - .NET program for general-purpose unopinionated 2D level editing. It lets you specify a code template for each object so that the output matches exactly what you want to receive, be it JSON, XML, or even source code.
Crimson Assault (Ludum Dare 40) (itch.io | GitHub) - My entry in Ludum Dare 40 created in under 48 hours. It is a simple 2D game where you lead a group of soldiers as they fight their way through enemy troops and destroy their artifacts of power (lava lamps).
Dungeons of Pain (GitHub | Release) - Roguelike that I created while in college using SFML. What I spent the most time on is making everything about the game moddable - players can create their own types of enemies, items, classes, spells, and levels.