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