Years ago, I thought about how does game development work, what do you need to know and how to start. I tried to start developing games but never really got into it. It’s hard to start without any clues, Google hasn’t got the right answer for me. I found a lot about developing games but not the right beginners guide. Due to my studies and some projects I’ve now the right overview. I’ll try to provide this overview and the right clues, for everyone who is interested in game development, with the articles “How to start game development”.
A difficult start
At first, you had to learn how and with which tools a game is created. Years ago, a bunch of people produced some lines of code and the game was ready. Nowadays, the games industry is a multi-million dollar business, the turnover is higher than in the music and film business. A lot of tools are necessary to create a game. Countless people are involved in the development process, lasting several years.
But this doesn’t mean that one person or a small team isn’t able to develop a game anymore. You had to answer an important question at the beginning: Am I a graphical designer and want to draw and model worlds and characters or do I want to develop game mechanics.
This series of articles covers the second choice. Before you go into detail, you had to realize that you can’t gain the required knowledge overnight. My first and probably most important advice is: learn how to program. If you want to deal with game engineering, you can’t avoid programming. Get in touch with tools and engines without basic knowledge in any programming language, makes not much sense.
Which knowledge do I need?
I recommend to gain basic programming skills, for those, never learned something about programming. This basics are language independent. The opinions differ about which is the best language to start programming with. With Java, I started directly into the world of object oriented programming. Learning other languages, especially C and C++ was a bit difficult for me. My tip: start with C, with this language you`ll learn all the basics without unnecessary overhead and all the annoying object oriented stuff. In studies of computer science, you’ll mostly start with C. Later on you are able to learn additional languages more easily. Of course you can decide which language you prefer.
To give a short overview, I’ll describe some of the languages in matters of game engineering.
Java: Of course you can develop games with Java (e.g. Minecraft) but Java is not widely-used in PC and console environment. Java is good for mobile games, especially on the Android OS. Java is running in a virtual environment on almost every OS but it is harder to access necessary resources and also optimization concerning hardware and OS is limited.
C# is similar to Java, a change between this languages is quite easy. C# is used as scripting language in some engines (e.g. Unity 3D) and offers an own framework for 2D and 3D game development, called XNA. XNA or the Microsoft GameStudio for Visual Studio allows creating games for PC and Xbox (Xbox and Xbox 360). XNA couldn’t prevail on PC (Terraria is the most famous XNA game) but for Microsoft consoles, it is the only way to develop games. How a shame that Microsoft stopped the support of XNA under Windows 8 and also denied the use of XNA for the upcoming Xbox One. This means, you are bound to Windows 7 and Visual Studio 2010 and of course the actual console generations.
C++ is THE language in game engineering and there is hardly any chance to avoid it. The first reason is, that most of the scripting languages are based on C and the second reason is that most of the common PC engines are written in C++. Also development for Playstation and the Nintendo consoles is done in C++. But this doesn’t mean that you can’t develop a game in any other language.
In the next article I’ll describe how to get in touch with game development.