Genre -- Metroidvania; 2D; Puzzle Platformer
Techniques & Software -- Unity Engine; Articy Draft X;
Inspirations -- Titanfall 2; Hollow Knight; Pikmin
When you're called to test the experimental ProtoChrono suit, you don't know what to expect. What you certainly are not expecting, however, is to be flung to some unknown place in the spacetime continuum. Now, you and your trusty Engineer friend need to save some civilians, correct temporal anomalies and upgrade the ProtoChrono suit to save the day. Or night. Who knows?
ProtoChrono is the capstone game I created as a student at American University. It is a relatively small metroidvania with a heavy story component. The player goes between a home-base on expeditions into a specially crafted level. These expeditions only last one minute, during which time the player needs to find various civilians and fix temporal anomalies. There are five civilians & five anomalies, and the player can finish the game once all the civilians are rescued and the anomalies are corrected. The player unlocks a mechanic I call "TimeSwap," where the level layout changes. Platforms appear and disappear, and NPCs & anomalies only exist in a single time period, creating an interesting challenge.
I programmed almost everything in the game myself, including all the mechanics, story sequences, and dialogue interface. ProtoChrono uses a large singleton with several managers all controlling different systems and talking to the singleton to get the game working. The singleton and relevant parts also use Unity's "DontDestroyOnLoad" feature, ensuring that the singleton exists for an entire play session. The dialogue interface utilized a program called Articy Draft X, which has simple integration with Unity.
PC_AnimationRig.mp4Although much of the art is found & credited from external sources, I was adamant about creating and animating my own player character. Thus, I went on a journey to understand how Unity's 2D animation suite worked. Once I drew my player character (tracing over a 3D model from HeroForge) in layers, I imported it into Unity. From there, I could create an animation rig by placing bones on the sprites. Animating the rig was achieved by just rotating & positioning each bone, which correlated to a specific body part.
As I was making the game, I also wanted it to save progress between play sessions. As a result, I created a save system by writing & reading to/from a local JSON file. It was challenging figuring out exactly what information needed to be stored and what information didn't. Similarly, ensuring that read information was doled out to the various managers was tricky.
ProtoChronoGameplay.mp4