Build Note: Please select "NetworkBomberman" as the startup project
This project is a Networked Version of the game bomberman and was created using OpenGL for rendering and Raknet was used for the networking stack. The project uses a authoritative server a dumb client architecture where clients connect and send packets to the server which processes the events in the game world. Up to 6 players can connect to a server and the server owner can set a number of perameters, such as max player and wait timers, as well as the level rotation. Game levels are downloaded from the Server and then are played by the clients. Once a match is completed the clients are prompted to either disconnect or play again.
The project includes an interpolation technique as recomended in the RakNet documentation. This system writes positions that it receives from the server, which dictates the current game state, and interpolates between the time that those messages were sent and the current time to provide the position to the client. This means that if we miss a packet or receive a packet late, we lerp towards a more updated position rather than teleporting. This also means that we don’t need to send a position every frame because we use both time and the position.
Dead reckoning is used in addition to this, as inputs from the client are only sent to the server when they change so that if inputs are received late the player simply keeps remaining direction of travel.