This is a page with a tagged list of things I made!

It is by no means complete (some projects are small, some stay under NDAs, some I might forget to add), but I tried to include everything of interest.

Also see:

Last updated in March 2021.

You can click on section titles to expand/collapse them, and click on tags to only show sections that have that tag.

Quick display controls:
Expand allCollapse all

Programming languages:
Haxe C/C++ C# Lua JavaScript

Game engines:
GameMaker Unity Construct

Tags explained:
Compiler Compilers, transpilers, and interpreters (see descriptions for specifics).

Netcode Online multiplayer and related features.

Format Projects involving file format implementations - documented or not.

Hook Projects involving function hooking, memory scanning, and so on.

Mod Unofficial or semi-official modifications for games.

Web Web-based (read: runs in a browser) projects.

SDK SDK wrappers and implementations.

Kinect.gml2021GameMakerC/C++SDK

A small wrapper for Kinect V2 SDK for GameMaker games - mostly handy for using the sensor as a color and/or depth camera.

TheEyeTribe.gml2021GameMakerSDK

A simple wrapper for The Eye Tribe's eye tracker SDK for use in GameMaker.

Samurai Gunn 22020-GameMakerNetcode
Icon converter2020WebHaxeFormat
display_mouse_sim2020GameMakerC/C++

Minimalistic (read: mouse_event) mouse simulation for GameMaker games.

sprite_add_gif2020GameMakerHaxeFormat
shader_replace_simple2020GameMakerC/C++Hook

Tricks and function hooking to hot-swap shaders in GameMaker games.

Antonball Deluxe2020-GameMakerNetcode
YY-Reunion2020GameMakerHaxe
Pixel font converter2020WebHaxe
"GMLive for Unity"2020UnityC#GameMakerHaxe

For April Fools 2020 I decided to pick no low-hanging fruit and made a tech demo of code in a GameMaker project live-reloading into Unity. Also a good showcase of why I like Haxe.

window_set_icon2020GameMakerC/C++UnityC#

Allows changing window icons / taskbar badges for GameMaker, C# WinForms, and Unity.

Nova Drift Tweaks2020GameMakerC/C++HookMod

A multi-version mod for Nova Drift that uses DLL injection to add a number of quality-of-life tweaks... and optionally give spaceship 6 legs to scuttle with.

Desktop Screenshots2020UnityC#
A GML➜C# compiler2019GameMakerHaxeCompilerC#

I once wrote a tool to perform static analysis and generate equivalent C# code for gradually migrating a GameMaker project to C# and Unity.

GMVitalizer2019-2020GameMakerHaxeFormat

A tool to convert GameMaker Studio 2 projects back to GMS1 format.

mod.io Rest SDK2019-HaxeGameMakerSDK

A haxe-based wrapper for mod.io API that is used for the official GameMaker SDK and can be used with Haxe or JS for simple (read: no browser embed) access with no extra dependencies.

YY-YAML2019GameMakerHaxe

A tool to aid with version control branch merges and project manipulation in GameMaker Studio 2 - from a time before this was handled correctly "out of box" in GMS2.3+

GMTogether2019-GameMakerC/C++NetcodeHookMod

Uses various high-end tricks to enable a variety of "offline" GameMaker games to be played over the internet in a form of deterministic lockstep simulation.

BOILINGHOT2019C#HookMod

A mod that adds SUPERHOT-esque mechanics to Unexplored, a top-down roguelite game with spectacular level generation and mechanical depth.

catch_error2019GameMakerC/C++Hook

Monkey-patched internal functions to implement exception handling in GameMaker long before the language officially supported exception handling.

Forager2019-2020GameMakerNetcodeCompiler

I wrote the modding system (with a GMS2-equivalent scripting language) and the "backend" for the netcode of the award-winning idle & crafting game... before the game fell apart, that is.

Raw Input2019GameMakerC/C++

Allows GameMaker games to distinguish between input from multiple mice/keyboards.

Allow Data URI2018GameMakerJavaScriptHook

Monkey-patches an internal function to allow GameMaker HTML5 games to use Data URIs in place of any file/URL path.

GMRoomPack2018GameMakerHaxeFormat

A tool that converts GameMaker rooms to a JSON format and an extension to load them.

Doodle Derby2018-2020GameMakerNetcode
Zip writer2018GameMakerHaxeFormat

Allows GameMaker games to generate specification-compliant ZIP archives.

Bounce buds2018GameMakerNetcode

I wrote netcode for this little volleyball-inspired game.

TXR & Interpreters guide2018-GameMakerCompiler

I wrote a two-part tutorial on writing custom scripting languages and an example GML-like language for it!

display_screenshot2018GameMakerC/C++

Allows capturing arbitrary parts of screen into surfaces in GameMaker games.

GameMaker Studio 22018JavaScriptGameMaker

Early 2018 I was commissioned to work on series of small fixes for GameMaker's HTML5 target.

GOG.gml2018GameMakerC/C++SDK
GMEdit2017-WebHaxeGameMaker

An Electron-based code editor for GameMaker projects with themes, plugin support, and countless convenience features over the default IDE.

A GML➜Haxe compiler2017GameMakerCompilerHaxe

In 2017 one of the clients had found themselves in an unfortunate situation after their first developer decided to code a matchmaking server for a large-ish (100+ CCU) turn-based game in GameMaker.

GameMaker didn't have exception handling back then, so the entire server would crash rather easily on any logic mishaps. After realizing the direness of the situation, the developer promptly evaporated.

I was commissioned to write a custom compiler which, by utilizing both type inference and manual type hints, would convert dynamically typed GML code into statically typed Haxe. Doing so allowed to utilize Haxe's exception handling (meaning that bugs would only affect their respective match at worst) and added performance from targeting strictly-typed C++.

Although the project had long concluded, my research lives on in my blog posts - so, when I want interactive demo(s) in a post (examples: 1, 2, 3, 4...), I write them in GMLive.js first, convert them to Haxe, and pair them with a little framework that implements a handful of GameMaker functions while eliminating anything unused via DCE. The result is mere kilobytes of JS code.

Heat Signature editor2017WebHaxeFormat

A tool for manipulating Heat Signature's character files.

Caveblazers Together2017-GameMakerNetcodeMod

I made the "official unofficial" online multiplayer mod for Caveblazers, an roguelite action platformer game.

buffer_zlib2017GameMakerC/C++

zlib [de-]compression from a time before GameMaker had built-in functions for it.

GMLive.gml2017-GameMakerCompiler
Nuclear Throne2017-GameMaker

After working on Nuclear Throne Together for a year, I have been approached to help with development of base game, which resulted in game's update 99, and later the Switch port.

TJSON2017GameMakerHaxeFormat

A specification-complaint JSON encoder/decoder for GameMaker games. The extension allowed for garbage-collected JSON objects before built-in functions for them were introduced in 2020.

Apollo2017GameMakerC/C++Lua

Allows to integrate Lua scripting in GameMaker games!

Rivals of Aether2017-GameMakerNetcodeCompiler
Knight Club2017-2021GameMakerNetcode

I wrote netcode for Gutter Arcade's action platform-fighting game and have been working on netcode for the game's sequel prior to it being put on hold in 2021.

YYTextureView2017WebHaxeGameMaker

A tool to explore sprites and textures in GameMaker games.

Screenshot Save Dialog2017GameMakerConstructJavaScript

Allows GameMaker and Construct 2 games to offer the user to save screenshot PNGs.

Steamworks.gmk2017GameMakerC/C++SDK

A simpler Steamworks SDK wrapper for old versions of GameMaker.

Serial communication DLL2017GameMakerC/C++
file_ini2017GameMakerHaxeFormat

Improves upon GameMaker's INI support by introducing support for escape characters, ability to manage multiple INI files at once, preservation of comments/formatting, and so on.

AM2Rrc2016GameMakerFormat

Following news of AM2R receiving a DMCA takedown request from Nintendo, I set off with an ambitious task to reconstruct the game's source code from the available binaries.

The project was structured in a way so that the reconstructed repository would be void of Nintendo's copyrighted works. Subsequent community-made updates are based on it.

Indie Pogo2016-GameMakerNetcode

I did netcode for Indie Pogo, a platformer pogo brawler game for 2-4 players with an impressing number of cameo characters.

Kerfuffle2016-2017GameMakerNetcode

I was doing netcode for Kerfuffle, a platformer fighting game for 2..4 games.
Alas, the game was eventually put on hold, but I did do netcode for Knight Club too.

Hive Jump2016UnityC#Netcode

I wrote netcode for Hive Jump, a run-and-gun arcade-ish rogue-lite game.
Due to various reasons, it wasn't the very best.

Take Thy Throne2016GameMakerNetcode

I did netcode for this platformer MOBA/Tower Defense hybrid.

Though "did netcode" seems like a generous statement given that all I did was give permission to the game's artist to reuse the tech that I made for our previous collaboration, and have never even seen the game's source code. Still, I'm credited for netcode in-game.

POOL2016GameMakerHaxe
GMLive.js2016-WebGameMakerHaxeCompiler

A web-based tool that compiles and runs snippets of GML code right in the browser.

Spots a custom GML➜JS transpiler that pairs code up with GameMaker HTML5 runtime.

Nuclear Throne Together2016-GameMakerModNetcodeCompiler

I made a Nuclear Throne mod that does a whole lot of things:

  • Adds online multiplayer (complete with Steam matchmaking)
  • Adds replays and spectating
  • Adds ability to load other user-generated content, complete with scriptable mods
    (which use a GML-like language with a bytecode compiler+interpreter)
  • Fixes countless bugs, be coop-related or not.
  • Adds various quality-of-life tweaks like mouselock, native cursor, borderless fullscreen, widescreen, ≥60fps support, and more.

I was later hired to work on Nuclear Throne itself, incorporating many of my fixes and improvements into the base game.

(unnamed scripting system)2016GameMakerCompiler

I was at some point developing a scripting language with type inference for use in one of the contract projects. The project had not seen a release, though some of the ideas would live on in my later compiler works.

Steamworks.gml2016-GameMakerC/C++SDK

A wrapper extension for Steamworks SDK that implements numerous functions not covered by GameMaker out of box (networking, matchmaking, Steam Input, etc.).

Snake Snafu2015GameMakerNetcode
Wasteland Kings Together2015GameMakerNetcodeMod

An online multiplayer mod for the jam version of Vlambeer's Nuclear Throne.

Super Crate Box Together2015GameMakerNetcodeMod

An online multiplayer mod for Vlambeer's Super Crate Box, also adding a versus mode and various options/improvements.

Stories at the dawn2015Lua

A short minimalistic platformer game made with pico-8.

Nidhogg2015-GameMakerNetcode

I was hired to fix the game's netcode, subsequently hired to rewrite it to work well enough, and wrote netcode for the various releases of the game.

Terranion2015-WebHaxeFormat

A web-based companion/mini-wiki web application for Terraria.

Noteworthy for extracting information directly from the game's files.

hxpico82015LuaHaxe
sfGML2015-GameMakerHaxe

A custom Haxe compiler module to allow generating GameMaker Language code from Haxe.

Development started in 2015 to make it feasible to write complex code for GameMaker games, and the project was publicly available since 2018.

Ghost Croquet2015-GameMakerNetcode
BitFontReader2014WebHaxe

A web-based tool for converting bitmap fonts into BitFontMaker2-compatible format to allow exporting them to TTF. I would later improve upon the process in Pixel Font Converter.

Spelunky SD2014GameMakerModNetcode
GameJolt API for Construct 22014ConstructJavaScriptSDK

A Construct 2 extension wrapping GameJolt's JavaScript SDK.

Terrasavr2013-WebHaxeFormat

A web-based character editor for Terraria.

With millions of pageviews, technically one of my most popular tools!

Color Ninjas2013;2015GameMakerNetcode

A 2-player action game where the players compete to paint the field in their color while fighting the other player.

Touch keyboard extension2013C#

I at some point made this little application that would dock a panel with on-screen keys to cover things that Win8 on-screen keyboard wouldn't offer out of box. Dedicated to days messing around with a x86 Win8 tablet.

Multiplayer experiments2013GameMakerNetcode
LDLS-m2013-2014WebHaxeCompiler

An IDE and a custom programming language for logical scheme simulation developed for use in local universities.

OpenFL-bitfive2013-2015WebHaxe

A custom HTML5 backend for OpenFL framework with focus on performance and application development - by targeting Flash+HTML5, a web app could run on more or less every desktop or mobile browser. As HTML5 support in browsers improved, this became unnecessary.

HaxMin2013WebHaxe
Impasse512012Assembly

A demake of a Flash game Impasse written entirely in MCS-51 (8051) assembly.

Love2d experiments2012Lua

I have spent some time in 2012 messing around with LÖVE framework. No games came out of this, but I wrote some blog posts.

Minecraft experiments2012-2014Java

My time "playing" Minecraft was split between:

  • Writing scripts to procedurally mega-structures via WorldEdit (examples: A, B, C)
  • Adding more and more automation features to a fork of Zombe's modpack to build mega-structures even without WorldEdit access.
  • Writing server (Bukkit, Spigot) plugins when people paid me to (ex).
  • Banning people for cheating on friends' servers and subsequently filing bugs for exploits and documenting my findings (examples: A, B)

Eventually it became too much effort to keep updating client-side mods and I stopped actively playing the game.

lwLDLS2011-2012ActionScriptCompiler

A predecessor of LDLS-m, written in AS3 and MinimalComps.

Primarily exists because I was sufficiently upset with a 16-bit DOS program used for the course and made an assumption that I could make a replica of it over a weekend (which I did).

Had its own assembly-like programming language (much like the original), a bytecode interpreter, and a simple debugger.

Polygravity2011GameMaker

A 360-degree platformer game made for a GameMaker Community Jam.

Pipe102011ActionScript

A "Pipe Dream"-like game that I made for Kongregate's "Game in ten days" jam #13.
The restriction was that the compiled SWF must be 10KB or less. My 5KB entry took 1st place.

Tululoo2011-2012WebJavaScript

I helped fix a handful of issues in this HTML5 game engine, eventually being credited as co-author. Development had since ceased and the engine was open-sourced.

CloudNexus2011ActionScript

An ambient top-down exploration game with procedural generation made for PunkWeek game jam. Technically impressive but without much content. Took 3rd place.

(unnamed pixelart editor)2011ActionScript

For desktop and Flash Lite 4 compatible Android devices.

One and Light2010C/C++

A short first-person 3d platformer with a "Shrinking" theme.
Written in 3d GameStudio's C dialect.

Perhaps the first game of mine to receive any real media coverage.

A GM➜AS3 "compiler"2010GameMakerActionScript

Posed with the task of porting a handful of client's low-complexity games from GameMaker to Flash, I decided to automate the process.

The result was a hilarious abomination:

  • Resources were extracted from (then-binary) GameMaker files using gmk-splitter and post-processed using a fairly simple application written in Java.
    (e.g. levels were converted to inline code)
  • Required parts of GameMaker API were recreated through a heavily modified version of FlashPunk and a variety of tricks (properties, global objects).
  • GML code was converted to mostly-valid AS3 by replacing keywords and simple structures (without AST manipulation), requiring it to be fixed up by hand in some cases.

In the end, the project was successfully used for intended purposes, I did some tests with larger games, and left the idea.

IcoMagic2009ActionScript

A small, Flash-based icon converter tool. Received a rewrite a decade later.

(unnamed multiplayer game)2009GameMakerNetcode

My oldest attempt at doing netcode that I could find - after doing some basic tests with pong and alike, I decided to make a sandbox-ish thing where players could build/navigate a persistent world - with chunks, region ownership, and alike.

The idea was eventually abandoned as GameMaker couldn't export Linux executables back then, renting a Windows server was expensive, and I didn't want to rewrite the server in another programming language.

Notebook Deathmatch2009GameMaker

My earliest released game that still works, I think? A small arena shooter with AI opponents.