If you want to build the “most played PC video game” in all of North America and Europe, you need math. Lots of it.
Sure, computers do the heavy lifting, but if you don’t understand how linear algebra works, it’s game over.
So says software engineer Eric Friedman, who works on League of Legends (LoL)
, the multiplayer online battle arena (MOBA) game that’s topped the charts since its debut in 2009. Developed by Riot Games for PC and Mac, it spawned massive, professional competitions across the world. Riot’s 2017 World Championship featured a prize pool of over four million dollars,
and the 2018 Mid-Season Invitational was the most watched eSports match in history, with 127 million unique viewers.
With those kinds of numbers, any changes or improvements to the game had better be good. But no pressure.
As a software engineer, Friedman makes those changes happen. He works with artists, designers, and other engineers to imagine and develop new features, looks and behaviors for LoL’s characters and to create new battle environments. He might work on special effects or new ways for players to express themselves, like “emotes”—little animated stickers that flash to communicate feelings to other players.
Friedman started playing video games at age four. About age 12, he “stumbled across the fact that you need programming to make computer games,” he said. Fortunately for his future career, he always found math interesting.
“I like the black-and-white aspect of it,” he said. Something was either right or wrong—that made a lot of sense to me.”
In high school, Friedman took honors math through calculus, then went on to study computer science in college. During his freshman year, he transferred to an accelerated bachelor’s program in game development at Full Sail University. Upon graduating, he scored his first job at Tilted Mill, the developer of SimCity Societies.
From there he moved to 745 Studios to work on a music title during the global craze for Guitar Hero and Rock Band
, finally landing at Riot in 2011.
In every job interview he’s had, Friedman has been asked about his skills in vector math and matrix math, parts of linear algebra.
“If there’s something in the world you want to draw in a 3D game, you need to know its position. It involves 3D vectors,” he said. “Then if you want to rotate the object or shift its orientation, that’s represented by a matrix or a quaternion [mathematical operators used to rotate and stretch vectors]. If you want to do a racing or fighting game where two things collide, it’s all math.”
“The game code ‘knows’ several variables, for example, the direction the dragon is facing and the positions of the dragon and the player. So, it can draw a ‘look at’ vector from the dragon to the player, get an angle between the two, and that angle can be used to turn the dragon’s head toward the player.”
Software engineers like Friedman write code to process the vectors in the computer. The results of those calculations are input into an animation system, which is then able to move an object in the game.
Even if he hadn’t specifically pursued game development, Friedman says, the ability to learn algebra and geometry trains your brain to think logically, and that translates to the tech world in general.
“And if you want to do something fun, like gaming,” he said, “it’s a prerequisite.”