Starting with Pong
Today, I want to write about the first game everyone should start with!
Why Pong?
There’s a reason why I recommend Pong. It’s just easy to implement. There’s little to do when it comes to the game mechanics. You will spend more time polishing the game and everything around it. And that’s a good thing!
Because, as you read in my previous e-mail, you will define a basic process, and create code you will reuse and refine until the end of time you using the current engine.
But how to approach making it in the first place?
Well…
Introduce the obstacle before the solution
Making games as a side hustle has some challenges. You have limited time of 1 or 2 hours daily, and if you have work & family it’s not the highest priority.
But once you make it to the evening and sit before your code you will find yourself asking the question: what was the last thing I was doing?
Let me introduce to you a process inspired by a game design method.
A good Metroidvania introduces the obstacle first and later gives you a solution.
What if you designed our games the same way? (I think this can work perfectly for smaller games!)
1. You run what you have.
Check if it’s working! You must have a working game at all costs at every moment of development.
Bugs? Fix them first!
2. Play test your game
Is there something missing? Something that doesn’t make sense? That makes the game not fair? Not fun?
Should be. The goal is to finish every phase of the making the game with something missing. This should help you get back to speed!
3. Implement it!
And don’t forget to leave something missing!
The breakdown
Easier to say than do. So let’s break down our Pong game into phases! Because everything looks good in simple examples! 😂
PHASE 1
Todo: a ball that bounces off the walls, nothing else
Bug: The player doesn’t do a thing!
PHASE 2
Todo: make a paddle on the left that moves up and down
Bug: no collision detection! The paddle doesn’t interact with the ball!
PHASE 3
Todo: the paddle bounces off the ball!
Bug: But when it hits the wall on the other side it still bounces off, even if there’s nothing there…
PHASE 4
Todo: turn off bouncing off on player walls, both of them.
Bug: you always win, because there’s still nothing there on the other side 😉
PHASE 5
Todo: there’s a second paddle. Don’t think about AI or second-player controls. Leave it for Polish time! Right now, it might react to the same controls as the left paddle. As long as it moves and bounces the ball.
Bug: no score!
PHASE 6
Todo: show the score
Bug: no pause menu!
PHASE 7
Todo: a pause menu with two options: continue, and exit to the main menu.
Bug: no main menu!
PHASE 8
Todo: main screen. Refined mechanics done for the pause menu.
Bug: no credits scene!
PHASE 9
Todo: a credits scene. Don’t forget to thank everyone for playing 😉 Maybe you can take all the people who worked on it from a separate file? Or experiment with moving credits, just in case you will hire more people. Not for this game, of course 😉
Bug: …I’m out of ideas for now, but you can add anything you want, you should understand the method perfectly now…
To paraphrase Racine (I think!)
The game design doc is ready, what’s left is implementing it!


