Tools For Making Games

I’ve been thinking about making tools for game creation recently.

Partly I like the challenge. Designing something that anyone can use, that’s hard. Designing something that can cope with creativity you’ve not anticipated, that’s hard. But also – also I like making engine tools, I like making code. I find them fun rabbitholes of tech to chase down, somehow more satisfying that all the other design and polish and making it work and making it accessible that’s needed far more for the games I make. Ha. Maybe that tendency is one this project shouldn’t indulge. So. I like the challenge.

So here are some things that have been inspiring.

Twine. I mean, obviously. Here’s how to make games in Twine! That’s all you need. There’s all these great games, made by people who haven’t made games before. It’s the posterchild for accessible tools.

It’s limiting. It’s designed for CYOA stories. That’s not all games, obviously. That’s not even all IF. I want to make that feel, that game-response, that’s a thing I like. I like the moving pictures. Blah! Text! I play videogames when I scrape myself away from reading things on the Internet.

OmniLudiCon – there’s this I just discovered. It lets you put the game elements together. I’ve been fucking around, trying to make a Bangai-O Spirits style puzzle room of death. It’s satisfying.

Why isn’t this enough? I want to be able to change the graphics. You can design what you want, but it’ll always look like OmniLudiCon. You can’t change the player character/s from the stock. Maybe that’s not so bad. There’s certainly lots of places to go.

Also, the games remain trapped inside the box. That’s a shame. - you can make these stupid, multilayered GIFs. Anyone can do it.

Not a game, notagame, NotAGame. No, seriously, it’s not a game. it’s not even interactive. But it’s fun. It’s stupid. It’s ugly in the best of ways.

“There’s a lot of appeal to this kind of thing if you can just dig into doing it. Maybe someday someone will make a Social Networking Site that’s split between the regular features and some means for creating spontaneous experiences of this nature. When I used to post on forums a lot, it began to feel natural to talk in a mix of text and pictures and video. Given a simple enough toolset, I think some people could get into casually speaking videogame.”J Chastain, from

Inspiring, huh? I know exactly that feel, that hypertext melange. And interactive, too!? Oh my giddy aunt.

So one trap you can fall down is trying to make something powerful. Something that can do anything. A blank slate. That’s useless. Who needs that? It’ll be impossible to use. It’ll be for pros. Make something for users. Users find a way.

This is the thrust of Olia Lialina’s wonderful essay The Turing Complete User. Here’s a section:

“General Purpose Users can write an article in their e-mail client, layout their business card in Excel and shave in front of a web cam. They can also find a way to publish photos online without flickr, tweet without twitter, like without facebook, make a black frame around pictures without instagram, remove a black frame from an instagram picture and even wake up at 7:00 without a “wake up at 7:00” app.”

This is why (with a healthy dose of clever design, and generous spirit, and maaaaaaybe sometimes some Actual Programming) Twine isn’t just a CYOA tool.

Maybe this is the same thing as Ruby’s Convention Over Configuration mantra (disclaimer : not actually a Ruby user). The idea is that the defaults are sensible. So you don’t have to think about them unless you have to change them. And anything you have to think about to make the game is another obstacle between you and finishing your game. Which helps on this front : “I can work with Twine when I’m too tired to deal with anything else. You don’t have to wrestle with anything between the emotion and the page, your fragile thoughts survive.” (Porpentine) What you want is to only have to answer the questions you’ve asked yourself. If you’re making something polished, if you’re being professional, you’ve got to raise and answer a lot of questions. But you don’t have to be professional to make something for your friends.

The other half of this Turing Complete User concept is – the user is not there to make the game in their head. The software should not be perfectly transparent. They’re there to make a Twine game, to make a Blingee, to make a Klik & Play game. They’re there to use the software, they’re not there to achieve their aim with no interference from the software. Think of it as the user and the software, sitting side by side, working on the task together. If you cook with someone else, then you are a bad person if your only concern is the food you make. And yes, you don’t have to consider your software’s feelings, but it should consider yours, and you should consider it’s advice, if it has any to offer. I’ve the last few days been using ReSharper for the first time. It can be very bossy. It’s a good feeling.

So obviously another part of this is that coding is hard and scary. But you ultimately want to make things that are arbitrarily complex. With arbitrary rules. And I know enough theory to know that to write the specification for a arbitrarily complex set of rules, you’re going to need to be writing in something that’s Turing complete, and so basically – a programming language. You can maybe not have to type it, but it’s still a programming language. By definition it has to be. You can make it a welcoming and happy programming language, though, but enough energy has been spent trying to create one of those that I shall not make a dent on the problem by adding mine (thus do great problems never get solved). They still need to you to know what a variable is, what a loop is, how control flows through the software (shut up, Functional Programming). These things are not simple, and they’re not intuitive.

So how to resolve this? I don’t know. Twine, again, does it well. The simple things are just there. The harder things are hidden, and you have to code. But it’s code you copy and paste from friendly guides. We’re in this together, and the ecosystem is as important as the tool.

Ooooh, the ecosystem. Bennett Foddy has said (I can’t recall where, so will put words in his mouth) that QWOP doesn’t have leaderboards. And that that means that when people share their scores, they share them elsewhere. On YouTube, on IM, wherever. That applies here too. Blingee goes everywhere. Twine is just a HTML page. Partly it’s that the web is magical, and is the natural place for things to be shared. But also: “Twine isn’t owned by a company. It isn’t going to restrict part of its functionality behind overly specific social networking sites that not everyone has access to (ahem), start charging to modify the HTML (ahem), or dramatically change in any way. I like that Twine simply exists and doesn’t belong to anyone except everyone.” (Porpentine again). Again – the problem with Warioware DIY is that the games never leave the box. The problem with OmniLudiCon is that the game never leaves the box. So you YouTube your game instead. (NotAGame, notagame)

So that’s the ongoing thoughts I have rolling about about making a game tool. I should try more of what exists, as there’s lots I have not tried. Maybe I will make something some day.

05 December 2012