Skip to content

Instantly share code, notes, and snippets.

@Sturmlilie
Last active August 23, 2021 12:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Sturmlilie/8a821caa0dd6b287c05b20a7a2fe91dd to your computer and use it in GitHub Desktop.
Save Sturmlilie/8a821caa0dd6b287c05b20a7a2fe91dd to your computer and use it in GitHub Desktop.
An in-depth resume on my open source work

Who am I?

I am a human being first, Backend and Embedded Engineer second, interested in making things work, contributing to communities, and making the world a better place; most of the projects I have dedicated my free and paid time towards will reflect this.

Skills

My strengths lie in native environments in which there is at least a hint of emphasis on resource management, as well as learning and adapting to new frameworks. I believe my biggest project, a free reimplementation of a popular 2D game engine, reflects these attributes. I am comfortable with C/C++, and have experience with Ruby and Java.

Roles I enjoy

I enjoy roles that will allow me to apply my application development skills to products and services which bring value to communities and individuals. I value empowering people through software. Alternatively I also love working on tooling that makes other developers' lives easier.

Further facts about me

I am passionate about languages and forms of human communication; before getting more serious about computer science / FOSS, I was aiming to study some form of linguistics. My current passion lies with Turkish, which I have been studying on-and-off for the last 2 years.

As a neurodivergent person, I value honesty and am trying to distance myself as much as possible from putting up a fake image of myself just in order to survive.

Projects

The biggest project I have worked on to date would be mkxp. It is a clean room, cross platform and free reimplementation of a popular game creation engine called RPG Maker XP. Game engines are unique in that they touch upon many different areas of tech, like graphics, audio, input, data processing and low level resource management. Since I couldn't possibly have written code in these areas for every operating system, I relied heavily on low-level abstraction libraries and frameworks, including:

  • modern OpenGL for hardware accelerated 2D graphics and effects
  • OpenAL for streaming audio data to the sound card
  • SDL2 for window management, keyboard/gamepad input, image/audio/font file decoding, inter-thread communication and prototyping an Android build
  • fluidsynth for rendering decoded MIDI event streams into PCM
  • boost for C++11 data structures
  • CRuby for executing game scripts that codify the game logic

A particular part that I'm proud of is the custom MIDI file parser which I wrote using solely the format specification at hand.

Using this engine, I have aided several independent game development studios in bringing their existing Windows-only games to the OSX and Linux desktop platform. This work included working on their game code (porting Win32 API calls to generic abstractions in my engine, solving Ruby 1.8 <-> 2.0 compatibility issues), handling the integration into the popular game distribution platform Steam (this included native bridges to libsteam_api as well as writing upload scripts interfacing with Steamworks depot/build system for distribution to end users), and community interaction regarding bug collection and fixing.

Studios / game creators I worked with include:

  • Freebird Games (To the Moon etc.)
  • Dancing Dragon Games (Skyborn etc.)
  • Laura Shigihara (Rakuen)

Studios / game creators that have independently built their games on my engine:

  • Dingaling Productions (LISA: The Painful)
  • Little Cat Feet (OneShot)

Source code: https://github.com/Ancurio/mkxp

Smaller projects I worked on

libzippler: A helper library I wrote in order to parse and process Adobe InDesign IDML files, which are zipped archives of XML data representing digital print media. Using libzippler I could unzip, process, and rezip these archives entirely in memory with no round-trips to the hard drive. Choosing Vala as the language allowed an object oriented approach while seamlessly integrating into my existing C-based text processing codebase.
https://github.com/Ancurio/libzippler

pwman: A minimal password manager written in bash, using gpg for encryption. This was around 2012, so quite a bit before real password managers became ubiquitous. An added benefit is that it can be used from any ssh-capable shell that has internet access.
https://github.com/Ancurio/pwman

Recently I have taken to learning how to write modifications for the popular video game Minecraft. This involves writing game code in Java, setting up builds with gradle, and the very unique situation of working with a largely undocumented, reverse-engineered codebase. Having experience with computer graphics allowed me to make contributions to larger existing projects in a matter of weeks. My modding projects can be found here:
https://github.com/Sturmlilie

Among them, the most prominent project I contributed to would be TIS-3D, a mod that allows building assembly-programmable computers within Minecraft. I ported it from version 1.14 all the way to 1.16. https://github.com/MightyPirates/TIS-3D

A school project that basically amounted to "a layman's grep", written in C++ using boost, embedded Lua, automated json tests and cmake can be found here (warning: German language):
https://gitlab.com/Ancurio/SWE-TextProc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment