Can you remember what your first coding project was? well, I actually can….
I was an eleven years old game addict little kid who had some crazy ideas in his mind. I wanted to make a game! and the game I was going to develop would have been the best game ever seen. Something nobody would have ever imagined of. How could all those millionaire companies like Rockstar, Bethesda and Square Enix not be thinking about making such a great game like the one I was going to make?
And then I started, I grabbed my dad’s laptop and I started to search on the web how to do that. And what eventually I came up with was this:
A visual basic express IDE on, I heard it was easy to use and so I thought it would only take minutes for me to make a game with this.
I was wrong….
Not only I discovered that I had to learn to program first in order to make a game, but I also learned that making a game was incredibly hard. But I wasn’t going to drop, I wasn’t going to fail on my mission of creating the next game of the year. And after a lot of copy/paste and internet navigation what I came out with was something like this:
It was just a couple of years later that I would have then started to really dig into programming by reading books, writing C++ code and using online resources. I completed a lot of small projects and even made some games I created using GameMaker studio and other great tools.
That little kid experience I had, plus all the project I made, either games or classic ones made me realize something very important:
One of the most important factor one learning to program is what project you will be able to implement using a certain language and, how quickly you will be able to implement them.
Which basically translates into:
no matter how passionate you are about coding and how strong your desire is, if you don’t implement some cool projects you will soon lose the will to go on.
This is also the reason why I think some languages are better to start for a beginner, because they provide many ways in which you can use them in order to create cool projects and learn. And that’s where games come into play: they are a fun, visual entertaining way to learn to program. And now the offer online for learning how to create games in an easy way is incredibly higher than when I started. You can use game engines, online coding tools, create games and compete with other players, mod your favourite game, the offer is incredible and everyone can cherry pick the best option for them.
And this is the point of this article, to explain to you how to learn programming by making games! how you can use this medium to create great adventures while learning to code and still having fun! but first, keep in mind that I would like to clarify a couple of things before going on with a showcase of all the tools you might use:
- Making games doesn’t mean playing games: what I mean by saying this is that programming a game is very different than playing one, you are still a programmer and so you will still face bugs, configuration problems and other classic obstacles that everyone before you faced and is facing every day.
- Making games will necessarily require to learn other stuff: if your target is to only focus on programming then games might not be for you. Keep in mind that making a game will require you to learn things that are separated from programming, like sprites, how animations work, the game loop, collisions etc. So if you only want a raw, terminal-like experience with a programming language then you might reconsider the game option.
This guide won’t be helpful only for people who want to start to learn programming in 2019 by making games but also for people who are already developing them and that might discover some new tools here.
GameMaker is a game engine built with the intention to bring 2d game development to everyone out there willing to learn it.
You will be able to build games using either its drag and drop system (which is great to learn the fundamentals of programming) or its built-in programming language called GML. With GML you won’t only learn to use a programming language but you will also be able to expand a game to your will. There are great resources out there including:
- Game maker learn section
- This two beginner books for making games using drag and drop: here and here
- This book to learn how to use GML
Code Combat is an online platform that follows one simple purpose: to teach everyone to code by creating engaging games. There are different sections, each one dedicated to a particular aspect of development, and if that wasn’t enough, Code Combat is also an open project that will allow you to build your own levels, modify games behaviour and help other people to grow.
The Unity game engine is not only of the most advanced, feature-rich tools for both 2d/3d game development out there you can find, but it’s also been used for literally thousands of game out there. Many of them even became very famous.
With Unity you will be able to build games using the C# programming language, which, after some practice can be used to create pretty complex games. One of the best parts of this tool is also the number of resources out there you can look up to in order to learn it, here are some of the best:
Here is another killer game engine you might want to start using. Unreal engine is an industry top level game engine that was involved in creating incredibly successful games out there. You will be writing C++ code in order to meet every ambitious idea you might have about how a game should be done.
With a full package that will make you able to ship a quality product from the beginning up to the final stages of development, Unreal Engine is for sure one of the best solutions out there especially for more experienced developers. But don’t be discouraged by its complexity, Unreal also offer a great visual system called BluePrint used to create games without coding skills!
Here are some of the best resources to learn it:
CodinGame is a challenge-based platform for developers that want to improve their programming skills by solving fun and compelling game-based problems. It has a great community and support for over 25 programming languages. With CodinGame you will also be able to challenge other players online and learn new programming concepts in a funny and friendly way. The website also offers the possibility to join in what are basically tournaments where the developer who found the best solution for a problem can receive prizes and be noticed by important companies.
Game development is a funny, visually engaging, and friendly way to learn development. I hope this guide helped you to understand how much power you can find in games and how much they can help you to start learning to code.
Whether you will be practising by yourself, with your little brother, or even with your kid, you will always be able to grow technically while having a lot of fun and maybe on day even decide to publish a game you made!
Stay tuned for more articles, Piero Borrelli