Roadmap to Game Development

Riya Jain
Nerd For Tech
Published in
7 min readAug 10, 2020

I’ve always believed that hobbies become skills when you stop being a user and become a creator.

That was my motivation to start exploring the game development field. When I entered my B.Tech, I didn’t know much about any technical field, but I was keenly interested in the games and was always curious to know-how are all these games created. If I am in love with something, I want to learn how to craft it with my own hands.

Game development is challenging — but not as challenging as you may be thinking. That’s because all you need nowadays is to sit in front of your computer, open a series of random videos on YouTube or spend two pennies in an online course and you can start creating whatever the living hell you want.

Introduction

I don’t have the dishonesty to say I’m a game programming master. I’m still a beginner who’s trying to learn more and more. But I hope this will give you enough grounds to start your journey if you’ve been thinking about game programming at any point in your life.

First, you need to set a clear goal for what you want to achieve. You don’t necessarily have to make money out of it. It could be a hobby, just like it is for me. Perhaps you want to learn how to use Unity in the next six months. Whatever your wish is, follow that plan until you’re happy with it. Also, I’m not a fan of strict to-do lists, but you might create a list of goals to help. Just adopt any approach you believe may work for you, and I’m sure you will be off to a good start.

Playing the game makes it seem so simple but creating it, gives you a lot of clarity.

Lemme tell something about how I started creating games. The first game I created was a snake game that was used to be famous for some decade. I developed it using the Pygame and Turtle module of python, which is a Python framework, made purposely for game development. But I also faced some difficulties.

Finally, after a bunch of tutorials on YouTube and following up on the documentation, I managed to create the game. When I made it successfully, I felt more confident and I started building some more games like Space Invaders, Hello Bunny, Mario, etc.

Although Pygame’s effectiveness is not as high as Unity or some other game engine, it is a raw process it will most likely teach you all about the bare structure of game design — how animations work, how you draw images on the screen, how to import assets.

Prerequisites

One thing everyone should know is math. You don’t need to know advanced math to be a game programmer. But yeah, you need to think logically. Knowing math helps.

I would also recommend having a good knowledge of at least one programming language because it will help you to be clear of the syntax, structure, and the very useful concept of classes. I would recommend starting to code with Python, not just because of how simple its syntax looks and how easy it is to understand but also it is a well-growing language having tons of modules that can help you kick start in game development. Ultimately the choice is yours.

Language

Shortly after this journey, I found out that Python isn’t exactly the most polished language to program games.

C# and C++ are both derived from C, which is a powerful and complex programming language. Although it is a simplification, all you need to know is that the main difference between the two is in how they handle classes, objects, etc.

C++ is recognized as the industry standard. It is also the language you need to learn if you are planning to program in Unreal Engine. C#, on the other hand, is excellent for beginners and is fully supported by the Unity Engine.

Which engine to choose?

Unity, Unreal, Godot are all game programming engines. Unity is much more user-friendly than Unreal, but it doesn’t handle graphics in the same way. Unity is now working to change its rendering pipeline and make it easier to work on photorealistic graphics, so the differences with Unreal might be thinned out soon. Still, Unreal helps with stability and performance in big games, while Unity is perfect for smaller and lighter games, including mobile. In reality, the engine you build your first game on is probably not critical, so my advice is just to pick one and go with it.

What did I choose?

I chose Unity with C#. I think it is adequate for newcomers to this area for two reasons: It has a LOT of resources and a great community and second it uses C# that can be used to not only create games but a lot of other applications.

Unity is a great tool for prototyping everything from games to interactive visualizations. It gives you a very raw product out of the box but is highly flexible, well-documented, and highly extensible to build pretty much any genre of game you can think of. Unity has full support for VR and AR and hence could be a great tool for exploring architecture, automation, and simulations with clients.

But the best aspect of working with an engine is the way it handles most of the basic principles for you. When I was programming in Python, I had to program my own engine on the way, setting up collisions and animations myself. Unity does most of that stuff for you, and you only need to know how to set everything up the way you want it to work.

Of course, the interface may look obscure at first, and be ready to face a steep learning curve. Any Unity project starts with nothing but a game camera — only the developer can add in all the rest. And that blank canvas can be as frightening as a blank page in Word. But it’s easy to get over that first fear.

How to develop your first game

After all this, you will have the tools, possibly the skills, and it is finally time to jump onto something exciting. How do you make your first game?

Well, there are a few things to consider. If you’re creative, you will probably be exploding with ideas at this point and your hands may be itching to work on your own, big game on Unity. But don’t aim for the moon just yet. Start small. As in, very small. Make very simple projects with very simple assets (even basic shapes will do).

Everyone will tell you that learning to program is like building a house. You need to put all the foundation and floors in place before you can think of the penthouse and the roof garden.

Don’t go for a randomly-generated RPG from the start. Start with a simple idea and evolve your skills from there. Your first projects will help you practice, and there is nothing like seeing your game coming into shape as you bash lines of codes one after the other. Even a good single-screen arcade game can motivate you to keep moving.

Anything with the right mindset, any idea can be turned into a game. If you’re not an artist, don’t worry about the assets. You can always get some from Unity’s own asset store. If worse comes to worst, you could always consider Pixel Art. With a bit of practice, it won’t be hard to create something you can be proud of.

Advice For Newcomers

To make a game, you must go through the 5 stages of game development: Design. Art. Code. Audio. Polish.

If you’re planning on writing your first game, don’t underestimate the complexity and time it takes to write even the most trivial of games. Remember most of the games that come out on Steam have teams working on them for years full-time!

Pick a simple concept and break it down into small achievable milestones. It’s highly recommended to separate your game into as small independent components as possible, as you’re much less likely to run into bugs if you keep the components simple rather than monolithic code blocks.

I still have so much to learn and my adventure with game programming is far from over. But, when I look back at what I was doing a year ago when I barely knew what a for loop was… Gosh, if this all feels different now.

I am now developing my first game. I was planning to tell you more about it, but this may not be the right place nor time. Just know that thanks to the internet and pretty stubborn perseverance, I now have some basic experience of developing a game.

Thanks for reading! Don’t forget to clap for this tutorial if you liked it and follow me here on Medium if you want to see more in the future!

--

--

Riya Jain
Nerd For Tech

I am a B.Tech. Undergrad and loves programming. Scholar at Google Women Techmakers and currently exploring different tech fields.