People Can Do The Work, So That Machines Have Time To Think: Procedural Criticism And System-First Design

Over the last couple of days, I’ve been working on a Twitter bot called @Greenlight_Game (source code here),a bot that randomly generates and tweets descriptions of games based on a list of clichés I’ve seen far too often on Steam Greenlight. The purpose of the bot is to call attention to the limited range of the kinds of games that crop up on Steam Greenlight.

Many of these games include elements that have been used by recent successful indie games, like Minecraft’s procedurally-generated sandbox worlds, or DayZ’s open-world zombie survival gameplay. Some of them are nothing more than shameless clones of existing successful indie games. But many more are games that simply reuse elements of popular games in incredibly boring ways, rather than coming up with their own ideas. Blocky designs, the perennial cliche of zombie enemies*, or the promise of endless procedurally-generated content… it’s all more of the same.

The point of writing a Twitter bot to come up with this stuff is to show that this is a pretty unimaginative, mechanical and very limited way of designing a game. I mean, I could knock up a simple bot to do the same job in an afternoon. And in a language I’ve never used before, using an API I’ve never used before, and running remotely on a schedule, another thing I’ve never done before. I just want to emphasise that the simplicity of creating the bot demonstrates the simplicity of that kind of thinking. If @Greenlight_Game’s tweets seem repetitive and formulaic, then the bot is doing its job. It’s essentially a procedural critique of these games: it doesn’t generate criticisms, rather, its generation of clichés is the criticism.

A lot of these cliché-packed games look like the design process started with a system first, rather than an idea for something players would want to play. The system might be a physics simulation system, a routine for procedurally-generating content, or whatever. Whatever player activity the game involves is then built around this system, as though the game’s purpose is for players to simply marvel at the elegance of the system. Obviously, I have a lot of problems with this design philosophy.

If @Greenlight_Game’s primary purpose is to call attention to the limited imagination that many of these games represent, its secondary purpose is to call attention to this design philosophy, and how prevalent it has become among games on Steam Greenlight. I think there’s a real problem with a systems-first approach to game design, because it puts the player, and the player’s experience of playing the game, second to the system. I firmly believe that any system should serve the player’s experience, not the other way around.

The thing is, after creating this bot, I’m already thinking about the limits of procedural criticism. It just seems to me, at this point, as though all procedural criticism of this kind can really do is draw comparisons to other things like itself. All it can really do is point out when things are similarly programmatic, formulaic, robotic, or limited in scope. That’s something which is absolutely necessary in many, many cases. But it is also, itself, limited.

*I’ve always thought that part of the reason zombies make such attractive video game enemies is that a zombie context forgives all AI problems. Nobody will ever complain about a zombie being too dumb or mindless.

Advertisements

One thought on “People Can Do The Work, So That Machines Have Time To Think: Procedural Criticism And System-First Design

  1. Pingback: 200 Games, 200 Words: 10 – Teleglitch | Macrotransactions

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s