According to DigiPen Institute of Technology graduate Andrew Alvarez, there’s nothing quite like the satisfaction of seeing one’s name in the credits of a major game release. For him, that career milestone happened back in May with the launch of Battleborn, a colorful and competitive shooter developed by Gearbox Software.
After completing an internship at the Texas-based company during the summer before his senior year, Andrew accepted a full-time offer and began working immediately after graduation as the studio’s first dedicated physics programmer.
Since then, he’s been working on several tasks and features related to the pre- and post-launch development for Battleborn— almost all of them dealing with an area known as rigid-body simulation, or the movement and interaction of solid objects in the game world.
“There are some specific things in Battleborn that I can point to and say, ‘Hey, yeah, that was me. I did that,’ which is pretty cool to be able to do in a triple-A game,” Andrew said. “Some things are more apparent than others. One of the things that I did spend a lot of time on is working with our technical animators on getting a lot of secondary animation out of our physics simulation system.”
When a character in the game runs around the screen, the player may notice subtle movements — such as the swaying of hair or clothing — that correspond to the character’s motion. These visual enhancements were made possible thanks to the work of Andrew and his integration of physics simulation into the character design process.
“Thorn is actually the first character that we did this for,” Andrew said, referring to one of the game’s heroes, an elfish archer with a long, dangly braid of white hair. “We just added a lot of really cool physically-based secondary animations that I think helped bring a lot of our characters more to life.”
In other areas, Andrew’s handiwork is a bit trickier to identify. One example he mentioned had to do with devising a solution that could reconcile the separate realms of client- and server-side development.
In any online video game, there are millions of computational tasks and processes that are divided between the client’s hardware (such as a PC, Xbox One, or PlayStation 4 console), which manages the individual game player’s experience, and the remote servers that process all of the shared or centralized information. It’s incumbent upon software developers and engineers to determine which processes will be handled by either end, as well as how the two ends will communicate.
“We wanted to have our dedicated servers be as lightweight as possible,” Andrew said. “So the actual rigid-body simulation stuff that you see going on? The server doesn’t know about any of that, which presented a problem with a lot of the things that you can loot from the world.”
Take, for example, the large crystal formations that players encounter in the game. By shooting at these clusters, players release individual shards that can be picked up and used as in-game currency. The problem, Andrew said, was in the moment when those shards are released. Because the arc and trajectory for each shard’s movement is handled by the game’s physics simulation engine (The Battleborn developers relied on a version of Nvidia PhysX), it would normally fall to the client to decide where each shard ultimately landed — that position being the outcome of a semi-random calculation. But for an online game where all players need access to the same items in the same locations, the existing model wouldn’t work.
“The server isn’t able to simulate the physics on that actual rigid-body simulation. It doesn’t know about rigid-body simulation,” Andrew said. “At the same time, we can’t let the client be authoritative on whether or not that pickup is right there, but we still want to have that rigid-body simulation.”
To solve the issue, Andrew devised a clever compromise. For each moving object, the Battleborn servers would calculate a simple trajectory to determine its ultimate resting position. Meanwhile, on the client side, Andrew implemented subtle constraints to the actual simulation, so that the visual resting position of the object in question would be in very close proximity to what the server had decided.
Andrew worked closely with designers to hone and refine the simulation parameters, making sure that the movement of objects appeared visually accurate.
“It’s really funny because you look at somebody playing the game, and you look at somebody else also in the same session. And you see a shard pop out of a chest … and you see it fly across the screen and bounce around,” Andrew said. “If you look at those two screens, you’ll notice that that actual simulation that’s going on isn’t exactly the same, but the actual final location of it is pretty much in the exact same spot.”
For Andrew, this kind of nitty-gritty problem solving was not a far cry from his experiences as a student at DigiPen, where he worked as a physics programmer on games like Rekkage and Grand Theft Flying Object — games that required Andrew and his teammates to develop custom solutions for graphics, physics, and other technology components.
“I have to say that the game projects that you work on [at DigiPen] are so invaluable to actually working in the industry, because they give you so much experience that you may not otherwise have just taking programming classes or design classes,” Andrew said. “I don’t think there is any point in time where I have sat down in a day’s work at Gearbox and not thought to myself, ‘Oh, this reminds me of when I was at DigiPen and I was working on this thing.’”
Now in his third year at the company, Andrew says he still couldn’t be happier with how his career has unfolded thus far.
“I don’t think it would be an overstatement for me to say that working at Gearbox honestly feels like working at one of the best companies ever, because it’s just such a great environment,” Andrew said. “There is no room that you could sit down and start working in and not have the other people in the room become your friends. It’s just a great culture.”
Andrew graduated in 2014 from the BS in Computer Science in Real-Time Interactive Simulation program. Other DigiPen graduates who worked on Battleborn include Matt Hurliman (2015, MS in Computer Science), Amy Price (2011, BS in Computer Science and Game Design), and Alok Sawant (2016, MS in Computer Science).