Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

{Important! Do not say in this section that this is college assignment. Talk about what you are trying to accomplish as a software engineer to further your learning.}

{Provide a description the game that you wrote. Describe how to play your game.} I made a classic Ping Pong game that has a nice, clean arcade style. You can choose to play by yourself against an AI opponent or play locally with a friend on the same keyboard. Before the match starts, the game lets you pick a custom winning score from 1 to 9, so you can decide how long or short you want the match to be. It also includes simple retro sound effects when a point is scored or when the game ends.

How to Play: Player 1 (Left Paddle): Use the W key to move up and the S key to move down. Player 2 (Right Paddle): Use the Up Arrow key to move up and the Down Arrow key to move down. Menus: Use the 1 or 2 keys to pick your game mode, any number key from 1-9 to set the score limit, and the Spacebar to return to the main menu after a game ends. Goal: Defend your side of the screen and bounce the ball past your opponent. The first player to reach the chosen score limit wins the match!

{Describe your purpose for writing this software.}

I wrote this software to practice my game development skills and learn how to manage different screens and menus in a program. Building this project helped me understand how to handle things like basic physics, keyboard inputs, and collision detection. I also wanted to learn how to implement a basic state machine so that switching between the main menu, the settings screen, and the gameplay feels smooth and organized.

{Provide a link to your YouTube demonstration. It should be a 4-5 minute demo of the game being played and a walkthrough of the code.}

Development Environment

{Describe the tools that you used to develop the software} Tools Used: To develop this game, I used a few straightforward tools: 1. Visual Studio Code (VS Code): This was my main text editor where I wrote, edited, and formatted all of my code. 2. Terminal / Command Prompt: I used this to run my Python scripts, install the necessary software packages, and test the game for bugs. 3. Git: I used this tool to track my progress, save different versions of my code, and back up my files as I built the game.

{Describe the programming language that you used and any libraries.} I chose Python as the programming language for this project because it is very readable and great for building quick projects.

I also used the following libraries: 1. Pygame: This is the main framework I used to actually build the game. It handles opening the window, drawing the shapes for the ball and paddles on the screen, managing the 60 FPS frame rate, and tracking keyboard inputs. 2. Pygame.mixer: A specific tool inside Pygame that allowed me to load and play the audio files for the game sound effects. 3. Sys: A standard built-in Python library that I used to safely close out the program window when a player decides to quit the game.

Useful Websites

{Make a list of websites that you found helpful in this project}

Future Work

{Make a list of things that you need to fix, improve, and add in the future.} Things to Fix 1. Ball Bouncing Glitch: Sometimes the ball gets stuck inside the paddle or bounces weirdly if it hits the corners. 2. Audio Overlap: The point sound effect occasionally plays twice or sounds a bit strange if a point is scored really fast. 3. Paddle Screen Boundaries: Make sure the paddles can never accidentally slip even a pixel past the very top or bottom of the screen.

Things to Improve 1. Ball Speed Increase: Make the ball speed up slightly every time it hits a paddle so the game gets harder the longer the round goes. 2. Better Colors: Change the boring black and white colors to something more colorful and exciting. 3. Menu Navigation: Add a way to go back to the previous screen using the Escape key if a player clicks the wrong menu button.

Features to Add in future 1.Power-Ups: I want to add random items that spawn on the screen, like a power-up that makes your paddle bigger or slows down the ball. 2.Difficulty Levels: Adding an option in the menu to choose between Easy, Medium, and Hard AI speeds. 3.Particle Effects: Adding tiny trailing particles behind the ball when it moves fast, or a small burst effect when it hits a paddle.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages