Mario Kart is a classic kart racing game released by Nintendo. Our game design was inspired by one of Mario Kart's game modes, in which teams battle against one another and one side wins the game by beating opponents. The aim of our project is to create a multiplayer first-person kart fighting game using a peer-to-peer network architecture. In this project, we focus on two things: (a) game design and (b) network architecture.

Game Design

We set each player's cumulative hit points (HP) to five and the number of bombs to zero at the start. Furthermore, the kart's speed ranges from 0 to 50 mph, with a forward acceleration speed of 10 and a backward acceleration speed of 4. Each player can get game props by collision and can throw the game props on opponents. In the whole process of fighting, you will enjoy the music that we select for entertaining carefully. If the competitors are crashed by a bomb prop and push the attack button within 15-units distance, the hit points of the player will get deducted and an explosion effect will show on the screen. Additionally, players will crash accelerated and decelerated props to increase or decrease their speed. Players will also collect coins by grasping the coin props. The team with the most coins wins until the timer runs out and neither side has missed a friend. Otherwise, if one of the teams loses any of its teammates before the timer runs out, the team with the most teammates wins.

Network Architecture

We divide our network connection into two parts. The host player computer serves as a server and listens for other players to enter, those players we called client players, in the lobby scene, where the players host the game, join, and assemble. The host player is in possession of the room's global player records and notifies all players when there are changes. After all the client players join the hosted room, the network topology is reorganized and all client players connect to each other directly.

Finally, using the C# script, we built a real-time Multi-Kart Battle game environment and create a distributed peer-to-peer multiplayer online kart gaming in a distributed manner, maintaining global game state stability and providing a real-time gaming enjoyable experience.

Demo Video

walk_through.mp4