Thursday, May 06, 2010

Social Play and Superheroes

I was thinking about a way of creating adaptable social play in games - the sort of thing where the NPCs are social algorithmically, rather than in a scripted manner. This is not the same as a plot or drama engine, but it's still a hard problem.

Classically, the real problem is not that the social aspect is hard. Plots and real drama are hard, but just general social activity isn't. In fact, the problem is the opposite: it's far too cut and dry. When implemented, it ends up being painfully simplistic. This is because the basic idea of "he likes you, she doesn't like you" is a very simple one. Switching from one to the other is very basic. You can hide the simple nature of the switching behind complicated minigames or weird requirements. You can hide the simple nature of the like/dislike axis by adding lots of things that can happen when they like or dislike you. But, fundamentally, it's a very simple axis that moves in very simple ways. This makes it too basic to really use.

A few years back I ran a LARP-y board game where the players were psychics. They each had unique psychic powers which could only be recharged when they were in specific situations.

Some of these situations were social. For example, one person might recharge one of their powers if someone nearby laughed. Another might recharge if they agreed to help someone. Other situations weren't overtly social, but ended up shaping the social landscape. For example, in order to recharge his power, this person has to end the turn alone (out of sight of the others). Another charges her power if he takes a point of damage, while another charges his power by healing someone.

It occurs to me now that that might be a suitable way to get social interactions out of NPCs. Each character in the board game had four powers and four ways to charge, which seemed to be plenty. Imagine if you had a superhero game with the same basic philosophy: every superhero has four powers, and any one gains an experience point if you fulfill the situation related to it.

This is a way to give characters "personality", because they want to cause the situation. Our Wolverine analog might gain XP by being alone, being injured, going berserk, and being stealthy. Our Spider-Man analog might gain XP by quipping, seeing happy citizens, hanging out with friends, and rescuing people. These two heroes would have fundamentally different personalities, and would play the game completely differently (whether an NPC or a PC).

When a hero gets a good response out of a person, mission type, or situation, they'll prefer to hang out with them, go on those missions, get into those situations. So if Spider-Man and Wolverine go on a stealth mission to rescue people, Spider-Man will gain XP due to the rescuing and Wolverine due to the stealth. Spider-Man's actual powers are very good at stealth, so Wolverine will probably gain quite a few stealth-mission points, which will actually make him likely to hang out with Spider-Man in the future, which will in turn give Spider-Man his "hang out with friends" XP, and they'd end up hitting it off pretty well.

It's not an empty "we're buddies" status, though, because Spider-Man is continually quipping to get his quip-XP, and Wolverine has no love of quips. So there's going to be a "why does Wolverine put up with him?" vibe. The answer is "because missions with Spider-Man are likely to be stealthy and let me go berserk and get injured."

Villains are simply the same sort of thing, except that the way they earn their XP is less positive. Spider-Man is unlikely to end up as a villain because of his "smiling citizen" XP gain, but, then, the Joker has the same thing. Wolverine would seem to be primed for villainy, but it's all about who he teams up with, who he falls in with.

Anyway, I think it's an interesting idea. I wonder if it would work.

6 comments:

Ryan said...

It seems like some groups of characters would cause a positive feedback loop, and you'd just end up with something like this: http://www.nuklearpower.com/2001/04/12/episode-015-a-little-intellectual-conversation/

Craig Perko said...

Well, no, that's a pretty basic problem to solve: just put in some delay before an action becomes available again, and make sure there's plenty of external noise to shake things up. That's why I chose superheroes: they'll never just be sitting around all day drinking beer. Or, if they are, it will descend into an uncomfortable but hilarious silence.

There would certainly be variations available. Spider-Man can quip a million times a day, as long as it's never the same quip twice. Quip against different targets, quip about different things, quip quip quip.

We could also have a "counter", where people get sick of the same social activity over and over. So Spider-Man could quip once or twice before Wolverine would shout at him to shut up.

It would have to be tweaked, but fundamentally it's a manageable situation. The added variety of social effects should allow for a variety if actions, if you balance it right.

Olick said...

This reminds me somewhat of the old Marvel Super Heroes game, a highly malleable (on the verge of annoying) superhero game.

You got xp for acting like a hero. Like for rescuing someone, or stopping a crisis. You also got some minor xp for meeting weekly responsibilities, or hanging out with friends, or even signing autographs.

You lose xp for allowing crimes to be done, or for a public defeat (oddly, private defeats had no such penalty, although we usually give a less harsh one). Also you lose all your unspent advancement xp for killing someone.

It means that if you're playing a hero in new york game you get a lot of xp. If you're playing a primarily social Xmen game, where the team-drama comes before saving the world... not so much. And then the X-men started hanging around New York, in order to find people to save... And of course, even when it made total sense that killing someone was the way to eliminate him, they would not, because of the high penalty.

Craig Perko said...

The core idea is similar, except that in this version the heroes have different and unique things that give them XP. This gives them a "personality", which is something that a player would handle in a live game.

Keto said...

I am designing a game(tabletop rpg) now loosely based off Dwarf-Fortress (I am using it for map and history generation).

I am trying to generate a like/dislike system where you have a sort of 'happiness' pool. When you do things you like it goes up, when bad things happen it goes down, but most of these things are according to personal taste.

When you hit 0 happiness you break-down in a way fitting for your race (there is a list). When you go into the negatives you go crazy in a way fitting for your race (dwarves, for example, go berserk and start attacking people).

It is similar to a numbers-only game I made with an actual emotional stability track.

I think that this sort of guidance would work better than experience.

For example if you hate killing people, you will stay away from working with Wolverine because he is a murder machine. You will tend to choose missions where murder probably won't be necessary. When you DO work with him, you will probably leave the room so it bothers you less.

I think this sort of system, even if it is just based around being 'happy' would lead to more convincing personalities than your experience based system.

I believe the problem is two-fold. Experience is something you are personally very distant from. It doesn't really apply immediate feedback, just long-term feedback. It is the bonus points at the end of the race rather than the speed boost after a power-slide.

Additionally, the experience system isn't very good at going down. You just sorta rack up points for following it, but you get alot more deviant behavior than if you have a specific reason to follow it.

Spiderman has earned his bonus points for being a 'quip machine' and saving a life, now he needs to sneak through a section in order to get his sneaking points. This means he will sneak through the vents as he watches Wolverine disembowel each enemy on their path to the final area.

If he lost experience he would be less likely to let that slide, but he would also be less likely to even go on a mission with such a horrible killing machine. With an 'emotional' or short-term penalty based system he is more likely to suck it up because he can ignore 'a little' murder and there won't be any long-term costs.

Basically I am arguing that such systems shouldn't be based around a long term thing like experience, and probably should be based around a penalty rather than a bonus.

Craig Perko said...

Well, I definitely skimmed over the details. The fundamental AI isn't based around the experience system, that's just the weighting. So it is intended to be paired with a relatively intelligent system of actually accomplishing what you need to accomplish, rather than defining the end goal itself.

I do think you're dramatically underestimating this experience system, ESPECIALLY for a tabletop or LARP environment. In those situations, I can tell you that it absolutely works. Just period. It works better than anything I've ever seen, and I've seen a lot.

If you're curious as to some other ways to use the same power=RP methods in tabletops, you can look through my Bastard Jedi posts: http://projectperko.blogspot.com/search?q=bastard+jedi

I've also tried your happiness pool, of course. It's a very common method of doing things, and I've never been happy with it. It's possible to use it simultaneously with an experience/power system, but I usually find it doesn't actually add anything except overhead: it doesn't make anyone RP better.

Arguably, in a computer game, it might be useful as a proxy for player intelligence. But in a tabletop? I don't know.

You'll have to let me know if you get it to work well!