So you want to make your first game? Sweet! So did I about a year or so ago, and I felt like I should share some of the lessons I learned along the way. There are many many well written tutorials on getting started in programming your first game, but I don't recall running across any "building your toolbox" or "having reasonable expectations" kind of tutorials, which is what I will try to accomplish here. First, I want to share my project with you, hopefully you can learn a bit from it:
Game, source code:
https://sites.google.com/site/outputredirectionfilehosting/e384.7z?attredirects=0&d=1SVN repository:
https://csb-gm8-sidescroller.googlecode.com/svn/trunkMusic in the Game was created by George Buzinkai
http://buzinkai.net/index.php?page=music and used with permission.
TLDR takeaways:
- Don't be afraid to spend a *little* money on tools that work for *you*
- Art is hard. Unless you're a pretty good pixel artist (or are *really* good friends with one), keep your graphics simple. Don't expect your first animated sprite to look like Ryu from Street Fighter 3!
- Color is hard! Once again, unless you are an artist (or genuinely want to focus on graphics) - stick to simple stuff. Monochrome or 8 shades of one or two colors. Keep it simple or plan on spending a lot of time working on art. Really... a lot. If I had had any idea just how much time I would spend doing tile & sprite work because it was completely new to me I wouldn't have messed with color at all.
- Music is hard! My advice: Find some music, ask permission to use it, and just use it. Or, since this is your first game ever - forget about music and focus on mechanics.
- Keep your first game simple, have a plan, don't get (too) discouraged, and learn learn learn!
So, first things first, you have Game Maker (
http://www.yoyogames.com/gamemaker) installed right?
This is just my opinion: Do yourself a favor and just fork over the cash and get the pro edition. It's only like $25 or so (though I think they're planning on upping the entry fee to $40 something for 8.1, greedy buggers) and unlocks some really handy functionality, like image_angle.
Next up - how to make the graphics? If you choose to keep things *really* simple the sprite editor in GM8 may be all that you need, so don't go out a drop $500+ on Photoshop cause your buddy told you to! There are a *lot* of image editing programs, some free, some not so much, and I won't presume to declare any one better than another for this purpose. What I will do is simply recommend that you try before you buy anything. After a few weeks of fiddling with numerous different image editing programs, I settled on Cosmigo's Pro Motion (
http://www.cosmigo.com/promotion/index.php). After looking up some tutorials and figuring out the keyboard shortcuts I found that it did what I wanted almost how I wanted it to, and I was feeling a bit flush so the $80 didn't sting too bad. If you need a place to start try this wikipedia article,
http://en.wikipedia.org/wiki/Spriting#ToolsWhat about sound? Your game will be awfully quiet without some sound effects. Go get SFXR (
http://www.drpetter.se/project_sfxr.html) and start making some sfx! There's a more feature rich program dubbed BFXR (
http://www.bfxr.net/), but it comes with an increase in complexity and a slightly steeper learning curve.
OK then, we've got an IDE tool (Game Maker), some kind of image editor (remember to try different programs until you find one that works for *you*), and a sound effect generator (SFXR/BFXR). Time for possibly the *most important tool of all*,
backups! If you're a seasoned coder you probably already have a favorite method for source control. If not, however, do yourself a favor and install TortoiseSVN (
http://tortoisesvn.net/downloads.html). A proper discussion of source control methods is well beyond the scope of this 'from a beginner to other beginners' tutorial, but suffice it to say that source control is essentially a method of keeping versions of your project that you can go back to if you royally screw something up! Here's a nice quick start tutorial for getting your source control project up and running:
http://www.cs.ubc.ca/~vailen/svn_howto.htm. A decent free SVN host:
https://www.assembla.com/. For a more comprehensive list:
http://www.svnhostingcomparison.com/. Now, unless your hosting your SVN repository on a separate computer (which you should be), just having source control setup doesn't keep all your hard work from evaporating if your computer craps out on you. So don't forget to have multiple copies of your work and back it up regularly.
Alright, that's a good start on building our game programming toolbox. It's certainly not complete yet, but it's a good place to begin. So now, check out my game if you feel like it, and get started making your own! A great place to start reading up on the actual programming part:
http://forums.tigsource.com/index.php?topic=3142.0