In its simplest form, video game development is the process of making a video game.
You take an idea or a concept for a game, and you develop, program, engineer, render, record, mix, produce, test, etc. until you have a full-fledged game.
The popularity of the video game development field is booming. It’s grown quite a bit in the past 10+ years.
There are a number of reasons for this. Some of the obvious ones are: the continued growth of the gaming industry. As video games become more accessible and gain a bigger following, more people consider participating in what goes on behind the scenes.
Another reason: probably the internet. Everything is so accessible! Including tutorials, games, and articles talking about how fun it is to be a successful indie games developer.
Software engineers spend their days solving tough, complicated, and important problems. We need to understand a broad range of technologies: from programming languages, to frameworks, from internet architecture to networking, operating systems, and much more. However, if there’s one thing that many software engineers are just a little bit overawed by, it’s video game development.
When I told a software engineer friend of mine that I was interested in exploring video game development, the look he gave me is best described as concern. “Doesn’t video game development involve lots of super hard math?” he said, furrowing his brow.
This was once true — game developers used to build their own physics and graphics engines. However, with the advent of accessible game development platforms like Unity and Unreal Engine, many of the low-level problems in game development can be abstracted by using the graphics, lighting, and physics engines these platforms provide.
Video Game Development vs Game Design
It’s true, game design and game development are different things. Sometimes you’ll see them used interchangeably. Here’s a reason why:
On a small team, you’ll have people dipping hands into the design and the development side. Game Development encompasses both game design and game development. That’s why sometimes game studios are called game developers. It’s kind of like the rectangle/square debate.
So, this isn’t the hard and fast rule, but it’s a decent rule of thumb to work from:
Game design deals with the conceptual side of things. Designers come up with the initial vision for a game. The mechanics, the core concepts, the aesthetics, the characters, levels, narratives–these elements tend to fall under the scope of game design.
Game development involves bringing these ideas to life. Developers take games from the conceptual phase, through *development*, and into reality.
A game developer can refer to a single person/occupation, or to describe a whole game studio.
The development side of games typically involves the programming, coding, rendering, engineering, and testing of the game (and all of its elements: sound, levels, characters and other assets, etc.).
You (kind of) know the difference…but what kind of roles can you expect as a game developer?
What Does a Game Developer Do?
There are a lot of elements that go into creating and developing a video game:
- Audio assets
- Gameplay mechanics
The list goes on. But you could be a developer and be in charge of any of those elements. A lot of game developers are heavy on the programming side of things. They know how to code, and they do exactly that to bring the design concept to life.
If by “game developer” you mean game programmer or engineer, the responsibilities of that position include:
- Writing a technical analysis of the proposed game design to determine the requirements and feasibility of implementing it.
- Doing research and development on new technologies (hardware and software) being used to develop the game, including creating development tools such as game engines, level editors and asset conversion utilities.
- Writing the computer code needed to implement the game design and assets.
- Converting the game art, audio, and text assets into a format that can be best be used by the game engine and other code, taking into account memory and load time constraints.
- Allowing assets to be easily extracted and re-implemented for foreign language translations.
- Porting the game so that it can be run on different gaming platforms.
- Commenting the game code so that it can be maintained by future game developers.
On larger teams, these responsibilities may be divided up by several programmers.
However, if by “game developer”, you mean game studio, then the responsibilities may include such tasks as:
- Creating the game concept.
- Creating the preproduction documents: Game Design Document, Technical Design Document, Art Bible, Schedule, and Development Budget.
- Providing the publisher with a shippable version of the game. This is usually done in incremental stages so that the publisher can evaluate its progress.
- Providing the publisher with the game source code and raw assets so that it can be maintained by someone else if the developer becomes unavailable in the future.
- Creating marketing materials such as concept art, screenshots and video trailers.
- Reviewing the packaging and other materials created by the publisher to ensure that they correctly depict the game.
- Creating foreign language versions of the game.
- Porting the game to other gaming platforms.
- Creating patches to fix problems found after the game’s launch.
- Creating sequels and downloadable content.
The full scope of the development studio’s responsibilities is defined by the agreement between the developer and publisher. For example, in some cases, the publisher may provide the game concept, and in other cases, another developer may be responsible for creating ports, sequels and downloadable content.
Your Very First Game
Software engineers who are interested in game development have a significant head start. Programming skills are central to game development. Even if you’re more comfortable with Ruby, which is not commonly used in game development, you can quickly pick up other Object Oriented programming languages that are much more commonly used for game dev, like C++ or Java.
If you’re a Python programmer, you’ll be pleased to hear that Python has some game dev chops: it’s the language powering massive titles like EVE Online and Sid Meier’s Civilization IV.
‘EVE Online’, powered by Python.
The news is even better if you’re happy starting off simple with game development. Almost any programming language you’re comfortable with will have game development libraries that allow you to create basic games without straying too far out of your comfort zone.
- Ruby has Gosu, a library that makes it easy to develop 2D games.
- Python has PyGame, a library that empowers you to create both 2D and 3D games.
Experienced game developers recommend that your first game be as simple as possible. In general, the first project recommended to most budding game developers is building a Tetris clone.
Because the game art and sounds in Tetris are so simple, anyone can produce them. For Tetris, putting together game art will involve drawing simple colored squares and an interface that is as minimalistic as you want it to be. Even if you use third party art and sounds in future games, producing your own assets initially will help you better understand the process.
The very first version of Tetris, created by Alexey Pajitnov.
Despite its simplicity, Tetris is a complete video game that will introduce you to many of the fundamental concepts of game development (except AI, which we will touch on shortly). Most importantly, implementing Tetris will force you to create a game loop, which lies at the heart and soul of video game development.
If you’re not a Tetris fan, another good first game development project is Pong. Pong also features simple graphics you can create on your own, minimal sounds, and a game loop. If you want to learn about making multiplayer games, allow matches to occur between two human players over a network. If you want to learn about AI, allow the player to challenge the computer.
If the idea of starting with Tetris or Pong is yawn-inducing, don’t be afraid to jump into an idea you are passionate about, even if it’s much more ambitious. Your passion for the idea will carry you through difficult challenges, and spur you to learn new skills. Eric Barone, the creator of Stardew Valley, taught himself to create pixel art, sound effects, and an intricate soundtrack in order to make his vision a reality.
‘Stardew Valley’ by Eric Barone.