My IT Profession: Zhenya Gerasimova on game development
12 July 2021, Monday

In our "My IT Profession" feature, we meet talented people with interesting jobs. Today our special guest is our colleague Zhenya Gerasimova. Zhenya has her fingers in a lot of pies and has many different interests, but they are all concentrated around her profession. We spoke with her about the most interesting part of our instructional program: game development. Zhenya talked about how she herself got her start in game development and what she thinks is needed for others to do likewise.

How did you get into gaming? Or rather, into game development?

I got into gaming when I pictured my neurointerface, then saw my abysmal level and was horrified at my insignificant stats and skills. Upon comparing myself with other game system users in the open global rating, across from my name I saw the recommendation: "You could use some improvement." And that's pretty much how I ended up here.

According to my diploma I'm a system programmer and mathematician; I work as an iOS developer. Since I was little I've been interested in games, and some time ago I started dreaming of putting together a video game creation team. I've racked up a huge number of games that I've played and watched, and I think games are terrific. I love reading adventure stories, and sometimes I try my own hand at fantasy. On top of that, I'm a programmer with five years of experience. Recently I decided to make my dream a reality, and I started working with Godot, an engine for creating video games. I do this in my free time, combining my two favorite activities: games and programming.

What might a novice find interesting about game development? What might they find scary?

A novice might be interested by the fast-paced growth - the fact that everyone can find their own niche in the gaming industry. After all, games aren't just made by programmers: they involve designers, and scriptwriters, and many other people of all different professions. 
 
Programming can be frightening if a person who's never had any contact with it suddenly decides to look at the code for some large-scale project. In actuality it's not all that scary; it's just that the code for creating a game involves numerous little details, which makes it look big and ""scary."" But the fundamentals of programming are really quite simple. The internet has lots of information, articles, and videos on how to have fun with starting to create and completing a game that will win the hearts of many and get you hooked on gamedev for a long time to come. You have plenty of resources and online guides to help you. The main thing is to take the plunge and get started.

In your view, what are the professional prospects for game developers?

They are excellent and just as within reach as a hot pizza in your oven. Especially in this day and age, when the coronavirus has forced many to stay home, glued to their smartphones and computers. In all probability, future generations will be playing video games on various platforms, so the prospects are tremendous. Really, to get started developing games all you need is a mediocre computer and internet access.

What does a game developer do?

A game developer creates, plans, and programs, putting heart, soul, and elbow grease into creating programming code and visualizing the game concept. The game may be developed by a programmer alone or by a group, including designers, product managers, backend and frontend developers, and more. So if programming isn't your thing, you can still find something here to suit you. 
 
If a developer doesn't have a team, and they are developing a game in isolation, it means they are a universal specialist who knows how and is able to develop a game, visualize it, and correctly handle the legal aspect, since on top of everything else the game or software has to be patented once it's developed. The world is full of many successful projects and games that people play over and over again and recall fondly. Fascinating adventures in the world of The Witcher, scary quests with friends among the ghosts of Phasmofobia, engrossing survival strategies in the RimWorld settlements, the ever-popular fights of Mortal Combat - these were the products of the zealous efforts of both teams of people and amateurs working alone. I think a game developer gives the players a gift of happiness and emotions. They make life a little brighter.

What are three qualities a good game developer has to have?

A game developer has to understand that they will come up against a whole series of challenges that they will have to overcome on their own, or else put together a team to overcome them. Frequently they will have to work on a project for a couple of years or more. This means a developer will definitely find the following qualities useful:

  • self-directedness (the ability to make considered decisions independently);
  •  a good imagination;
  • high tolerance of stress.

Best game of all time?

Morrowind, part three of "The Elder Scrolls" series from Bethesda.

Have you ever developed any games yourself?

Yes, this February I finally tackled game development using Godot Engine. At first I wanted to develop a game in Swift using the Xcode development environment, but right away I realized that I was being a little naive, since I would have had to write out all the fundamental elements and logic myself, and that would have taken a tremendous amount of time - time we can save by using game engines. After all, everything's already there. In my search for a suitable engine I made a mini-game, or rather something like one, "made friends" with the promising Godot Engine, and as yet periodically, when I have time, I play around with mini-projects, attempting to make something. It's fun and interesting. I have a younger brother who now dreams of our making a neat game together.

So game developing is fun and easy? Even children can do it?

It depends on how much effort you put into it. If you work your fingers to the bone day and night, you'll wear yourself out and never want to do gamedev work again. As with anything, you have to pace yourself to keep from burning out and so that it stays enjoyable. Take breaks in your developing, program to music, experiment, create game mechanics, think up a short script, draw some fantastic beast, do whatever interests you.

Children can dip their toes in by taking courses in the form of a game, under your tutelage or on their own. The main thing is that your tutelage not exhaust them.

What do you do in your free time?

I play computer games, read, further my education, draw, program, play board games. Really, I do different things every evening; monotony isn't a problem for me.

You mentioned furthering your education. What are you currently studying?

In terms of game development, as I mentioned I'm currently trying out Godot Engine. I discovered it a year ago, but it was this February when I tried for the first time. It's really a terrific, self-explanatory engine - simple and with excellent tutorials and documentation. Next I'll be looking at Unity, once I'm not busy with other things. But I'll most likely return to Godot Engine, because it's completely free and I've grown familiar with it. In terms of work, I mostly read various articles on Swift and sometimes crack out a book.
If a person decides they want to start developing mobile games themselves, what should they start with?
"They should start by finding game engines that work for them. There are lots of videos online on how to choose an engine you can handle. Next, they ought to take some tutorials on the engine, to get to know its strengths and weaknesses better, and possibly switch engines. Make a game following tutorials. Find and join any welcoming developer community and ask questions there. Read articles on the engine and on games. It would also be a really good idea to study English, since various key information on development is available specifically in English. 
 
 For starters I would advise people to go to website and download the Godot engine. It's simple and suitable for beginners, since it has good documentation, most of which has been translated into Russian. To save you the search, I'll provide a link to a tutorial on creating your first game, where any programming novice will write it accurately and be happy with the result.

You should start with a small game, because no matter what you do it's going to sprout more layers of code than a poodle has hair. You have to set the bar yourself ahead of time - the limits and goals of your project.
 
In any case, when you finish, even if your project doesn't work properly on certain devices, give yourself a pat on the back: good for you! You've made a working game and proven that you can do more. Now you can finally start work in earnest.
 
 Don't be afraid of writing bad code, and don't let it upset you. Good code only comes when you have the time and energy to study the subject and boost your level. Whenever possible, read or watch materials on the programming language you use, or on the engine you work with, and over time you'll start to feel more confident and knowledgeable.

Ultimately it all comes down to time, so don't forget to write yourself a good plan and periodically adjust it to the current situation. A plan with lots of little bullet points will give you confidence and the energy to take action, because by performing each little item, moving step by step toward your goal, you'll feel a surge of energy and the joy of accomplishing your tasks. Your plan shouldn't include items that take too much time; otherwise you'll be depressed and out of sorts. For example, instead of "study a programming language," put down "study how to make a button in that language." If you draw up a good plan, every day you'll be in a great mood. And everything will come together for you.

What would you recommend to read or watch on the subject of programming? Interesting blogs, podcasts, articles, instructional websites, YouTube channels?

I would recommend taking a look at three engines: Godot Engine, Unity, and Unreal Engine. Each of them has its strengths and weaknesses, so be sure to study them by watching various YouTube videos before making your choice. For example, you may think Unity and Unreal Engine look clunky and overly complicated, but bear in mind that they are used by various companies to which you could find yourself applying. For developing on one's own, and for novices in general, I think Godot Engine is the best fit, but take a look for yourself as well and consider what's best for you. 
 
 You can start with the videos from SMART on YouTube. There are some pretty interesting videos on how to get started with game developing. In these videos you can find LOTS of sources, links, communities, documentation, tutorials, and anything else you can think of. Just go to the SMART channel and search for various videos on developing.

What advice would you give to those who want to program, or who for now are only casually interested in the field?

Start with an easy language, don't be afraid to ask questions (after first sifting through the information available online - you might just find the answer), and watch instructional videos. You don't necessarily have to take paid courses; most of the information you need is freely available.

Take small but perceptible steps, don't forget to praise yourself for your progress, and don't beat yourself up over mistakes: after all, analyzing them is exactly how you grow. You can't go through life without mistakes.


Our thanks to Zhenya for an interesting interview and for her helpful advice! Here's wishing her success in all her pursuits!


Glossary:
 Neurointerface — a character screen with their level and stats, as in a computer game.
 Stats — a set of primary characteristics of a game personage. For example: agility, strength, endurance, energy, intellect, charisma, perception, luck.
 Gamedev — game development for a specific gaming platform.
 Engine — the underlying software of a computer game. Godot Engine, Unreal Engine, and Unity are software for creating 2-D and 3-D games.
 Swift — a programming language
 Xcode — an integrated developing environment for software.
 Morrowind, The Witcher, Phasmofobia, Rim World, Mortal Combat — video games.