Adventure Slime: Quest for the Bouncy Mushroom Room
Sophomore School Project
Custom C++ Engine
Graphics / Tools Programmer, Video Lead
Sept. 2018 - Sept. 2019
For this project I developed an OpenGL graphics engine which supports drawing textured sprites at different depths, as well as debug lines so that different disciplines can test their work. The engine supported ImGui, Spine, and drawing large numbers of tiles from a tilesheet efficiently using instancing. This project was my first time writing a graphics engine from scratch. I was learning OpenGL at the same time as developing this project, so it was a massive challenge and learning opportunity to quickly develop this part of the engine which everyone needs.
After completing the bare bones of my graphics engine, I switched into working on a design pipeline in order to support our design team. After researching my options with the internet and school advisers, I decided to use Tiled, a 2D level editor which outputs in a variety of file formats. I read JSON files using a C++ parsing library, and turned the contained data into a level in our engine. I started by supporting tilemaps, and then worked with the designers to figure out what they wanted make happen. From there I simply worked out how to let them make that happen.
Towards the end of the eight month period of the game project I moved on to helping with the large amount of gameplay programming which was necessary. I researched the camera methods of many 2D games throughout time and assembled several prototypes for the designers to test. As it often goes, the more experimental options I was excited about were cut, and a simple option was decided on. For UI, since we did not have a dedicated UI system I developed independent UI widgets in the form of objects which would follow the camera and update themselves using our behavior system.
At the end of the project we were feeling great about what we made, and we wanted to make sure it was accessible to as many people as possible. We had the option to achieve higher certification standards in order to have our game playable on the DigiPen Game Gallery, and even higher standards for Steam publication. The team put in many more hours to hit those standards, and as a result our game is downloadable and playable on Steam. After that experience I feel comfortable with the idea of learning about a new certification and pursuing its requirements.