combined Stack Exchange profile for jzx

We get a lot of overly broad questions like "how do I make games?"

#1: Programming is the least of your problems.

Game design is its own skill. You can learn to program, draw, model, write music, all of that, and still have no idea how to make a good game. The faster you can get to the task of making games, the sooner you'll learn how to make them. Not program them, design them. You don't even need to program to learn to make a game - people have been doing it with cards and dice for ages.

So if you were to ask me that in person, today, I would tell you "just use Unity with C#." The worst thing you can do if you want to actually make games is get bogged down in language of engine choice. Actually making a game is more important than making a really fast, feature rich engine nobody will use. Why won't anybody use your engine? Because you would need to market it, and marketing an engine is not making a game.

If you're really dead set against using Unity/C#, use one of the OpenGL/C paths. Target a single platform, and forget about Object Oriented Programming. Even C++ is not an OOP language - it's a language with OOP elements which will only get in your way when you're starting out. Remember: Programming is a separate skill unrelated to game design. Whatever you decide to go with don't get stuck in the hows - build it out of a combination of PHP, Visual Basic, and one of those drinking birds if you must. If you want to make a game, actually make a game.

Everything else is a secondary skill!