We use cookies on this website to make it function correctly and to achieve the purposes illustrated in the cookie policy. By continuing to browse, you agree to the use of cookies. Cookie Policy

Hack Reactor Remote Students Present Game Built with Custom Logic Engine

Owen Poindexter

Hack Reactor Remote Students Present Game Built with Custom Logic Engine's Image

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.

“During our planning phase, the group decided that we wanted to do something risky,” recalls Mitch Small who built We Play Perilous with Jon Deng, David Bisrat and Andrew Cernek. “I shared Hunter Loftis' talk ‘We Will All Be Game Programmers’ with my team, thinking that it might be good brainstorm fuel.” Loftis explains that web applications have evolved to resemble video game engines, and web developers stand to learn a lot about asynchronicity, sequencing, and performance from building games, particularly in JavaScript.

“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.”

What do you want to build? With Hack Reactor Remote, you can take our course from anywhere. Need to skill up first? Our powerful Prep Beta course is now available in an online, self-paced format.

Read more:

Careers Transformed: Three Remote Alumni Share Their Stories

Hack Reactor Remote: The Student Experience