Games anyone can make

2015-06-09

When it comes to authoring tools for games, "easy to use" is all too often equated with "requires no programming". And that's really misleading for two reasons. One, a tool you can use just by ticking checkboxes and filling input fields can still be terribly confusing and tedious, to the point where you'd be better off writing code. And two, not all programming languages are created equal.

No, seriously, look at the following Inform 7 fragment:

	"Catch That Cat" by "Felix Plesoianu".
	The story headline is "An interactive benchmark".
	The story genre is "Comedy".
	The story creation year is 2011.

	Release along with the source text, a website and an interpreter.

	Include Basic Help Menu by Emily Short.
	Include Locksmith by Emily Short.
	Include Exit Lister by Gavin Lambert.

	Use no scoring.
	Use full-length room descriptions.

	Section 1 - The Living Room

	When play begins: say "Ugh. Monday morning. You're still not recovered
	after the party two days ago, and you have an SMS from your wife:
	'Will stay with mom for one more day. You take the cat to the vet.'
	Meh."

	The Living Room is south of the balcony, southeast of the kitchen
	and east of the hallway. "This is you one-room apartment in eastern
	Bucharest."

	The remote control and the empty beer bottle are on the coffee table.
	The coffee table is here.

	The couch is here. It is an enterable supporter.

	The description of the beer bottle is "It's empty and sad."

	The TV set is here. The description is "Unfortunately, it's broken.
	Again." It is fixed in place. It is a device. Instead of switching
	on the TV: say the description of the TV.

	Understand the command watch as something new.
	Watching is an action applying to one visible thing and requiring light.
	Understand "watch [something]" as watching.
	Carry out watching: try examining the noun.

	Instead of watching TV: say "You look at the blank TV screen for a
	while. It's actually better than most channels."

Wow, that's longer than I remembered. It's also not contrived at all; it's from one of my games, that I tried porting to Inform 7 in order to get a feel for the language. Ended up being a poor match, so I gave up, but just look at that intro: it might as well be a movie script. That's how the language (and make no mistake, it is a programming language) has managed to bring so many people over to the nerd side: by the time they realize it's in fact code they are writing, they're hooked.

Even more explicit in its similarity to a theatrical script is Ren'Py:

	monk "But where's your horse? Surely you did not travel on foot
	all the way from Ashwood?"

	me "Um... I came on the bus?"

	show monk unhappy

	monk "Ssshh! Do not speak of such heresies! Other guests could
	arrive at any time. Unwelcome guests."

	"What's he on about?"

	show monk smiling

	monk "Ah, never mind. There's Henry with your horse. Good day,
	Henry!"

	scene curtain black

	centered "He's not kidding. Another young man is coming
	through the gate, leading a horse. He takes the animal into
	a side building before returning."

	scene inside gate

	show monk smiling at midleft
	with None

	show aide unhappy at midright
	with moveinright

	monk "Henry, please announce His Highness that his guest has
	arrived."

	aide "At once, Brother Clement. By your leave, Milord."

	hide aide
	with moveoutright

	scene curtain black

	centered "He bows deeply and goes inside. Keeping a straight
	face the entire time, one might add."

	scene inside gate

	show monk smiling at midleft

	monk "But now you'll have to excuse me. I need to find my charge."

	monk "You didn't happen to see a young lady on the way in?
	Blue dress, blonde hair..."

	menu:
		"Sounds just like the \"ghost\" you've glimpsed under
		the castle walls. But was it real?"

		"Actually, I might have. Let me show you where.":
			jump follow_monk
		"Er, no? Sorry, the pro... er, baron must be waiting.":
			monk "Indeed. I'll leave you to you business then."
			
			hide monk
			with moveoutleft
			
			jump meet_trevor

Indeed, that's how I rationalize visual novels: as virtual theatre inside a computer. Or maybe silent film, come to think of it. Either way, the whole point of Ren'Py is to let you focus on the story you're trying to tell, rather than the technical minutiae of making a dumb computer figure out your intentions.

And that's important because telling a good story isn't easy in the first place. Doubly so for an interactive story. If only programmers can do it, that limits both the number and the kinds of stories that will be told. Besides, I'd much rather have my brain in storytelling mode when I'm trying to, you know, tell a story.

Not that every game needs a story. Anecdotally, most people disagree with me about that, but really, if all we want is to tell stories, we have all those other media we have invented and perfected for centuries. Games can and should do more than that.

Which raises a question. You see, ever since human beings learned to talk, stories have been how we made sense of the world. How we passed on lore. A vehicle for social critique. Is it even possible to embed cultural relevancy into, say, a puzzle platformer?

(Note, that's not the same as making Art with a capital A. The ugliest piece of graffiti can be culturally relevant.)

And I say, how are we going to find out unless it becomes easy for anyone to make one? That's why I'm glad PuzzleScript exists: a clever little tool you can use for puzzle games in the vein of Sokoban and Supaplex (though clever users have managed to build run-and-gun platformers and other cool stuff with it).

Using PuzzleScript is a little more involved: you enter bits of ASCII art to encode small graphical tiles, then more ASCII art to paint the level maps. Last but not least, you define rules using a simple notation. The hard part is figuring out how all your rules interact: they can get quite intricate for non-trivial games.

Importantly, PuzzleScript publishes finished games to a single web page you can post nearly anywhere. That's even more convenient than Inform 7, which generates an entire micro-website for you. As for Ren'Py, it gives you the game in nice archives for Linux/Mac/Windows, or even Android. Makes sense, considering the amount of graphics and music that goes into even a small visual novel. Either way, all these tools make it very easy for people to play your game, which matters a lot in this age when our attention spans are assaulted from all sides.

These are just a few examples I happen to be familiar with. Sure, they can only make certain kinds of games, but that's like complaining you can't animate a cartoon with a typewriter. As for the issue of variety, literature has been available to everyone for centuries, and people give no sign that they're bored of reading.

Of course, that's because writers always seem to find new things to say, or at least old things in a new way, a new light. And that's the real issue with games these day, isn't it?

Make games about something else than shooting and hitting things, or at least do it differently. Now you can, and gaming needs the change. Thank you.