top of page
Score
#24
Downloads
127
Play Now

Overheat Express

Programmer AI Gameplay

Project developed for Mini Jam 162 over the course of 72 hours.

The theme was "Heat" and the Limitation was "One Button, Two Action".

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.

code snippet of PlayerCowboy extending it's base  class to listen and respond to input in overheat express
PlayerCowboy extending its base class to respond to input.

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.

The AI FSM implementation and the chase state as an example.
AI FSM and a simple chase state as an example.

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.

code snippet for the animator management component for all the characters in overheat express
Code snippet for the character animator manager.

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

logo_LabChurros.png
bottom of page