Lead Gameplay Programmer, Senior Project
Traps and Terminals - Multiplayer Game (In development)
A multiplayer game game that is currently being worked on for our capstone. The team currently is comprised of 2 programmers and 2 designers. Traps and Terminals is a game in which players collects points from terminals around an arena and deposit them in a central goal. Players hinder each other through the use of wacky traps and the occasional weapon, picked up throughout the level.
Worked on developing and implementing a server authoritative event driven multiplayer system for Unity.
Developed Gameplay interactions in the form of trap pickups, including spawning, placing traps, and reactions.
Developed Menu and GUI systems for game.
Implemented Master Server on Amazon EC2 server for internet play.
The majority of our game's networking is handled through the serialization and deserialization of a Base Abstract class called GameEvent. GameEvent has all necessary components needed to enact any game event we may need for our game.
Adding a game event (new trap, level event, etc...) is as easy as creating a class that extends the GameEvent class (also adding an enumeration of the base class), and adding addtional handler to GameEventQueue. With these two steps we can rapidly add onto our multiplayer game. The initial deserialization will cast a GameEvent type that will have a property (enumeration) that will let us know what type of GameEvent it is. From here we cast the appropriate type.
The GameEvent class has a member variable that track whether its a server only event, player targeted event, or a gamewide event. This is checked with CanHandle method defined in the superclass. If this check is passed we call the virtual method Handle. Because we call all of our methods from out new Extended GameEvent, all of the effects are encapsulated. The GameEventQueue is a class that manages our GameEvents as they come over the network passing in any necessary information.
Camera Based Movement
The player movement is based on camera orientation allow for the movement of the controls to always remain the same. pushing forward on the controller stick will move the player away from the camera. This allows for much tight controls which is important in an action game such as ours.