This is a good start http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy...
Source - Just finishing up this game https://store.steampowered.com/app/1058510/Zunius/ Art, code, music and sound done by me
Drop me a line a leonf at coafresearch if you want to chat further
- Game design
- Map / world design
- Environment art
- Modelling
- Substance / surface specialist
- FX
- Animation
- Sound
- Gameplay programming
- More technical forms of programming, like graphics, core engine, sound, networking, AI, etc
Or do you just want to expose yourself to the all the parts of creating a game?
Depending on what you choose, your path will be different.
Examples of game design paths:
- Design the mechanics for a card game (think Magic the Gathering). Create enough example cards for two decks. Get some friends to play. Write up an analysis of how the game went and learn from it. Iterate and continue to learn.
- Download Unreal Engine 4 and make a single- or multi- player experience. It should use a few core mechanics that are interesting and fun even in repetition. They should make people want to continue playing and discovering. Don't worry if the game looks ugly -- just use the free models, textures, FX, sounds, etc available to you. Do lots of playtesting, iteration, reading, and learning. If you're not a strong C++ programmer, use UE4 blueprints.
- Make a gamemode for Garry's Mod. Like above, focus on making it fun.
Example of map / world design paths:
- Pick a favorite game that has community map tools. Make a map for it. Playtest, iterate, learn. Don't worry about making it look pretty. Map design is like game design -- it needs to be fun long after the "wow" factor has worn off.
Examples of gameplay programming:
- Download UE4 and make a single- or multi- player experience. Focus on creating some technically advance mechanics, like wall climbing mechanics (ala Uncharted or Assassin's Creed), or some fun physics-based mechanics, like rockets, or spells, or explosions. Look at the game Control [2] -- it has some great examples of abilities that would be good for a gameplay programmer to recreate for learning purposes (though, design-wise, I think these abilities have a lot of problems).
- If you're not a strong C++ programmer already, consider Garry's Mod or UE4 blueprints instead.
For more technical forms of programming:
- Write your own engine. Focus on the parts you want to learn. If you want to be a graphics programmer, don't worry about a physics engine -- just focus on the graphics code. Make it look good and perform well.
As for modelling, environment art, substance creation, FX, animation and sound -- I'm not familiar enough with these fields to give good advice. I do know that it's important to focus on the field you want to learn. There's lots of few tools available for these artistic fields, such as Blender and Houdini Apprentice. For sound, see [0].
If you have a vision of a game you want to bring into existence and simply want to make it so, prepare to make compromises. You want to start small. In game dev, we call it "low scope." Get To The Orange Door [1] is a good example of an achievable vision for a lone highly-skilled individual. The models are low poly, the animations are simple, the art style is simple which makes substance/surface creation and graphics programming simpler, and the core game loop supports the addition of new mechanics (like a new gun) without the work ballooning out into something like "oh now we need to modify every enemy to know how to act when being attacked by this gun."
You can achieve a lot by yourself. You just need to choose your battles well.
[0] https://instabug.com/blog/game-audio-tools/
[1] https://store.steampowered.com/app/541200/Get_To_The_Orange_...