Coaster is a 2D action-adventure game developed collaboratively by a cohort of 60 students, split into 12 teams, as part of DECO2800 at the University of Queensland. The player is dropped into an infinite procedurally generated world and must survive against the many threats in the world. Collecting loot dropped by enemies, trading with merchants for better armour and weapons, finding a companion, levelling up your skills, unlocking achievements and acquiring mounts are all possible in the world of coaster.

My team was responsible for coding the NPCs in the game. The base NPC from which all others inherit features the ability to traverse the terrain, check if the player is in its line of sight and patrol an area. Building on this we also implemented the following:

  • Walking
    • Duck King - Charges at the player to strike.
    • Explosion Bunny - Explodes when in range of the player.
    • Golem - Slow moving but hard hitting melee enemy.
    • Grenadier - Attempts to lay capturing traps on the ground in the players path. Will also lob grenades, which follow a parabolic path, at the player.
    • Rat - Places landmines in the path of the player.
    • Rhino - Has a front facing shield which blocks damage. Attempts to charge at the player, knocking them back if it hits. If it misses, the rhino is stunned momentarily allowing the player a chance to attack.
    • Skeleton - Leaps at the player and throws a spear. This spear teleports the skeleton to the object it collides with.
    • Space Slime - Multiplies over time, can get overwhelming if allowed to multiply too much.
    • Treasure Chest - Tries to escape the player and drops loot if killed fast enough.
  • Flying
    • Bat - Bobs up and down in the air firing projectiles, which drop with gravity, at the player when within range.
    • Eyeball - Hovers through the air and fires lasers at the player.
    • Ghost Ship - Flies left and right, ploughing through any terrain, spawning Skeletons when over the player.
    • Ice Spirit - Dashes through the air and fires at the player.
  • Underground
    • Worm - Patrols under the terrain until the player is in range, in which case it ascends to attack.

The project won the Best Open Source Project award at UQ’s 2016 Innovation Showcase.