
Video
The Project
Overheat Express was developed during the course of 72 hours for Mini Jam 162: Heat following that edition's limitation "1 Button 2 Actions", and theme "Heat".
To implement the limitation the action button is both "Fire" and "Pick up Item". The player cannot shoot while carrying the coal, but to keep the action fun, releasing the button while holding an item throws it. Instantly defeating enemies it hit.
The goal of the game is to keep the train speeding to reach the end of the track. The hotter the steam engine the faster the train moves, but If the train falls below a certain speed it explodes. To keep the train moving you need to go through its entire length and bring coal from the rear carts to the steam engine. All while fighting bandits along the way.
Gameplay & Characters
All characters in the game derive from the same base class that gives them common functionality like moving, crouching, and firing a weapon. Then the player characters extend the base class to have the ability to respond to input, while the enemy character extends it to have AI behaviors. This significantly speeded up development as it allowed for both the player character and enemies to share resources. One example is the animator manager shown a little further below.

Enemy AI
A Simple and versatile solution was required for the game's AI and a Finite State Machine was used. The AI FSM in the game can safely handle state transitions through proper state initialization and conclusion. This allowed for easy implementation of new states as they were needed while avoiding bugs. This was a valuable tool for such a short development cycle.

Animations
For componentization and to be able to better split work with other programmers on the team, we opt for creating a self-managed component for handling the character animators. All characters share the same parent class which allowed for a single generic component to be able to access all the action events needed to drive all character animations in the game.

Overheat Express was done over a weekend but I managed to learn a lot about working fast and in a team. The game scored #24 overall out of 138 entries and #2 in presentation.
Screenshots
