Getting ready for a Game Jam!

What Programming Tool should I use for a Game Jam?

Game Maker

Game Maker this is the easiest tool to learn and use to create a game or a prototype for a game. The application is really two programs: the first one provides a drag and drop user interface to create 2D platform games, the second is the actual game engine that takes the game maker's specifications and scripting code and runs a smooth fast game. There is a free version available that provides key features at YoYo Games. I highly recommend parting with $39 and get the professional version.

I am currently learning how to use the tool to create 2D games. It does provide a scripting tool and I have an extensive review of the latest book I worked through to become familiar with GM in the Game Design section. Using this tool all you would need at a game jam is a one good programmer, designer, level editor, graphics artist and sound person. I find many groups use high-end tools to create 2D games when they should just concentrate on a simple tool and but the work in design and of course including a cool sound track and effects.

 

XNA

Microsoft did game programmers a favor in creating a set of free tools to facilitate video game development. XNA allows you to create games for Windows PC and Xbox 360. User's will need to learn C# to take advantage of the development IDE's (e.g. XNA Game Studio Express and all versions of Visual Studio 2008 and greater). There is a free version of the IDE - XNA Game Studio Express. There are many tutorials on-line that demonstrate how to build platform games, real-time strategy and first-person shooters.

A cool game to consider is XNA Racer (see picture). The source code is freely available on-line.

Flash

Adobe Flash is a cross-platform browser-based application runtime that sits on over 90% of all PCs. There is cost involved in obtaining the development environment and it has a relatively high-learning curve. You not only have to learn the user interface designed mostly for artists and designers but the scripting language - ActionScript (similar to JavaScript). There is a Flash game community. I also know of many games that started life as a flash game that were successfully converted over to Xbox or PC games.

If you are considering making the investment in Flash I would caution that the days of Flash dominance is waning given its limited availability on tablets and smart phones. When Apple decided not to support Flash on its platform that started the decline and abandonment of Flash by many smart game designers.

Unity

Unity is an excellent tool (it is after all free!!!) for designing and creating 3D games. The development environment is available on Windows and Mac and the games can run on many different platforms ranging from the PlayStation 3 to the iPhone (you will need to get a professional copy for all that). You can even create games that run on the browser as long as users are willing to install the Unity Web Player.

This seems to be the "hot" tool to use at Game Jams. I don't understand why since many of the games end up being 2D - mostly because I suspect the programmers are not experienced enough. Unity is similar to Game Maker in that it consists of an editor that allows you to build your game and an engine that executes the game. Game developers can use other free tools like Blender to create 3D artwork. There is a free set of video tutorials available from 3DBuzz but like most applications of this complexity the learning curve is high and requires much time a effort to get proficient enough to use it to its full potential at a Game Jam.

Unity makes 3D hardware accelerated game development way easy, with impressively short development times. 2D game development is slightly tedious, but hardware accelerated scaling (aliased), rotation and full alpha transparency make that hurdle worth jumping.

UDK (Unreal Development Kit)

It seems crazy, okay maybe even unreal to think that the game engine responsible for such games as Gears of War, Batman: Arkham Asylum and Bioshock (to name a few) were built using the Unreal Game Engine 3. This same engine is available to you for free from Epic Games! So what are you waiting for?

For people who love 3D, but don't love creating engines from scratch there's the Unreal Engine. It's awesome and it's FREE! (but it's still a lot more work than 2D, so make sure you're being realistic).

This tool may not be a wise choice for a Game Jam since many functions (like light computations) can take hours and that is not the sort of time one has at a Game Jam. But if you are willing to spend several hundred hours learning this tool you should be guaranteed a job in the game development community (at least a foot in the door). It supports many platforms from PC to PS Vita. The learning curve is high. There is a good set of books and free video tutorial online. I highly recommend this for those planning on going professional.

Torque Game Builder

There are two products made by GarageGames - Torque 2D and Torque 3D. We will refer to the product as Torque Game Engine (TGE). The application provides the ability to create networking code, scripts, and in-engine world editing and GUI creation (thanks Wikipedia). Game developers can develop commercial games for Windows, Mac, Linux, Xbox 360 and iPhone platforms. The tool is not available for free but there is a trial version you can download to investigate if it is worth your investment in time and money. There have been many impressive games created with TGE. The latest indie game is Space Pirates and Zombies (check out Steam digital download).

The advantages of using this product is that the 2D version is another drag-and-drop user interface with many asset packs available so you don't have to beg or steal art assets if you are just a programmer or game designer. You can practice creating attractive role-playing games, platformers and even a kart-racing game. I highly recommend learning this tool if you have several hundred dollars to spend.

PyGame

I was seriously considering this tool to augment a course teaching Python as a introductory language for youngsters. "PyGame is a set of Python modules designed for writing games." It adds the capabilities of the SDL library. SDL which stands for Simple DirectMedia Layer is a cross-platform multimedia library designed to provide access to all the low-level elements (keyboard, video, sound, etc) to build 2D games. I know a bit of Python and can attest to the power and extensibility of the language in addition to how easy it is to learn.

I can also testify from personal experience to the range of functions SDL provides to create top-notch 2D games (using C++). The combination of the two seems to have fostered an entire ecosystem that I am just becoming aware of. I have seen very impressive games built using PyGame. Just like any of the tools on this list if someone is willing to put in the time and energy to learn and exercise the limits and power they can be very productive and quite an asset at a Game Jam.

SDL

This is a library (see PyGame) that provides a cross-platform solution to creating a game. The library is written in C but works with C++ natively. It is free and includes many extensions for font, sound and network support. All the libraries are free. The downside to using in a Game Jam is that the programmer has to do all the coding - that is build your own mini game engine. There are two good sets of tutorials on the Internet. You end up with a good starting point for building your own object-oriented game engine. This is for basically for 2D games.

It can be enhanced and extended by using OpenGL if your goal is a 3D game and use SDL for keyboard, joystick, sound handling. I have spent some time on this tool when I was taking apart the code engine someone wrote for Commander Keen (CloneKeen). I finally got the entire thing to compile but I had to chase down so many other external libraries for data compression, expanding the image assets for these old DOS games. The basic lesson I learned is that there is a lot of work involved even when using a library such as SDL. I don't recommend for a Game Jam.

HGE

Haaf's Game Engine or better known as HGE has been used in game competitions. This tool allows you to create powerful hardware accelerated 2D games - how? It used DirectX on Windows platforms only! You can use a free C++ compiler such as CODE::BLOCKS or Visual Studio C++ Express to build 2D games. There is one game - WYSI-Deception-Wars that was a winner in the Polish Game Jam in 2010. This is similar to SDL in that you will need to be a very good programmer and knows how to work with an API and spend enough time with the tool so that you extract everything it has to offer.

 

 

GameSalad

GameSalad is a last minute addition suggested by lafigueroa. This is a game creation tool for those amongst us that a) don't know how to code b) don't want to learn c) learned and "hated it!" There is a free version of the tool at the website. I just spent 15 minutes playing the game "Zombie Drop" created with GameSalad. I cannot believe this was created with no coding! The games you create can run on a PC, iPhone or Android device (I guess you select the target ... and of course this is only available in the paying version of the tool). I am very tempted to check this out today. No coding? Wow!