Inspiration
We were inspired by the first game ever to be created in the world, Pong, except we wanted to make it more fun and with an extra twist that adds extra complexity (and fun) to the game (the webpage says sadistic, we meant to change that).
What it does
It's Pong... ...except there's more than one ball, randomly spawned with random velocities and random sizes every few seconds. Balls are also able to collide with each other and even impart momentum/kinetic energy to each other, and you can add kinetic energy to balls by trapping them between the paddle and the wall as they speed up! This game is multiplayer, the left paddle is controlled by W and S, and the right paddle is controlled by the up and down arrow keys respectively.
How we built it
We used a Javascript game library called Phaser.js to create the game itself, with Node JS and Express JS as the backend and Bootstrap 4 as the very minimal frontend. The backend is hosted via Nginx server in an N2D compute instance.
Challenges we ran into
We had planned to create a full on multiplayer version of the game, where we planned to be able to create game rooms and connect multiple people on to different matches all at once. Unfortunately, we had no knowledge of websockets and load balancing before this, so we ended up killing a lot of time going through tutorials that weren't up to date anymore, only figuring out near the last 10 hours that we would only be able to set up a P2P game hosting two people at a time, at best. By that time, we were already winded from the lack of progress, and unfortunately we were not able to implement multiplayer.
Accomplishments that we're proud of
Being able to make the game in less than half the duration of the entire hackathon, considering we had never or barely used Phaser.js and Node/Express respectively. Also the fact that we managed to learn this much about Sockets.io (although there is much more to be learned) despite being led into dead ends constantly.
What we learned
True multiplayer games are hard to create. Chaos Pong is really, really fun. You should try it. Like seriously. So much fun. It challenges your reflexes and peripheral vision, also, comment on the background music choice (and copyright free).
What's next for Chaos Pong
Time to add multiplayer support with proper load balancing using Redis? Maybe? Maybe we'll keep it peer to peer so you can only host a game of two at a time? Customization of max/min speed, ball size, paddle sizes before the game starts? Survival mode: You fight the wall (or an AI) instead of another person and see how long you last! Better styling. Let's just say our frontend isn't even close to being nice, although we take pride in its neatness and simplicity.
Easter egg??
See if you can find the hidden feature. Hint, it's something Waterloo students do all the time.
Log in or sign up for Devpost to join the conversation.