I get a lot of questions about how to get started making games and figured this would be a good place to chat about it.

(actually I'm pretty sure I've written a few things like this before, but hey, this is the updated version then)

Should I make games?
EVERYBODY should make games.

The same way everybody should try writing stories, drawing, singing, and playing the guitar. The difference is, with making a game, you can do ALL OF THAT STUFF and put it in the game!

It's the ultimate creative outlet. You can make something with your own essence inside of it and share unlimited perfect copies of it with everyone.

Yeah, whatever, will I get rich?

Well... because it's so easy to write games these days, even making good ones doesn't guarantee that anybody will want to buy it. It's the same thing with starting a rock band - the odds of "making it big" are small, but who cares, you're in a rock band! That said, it's certainly not impossible to invent the next Tetris but, well, cool your jets and do it for fun first. The whole experience of marketing and submitting to stores and publishing is kind of a headache that saps the fun out, I wouldn't worry about that until much later.

How do I get started?

To tie together all the stuff you create you need to "program" - tell the computer the rules and how to show stuff. Naturally there are a million ways to do this (different languages and tools) but these days here is how I recommend people get started:

For very young kids, Scratch might be an easier place to get started but be warned, it's a dead-end once you get into more complicated stuff.

What is Unity?

Unity is a free program (well, you don't need the Pro version) that helps you make games. You just need a Mac or PC and internet access. With that, you can write 2D and 3D games that run on most platforms, even in web browsers so it's easy to make a game called "Punching my uncle in the face" and send the link to your uncle, or whatever.

This means learning to write code in C#. There are thousands of youtube video tutorials out there to help you learn it. If you've got money to burn, this Udemy course is good too.

What languages/programming environments do you use?

I use a lot of different things. Unity, Unreal Engine, C++ with Open GL and more. Once you learn one programming language, the knowledge lets you jump around to other languages as needed. Don't worry about picking the "right language", it's more about picking the correct tool and language for the job at hand. Stay flexible and jump around.

What kind of game should I make first?

You've gotta start simple, hone your craft, then little by little make more complicated things. I know it sounds boring, but you can't be a pro weightlifter by starting with the heaviest weight, right?

After you do a bunch of tutorials, try making some simple games that only take a few days to do. Don't get mired in a fifty year Grand Theft Auto clone first because if you hit too many stumbling blocks it will take you a year to learn what you would've in only a month.

The difficulty of making your game has to match your current skills - too easy, and you learn slow, too hard, and you learn slow.

I try to add one "unknown" or "new thing I don't know how to do" each project - so I'll keep learning but not get stuck too bad.

What is the cycle of progress?

There is a pattern I see for people who get good at game making and stick to it:

  1. Make a game
  2. Put it out there so people can see and play it
  3. Get energy from the comments and feedback
  4. Go to 1

If you don't release, you don't get the cycle going. So show your work (at least to friends and family), no matter how bad or broken it is!

A note on security and viruses

Unless you REALLY trust someone, don't run their .exe game. It's safe to run a web version though, so this is why I recommend Unity, it can output the same game both ways.

Help, I have a question or I got stuck!

Join these forums and ask your question! We'll try to help. Finding a small group (forums, discord, IRC, etc) is key.