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.

[REDACTED]

Team Project
Dated
2021—Present
Languages
C, Python, 68K Assembly
I cannot discuss the specifics of this project at the moment, but I am currently busy on a project in the indie gaming sphere.

OpenTyrian2000

A screenshot of Coral, one of the levels added in Tyrian 2000, running in OpenTyrian2000.A screenshot of Miners, one of the levels added in Tyrian 2000, running in OpenTyrian2000.
Personal Project
Dated
2020
Language
C
Libraries
SDL2
OpenTyrian is an open-source reimplementation of Tyrian, working from the original source code in Pascal and converting it to modern C using SDL. You may have heard of it already—Tyrian itself frequently winds up on lists of "best SHMUPs" despite its age, and OpenTyrian has existed in some shape or form going back all the way to 2007. But there was just one problem…

Tyrian had a rerelease in 1999, titled Tyrian 2000; and due to a litany of differences between the original version and its rerelease, OpenTyrian has never properly supported it.

OpenTyrian2000 aims to correct this, by finally adding in support for everything that was added and changed in Tyrian 2000, allowing it to be playable on modern machines without having to resort to DOSBox. This took a surprisingly significant amount of work to accomplish; because OpenTyrian had kept its focus exclusively on the original game and excluded the rerelease, not much was known about exactly what was changed between the two versions.

OpenTyrian2000's source is available on GitHub, and Windows builds are also available there.

Mastodon

FOSS Contributions
Dated
2017-2018
Languages
Ruby, JavaScript
Mastodon is a distributed microblogging service where separate instances all running the same software interact with one another and share messages, in a manner not entirely unlike e-mail, but with a design philosophy closer to Twitter. As a distributed service, servers from all around the world running Mastodon or any other compatible software can all intercommunicate with each other. As you may be aware, I run a personal 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 major change sets that I have worked on, there's the Direct Messages timeline feature which was added in mainline and featured prominently in the release announcement for version 2.4.0, and the Monologuing fork for automatically handling extended length messages which I use on my personal instance.

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
Dated
2009—2017
Language
C
Engine
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.

XIRC2

Personal Project
Dated
2012—2013
Language
PHP CLI
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
Dated
2011
Language
C
Libraries
SDL, OpenGL
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
Dated
2010
Language
Java
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.

Contact

You can reach me on the following social media: