Kaito Sinclaire's Portfolio

Over the past decade, I've spent a lot of time doing programming and web development for various projects; some of them my own, some of them run by others. In such time I've worked with many different languages in many different environments. This is a selection of some of the more important or larger projects I've done or worked on.

Sonic Robo Blast 2

A screenshot of Greenflower Zone, the first zone of the game.A screenshot of Deep Sea Zone, the third zone of the game.
Team Project
idTech 1 (Doom)
Started as a two-man project back in 1999, Sonic Robo Blast 2 is a Sonic the Hedgehog fangame using a heavily modified version of the idTech 1 engine. Still in development after 18 years, SRB2 is well known enough to have received press coverage at various points in its life. Despite essentially being a modification of Doom itself, it has a community of its own centered around modifications, and the game contains a bevy of modding-centric features—for example, Lua scripting support—that have helped sustain its longetivity throughout the years.

SRB2 is the start of where I consider myself a 'serious' programmer, rather than a programmer-to-be still learning the ropes. I was brought onto the project in 2009, after I had made some modifications of my own for the game. Due to the extensive amount of time I've spent working on SRB2, there is almost nothing in the game that I haven't touched in some form; this includes physics programming, enemy and object AI, rendering, level design, and even to a minor extent graphic design.

If I had to pick one single thing I feel most proud of, however, it would be introducing a one-button GIF saving option which allows anyone to start a GIF recording at any time; taking advantage of the fact that the game still uses a 256-color palette as a stylistic choice. The GIFs that this feature saves are automatically optimized for being uploaded to the web to a service like imgur or gfycat. To say the least, being able to see concepts in motion as they're implemented (instead of just static screenshots) greatly helped us as a development team, and having members of the public be able to submit them along with bug reports also assisted debugging.

The main website for this project is SRB2.org, and its source code is available on GitHub.


FOSS Contributions
Ruby, JavaScript
Mastodon is a distributed microblogging service with a similar design to Twitter where separate instances all running the same software interact with one another and share messages, in a manner not entirely unlike e-mail. As you may be aware, I run an instance for myself on this very server.

As a free, open-source project, I have submitted multiple accepted patches to the repository; and what doesn't get accepted to the main repository usually goes into one of the closely related forks. The source code for the project as a whole is available on GitHub. For specific change sets, there's the Monologuing fork for automatically handling extended length messages, and the Direct Messages timeline (which is featured on the glitch-social fork).


Personal Project
XIRC2 is an IRC bot that I created from scratch because at the time I couldn't find an easy to use framework for running multiple different bots at once on the same server at the time. It has a modular design—as modular as PHP will allow, anyway—with a generic base that handles all aspects of connecting to IRC servers, and modules that handle what the bot should actually be doing when connected.

Because of the modular nature of this bot, the source code is split into multiple repositories. The source for the main IRC bot as well as all the modules I had programmed myself, the channel moderation module and the Fortune game module, are all available on GitHub.

Unnamed Sonic Fangame engine

Engine screenshot, showing running along a curved wall with invincibility and super sneakers active.
Personal Project
Programmed almost entirely within the span of a week and a half, this Sonic fangame engine was a test to myself to see if I could implement a proper physics engine of my own. Though it doesn't have much in the way of graphics aside from the font and a lot of placeholder art, I was quite happy with what I was able to do with such a short timespan.

Various Minecraft mods

Screenshot of 'SignPrintf', a plugin which made signs capable of supporting dynamic content.
Personal Project
Back in 2010 when Minecraft had just become big, I was relatively involved in the modding scene and made plugins for the then-dominant mod base at the time, hMod. The biggest one of these was "SignPrintf", which allowed for the then-static signs to have dynamic content—for instance, the server's local time, the current ingame time, a counter that could be user-controlled, etc.

The source code for SignPrintf can be found on GitHub.


You can reach me on the following social media: