Dracomaton is a 2D top down rogue-like shooter developed in Unity. You are an abandoned robotic dummy named Eclipse attempting to escape an abandoned factory of draconian robots shrouded in mystery.

Fight through the horde of robots by utilizing different forms you can transform into that grant you unique abilities, or you can use the forms to mod your abilities to grant them additional properties.

Create unique and interesting combinations of forms, mods, items, and more for a fresh experience every run!

Programming

I developed a large portion of the games underlying systems, as well as being one of the primary bug fixers and implemented many underlying features. One of the systems I worked that I'd like to highlight is the mod system.

Mod system

The most unique aspect of our game was our mod system, which allowed the player to use a form as either an active class with a set of skills and abilities or as a supplement to another form to give it additional properties to its abilities.

My goal was to create flexible systems that could handle any edge case thrown at it, especially since we had some pretty wild designs. It also needed to be as designer-friendly as possible since they would be the ones implementing a majority of our mods.

Tennis form modifier
Spider form modifier

We used class inheritance for the mods, making a base mod class that every form's mod would inherit from. In it contains a set of virtual functions that every mod could inherit from that gets called in their respective places. As such, every mod can have its own unique functionality for a given situation, offering no restrictions to a mods functionality.

Since a single form could have multiple mods, we would naturally need to handle edge cases with different combinations. For example, the tennis form mod allowed your projectiles to bounce, but not every projectile should bounce or would need different code to handle the bouncing. 

Tennis mod default case where all projectiles bounce
Tennis mod edge case where projectile only bounces on walls

To give more control to our designers, I created a system allowing our designers to decide how to handle mod interactions with certain damage sources by allowing them to drag any damage source into specific edge cases. Using this code we were able to solve a myriad of edge cases in a cleaner way than hard coding them all into our code.

Design

As one of the lead designers, I helped develop our games core design philosophy and prioritized getting the design team all on the same page. This means planning meetings and writing multiple design documents among other tasks. I played a role in designing our mod system, form designs, item designs, and many other core systems in our game.

Design Documents

The first iteration of eclipse form's secondary
The final iteration of eclipse form's secondary

Form Concepting

I also played a role in the conception and implementation of forms. For example, I designed and implemented the player's starting form, Eclipse form. This design went through many iterations since I felt the players starting form would be the one with the most impact as it's the player's first experience. 

For example, the secondary skill started as a simple projectile that blew up and stunned enemies on contact, but I felt it needed more impact and switched into a shock field around the player that destroys projectiles and stuns enemies, being more beginner friendly as a powerful defensive skill

Art

I was the concept artist and animator for the player character, as well as animating the boss. I was also responsible for implementing all animation assets including the enemies, and did some minor UI work as well.

I primarily used clip paint studio to animate. Since we had many forms to animate, I created template animations with the default form and then redrew every single form over those template animations.