Hey Guys: A first-person waver
Up to 8 players attempt to cheer each other up by waving at them. Test your aiming skills and be the last one standing! Sole developer for VGDC UCI’s 2017 Winter Game Jam.
Networking, gameplay programming, character controls, level design, UI programming, etc.
Team member brought up a “shooter” where you shoot waves instead. I took it literally and had the character waving at each other to “shoot” each other.
Took existing networking code from Marquis and integrated it into the game. Created asymmetric prefabs for enemies and the player.
Making an FPS
First time doing FPS. Attached a camera to the player prefab. Enemies are a separate prefab. Player can do a limited number of things such as move, rotate, and shoot. Server’s GameManager coordinates spawning, performs all game logic, and determines when the game is over.
Players transmit their positions every so often, server transmits updated positions back to all clients. So if my local player moves, the corresponding enemy moves in the other clients. No verification step yet, but it would happen before the server retransmits. Possible to add a server function that rolls back clients.
Like in Marquis, server tracks all important values. Players have no control over their health or cooldowns. However, no verification step performed when processing shots from the client.
Making Shooting Feel Good
Lessons from Overwatch: sound effect, camera motions, visual effects. A ton of room to expand on this front.
Fundamental networking design pattern and best practices translated extremely well from Marquis. Unity’s HLAPI is surprisingly easy to use, even if it’s a bit clunky. Making an FPS isn’t difficult, but making a fun FPS proves challenging.
Next steps are to add jumping and crouching, better player models, different weapons, more movement options, lag compensation, a server verification step. I could loop in my experience from Project Battlefield and develop a state machine editor that functions similarly to Overwatch’s system.
However, this is a complete networked deathmatch-style FPS made in a little over 2 days, so I can be proud of that.