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, understand (at least) programming and graphics and to be a creative writer.

An engine developer should understand OpenGL/GLSL or DirectX/HLSL, or both, linear algebra and analytical geometry, at least a programming language (usually C++) 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".

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).

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 and so on for your game.

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.

The work of the music composer (producer/DJ) is to compose the soundtrack of your masterpiece.
If you want to stick with Open Source, I suggest Ardour or LMMS. (note Ardour is not available on Windows and maybe MacOS as well)

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.

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.

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 Godot, which allows you to code 2D and 3D games for Windows, Linux, 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.
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).

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: Godot, GIMP, Blender, PureData and LMMS are OpenSource software and you can fully and commercially use them free of charge.

The only thing you'll pay for is your computer. But hey, if you're reading this you probably have one already.

The easy way

If you prefer to start little, then grow, just start with Godot.

As you learn it, 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, 10 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.

On your own

Despite you're working alone or with a team, you'll find this list of books useful.
Pick one or two, or each, and you'll be jumping in making video games in less than 2 years.
And, just in case you're wodering, YES: you'll find them on the web, eMule or Torrent.
Also, if you're very busy and/or just want a quick'n'dirty intro to game development (but also hacking and more) topics, visit my youtube channel here