Inspiration

With a desire to make something relevant to computer science students, we realized students lacked a vital resource for success: the ability to quickly and easily practice small skills. So we thought about other places where people practice small skills which extrapolate to a larger context, and what came to mind were chess puzzles.

What it does

We set out to create a mix between chess puzzles and programming concepts. What came out was a game where players compete to complete a series of debugging puzzles. The players are all given the same puzzles in the same order and whomever completes every puzzle first is the victor!

How it does it

When players first navigate to the website they are prompted to either create a game or join one. If you opt to create a game you will be put into a game lobby with a game code to share with anyone who you want to invite. To join a game, type in an existing game code and you will be navigated to the game lobby. Once everyone is in the lobby, the host can start the game. From there, every player—host included—will be sent their first puzzle. As players complete puzzles they will receive the next one, never having to wait for anyone else. The first person to complete every puzzle wins the match.

How we built it

We wanted to keep the app simple and make it easily accessible, which made a web app the logical choice. To keep things easier for us we made our tech stack pretty small sticking to the basics for web dev, Node.js for the back end and CSS/HTML for the front end, with a few quality of life libraries in between.

Challenges we ran into

For an app like this to work it would require compiling and running user submitted code something which neither of us had ever attempted. It took quite a bit of finagling but eventually we were able to scrape together a semi modular approach which allowed for the rapid creation of puzzles.

Accomplishments that we're proud of

The moment when we brought our front and back end together and they actually ran—after some minor debugging—was extremely rewarding. It was super exciting to see the results of our hours and hours of toiling over laptops produce something, which had just a few hours (like 18) ago, only existed in our heads.

What we learned

Creating a multiplayer game was a first for both of us. Learning how to do the networking and managing multiple games running with multiple players per game and navigating all the data to and from the right locations was something of a technical challenge but definitely a good skill to have picked up.

What's next for Debugathon

The obvious continuation to this project are adding support for multiple languages, generating puzzles procedurally, and up scaling the games with matchmaking and larger lobbies. These are all things we considered doing but felt would be out of scope for the hackathon, so we made the difficult to choice to prioritize creating a fully functional product instead.

Share this project:

Updates