Event Horizon

*Event Horizon is a student game, conceptualized and developed over the course of four months. Team Size: 6

Summary

Event Horizon is a local multiplayer, twin-stick, space arcade shooter. Play as one of four distinct classes: Tank, Soldier, Engineer, or Rogue; and fight your way through an alien infested space ship. 

1-4 Players with Controllers. Singleplayer Mouse and Keyboard

Download on itch.io:

My Contributions

This game was my introduction to Unity.  During development, whenever we had a new idea, I would research the topic and teach myself how to best implement it. I took it upon myself to learn how to program all the features listed below.

Characters:

  • Contributed to the design of the Tank, Soldier, Rogue, and Engineer abilities.
  • Programmed the base class for all playable characters, allowing all characters to use the same base code for movement, rotation, shooting, reloading, items, and the pause menu. 
  • Wrote the specific controller and ability classes for the Tank and Soldier, implementing the Tank’s shockwave and shield plant and the Soldier’s rapid fire and grenade toss.
  • Helped finalize the Engineer mechanics by implementing the shotgun, repair ability, and turret smart targeting.
  • Helped finalize the Rogue character by implementing the ability prefabs.

Tank

  • Programmed the controller and abilities for the Tank.
  • Put together the prefabs for the Tank and each ability.

Abilities:

  • Shield Plant: Plants the shield into the ground, forcing enemies to move around it. Can be picked up.
  • Shockwave: Slams the ground, dealing damage to and stunning all enemies in the area.

Soldier

  • Programmed the controller and abilities for the Soldier.
  • Put together the prefabs for Soldier and each ability

Abilities:

  • Rapid Fire: For a limited amount of time, increases the Soldier’s fire rate and doesn’t consume ammo.
  • Grenade Toss: Throw a grenade in the direction the Soldier is facing, dealing big damage to enemies in the area of detonation.

Engineer

  • Programmed the Engineer’s shotgun, repair ability, and his turret’s smart targeting.

Abilities:

  • Sentry Gun: Drops a turret at the Engineer’s feet which attacks the nearest enemy within range.
  • Repair: Partially heal himself.

Rogue

  • Put together the prefabs for the Rogue’s abilities.

Abilities:

  • Remote C4: Drops a mine in front of the Rogue which can be detonated remotely for large aoe damage.
  • Caltrops: Places a line of spikes in front of the Rogue, slowing all enemies that walk over it.

Main Menu and Character Select

  • Coded the Character Select screen in 3 different classes, allowing for an easy separation of concerns and adhering to MVC.
  • Kept track of controller connects and disconnects to correctly display the current number of players.
  • Used a static dictionary to map players to Characters, ensuring each player would correctly control the Character they selected.
  • Programmed the Main Menu by checking for a connected controller input and using on click events.

Main Menu

Character Select

AI:

  • Used Unity’s Nav Mesh Agents for AI movement, enabling enemies to jump down from vents and making it easier to program basic behavior.
  • Coded basic ranged and melee enemy classes.

Ranged Drone

Melee Spider

Items

  • Coded usable and droppable items by keeping track of a player’s current item, writing Healing and Ammo classes with on use functions, and using trigger colliders in tandem with input detection to tell when a player could pickup an item.

Healing Crates

Ammo Crates

Controller Compatibility

  • Worked through the Rewired API to effectively use their controller connect and disconnect functions, allowing us to use Xbox One controllers with our game.
  • Ensured that keyboard, mouse, and controller inputs functioned correctly.

Events and Triggers

  • Wrote trigger classes for the unlocked doors, locked doors, terminals, revive zones, enemy spawns, and elevator event by detecting if a player had entered the trigger collider, and in some cases, also gave the correct input.
  • Programmed text boxes to appear above interactable items and areas.

Sound

  • Found and implemented most of the sound in the game by using Unity AudioSources, allowing for 3d sound effects.