by DigiPen Team Gotta Go Studios (Team of 6)
OMG: One Million Guns is a 2D top-down twin-stick shooter set in space with lots of guns. We achieved our goal of creating an arcade-style game that a player could pick up, play for a few minutes, and put back down. It was created in C with an in-house abstraction of OpenGL, and was shipped in April 2018 for Windows PC available on the DigiPen Game Gallery and on Steam.
My Role – Test Manager and Programmer
Throughout my first year at DigiPen, I concurrently studied game design in their Computer Science and Game Design program. I fueled my education into my role as a test manager for this project. During the later phases of development, I spent a lot of my time recording people playtest the game, using my own notes along with in-person and online surveys to detect issues with the game’s design and presentation. I worked closely with the Technical Director, delegating tasks to address these issues. Our design improvements were noticed by DigiPen faculty and staff as our team was selected to represent our game and DigiPen at PAX West 2018.
As a programmer, I was in charge of a variety of systems. Firstly, I created some of the engine architecture, structuring a game state manager to switch between various states (like the main menu, the gameplay, and the credits). I also created a UI system for displaying the player’s health, ammo, and other statistics. In doing so, I engaged with our Design Director regarding the desired layout of the UI. I also created an implementation of sprite text to render strings of letters from a sprite sheet to the window.
My pride and joy of the game’s implementation was the Gun system (which, for a game called “One Million Guns”, is quite pivotal). I started with a basic gun object implementation that could shoot and reload. The gun’s properties were where it got interesting, where a gun’s fire rate, clip size, damage scalar, and more could be designed and iterated upon with ranged random number generation for seemingly infinite guns. My knowledge of the gun system played into my being assigned the gun factory system, which could generate guns based off prefabs. The generation system was designed such that the guns got better the longer the player survived, adding modification flags like freezing bullets or ricochet projectiles.
None of this would matter, though, without my gun name generator, which compiled various adjectives based off the gun’s statistics (like “The Max-Coverage Wide-Spread Piercing Punchy Boomer”). These ridiculous gun names were stored in memory using a compact adjective-bitmapped implementation so we could easily tell which guns are new to the player, culminating in a rewarding scrolling through of all the guns they discovered if they survived the 10 waves.