Important Links and Software

- Posted by

During the first few weeks of every semester, we throw around a lot of software names and links, and unfortunately we don't keep an updated catalog of everything we have access to. Here's a list of downloads and tutorials for some essential software that you might want to make use of during your time in GCS.


Mercurial is our VCS (version control system) of choice in GCS, and every 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:

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: If you're using TortoiseHg, you should totally check out the tutorial I just wrote!

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: Unfortunately there aren't many good Mercurial GUIs around, but you can see this page for some possibilities:

After you've read the brief tutorial at, you can get a much more in-depth tutorial here:

Visual Studio

If you're developing in C# or C++ on Windows, you'll probably want to use Visual Studio as an IDE. Luckily, as students, you can go to to download Visual Studio 2008/2010 Professional for free! This gets you a student license that will last you through college, but if you're working on a commercial project, you can always just download the express versions.

If you're using Visual Studio for XNA, then you should keep a few things in mind. XNA Game Studio 3.1 is only compatible with Visual Studio 2008. This version supports deploying to Windows and Xbox 360, and is the version that you'll most likely find tutorials for.
XNA Game Studio 4.0, however, was just recently released with support for Windows and Windows Phone 7, but it is only compatible with Visual Studio 2010. It will soon also be able to deploy to Xbox 360 (there's a beta out now:, so I will probably recommend using this version starting next semester.

The XNA Creator's Club ( 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 in Game Studio 3.0: If you run across any Premium Content in the Creator's Club website that you'd like to take a look at for reference, send me an email.


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: It takes about two weeks to process your license, so in the meantime, you can download a trial here:

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. has a good collection of tutorials on both libraries to get you started, and there are additional tutorials on their own websites ( and

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: ,, and


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 ( and, you should be able to read the PyGame documentation ( and get pretty far. Any tutorials on either Python or SDL will help your understanding of how to use PyGame, so it should be fairly easy now that Python is the starting language for CS majors at CMU.


Unity is one of the more popular 3D game engines/development environments around, and luckily we can get the standard version for free. If you go to 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 will take some time for everyone on your projects to become familiar with it. In addition to the built-in video tutorials that come with the download, here are some useful links:,, and

*Unity 3 was just released today, and it doesn't seem to be fully backwards compatible with Unity 2.6. It replaces your old installation by default, so be careful before testing it! On the bright side, it has lots of shiny new features, so we can probably start using it next semester.

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: (this will probably be out of date soon, so just go to 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

And that covers the most common software tools for this semester! Shout out in the forums if you want more links to tutorials (or any custom GCS walkthroughs) for any of the above software. 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.), so post in the forums if you want to know more about them.
And as always, feel free to email me if you have any questions about what technology to use in GCS. Thanks for reading!