A8 - Multiplayer Game
1000 points
Last updated
1000 points
Last updated
Online games have evolved over the past decades from simple multiplayer games such as Counter Strike 1.6 to entire metaverse environments such as GTA V Online . Multiplayer games have forever revolutionized entertainment and stand today as one of the most significant areas of distributed system innovation.
Designing a multiplayer game requires several areas of expertise, ranging from graphics design to physics realism. In this course, we focus on the networking challenges encountered in developing an online game.
Your task is to develop a multiplayer game, focusing on the networking challenges of game development. For this, you must use Python with the regular lab environment. However, you may use third-party libraries such as for handling the graphical user interface and keyboard input.
To qualify for passing the assignment and obtaining the 1000 points, we require a sufficiently complex game. However, your focus should go towards the networking challenges of online gaming, not the graphics or game mechanics.
Games with a simple user interface and basic graphics are allowed if the game mechanics and networking capabilities are complex. Please refer to the section for detailed descriptions of required capabilities.
After you are done implementing your game, you must write a game documentation in a README.md
file, describing the implementation details of each requirement, challenges encountered, and trade-offs considered. Additionally, your document must include installation instructions for the game. We expect you to use tools such as or to create a release of the game.
Finally, we expect you to demo the game with a 2-5 minute video. Upload your video to a media sharing platform and include the link in your README.md
documentation.
Teams that submit impressive games, that exceed our expectations in terms of networking requirements, but also graphics and game mechanics, will be granted the opportunity to present their work in front of a larger audience during our last lecture of the course.
Please let us know in advance if you would like to present your game during the final lecture.
To qualify as a sufficiently complex game, your assignment must follow a list of strict networking and algorithmic requirements. We identify three classes of requirements your game must follow: protocol, connection handling, and algorithmic considerations. Carefully examine the requirements below when designing your idea and ensure that your game specification satisfies all criteria.
Several approaches to handling connections exist; however, for the purposes of this assignment, we define a clear pathway for you to follow. Your game implementation must follow all of the following requirements for handling connections.
Transport Layer Protocol The game must utilize UDP as the transport layer protocol for handling connections.
Peer-to-Peer Connections The game must be fully peer-to-peer, with the ability to recover from one of the clients disconnecting. Specifically, you are not allowed to use a central server for dispatching packets to connected players for synchronization.
Party Size Your game design should facilitate more than two connections at the same time. Namely, is a hard requirement for your game. You will need to choose a game idea that benefits from larger party sizes; games that are designed for two players only will not suffice. Counter-examples: Pong, chess, checkers, tic-tac-toe, and Connect 4.
The VU-Campusnet network will usually block UDP connections and place different devices on completely different LANs. Therefore, we recommend using a mobile hotspot to serve your different devices with a common LAN.
Note: If you decide to use a mobile hotspot, make sure you take the necessary precautions to prevent excessive bandwidth usage. Your game should not require access to the outside network, but rather just the LAN that the hotspot provides.
Before getting started with your game, you are encouraged to consult a teaching assistant regarding your game idea; you do so through a game plan. A game plan is a PDF document describing the following:
A general description of your game idea.
The game mechanics and their network applicability.
An intuition of the implementation details in regard to the system requirements.
Submitting a game plan is not mandatory, but it greatly increases your chances of having your game submission approved. If a teaching assistant approves your game plan, you can be sure that your game will be rewarded with 1000 points once implemented, given that everything described in the plan matches the final product.
We recognize that the list of requirements might be limiting in terms of the variety of games that would be considered complex enough. If you have a game idea that does not meet some of the presented requirements, but introduces other advanced networking features, consider consulting one of our teaching assistants and submitting a .
Online games are a class of networking applications that prioritize latency over reliable transmission. To fulfill this, most online games utilize as the transport layer protocol.
Local Area Discovery Your game should present an interface that scans the local area network for players ready to play and provide a method to invite the players to a party. We do not require your game to handle connections outside the LAN. Hint: It might be useful to look into and port scanning.
A list of requirements the game will follow, usually larger than or equal to the .
Submitting your game without a game plan constitutes a risk taken; we do not guarantee that a game that does not meet will be approved. However, omitting the game plan might save you a lot of time, given the sheer size of the assignment. Carefully analyze the trade-offs between submitting and not submitting a game plan.
If you decide to include only a subset of the , having your game plan approved by a teaching assistant is mandatory.