Projects
Lily Engine Utils (2011-current)
This is a small collection of utility functions and classes I've been gradually building up over time. Should have no extra dependencies. Cross platform across POSIX, POSIX-like, Windows, and others.
Ninkasi (2017-current)
Another scripting language!
Features:
- Cross-platform
- Runs in DOS! (Real-mode and 32-bit protected mode)
- Written in ANSI C
- No dependencies beyond the standard C library
- Hand-written lexer and parser
- Sandboxable*
- Robust error handling and recovery
- Faster than DerpScript
- C-like syntax
- VM state serialization and deserialization
- Serialized state portability
- Coroutines
- (New, Jan 2023) Read-Eval-Print-Loop (REPL)
(*Tested extensively with AFL, Valgrind, static code analysis, undefined behavior sanitizers, and running on a variety of platforms of different word size and endianness, but ultimately the security cannot be guaranteed.)
Ninkasi Preprocessor
A C89-compatible preprocessor, written from scratch.
Features:
- Compiles C89 programs*.
- Written to facilitate Ninkasi preprocessing.
- No dependencies beyond the standard C library.
(*Requires some work to get all the compiler's own #defines and such in there, otherwise it'll have trouble chewing through system header files. It's also more permissive than it should be, allowing many programs that would normally fail to compile.)
KiriCrop (2018)
"Smart" image cropping and resize tool that attempts to crop an image to the most interesting area. Area selection is done by determining the area with the most edges of the given crop size.
DerpScript (2015)
A scripting language with a simple C-like syntax, a clean interface to hosting application code, and unfortunately a very slow VM, naive garbage collector, and lack of documentation.
Still kind of a cool toy.
This project has been kind of superseded by Ninkasi.
Last Minute Emergency Breakout Clone (2013)
My February entry for the 2013 One Game a Month jam. Made in one day at the last moment because I've been otherwise swamped with work on Neverwinter. The code for this one is especially horrid, so I probably won't be posting that up.
Update 2020-02-25: Work has resumed on this project for some hilarious reason. Mostly because I finally stumbled across the source code. And yes, I know the current binary doesn't work with most video drivers. I'm working on it.
Space Poop (2013)
My March entry for the 2013 One Game a Month jam. Also made in one day at the last moment because I've been otherwise swamped with work on Neverwinter again. Seriously, this one was even more down to the wire on the deadline.
This one is just a really bad Asteroids clone. Spacebar fires. Arrow keys turn and thrust. 'n' will start a new game from the title screen or victory/loss screens.
Lily Engine 2D (2008?)
2D game engine with game logic in Lua. Has a built in editor. Check the README. This code is pretty old. Watch out for testing junk just about everywhere. The Lua scripts are particularly ugly.
This is some of my earliest work in the field of engine development, before I ever really started in the industry. Don't judge too harshly.