Beginner Game Making Advice

I’ve recently received quite a few questions regarding getting started making games, what language I use, is XNA dead forever, etc. I thought I’d publish a letter I sent for others to read as well.

Hey Tyler,

First off, I’ve used XNA Framekwork 4.0 and C# language for all my games, Chasm included. C# is not going to die anytime soon, and as a matter of fact, its popularity is only growing. Yes, future development for the XNA Framework has been cutoff, but that doesn’t mean it’s dead by any stretch. People will be able to play XNA games for years to come on their Windows desktops, and on other platforms via Monogame. The media like to sensationalize things to get hits, so don’t buy into all the hype.

I am a completely self-taught programmer outside a couple intro high school courses. One thing you should realize: programming is a skill, game design is a skill, audio & music production are skills, writing is a skill, on and on.. Game making combines all those skills! Now compare those skills to other skills like woodworking, carpentry, masonry, etc. You wouldn’t expect to just cut down a tree and make a sweet boat right? Well, unfortunately, the same thing applies to games. The only way to get good at making games is to work non-stop on all of those different skills. It will be especially hard when you first start because you have refined taste of what a good game is, and you won’t make good games. Just remember that over time, like that woodworker, you will make better and better stuff as you improve your skills.

The language you make games with is not as important as you think. The concepts of how games work (algorithms, data structures, etc.) are not language specific. It’s not learning the skill of “programming in c#”, it’s the skill of “breaking down problems in a way that a computer can solve them, then typing that in with a certain syntax” (C#, C++, lua, python, etc.). The difficult part is the first part, not the second.

Don’t start off trying to make your dream game. Remember, game design and programming are two different skills. Focus on the programming first. Use other people’s designs that are proven to work: start with Pong, then make Breakout, then make Space Invaders, then make Tetris, then make a platformer like Mario. If you can make all those games, you can pretty much make anything you can dream up.

I highly recommend reading Tommy Refenes Gamasutra article on getting started making games. I agree with 100% of what he said, so hopefully I didn’t repeat too much of that.

Best of luck to you Tyler!

-James

  • macrotech

    Awesome post, I couldn’t agree more, especially with the part about “knowing how to make a computer do certain things” being much more important than “knowing language x or y”. Having said that, it’s obvious to me that Microsoft retiring XNA and pushing HTML5 for Win8 development is not a good sign for C#.

  • Sylvain Pypebros

    “Don’t start off trying to make your dream game.” — agreed.
    “Focus on the programming first” — Game-Maker and similar software allow one to do the opposite, don’t they? Beside, when you focus on the programming first, try to keep things simple at the start. The ideal environment would be a “virtual machine” that free yourself of nitty-gritty rendering details, for instance.
    “start with Pong, then make Breakout, then make Space Invaders” — I wouldn’t necessarily enforce that order on people, but the key point is “start small”. I love to pick elements of my dream game and wonder “how can I summarize that into a mini-game that could be fun to play?”. It made me progress much more in game development than every 1-level technical demo I had ever made before.

    • http://twitter.com/DiscordGames James Petruzzi

      The thing with Game Maker is a tough one for me. It will let you focus on your design skills before taking programming seriously, but I’m not sure if that’s really a good thing in the end. I’d argue that if you really want to be a game maker, you need to learn programming before you really even start making games. Game Maker as a tool though is awesome.

      The main reason I suggested making those games is that it gives you a clear path of progression. I tried to go the “dream game” route for years and wasted a bunch of time making bad designs. It did work out for me in the end through sheer persistence, but I really wish I would have stuck with clear and attainable goals :D

      • Sylvain Pypebros

        “it gives you a clear path of progression” — true. But that path is artificial and won’t necessarily lead you towards being ready to make your dreams get into reality. Tetris, for instance, involves a very different kind of game logic that -say- Hero Core. It’s a good step if you’re planning some puzzle games at some point, but otherwise, it sounds very much like wasting time to me. If one is planning an RPG as his ultimate game, then a top-down shooter like Berzerk could be a much more valuable stepstone.

        “I tried to go the “dream game” route for years and wasted a bunch of time making bad designs” — now that’s a part I’d love to hear more about. Have you finally identified what was drawing you back in these years ? too many assets ? overcomplicated code ? lack of share-ability ?

        • http://twitter.com/DiscordGames James Petruzzi

          To me, learning how to solve a wide variety of problems is much more important than just focusing on making one type of game. If you give yourself a wider range of problems to solve, you will become better and more versatile in the long run. Like Heinlein said, specialization is for insects.

          Pie-in-the-sky scopes, lack of coding ability, un-prototyped core designs, etc. It’s easy to make a crappy, unfun, or absolutely massive game design.. anyone can do it :D

          • Sylvain Pypebros

            okay, for one who intends to become a professional game developer, that makes perfect sense.