Here’s another article from Game Creation Society, where we use several different programming technologies to develop semester-long projects. This is mostly geared for students who already know programming, but want to find out more about game-specific platforms. Even if you’re not a student or programmer, however, this list should serve as a good place to start. The list is biased toward technologies that I’ve already worked with, so I’ll add more as I get more experience!

Flash/Actionscript

Flash is the go-to technology for making 2D web games, and it can be very powerful if you know how to use it. In order to collaborately make Flash games, you’ll need to program in ActionScript code, instead of the Flash CS-whatever environment. Adobe also has decided that giving software to students for free is cool too, so you can actually register for a license for Flash Builder here: http://www.adobe.com/devnet-archive/flex/free/. It takes about two weeks to process your license, so in the meantime, you can download a trial here: https://www.adobe.com/cfusion/tdrc/index.cfm?product=flash_builder.

If you’re planning to make a platformer or a top-down game in ActionScript – especially if you’re short on time or programmers – I highly recommend using either Flixel or FlashPunk. They are ActionScript libraries used for making Flash games with bitmap graphics, and they’re typically used for indie or retro games. Flixel has more documentation and community, but there’s a bit of fragmentation due to different versions, so take a look at some tutorials and samples to decide which one you prefer.http://www.flashgamedojo.com/ has a good collection of tutorials on both libraries to get you started, and there are additional tutorials on their own websites (http://wiki.github.com/AdamAtomic/flixel/ andhttp://flashpunk.net/?p=tutorials).

These are some fairly verbose guides to ActionScript 3.0, so if you’re not feeling very uncomfortable with the language, these are great references: http://www.adobe.com/devnet/actionscript/as3.html,http://help.adobe.com/en_US/AS3LCR/Flash_10.0/index.html, and http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/.

Visual Studio/XNA

If you’re developing in C# or C++ on Windows, you’ll probably want to use Visual Studio as an IDE. Luckily, if you’re a student, you can go to http://www.dreamspark.com to download Visual Studio 2008/2010 Professional for free! This gets you an academic license that will last you throughout college, but if you’re working on a commercial project, you can always just download the express versions from here: http://www.microsoft.com/express/Downloads/.

For making PC, Windows Phone 7, and XBOX Arcade games, Microsoft released XNA Game Studio. It uses Visual Studio, C#, .NET, and DirectX and many developer-friendly tools to help making games a breeze, so if you’re aiming for any of the aforementioned game platforms, I highly recommend it. DreamSpark doesn’t have the latest version of XNA, so you’ll have to go over to the App Hub to download the latest version: http://create.msdn.com/en-us/resources/downloads.

Microsoft’s newly created App Hub (http://create.msdn.com/en-US/) has a lot of sample code, starter kits, tutorials, and active forum members dedicated to helping you get started with XNA, so it’s a great first place to look for help. This is a good introduction to 2D XNA specifically: http://create.msdn.com/en-US/education/catalog/tutorial/2d_chapter_1. Microsoft appears to have eliminated the idea of Premium-only starter code from their App Hub, so registering for full membership is mostly for submitting games that you’ve completed.

PyGame

PyGame is a good engine for basic 2D games, and it’s all free, so you don’t have to worry about acquring student licenses of any kind. Unfortunately, there aren’t a whole lot of great comprehensive tutorials out there, but once you’ve installed Python and the corresponding version of PyGame (http://www.python.org/download/releases/ and http://www.pygame.org/download.shtml), you should be able to read the PyGame documentation (http://www.pygame.org/docs/) and get pretty far. Any tutorials on either Python or SDL will help your understanding of how to use PyGame, so luckily they’re both in abundance on the web.

I would recommend PyGame if you’re just starting programming and are looking for a simple, code-oriented way to develop games from scratch. If you already have some experience in programming, or you’re working on a medium-sized game, I would recommend trying something like XNA or Flash.

Unity

Unity is one of the more popular 3D game engines/development environments around, and luckily non-commercial developers can get the standard version for free. If you go to https://store.unity3d.com/shop/ and select “Unity” (instead of “Unity Pro”), you can download the free version*. Due to the complexity of making 3D games, Unity necessarily has a steep learning curve, so it may take a couple weeks to become familiar with it. In addition to the built-in video tutorials that come with the download, here are some useful links: http://unity3d.com/support/documentation/,http://unity3dstudent.com/, and http://infiniteunity3d.com/unity-3d-scripting-utility-scripts-and-physic….

*Unity 3 was just released recently, and it doesn’t seem to be fully backwards compatible with Unity 2.6, so you might want to be careful when downloading sample projects and following tutorials.

3D Modeling

Unfortunately, making 3D games also has the inherent difficulty of generating enough assets. I personally recommend trying to come up with game designs that avoid needing complex models, but at some point you’ll need a modeling program. Blender is a cross-platform, open-source 3D modeler/animator/renderer/game-engine, and it has a ton of community support. Also, with the recent beta release (version 2.54 and later), it has a completely revamped user interface, so it should be fairly easy to learn. You can download that version here: http://www.blender.org/download/get-254-beta/ (this will probably be out of date soon, so just go to http://www.blender.org and check for the latest release).
If you’re looking for something more powerful or commercially support, Autodesk usually gives out free student licenses of 3DS Max (and sometimes Maya), so try registering at http://students.autodesk.com/.

Mercurial

Mercurial is our VCS (version control system) of choice in GCS, and any project with more than one programmer should absolutely use it. To understand the basic idea behind it, and get a bite-sized tutorial about its inner-workings, you should read Joel Spolsky’s tutorial: http://hginit.com.

In order to actually use Mercurial, however, you’ll need to download a client. If you’re on Windows (or some distros of Linux), I highly recommend TortoiseHg. It is a visual client that you can download here:http://tortoisehg.bitbucket.org/. If you’re using TortoiseHg, you should totally check out the tutorial I just wrote! http://notranslation.com/tortoisehg-tutorial/

If you’re on Linux, just type sudo apt-get install mercurial for the Mercurial CLI. On Mac OS X, you can get the CLI from here: http://mercurial.berkwood.com/. Unfortunately there aren’t many good Mercurial GUIs around, but you can see this page for some possibilities:http://mercurial.selenic.com/wiki/OtherTools.

After you’ve read the brief tutorial at http://hginit.com, you can get a much more in-depth tutorial here:http://hgbook.red-bean.com/read/.

Other

There are plenty of other game development technologies I haven’t introduced (Gamemaker, AGS, Processing, iPhone/Android, Pushbutton, PulpCore, JMonkeyEngine, Blender Game Engine, LÖVE, UDK, Shiva, Torque, etc.), but in my limited time I tried to outline some of the most important ones for students above. Let me know if you have any suggestions for or questions about other development platforms!