In this game, players play as a circle, your goal is grow as big as possible. Players can do this by eating other players, or by eating the pellets placed around the map. When two players come in contact, the bigger player will eat the smaller player, adding the smaller player's size to the larger player. And the player who is eaten is taken back the main menu, where they can join the game again to start again.
The game is balanced by having players become slower as they become bigger. This means that smaller players can always out run the larger players, so they need to use tactics to be able to eat the smaller players.
During this project, I learnt alot about the communication between the server and the client, and attempting to produce a game server which is invulnerable to altered clients.
This means that no matter what data the clients send the server, they shouldn't be able to do anything that normal playing players wouldn't be able to. For instance, they shouldn't be able to teleport around the map.
To achieve this, the server calculates where players should be in the next game tick from the information the clients give the server, which includes the user's mouse input. The local client will do their own calculation for interpolation to make sure the game feels responsive. Once the server has calculated the game tick, it'll broadcast all the new player positions and new pellets to the clients.