Games Anyone Can Make ===================== 9 June 2015 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][i7] fragment: [i7]: http://inform7.com/ "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][]: [Ren'Py]: https://www.renpy.org/ 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). [PuzzleScript]: http://www.puzzlescript.net/ 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.