I have been playing video games since the NES days. Contra, Battle City, Arkanoid and what not. This fact alone makes me feel old, but at the same time puts me in a position to talk about video games as a part of my life, not as a mere past time, but something that I have pursued passionately for a long time.
Since then, video games have come a long way and so have their development processes. During the beginning of video game creation, a single person was usually responsible for everything from concept to coding and had to be one hell of a coding whiz to actually bring his ideas to fruition. Nowadays, with newer coding languages and gaming engines, things are thankfully a whole lot easier. A single person now can make much more complex and much more beautiful games relatively easily, turning their ideas into reality. That’s why you are here right? You have an idea for a game and want to make it real. Well, read on then to know about how to make video games on your own.
First step: Document your vision of game
‘An idea is bulletproof.’ Yeah, pretty much. But, unless you put that idea on paper and let your creativity flow in the realm of the tangible, it would remain just an idea. To give it a concrete form, you have to put it into an organized document that can act as the reference all through your process of development. In the case of game development, it is called a Game Design Document. A GDD in it’s simplest form (and most useful form) is a document that contains the entire vision for what you want your game to be. It is not supposed to be beautiful, well-formatted or colorful, rather it should be functional and give the developer a clear understanding of what they are going to make/ are making. If it’s just you in your game development ‘team’, your GDD could just be a collection of hand-written notes and rough sketches for the levels or worlds of the game. But, in the process of making a video game, it should all be there. It’s very much like that anecdote: ‘If you are given four hours to cut down a tree, spend the first three sharpening the axe.’
What’s the scope of your video game?
Another crucial thing to get down early on is the scope of the project. How many levels do you want? How many characters? Does your game need a server? Being too ambitious is a classic rookie mistake. Know your limits and set a realistic target for the game that does justice to your vision of the game. Things like adding more levels are possible through updates later on so don’t stress on them too much in the beginning. Rather you should focus on making your game reach the players and gauging their response. Alright, so now you have your idea set on paper. Not stone, paper, so it can be changed. Did you think of something really cool? Great! Just make sure that the changes are reflected in the document.
Well, how to start ‘making’ the game? Which programming languages to use?
Now, on to addressing the elephant in the room. You don’t know how to go about making the thing. Your idea is on paper and there is something that sounds like a plan in front of you but you don’t know where to start. Though a lot depends on the requirements of your particular game, like you could get away with no coding at all using GameMaker like software, but learning a tool that could give you the freedom to make anything and everything is a safer bet. I am sure your hunger for game making won’t be satiated by just one attempt, and you would get more ambitious and then would have to ultimately learn the better tools, so why not start with that. The freedom to make any game is possible only through learning the art of programming.
Learning to code can be a real pain in the rear, and people just stop after googling for the best language to learn. The reason being too many opinions and all the answers being correct in their own way. So you want to learn to make games and probably want to get started quickly too. In that case, you should focus on learning the concepts of a language in the frame of game development. It’s not like any language is tailor made for games, rather general purpose programming languages have certain features that make them more suitable for games than others, C# being a prime example. For hobbyists, professionals and even people willing to switch roles in the industry C# is a safe bet. XNA is the software using which games for the Xbox360 were made uses C#. On the other hand, all the AAA game companies work on their custom game engines which are almost entirely written in C++. Hence, you can’t go wrong with C++ either, especially if you want to work in the industry. But for those getting into game programming as a hobby, I would recommend C# over C++ because C++ makes you do some nasty work yourself that C# does for you, which makes life a lot easier for developers like us. The other major reason is- Unity3D.
Which game engines to use?
Unity3D is a game engine which is freely available and uses C# for scripting. The free edition has everything that you would ever need to make your game/games. Follow the tutorials on their website and you would be on your way quickly. And there are rapid updates that not only improve existing features but also add new features and sometimes also the ones that were paid earlier. Another big plus is that the community is huge and highly supportive. Stuck somewhere, search the Unity forums and it’s highly likely that someone was there before you. Obviously, I am not being paid by Unity to write any of this, I am a user and a fan like thousands of other developers out there. Unity3D is the dominant game engine used in the industry right now. It’s direct competition and a distant second in popularity is the Unreal Engine by Epic Games. Yes, the legendary studio behind the Unreal Tournament series and Gears of War offers their engine for free, amazing, isn’t it? Not only them but CryTek, the makers of Crysis also have their engine the CRYengine up for grabs for free. Beautiful times.
For those who took the C++ route above for making video games have a lot of open source choices available to them. But to actually take advantage of the open source-ness you need to be well-versed in a lot of things. Also, tutorials for each of these engines may vary in quality and quantity so beginners should only gravitate towards the popular ones that have huge support from the community like Cocos2dx. For C++, Unreal Engine is another great choice but it is not widely used in mobile game development, though the community and tutorials are sure catching up to Unity. Yeah, about mobile games, all the engines that I have mentioned let you easily make builds for Android and iOS and many other platforms. Just go ahead and code your game and you can let the world play it on every platform you want to.
The last thing you need to start making video games is- perseverance. As soon as you learn the engine and the language, you will try to prototype your idea and develop the ‘uber-cool’ and ‘fresh’ game mechanic that you have thought of. Getting it working would make you ecstatic. But that is only the first step. That is just the proof of concept. You will have to devote time to make the not so fun parts of the game too. The user interface, the audio system and maybe the social features. Be prepared for that and remember that in the end, a game is a piece of software. It is fun to play, but it is not so fun to make every part of it.
So, what are you waiting for? You have the document, and you have the tools. Shoot for the moon. Get working on your game right now. If you have any questions for me regarding how to make video games, comment it down below, and I will answer them to the best of my abilities.