top of page

Colgite Cavity Crusher

Project Type:             University

Project Duration:    ~5 months

Group Size:               5 people 

Software Used:        Game Maker

Languages Used:     GML

Primary Role(s) :      Enemy AI Programmer


Colgite Cavity Crusher was developed during the second semester of my junior year at university. It is a 2D side-scrolling beat-em-up where you play as a tooth beating up cavities and other harmful bacteria. Our goal for this semester was to create an advertisement game that was goofy.

If you would like to take a peek at code:

Here is our trailer put together by one of our awesome team-members!


  • State Machine

Right away the team and I knew we need some way to manage the state of the player and enemies. We decided to implement a state machine due to its simplistic design. I was in charge of creating the state machine and it needed to work for both enemies and the player. For each character in the game, we created a state machine and assigned a series of states specific to that character.

Below is the base state class that is used by the State Machine. All states will inherit from this base class.


Below are all the states our team created for the game. All the states relating to enemies were done by me. The player states were done by a fellow team member. To keep it short, you can see the code in our GitHub repository. The link can be located at the top of this page.

  • Enemies

Colgite Cavity Crusher consisted of three enemy types: ranged, melee, and the final boss.

The first enemy that I want to show is the melee enemy type. These guys are the fastest enemy in the game and have the simple behavior of running at the player and punching.

The ranged enemy type is a little more complicated. Instead of running at the player, they will try to maintain a distance away from the player. The ranged enemy can only throw at the player horizontally so they also needed to query locations based on the player's y coordinate. One problem, we faced was that the ranged enemies were way too tough so we also had the enemies to chose random locations half of the time instead of trying to shoot at the player.

Finally, Colgite Cavity Crusher had the final boss fight. This boss fight consisted of three stages. When the boss was red the player had to dodge the tentacle attacks until it grew tired. Once tired, it went blue and it was vulnerable to an attack. This needed to be done three times before the boss was finally defeated. On top of that, we made sure some additional enemies spawned in between each stage.

bottom of page