is an action-platforming indie game inspired by Zero’s gameplay from Mega Man X that my talented team and I are currently developing. We recently reached the end of the prototyping stage, and development is in full swing, thanks to our hard work. Scroll down to learn more about my contributions, or see it on GitHub.

Project Jump ’n’ Slash

My Roles

My Contributions…

…as Director

My biggest contributions involve providing task management systems for my team and fostering communication and collaboration between teammates. I also leverage my communication skills to facilitate interdisciplinary collaboration. I try to anticipate the needs of my team members to ensure development continues to progress smoothly, and determine when it is time to bring new people onto the team.

…as Game Engine Programmer

I am currently the only engine programmer on the team. If the game designers want to have something added to the game that requires an engine feature, I am able to continuously adjust the feature set of the engine to accommodate their vision. For example, our initial prototype was modeled after classic Mega Man games, where the player walks between rooms which either have a static camera or one with limited scrolling, focusing on a single room at a time. Achieving this very specific kind of camera focusing and movement required designing the in-engine Camera class with more member variables and functions than I normally would, such as being able to adjust the dimensions of what the camera can see to fit both a standard in-game room size and window aspect ratio.

In this role, I am also utilizing my communication skills when writing documentation and tutorials on how to use our engine. I do this by putting myself in the shoes of someone who doesn’t understand or care how the engine works, and assessing the needs of the gameplay programmers in a vacuum.

…as Gameplay Programmer

While I have written a large portion of the foundational gameplay code thus far, I also help our other gameplay programmers get acquainted with C++ and teaching them how to write optimized code. In this regard, my biggest contribution is helping them seamlessly transition from casual programmer to gameplay programmer, and get acquainted with our code base. My contributions to gameplay code going forward will be decreasingly coding-oriented and increasingly design-oriented as the other gameplay programmers get more familiar and well-acquainted with the code.

…as Tools Developer

My most recent and proudest contribution in this regard has been automation.

Early on in development, shortly after our first tools developer joined the team, I realized we needed a “common language” between the GUI level editor being developed and the game code. I wrote a Python script to automatically generate a JSON file which contains information on how the level editor should encode level data, and information on how the game code should decode said level data. Having this tool early on in development meant less headaches for the game designers when trying to design levels and have them show up properly in the game.

I also recently wrote a Python script which automates asset loading in the game. Any time an artist adds any sort of sprite, they simply have to run the Python script and a text file will be created for the engine, telling it which assets to load and how to load them. For example, it is more efficient when rendering to have multiple sprites derived from one single texture, but it is easier for the artists to edit each sprite in isolation. My script will read all of the individual sprites for the player character, combine them into a single spritesheet automatically and without overlap. It then encodes instructions into a text file on how to load that spritesheet as a texture, and how to load each of the sprites individually from that texture.

Next
Next

Relentless Game Engine (C++)