This article was originally published on the author’s game development blog in 2022.
Software developers spend their whole time with complicated problems and they try to learn almost everything about algorithms, structures, frameworks, and blah-blah-blah. While playing games and coffee have become stress-busters in our lives, why can't building games be the best one?
Even though some people find game development insane, it’s easy for software developers because they have almost every skill needed: math, Programming, UX/UI, and the usual stuff. If a normal person takes 6 months to learn a Game Engine, the Developer will take a maximum of 3 months or less.
Many people don’t know this, but I started my tech career as a game developer, although I later turned my back on game development and became a Python developer. And no lies, they were a few of the best years in my life.
This article is dedicated to any developer who wants to try something new, something exciting (which is game development, yes). Scroll down!
Making Your First Game
Software developers who are interested in game development have a remarkable head start. Programming skills are the core of game development. Even if you’re more comfortable with Swift or 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 development, like C# or C++, easier than anyone!
If you're a Python lover, you will love to hear this: There are really good, AAA games made with Python just as Battlefield 2, EVE Online, Civilization IV, and more!
Not only Python, but almost every commonly used Programming language has libraries that support making games. For example:
Flutter has Flame, a game engine that supports Flutter language.
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.
Phaser allows you to create games with JavaScript and HTML5.
Start Small, Grow Big
For every beginner, either a software engineer or a novice, I give one common piece of advice— Start as small as possible. It doesn't matter how small pieces of code it has or how messy it is, you've won the challenge!
If you love simple 2D games, I would recommend you to make a Pong game. Pong features simple graphics (2 rectangles and a circle) 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.
And if you love 3D games like me, start with Cube Run. I haven't made it without a Game engine because, 3D becomes a bit harder with Python or others but with Unity, it's the best game I recommend to take a start.
Major Ingredients of A Game
If you make a cake without Sugar, no one will eat it. Except for diabetic people, of course, like my mom.
The same goes for video games. It’s full of ingredients, some of which are required for every game and some of which are optional.
I’ll introduce them briefly.
1. Level Design
In many games, the level itself is a challenge, trickier than the smartest AI enemies. Series like Tomb Raider also emphasize complex and challenging level design.
While the advent of open-world games like GTA may make the level design seem less important than in bygone times, it’s worth noting that even open-world games have ‘levels’, such as a particular building, structure, or map area you must enter to achieve a goal.
To reduce player feelings of being railroaded, levels will ideally have multiple possible paths through them.
2. Lighting
In games, you can’t really rely on natural light sources to illuminate your video game.
(You don’t think there’s a sun inside a game engine, do you?)
Every light source in a video game must be added by hand and light manipulation is incredibly important. Light can be used for all of the following:
Controlling the player’s ability to see. In horror and survival games, light is a resource that must be carefully managed.
Controlling a player’s ability to be seen. In games with an element of stealth, dark areas can provide cover while well-lit areas represent a difficult challenge.
Setting the mood. The quality of light can be used to set the mood, with sunny and bright lighting associated with happy times and brooding light associated with dark times.
Lighting the way. Light can be used to direct the player’s attention. The best-designed levels in video games often make clever use of light to guide the player in the right direction when they might otherwise be lost.
3. Game Art and Textures
Game art is the medium through which the game world is presented to the player. In a sense, all the programming effort that goes into making video games is an attempt to turn game art into something that feels responsive and alive. Game art is an umbrella term that includes textures, 3D models, sprites, particle effects, and lighting.
And yes, it’s a broad area, best to not cover it in this article.
4. Music and Sounds
Unlike in the real world, video game sounds cannot be made by accident. Every sound in the game universe must be added by hand, and it is through layering these sounds that the game world starts to feel lifelike. You also need to be mindful of sounds triggered by the player, by other characters, and ambient sounds that create the game world environment.
As an example, the player accidentally hits a metal object; If it doesn't emit a sound, it doesn't feel natural or the scientist who claimed that metals have sonorous properties got it wrong.
Another ever-present fact of video games is music, used to create an emotional response in the player or removed entirely to leave behind an eerie silence. Unlike most compositions, video game music must loop seamlessly. It must also transition smoothly to new compositions based on in-game events, such as being spotted by an enemy.
Here are some of my favorite places to find sound:
Soundcloud
Fesliyan Studios
Bensound
5. Programming
You have made graphics, levels, and everything but the whole game feels like a dead body. If you want your game to be alive, you need some lines of code.
Most of my readers are probably a developer already, so you probably know the importance of programming anywhere I'm not going to give a lecture on "what is programming", but here’s a bit about programming in game design.
First of all, you need to decide one thing: Are you making a game by using a Game Engine + Language or building a game from scratch with Python or something? It's your choice but let me help you: If you're going to build games for fun, choose the first option because it's easier. As I said in the beginning, programmers always juggle complex problems so you probably shouldn't take more stress with that too.
(Game Engines are the software used to create video games.)
There are many of them, but the most popular ones are:
Unity (Great for beginners, recommended)
Unreal Engine
Godot)
Next, choose a language to get started. Mostly, C# and C are used. Don't worry, you already got a headstart in knowing at least one programming language; most people start even before they know what the word “programming“stands for.
And that’s about it. Well, of course, there are many other optional ingredients that video games consist of but in general, the above are basically the starter pack.
Conclusion
Starting game development is easier for software developers than anyone. As someone with programming skills, you have a massive head-start on the average video game hobbyist who wants to learn how to make a game. If I scroll to the top of the article, I can list the below points as key takeaways.
It's a lot easier to find a game dev library in your comfortable programming language to get started.
Start with a small game, maybe a clone of an existing game.
Game Engines make your life a lot easier.
If you want to make a big, impressive game but don’t have a lot of time to spare, consider teaming up with others or joining a modding community.
After considering all of these, all I have to say to fellow software developers is, Why not?
And that's all for now, Happy Designing! 🏎
If you loved this article, make sure to subscribe using your email, so you can read all my content inside your inbox without missing any!