This repository contains the source code for a Pygame Pong game developed for a Distributed Systems course project. The game allows multiple players to connect to a server and play against each other in real-time.
The project goal was to develop an interesting distributed application using Python and various distributed systems concepts. Our team chose to implement a multiplayer real-time game using Pygame, a popular game development library for Python.
The game is designed to run on a server-client architecture, with the server handling game logic and communication between clients. Players can connect to the server using their local machines, and the game can be played by two or more players.
Multiple players can connect to a server and play against each other in real-time. The game follows standard Pong gameplay, with paddles on each side of the screen bouncing a ball back and forth. The server handles game logic and communication between clients, ensuring smooth gameplay. The game includes basic sound effects and visual effects to enhance the player experience.
- Python 3.9 ~Pygame 2.1.0
- Socket Programming
- Multi-threading
- Running the Game
To run the game, follow these steps:
- Clone the repository to your local machine.
- Install the required dependencies using pip(3)
- Start the server by running python
server.py
from the command line. - Start the client by running python
run.py
from the command line.
Start playing the game!
Our team has prepared a project report and presentation that describes the problem we focused on, the design of our system, the challenges we faced, and how our system works. The report is available in PDF format and should be no more than 10 pages. Additionally, we have prepared a video presentation that demonstrates the features of our software, our design decisions, the challenges we faced, and the testing we performed. The video should be no more than 10 minutes long and has been uploaded to YouTube. Both the report and the video link have been submitted to the course instructor through OWL.