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