*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
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.