Making a web application from scratch is complex. Data is flying all over the place as you sit and wait for something to break. It may be a bit confusing and tedious, but it sure is a lot of fun.
So why did I bring this up? Well, you see, my friends and I had this urge to play the card game Exploding Kittens back in high school. Instead of buying the game outright (such bootleggers, I know), we got to work on designing our version of the game that we could print at home. After a couple of weeks, we had a playable game that we aptly named: Exploding Chickens.
We were having a blast playing the game at our lunch table. Each of us tried to break down the game mechanics to gain an advantage over each other. As we iteratively improved our game strategy, COVID-19 started to make its presence known. The pandemic sent us back to our homes, where the idea of playing any card game vanished.
Since we couldn't see each other in person, we fell back on the many games already on the internet. We took a shot at Among Us, online Uno, and Euchre, but none of them seemed to scratch the same itch that our new game had. After some thought, we came up with an idea to keep our game going: develop an online version of Exploding Chickens ourselves.
Sure, this is one of the most labor-intensive ways to solve this problem. Sure, this might be a bit insane. But we also thought that we might make something that is quite remarkable.
After five and some-odd months, I think we achieved just that. As of writing this, I typed over 10,000 lines of code and spent 250+ hours making this project real. I created the home page UI, gameplay UI, and the entire backend framework with the help of Node.js. I'm also incredibly proud of my friends for learning and putting what they can into the project.
Looking back, we did not realize the sheer amount of effort it would take to make this game work. When humans play any card game, we can easily pick up on the rules and realize what we can and cannot do. If someone makes a mistake, such as playing a card at the wrong time, you can have the player pick it back up. In a computerized game, the computer has to catch that error and inform the user that the action is illegal. Along with figuring out how we wanted to structure the project, this threw another wrench into the mix.
Figuring out a way to solve these problems is quite stressful but also gratifying. Now, anyone in the world can spin up a game of Exploding Chickens (for free) and play with their friends. We also wanted to give back to the community, which is why this project has been open-source from the start. We hope this inspires you to contribute to Exploding Chickens or pick apart our code and make something of your own.