Game-making tools, part one

2011-01-22

Making your own games is exhilarating, and surprisingly accessible considering all the work involved. But it's still non-trivial; computer games are software, so beginners will struggle with learning enough programming, and they're complex, so experts will struggle with juggling all the details.

This is why people have developed various pieces of software to ease game creation, ranging from the very general, that just help with the basic framework of a game, to modding tools that only allow making more content for a specific game (although the line is easily blurred, seeing how the Starcraft 2 SDK has been used to make everything from a falling blocks game, through shooters and racing games, and all the way to a full-blown MMORPG).

In the following paragraphs, I will focus on tools that cover the middle ground between those extremes.

Ever since the interactive fiction revival started in the early 1990es, easy-to-use authoring systems have evolved continually. At some point, their creators acknowledged that text adventures are far more than just digital literature and started adding multimedia features, much to the dismay of purists. Nowadays, each of the top three authoring systems -- Inform 7, TADS 3 and Hugo -- support images, sound and hyperlinks, and at least TADS 3 also has clickable imagemaps, so you can use it to implement semi-graphical adventures. Of course, "semi" is the key word here: the underlying mechanics will still be those of a text adventure. (Unless you program for the raw virtual machine, which would defeat the point of using such a tool. But I digress.)

A more flexible tool is Ren'Py. Initially developed with the express purpose of making visual novels, nowadays it can be used for everything from (mostly) text-based Choose Your Own Adventure games to a full-blown Myst clone, complete with minigames and video cutscenes. Unfortunately, even the most unusual Ren'Py games I could find still stick close to the basic visual novel format, which strains my patience past the breaking point. Must be an acquired taste.

The one thing Ren'Py can't normally do is a fully 3rd-person adventure game. If that's what you want, you should probably consider AGS.

Created with the purpose of enabling fans to author adventure games in the style of Sierra and Lucas Arts classics, Adventure Game Studio has acquired a devout following over the years, and has been used for the highly acclaimed Chzo Mythos quadrilogy of indie adventure games. Too bad the authoring system is strictly for Windows, and even running the games on other operating systems is tricky. That made sense back in the 20th century, but nowadays it's just a way to miss opportunities. The Humble Indie Bundle, anyone?

I notice that so far I've only mentioned adventure game makers, which is funny, because as of this writing I haven't played an adventure game in a very long time. If the idea of making a tile-based RPG appeals to you more (think console RPGs or the early Ultima titles), you should probably check out ToME and the framework behind it, T-Engine 4. The acronym stands for Tales of Maj'Eyal (formerly Tales of Middle Earth) and while the game is a roguelike, the engine is apparently capable of supporting a traditional RPG with static maps, quests, etc. And just in case you didn't know, modern roguelikes aren't limited to text any more that modern text adventures; ToME has graphics, sound and mouse support. It also has a vibrant community, which is good, as documentation is sparse at best.

Speaking of vibrant communities, I should make it clear that all of the tools described above have them. Another common point is that all of them require some amount of programming -- no drag-and-drop here. But don't panic! Using Inform 7, for example, is very much like writing prose, and a basic Ren'Py game looks exactly like a movie script. In both cases, things like save/load/preferences are already taken care of, and you can focus on creating content, while still making a game that's entirely your own.

Game-making_tools_part_two will cover tools that don't require much programming, if any, as well as general-purpose game development frameworks.