How to learn game development

NOTA: Sono Italiano, ma scrivo in Inglese perche' l'Inglese e' LA lingua se vuoi fare QUALSIASI cosa nell'ambito dell'IT.

Main professions in game development

There are mainly 3 figures working in game development, at its core:
1) The programmer
2) The graphician
3) The music composer and sound designer

Still, this can be split into several sub-figures, such as:
(for programming)
1) The engine developer
2) The gameplay logic/AI scripter

(for graphics)
1) The 2D artist/texturer
2) The 3D modeler

(for audio)
1) The music composer (producer or DJ)
2) The sound designer

Finally, there's an all-round professional, which has to understand most of these together, even if not fully: the game designer.
A good game designer should be able to draw well and be a creative writer.
This is a very good book about drawing:
And this is a good introduction to creative writing:
Finally, if the game designer knows some graphics, sound synthesis, music theory and programming, is better.

An engine developer should understand a graphics API, linear algebra and analytical geometry, at least a programming language (usually C++, but I recommend C# and Xamarin for cross-platform development, with the Urho API as the engine) eventually, TCP/IP (for writing network code) and physics (at least cinematics) - note even if there are libraries for physics and math, you'l better know how it works instead of using it because "it just works".

You may find these books useful:


The game logic and AI scripter has to know the higher level engine details well, other than a scripting language (the one used in the engine).
If he's an AI developer, some background of game AI is needed. On this, you may find useful the book numbered 1)

The 2D artist should be a good painter and should be able to work with raster graphics editors, like GIMP or Photoshop, its purpose is to create textures, sprites, tilesets and so on for your game.
The best book about GIMP I can think about is:

The 3D artist should pick reference images drawn by either the game designer or the 2D artist and turn them in 3D models, rig and animate them. So he or she should be proficient with (in example) Maya or Blender.
There are good Blender tutorials on YouTube, I suggest the BornCG channel:

The work of the music composer (producer/DJ) is to compose the soundtrack for your masterpiece.
If you want to stick with Open Source, I suggest LMMS.
A music composer may find these books useful: and

Finally, the sound designer: his goal is to produce sound FX for your game using synthesizers, so for example he should work with PureData (or its commercial counterpart: Max/MSP), analyzing sound samples and trying to reproduce them procedurally.

A sound designer may find useful to read this (free) book:

As already said, the game designer should know enough of all of these, because it's the person who direct the whole development process. He plans a game, draw reference pictures, give ideas on how the level maps have to be created and many other tasks, still being able to interact with the other figures.
A good book about game design is:

Complete team or solo developer

If you want or need to be alone, you'll have to cover all the above mentioned professional figures yourself.

Instead of starting from the ground and studying tons of notions, just learn C# with Xamarin, which allows you to code 2D and 3D games for Windows, MacOS, Android, iOS, Windows Phone and other platforms.
And this goes for the programmer figure.

Then, go on studying at least GIMP and Blender. Learn, in Blender, how to produce 3D models, rig them, animate them and UV-Map them.
Then, in GIMP, learn how to draw textures and UV-Maps (for 3D games) and how to draw spritesheets and tilesets (for 2D and 2.5D games)
And this goes for the graphician figure.

Finally, study some sound design and some music theory and learn to drive a Digital Audio Workstation (I recommend LMMS) and some synthesizers (I recommend PureData).
You may also need to do some post processing in Audacity or another audio editor.
Beside the books about LMMS and PureData I linked earlier, I suggest this book about Audacity:

Once you got every figure as separate persons or cover everything yourself, write a good game design document with drawings, an interesting story, level maps etc and realize it.

Note you won't have to spend a penny for those softwares: GIMP, Blender, PureData, Audacity and LMMS are Open Source software and you can fully and commercially use them free of charge.
You can also learn them for free, as they are quite well documented.

As for Xamarin, there's a community edition, which is free. It can be downloaded for Mac (has its own IDE) and Windows (using Visual Studio).
Note if you're developing on a Mac, you'll also need XCode, which is free as well.
If you plan to develop for iOS and/or MacOS, Apple requires a developer subscription fee.

The easy way

If you prefer to start little, then grow, just start with C#. offers a free eBook about C#, you can apply what you learned from this book to Visual Studio (or Xamarin Studio on a Mac) and deploy to Android, Universal Windows Platform (windows only), iOS and/or MacOS (Mac only) and more.

As you learn it, eventually using Urho API, you'll face problems bound to other areas of game development.

In example, you can code a game where all the graphics are coloured cubes and with no sound, the game will work anyhow.
Later, you can replace your "programmer art" with something more appealing, then you can add sound and music, textures, particles, and so on.
Nowadays is not impossible to code even a full 3D game alone, tools are powerful enough.
Just balance efforts (you won't write the next Unreal Engine alone in less than, let's say, 30 years).

Having a simple game, even in 3D, with coloured cubes instead of 3D models may seem silly, but once you've something to show (even if ugly), it will be simpler to find collaborators for your game.

Other online (free) resources

You may find it useful to have a look at my YouTube channel:

There are playlists about Gimp, Blender, Audacity, LMMS, game design, PureData, creative writing, drawing and C#, and more topics.

Unfortunately, some playlists are in Italian.

Note about Urho API for Xamarin

Beside being cross platform, Xamarin provides a full featured 2/3D game engine, called Urho.
It includes networking, physics, basic AI and user interfaces, other than a very good graphics API.
Urho works wherever Xamarin does, so it's a very good choice.

Get the Open Source software and related documentation