Brief Overview: A 2D Game developed in Unity, with the purpose of learning Unity's Net code and design patterns to avoid latency related problems. All aboard features multiple turrets the players can use as well as a train to control. Further, All Aboard's train uses physics to move, facilitated by a tool I created to generate the track and hitboxes along a spline in editor.
Technologies Used: C#, Unity, Unity's Netcode Plugin.
Duration: 8 Weeks.
Role: Sole Developer
Objective: To learn more about Netcode and Unity's Netcode plugin.
Technical Features:
Client and Server RPCs.
Lag Compensation (Dead Reckoning, Animation speed changes)
Mesh Generation (Dynamically creating tracks along a spline)
Problems Encountered:
Train desync due to physics based movement - To fix this, I created a system to predict where the train should be, and change the trains speed to reach the predicted location.
Desynced projectiles not hitting bats or hitting when they shouldn't. To fix this I made the bullets damage effect client side (due to it being a co-operative game I am not worried about cheating). I then created a system to spawn dummy bullets on all other clients, which would hit or miss the bats as needed.