Josh Keeble (11) plays all kinds of games. He can fly planes, swing swords, make animals run and stack Tetris blocks all with the touch of a finger. But Keeble does not simply play games; he has learned how to code and design games which, conversely, does not just take the touch of a finger, but an immense amount of creativity and precision.
“One common misconception is a lot of people want to be game designers because they think, ‘Oh, that’s where I get to create the design of the game,’” CEO of mobile game company Pixelberry Studios Oliver Miao (‘93) said. “That’s true, but another really important function of the designer is actually to take these high level game ideas and to translate them [into code] and get into the details and specifics.”
Those “details and specifics” in each step of programming present their own challenges. According to Keeble, building a game begins with a basic design for the structure and environment of the game.
“To make a game, you have to start with graphics and then picture how you want the game to work, and with that, you picture how the code’s going to work,” Keeble said.
Deciding on the nature of in-game graphics, whether it is “bright and colorful” or “shady, grim and dark,” is paramount to being able to develop the plot, storyline and script, according to game programmer Preston Roberts (11).
“Game scripts are a bit like theater scripts, but not quite,” Roberts said. “You have to do interactions, and it is a lot more in-depth than theater script.”
Roberts has been programming games since he was 10 years old. He currently manages the development of several indie, or independent, game projects. Unlike Keeble and Miao, who work alone or with friends and coworkers they are acquainted with, Roberts recruits people from online forums and distributes the work among his team members.
“There’s thousands of forums [to] post your project,” Roberts said. “You post descriptions of what you want and how many you want, and then people will throw in applications to work [with you].”
After the initial setup of the game is complete, the long process of game design, including sound design, asset creation, texturing and concept art, picks up speed — and with it come the challenges and obstacles that all programmers face.
Even Miao, who first became involved in making games in college and started the game companies Centerscore in 2000 and Pixelberry in 2012, is not exempt from bumps in the road. He said one of the most frustrating parts of programming is dealing with the bugs in the system.
“Some of these bugs prevent your game from working completely until you fix that bug,” Miao said. “You don’t know if you’re going to find that fix in 15 minutes, or it could be days or weeks even before you solve a problem. It requires people to have a lot of perseverance [to] keep moving forward.”
Bugs arise from errors in code that can affect entire sections of code and lead to games behaving in unusual or unintended ways.
Keeble also finds debugging code to be one of the most challenging parts of programming games.
“Debugging your code is difficult because you stop one problem, and then two problems come up because of it,” Keeble said. “So, you have to make it perfect the first time or you’re in big trouble.”
Various coding languages, like Java, Python, Lua and C++, can also be present challenges, but Mike Zheng (12), who created a battleship-style game called “Spearhead” for Steam Greenlight, an online game development community, became fluent in coding after doing it for many years.
“I learned [Objective C] in about a week, which is actually the longest I’ve ever taken to learn a programming language,” Zheng said. “I’ve programmed in pretty much every language … and I can learn a language in [around] an hour. It’s not really a big deal about how many I know, it’s just how many I use.”
But in the end, all the difficulties involved in the long and arduous task of programming games contribute to a feeling that is more than just relieved completion, according to Zheng.
“When you get it right, you feel good that you got it right, but it’s more about the progression,” Zheng said. “[You start] from nothing, and then, over time, you really start getting something.”
The games “Surviving High School” and “Cause of Death” by Centerscore and “High School Story” by Pixelberry, are available on the App Store, and at one point they reached eighth, twenty-fourth and tenth, respectively, on the charts. But success is not Miao’s only satisfaction in his work. For him, simply running the company allows for exciting teamwork and collaboration, even in the midst of deadlines or extra hours spent in the office.
“Inevitably, with a game, as you’re getting closer to launch, you’re always running against a timeline, and sometimes we get more ambitious with some of the features we want to do,” Miao said. “Some of my fondest memories with my team are when we’re working together, working really hard to try and make something happen. There’s just so much camaraderie.”
For programmers, students and company owners, the game creation process poses distinctive challenges as well as rewarding outcomes. Yet, for Roberts, just starting a game, fully aware of the tribulations that lie ahead, is what requires the most “courage, because it takes a certain bravery to start a process that will surely be challenging.”