Building a game combines a number of integrated challenges: defining interactions between various game objects, establishing a system of controls and making all of this happen in real time. A team of four Hack Reactor Remote students decided to take on the challenge and build a game for their final project, with the added complexity that the game was controlled via group chat. This means that they had to be prepared for a cascading set of commands from disparate sources. Depending on how many players there are, the game can be both a logistical and organizational challenge.
“I didn't anticipate that we'd go straight to making an actual game and may have cautioned against it since they are remarkably hard to make. However, I was very happy to be proven wrong by my incredible teammates. The final product is something we all can be proud of,” says Small.
Here is the team presenting We Play Perilous in front of their Hack Reactor Remote classmates, staff and many alumni.
The inspiration to use a chat feature as the game control came from the Hack Reactor Remote learning environment.
“Hack Reactor Remote has this unique culture where there’s a really active chat going on during lectures, team meetings, and video hangouts,” says Deng. “From students asking and answering questions, to meme and gif sharing, the chat felt like the central part for our Hack Reactor lives. A lot of our cohort’s in-jokes came from the chat. When we set out to build a game, we thought it would be really cool to replicate this social element within game, to give users the feeling like they were all in one party room.”
Game development presents a host of challenges, both in managing a lot of complexity and hiding that complexity from the user.
“Initially, some hurdles included scoping the project properly for the allotted time, determining if an unfamiliar technology was worth the technical debt incurred to learn it, and knowing when to pivot,” explains Bisrat. “As we got deeper into the build, some of the more technical challenges were how to maintain game state, keeping the game performant as the number of users grew, and ensuring that all the game clients were in sync after every state change.”
A central task to manage all of this was building a custom logic engine that powered and controlled the game. The logic engine is the core software component that tracks things like the game character’s location, health and story progress, as well as the ongoing commands from the group chat.
“From the start, we knew we would have to build a custom engine to handle the game's logic and manage its state centrally since so many users would be interacting with it at one time,” states Cernek, the engineer who focused on the logic engine. “Making a game brought together many of the concepts and technologies we had been working with in Hack Reactor in a new and challenging way.”