For some, video games serve as an entertaining pastime — vibrant graphics ranging from leafy green forests to alien worlds shrouded in fog, rapid-paced music shifting with every step or a call to adventure from a list of seemingly unimaginable objectives. Most people, however, overlook the other side of video games: lines of code running through a program, mixtures of 2D and 3D graphic design, and sessions with friends trying and retrying certain features.
Student game designer and senior Dennis Fomichev considers himself a stranger to neither. Driven by his passion for video games and inspiration from real-world developers, Fomichev said he started his journey into programming video games in middle school.
“In 2018, when I started creating video games. There was a game called Raft in development,” Fomichev said. “I took an interest in how they created the game and the steps they were taking. Raft reached a point where it went on to Steam, and I felt wowed. They did that with a small team of three people, three college students.”
His friend, senior Evan Mazurov said observing Fomichev’s programming put into perspective the complexity of designing games.
“You don’t really think about what goes into a video game until you see it,” Mazurov said. “It was enlightening to see how simple things that you might just like look over (are made).”
Most of his journey, Fomichev said, followed a self-guided path, creating games on his own.
“The first three or four years I was just using online tutorials on YouTube and copying code,” Fomichev said. “It wasn’t until eighth grade before I became more proficient.
My main passion for creating games is coding — I like programming.”
Among Fomichev’s projects includes his first game “Survived,” which he said features elements from the popular sandbox game Minecraft.
“For my unity games, I didn’t create small projects that teachers would recommend or for my first games,” Fomichev said. “Essentially, I wanted to create a survival game. It was a hard task and I did not get far, but I had fun doing it.”
While the games may seem straightforward, Mazurov said he enjoyed playing them, especially Fomichev’s racing game.
“I’d say they’re simple, but they can be fun,” Mazurov said. “ My favorite one out of the bunch was CarX.”
Fomichev said his next endeavor, a first-person shooting game called “Infection,” will serve as what he considers his greatest leap yet.
“It’s probably my biggest project to date,” Fomichev said. “I started working on it in the middle of ninth grade and during the summer. It involved a lot of programming and a lot of art. I play-tested and a bunch of my friends played it. Granted, it’s not complete yet. It has guns, menus (and) player movement…everything.”
However, Fomichev said he still has areas in game programming to work on and continues to learn along the way.
“The game had maps, game modes and the set up, but I was struggling with artificial intelligence or how they can move,” Fomichev said.
Fomichev said he experimented with multiple programming languages.
“I started with the Unity game engine,” Fomichev said. “For programming, I use C sharp, a pretty complex language. I wouldn’t say it’s good for beginners, which was interesting because it was my first language. Using it as an introduction to computer science is like learning to ride a bike without any training wheels and with its seats on fire.”
Fomichev said his repertoire goes beyond a single coding language due to his past experience.
“I also learned Java,” Fomichev said. “(And) all the C languages I use — C++, especially C. There’s also Lua, Python and the web dev languages like CSS JavaScript.”
Above all, Fomichev said prospective game developers should seek to discover a passion for their work.
“If you want to become a game developer, you have got to have fun,” Fomichev said. “Regarding coding in general, I see a lot of beginner coders and developers working on general tasks that they aren’t interested in, saying, ‘Oh my God, why am I doing this?’”
The learning curve behind developing games can prove challenging, but Fomichev said perseverance can pay off.
“Learning to code even beyond just game development follows this graph called the Dunning-Kruger effect,” Fomichev said. “You start coding by taking baby steps. It seems easy so far. Then as you get exposed to more and more elements, you realize, ‘What have I gotten myself into?’ Your motivation goes down. But if you keep pushing you will slowly get that motivation back. You will realize how far you’ve come.”