Wednesday, April 16, 2008

Fundamental Issues in Social Play

Last post, I wrote about a fun little idea I had. Tom Hudson said that a bunch of people had tried stuff before, and it hadn't worked out.

Given that that was also my second paragraph in that essay, I agree. But it's clear that Tom doesn't think my silly little approach avoids any of the problems other approaches have had. (I'm not being snarky. The approach is silly, even if Tom never said so.)

Obviously, the best way to demonstrate this would be a prototype, so I'll work on that a bit. BUT, let me explain to you the fundamental difference between a "classic" approach such as Emily Short's and my own.

The big difference is scripting.

In a classic solution, you can be as brilliant as you want in offering the player social choices. But no matter how brilliant you are, you're going to run into a fundamental flaw: the characters can only say what you write them to say.

That's not gonna work.

It's very important to do away with scripted dialog. Instead, you have to abstract it out. Either use a bunch of fragmented dialog bits that get recombined, use an abstract language you designed specifically for the purpose, or be completely abstract and use something like Simlish.

In a game of combat, you do not see every blow of every weapon in great detail. It has just started to be possible to do that, and most games still abstract combat out to some generic flailing plus a few colored numbers. Social stuff, at least in the beginning, needs to be abstracted just as far. (Although, obviously, not to the same end.)

Abstracting this stuff out will make it possible to do stuff algorithmically. Someone can become angry with you, even if it wasn't programmed in! Someone can be turned against someone else even if the designer didn't expect it, because they can betray without needing to have it explicitly scripted!

Now, obviously, I'm skipping a lot of stuff. This is an immense topic and describing it in a single post is not going to happen. For example, now someone will claim that this has been done before, probably pointing to the Sims. "Look! Dey have all dese emotions an' stuff!"

Here's the bit you need to understand: The design is as important as the algorithm. If the algorithm allows anyone to become angry, then the design has to make sure that people becoming angry matters to the gameplay. If the algorithm allows anyone to side with anyone, the design has to make that matter and offer up a good way to let the player use it.

If they can be angry, but it's pointless, then IT'S POINTLESS. There's no difference between a Sim talking about science-symbol and a Sim talking about police-symbol. An angry Sim is angry, which just makes life irritating for a while and has no significant effect on anything. All of the socializing-with-Sims stuff is useless, because there is no significant game effect to it. Yay, you made a new friend, just like the old friend.

The Sims isn't about socializing, it's about consumerism when you play it straight and it's about injecting your own meaning when you play it freely. Either way, socializing isn't a big part of the game.

To make socializing a big part of the game, you have to design it from the ground up.

Details on how to do this.

I hope I'm being clear. I'm not very awake today.


Tom Hudson said...

Sorry, I wasn't trying to ignore your second paragraph in the original post. I'm just totally unimpressed by Deikto.

Social combat in Simlish might work; I have to get past my instinctive "yuck" reaction, which will take a couple of days of thinking when I'm less busy. But later in your post you yourself filled in sample English phrasing! Trying to imagine the gameplay, if I were to see those phrases I think I'd be impressed, but if I were to see a string of "Motive! +5 st -2 lt" "Pity! +2 st +3 lt" bursting over characters' heads I'd be less interested. It's got more mechanical complexity than the Oblivion minigame, which I'll agree with you was insipid, but I don't think it's categorically different.

So I'd hold out for dialog fragments, but that seems like the toughest implementation challenge.

(It's not a silly idea - I think the desired outcome could be really, really cool; I just don't see how to get there, and am not convinced that the approaches you're proposing will work. That said, I'm probably looking at this with blinders on about the kinds of games I'd want to make. Your second paragraph in this post makes me feel like you saw me as attacking you, and I'm trying not to do that or to be insulting. Apologies if I come across that way.)

For what it's worth, I had a link to an old, unmaintained version of Emily Short's page; her current one points out that in CRPGs repetition of text is much more tolerated, and she's apparently working on something using some of these ideas in that genre.

Craig Perko said...

I gave an example in text because I wanted to be clear, but I don't know what the best method is. I think that a giant stack of fragments that you substitute specific words into might work great.

I don't like Deikto - I've actually been pretty harsh on Storytron in general, as Patrick can attest. But I don't think the idea of custom languages is fundamentally flawed. I just think it's a bad implementation.

With something of this complexity, I don't think I'd like babble (or it's better alternative: silence). I think you need more feedback than that...

It's complicated. If you come up with any solutions, let me know!

Lastly, you weren't insulting. I thought my reply might make you think I thought you were insulting, but I decided against a rewrite.