Pong is a table tennis-themed arcade sports video game, featuring simple two-dimensional graphics, originally developed by Atari
. It was one of the earliest and most iconic arcade video games, laying the foundation for the gaming industry.
This project aims to faithfully replicate the classic Pong game, allowing users to enjoy the nostalgic experience of playing against another player
or a trained AI opponent
. The goal is to capture the simplicity and excitement of the original game while incorporating modern coding practices and enhancements.
- Two-Player Mode: Challenge a friend on the same device, each controlling a paddle on opposite sides of the screen.
- Single-Player Mode: Test your skills against a computer-controlled opponent [
NEAT Algorithm
].
- Learning and Applying Pygame: This project serves as a practical exercise in using the Pygame library to create a functional game.
- Implementing Core Game Mechanics: Focus on developing and fine-tuning the physics and controls to ensure an enjoyable gameplay experience.
- Creating a Nostalgic Experience: Recreate the charm of the original Pong Game gameplay.
This Project is mainly divided into 2 seperate parts:
- Trainning of the NEAT Algorithm [Genetic Algorithm]
- Main Application which allows the User to adventure himself inside this Arcade Game
In order to properly train the NEAT Algorithm
, please run the following command on your terminal :
python Train_AI.py
Keep in mind that it is possible to modify the configuration file in order to change the way the Algorithm trains and ultimately performs against other agents / players.
Finally, to run the main application
make sure to be inside the correct directory and therefore execute the following command:
python Pong_Game.py
Ultimately here's a short video
on how the Application works and what you might find inside it:
Pong_Game.mov
README.md by Gonçalo Esteves