Sunday, September 23, 2007

User Generated Content Malarky

(Flash "game" reward at end of essay...)

For a while now I've been trying to create a game which would allow me to generate content inside the game. Basically, I find it very hard to go and draw in program B, script out an encounter in text, create a map in program C... it's very broken, sort of like if you had to write a novel by writing one file full of the nouns, one file full of the verbs, and one file full of everything else.

If the creation system is in the game, you can create something and keep right on chugging. Sounds good, right?

Well, you don't see it much, and when you do, it's almost always painful. The reason is relatively simple: there are major programs out there dedicated to helping you build that kind of content professionally, and your dinky little in-game editor is going to suck compared to that. Compare a major paint program like Photoshop to something embedded, like a paint BBS system. Sure, you CAN produce decent content with the BBS tool, but it takes longer and is a whole lot more difficult.

And, of course, either way you slice it, it takes someone who's good at whatever it is they're doing before they can create good content. The teenager with wild dreams of creating a "1337 dUnGuN fUlL oF 7175" can't create anything worthwhile because he has to go make sprites and other crap that requires years of practice.

So, as I was furiously punching Flash in the nose, I thought to myself: hey, what if we made the characters pros and simply made the players direct them?

For example, the painting minigame is pretty simple: your character gives a few suggestions as to what they think would look cool on the canvas. You select one, then you just swoosh your mouse over the canvas. Whatever you've chosen is mapped to your swoosh.

So if he suggests a nice blue blat, and a kind of stippled red cloud, and a rose, you can choose one and then add it to the painting (add it many times, if you want). You don't have to resize the brush, or worry about how much smoothing there is. You don't even have to think about pressure sensitivity. The character has specified all that complex shit in his suggestion, under the surface.

Depending on how you build your character and what sort of things your character is exposed to over the course of the game, you'll get different suggestions. So the complexity that normally damns amateurs is taken care of, packaged into a game.

Moreover, because we're packaging these for the player, we can include metadata. If the player uses a rose in the painting, we know it's a rose instead of just being a bunch of red blotches. Therefore, NPCs who view the painting can say, "hey, a rose!"

Painting is just the tip of the iceberg. Since we're packaging complex rules away from the player, we can begin to layer absurd complexities in a fairly transparent way. For example, we can have a tailoring minigame which works just like the painting minigame. Except that as you brush the "cloth stroke" over the dummy, it not only maps to the surface of the dummy, but also takes into account what part of the body it's being "painted" on and what kinds of cloth have already been created beneath it.

You can even use the painting you already made as the cloth, and in the clothing's metadata can be commentary on what it covers and doesn't cover, what kind of cultural impression it makes... so someone doesn't say, "That's a nice floral sundress!" when they should say, "why are you walking around in only red lace underwear?"

You can continue this abstraction in theory forever. You can have a similar "suggestion" system for city building, starship construction, social interactions, a culture, a monster, even creating new minigames.

The difficulty with this kind of system is that the character has to be able to make suggestions that are (A) transparent enough for the player to understand and (B) clearly linked to the character's in-game state and history. And, of course, the suggestions have to be able to be mapped onto whatever "surface" you're "painting" on, whether it be a canvas, an obstacle course, or a planet.

("In this replacement Earth we're building they've given me Africa to do and of course I'm doing it with all fjords again because I happen to like them...")

I'm going to see whether I can whip something up... but what do you think?

Edit: Here's a very simple version that you can play with for kicks. It doesn't use "real" stuff like flowers or anything, but what do you want out of an hour-long project?

Click on one of the gridded brush examples to use that brush. :)

Flash "game"


Patrick said...

That Flash demonstrates your theory quite nicely.

Craig Perko said...

I'm going to upgrade it some more and re-post it later. There's a bunch of stuff I want to include that isn't in there but is easy to do.

The problem is that context-less painting like this is... well, pointless. Without a game to put the image in context, it's just doodling.

Adrian Lopez said...

You're a jerk, Perko; a complete kneebiter.

Ah... couldn't resist.

Anyway, for some reason your post makes me think of the guitar-playing mechanics in Guitar Hero. That game tells you exactly what to play, but I'm sure you could do with music what you suggest doing with painting.

By the way, I absolutely refuse to buy Guitar Hero due to stuff like this and this)

Craig Perko said...

I agree on all counts. ;)

Of course, Rock Band doesn't have any such idiocy surrounding it yet, and I have it on... extremely good authority... that the game rocks and the guitar is miles ahead of the clunky Red Octane thing.