Saturday, April 28, 2007

Integrating Characters into Games

Many people want more realistic characters in their games. They want characters to react realistically (or at least entertainingly). The problem is that it's always really shallow. For example, in Oblivion you can get anyone in the game to like or hate you. In Fable you can marry almost anyone. In The Movies, every person on the lot has a complex personality. But... it is completely unsatisfying. Doesn't add anything to the game.

So, how can you integrate these complex, adaptive characters into the game in a way which is fun?

Here are three things I've found:

1) Characters linked into the game world. The character needs to have an effect on the game world which varies based on your relationship with them - and it needs to be significant enough to notice. The basic idea is: a statistical difference is not good enough. Instead your relationship with them should enable new capabilities (capabilities which are relatively unique).

Examples of bad ways of linking characters to the game world: If you're friends, they gain two points of strength. If they fall in love, you can sleep at their house. If you rescue their puppy, they'll give you 10% off their store's goods.

Examples of good ways of linking characters to the game world: if you're friends, they can learn black magic. If they fall in love with you, you can heal yourself once a day no matter where you are. If you rescue their puppy, they'll sell you guns. If they hate you, they'll hunt you no matter where you go.

2) Limit the number of characters. A serious problem with many attempts is that every character can be affected, and there's hundreds of characters. Think about it as simple supply and demand: don't oversupply. You can restrict the number of characters you can meaningfully interact with in many different ways, some of which are amazingly subtle.

Examples of how not to do this: Fable, Oblivion.

Examples of how to do this: The Sims, KOTOR.

3) Think long term. Socializing isn't like fighting a monster: someone you made friends with at the beginning of the game shouldn't become "obsolete" - there should be interesting relationship developments even in the late game. This can be done many ways, and my preferred method is to make relationships very "fuzzy" rather than binary. The idea of having "levels" of relationship is inherently limited.

Examples of how not to do this: KOTOR, Fable.

Examples of how to do this: Hm...

Wednesday, April 25, 2007

Social Simulation (Again)

I've been playing around with Inform 7, one of the modern text adventure platforms. Interactive Fiction, if you're looking to sound pretentious. Why Inform, rather than one of the other options?

Well, in addition to being free, Inform 7 has the most powerful engine - hands down - of the various systems. On the other hand, as is usually the case, it has a pretty bad environment. Unlike, say, ADRIFT, there is no easy-to-use GUI. Of course, if it had one, I wouldn't have been able to do any of the things I wanted to do: tradeoffs.

Anyhow, I've always said that you can't really test a social system on its own. You need a world to put social interactions in context. Which is why I keep gravitating back towards functional text adventure engines - not because I want to make a text adventure, but because they offer tons of functionality and a quick turnaround time.

I've whipped up a few tests, set in a zombie movie. I've learned some interesting things about character dynamics. If you're making a system that does social dynamics on the fly, here are some things you may want to try to account for:

1) Skill use. Normally, many people in any given fictional group have a particular skill. The geek, the jock, the girl that can fly, whatever. While not every character needs to have a skill, it is helpful because it allows you to make the player choose to give that character center stage. IE, the character chooses to use the geek when there's a geeky challenge, instead of you simply pushing the geek into the limelight.

2) Social role. This is a topic that people have approached from a lot of angles. I have my own opinions, but in essence the idea is that inside the group, every character has a social role they play: the irritating twerp, the respected leader, the weird guy. These roles then allow the characters to interact with other characters in an automatic, easy way.

3) Goals/arcs. On a code level, the difference between a character goal and a character development arc is extremely minor, so we'll lump them into one. The more central a character is, the more of these they will generally have. These allow you to algorithmically control a character's long-term actions, allowing them to be aggressive at times when it makes sense and passive at times when it makes sense.

Obviously, there are a lot of factors I could be mentioning: relationship tracking, social positioning, personality statistics, etc. But I find that these things are details which fall into place when you carefully cover the three core necessities. If you disagree, I'd be happy to listen to why.

Most social systems get really hung up on one of these three ideas, often throwing in a second as a last-minute thought. I am of the opinion that one or even two of these ideas are not enough. All three, even if each is done mediocre, is more interesting to me.

Unfortunately, to test it, you need a world. That's why I've been writing a zombie text adventure. Arrrrrr!

Sunday, April 22, 2007

Starting New Games

Tired of running the same old games? Seen some new systems, but been intimidated or thought "my players won't play this"?

Here is a four-page paper on starting new games in ways that will make everyone eager to play!

Also adaptable to LARPs and multiplayer computer games.

Friday, April 20, 2007

I had lunch today...

And my waiter looked exactly like Phil Plait. But in a kilt.

It was strange.

What, not game related enough?

I'm making visualizations of how Quake III is played, tracking the players in how they move, what they pick up, what they shoot, when they die... it's fun. It's supposed to be here, but apparently somebody's been slackin'.

It's not the one you see there. Mine is written in .net 3.0. With WPF.

I have learned that the hoops that MS makes you jump through to do development get smaller and further away with every iteration. Now you need maps, and MS doesn't provide any maps.

I'm not happy about that. I'm very much a "let me program" sort of person rather than a "oooh, force me to maintain good code practices by enforcing eight levels of abstraction" sort of person. :P

Monday, April 16, 2007

Granado Espada

So, for a while I played a MMORPG currently in Beta. It's called Granado Espada.

Now, technically, I can't suggest you play it. First off, downloading the client involves downloading dozens of large files, independently, from Korean servers. Second, I'm not even sure it's still operating. I think it's between beta phases at the moment. Third, you have to fill out this giant form to play... and it appears to be down.

Those are the reasons you shouldn't play.

Now let me list the reasons you should.

In terms of the standard stuff, Granado uses a typical Korean graphics suite. Which means that the world is absurdly detailed (and swanky), characters are lush (and skanky). The music is beautiful classical that fits in perfectly. The world itself is developed and unique enough to hold interest. The class system and leveling curve are solid, although weighted a lot towards hardcore players.

The game is very much a beat-em-up - there's no crafting here, and don't expect to "specialize in healing" or some such crap. No, your three characters have to be able to take on anything you encounter - running is just going to get you in worse trouble.

Three characters?

Why, yes, Granado lets you build, level, equip, and simultaneously control three characters. While each character is significantly more simple than, say, your Troll Shaman, together they make for a very nice change of pace and some pretty deep gameplay. Depending on who you choose and what tactics you try, the game can be a "sit back and watch the slaughter" or a "micromanage to defeat the big bosses" game.

Drops are excessively tame. You'll almost never find anything that is actually useful - no potions, no weapons, no ingredients. Some of the drops are sellable items, but most of them are the nearly-useless extremely minor instantly-effective restoratives. This means that adventuring basically boils down to a very simple equation: time and resources (bullets, potions, crystals) expended equals a certain amount of experience and gold (in form of sellables) gained.

This makes the game focus very clearly on tweaking out the strategy of your party. There's really no hunting for cool loot: all the loot is always available, if you have the cash and levels. So you can plan very far ahead and tweak which people are leveling what at what speed.

Unfortunately, they don't have the most important element: formations. There are no party formations. This is a serious problem for many types of party, including my own (two gunmen and a healer). Having to carefully arrange them individually every time a fight starts is painful, especially given the slightly dodgy AI.

Having a multi-player party is absurdly powerful. This is probably because in order to really make a dent in such a party, the enemies would have to kill off your characters in one or two hits each... which would start a feedback loop and end up killing off your whole party. Healing is obviously a dominant strategy :D.

In addition, attack types aren't as limited as in most games. For example, a gunman has a very slow reload time and no AoE, but kills shit great. My party - two gunmen - was a boss-killer party. I had an easier time against bosses than against scrubs, simply because scrubs come in faster than I can shoot and tend to pop into existence within your minimum range.

This variability lets you specialize your party in really interesting ways very different from the way you'd specialize your character in a normal MMORPG.

Moreover, unlike many other MMORPGs, you can really mix and match. For example, you can swap characters out of your party. Need the extra punch? Add an extra gunman. Worried about the swarms of scrub? Put in an elementalist. Another player in your family dying for lack of a high-level warrior? Give him yours. Yes, transfer your character to his account. Need to get someone weak up to speed? Use some XP cards on them and - poof - instant levels!

This plus tons of unlockables, hidden classes (broken, but probably being tweaked as we speak), costumes, side quests...

I won't say Granado is perfect. But I will say that it's the first MMORPG I really enjoyed.

Think Happy Thoughts

My occasional reading of Click Nothing has found me this link to a demo of software trained to make you "think happy thoughts". No kidding.

Anyone care to pop their bubble? Anyone?

Ooh, me! Meeee!

This is a pattern recognition game. But it's not smiles that you're learning to recognize. Because they only have half a dozen smiling faces, I started to learn to identify them by their faces rather than by their expressions. However, because there were enough of them, this actually ended up slowing me down as I would pan past a face I didn't recognize, even though it was smiling. I imagine that if I kept playing the game, I would eventually have a complete filter. But it's such a bad game, who would do that?

At the end it said "improvement from your best time to your worst time: 26%!"

Yeah, except my "best time" was the first round, before I started automatically "optimizing" my gameplay, and each round thereafter was worse.

Maybe I'm autistic. Maybe I'm just too hardcore a gamer for such straightforward games.

Or maybe the game design is deeply flawed, as are all games made by outsiders who don't have a pro helping them.

You wouldn't want a psychologist to design your car, would you? Even if it's a happy car, you aren't going to be happy when it breaks down every mile. Psychologists (and other people interested in games) need to get professional help. Har har.

Fortunately, it appears they realize that - Click Nothing is going to help them out.

Friday, April 13, 2007

Directed Content

99% of all user-generated content is useless. Not because it sucks: bad content can still be useful content. But if you wander into SecondLife, you'll see acres of completely worthless buildings and billboards - ugly, uninteresting, worthless. Even the nice stuff will rarely hold anyone's attention for long.

There is a reason for this, of course. I'll want your advice after this essay, so soak this up:

The content's only purpose is social.

In most games with user-generated content, the only real effect it can have is a social one: a new backdrop, a new animation, a new texture. In 3D chats, these are literally just frosting: a new skin on the same beast. In SecondLife and similar, you can script your stuff to have world effects - such as you'd do with a gun or a car. However, since the world is basically consequence free, these are still only social tools.

Sure, these games allow you to buy and sell for real money. But what has value is determined by what the players most want in the game, and all they can want is fluff. Luxury items. The game rules don't really allow for anything that is actually valuable, because anyone can do anything. Artificial limits and imaginary prices are the name of the game.

So, a possible solution is to make it so that content can/should/accidentally will accomplish something in the game world, give the other players something to do. For example, if you design a building to be a generator, not only do you get some kind of benefit (the ability to recharge your stuff, probably), but your building can be found replicated by NPCs all over the place, ripe for raids and role play.

There are two problems with this kind of idea. The first is one of algorithmic limits: the design variation between generator buildings is likely to be fairly minor. The more plausible variations you allow (aesthetic, material, design), the more intricate your algorithm has to be. At some point you start to say, "we'll let the players upload aesthetics, materials, and design parameters..." which is cool, except that it's about ten years of programming to get it to work.

So you end up with a bunch of content that's basically the same except for relatively minor topological differences.

The other problem is that you'll probably run out of things to accomplish. How long can a player stay entertained just building bigger and more refined versions of things that they already got working?

I suppose that could be somewhat fixed by making for a huge variety of situations - IE, move on to the next planet, which has a very different environment, or fight the next boss, who is basically immune to whatever you are currently geared for. It could also be fixed by making the world PvP, but I don't suggest it.

It also might be fixable by making the specifications about stories and mystery rather than statistics and energy. Tough, though.

Anyhow, if anyone has anything to say on the subject, or can figure out any way around any of the problems, post a message. I'm kinda spinning my wheels.

On the plus side, the new DosBox plays Quest for Glory 4 perfectly. :D

Thursday, April 12, 2007

URU Live

So, I played some Uru Live today. It's on GameTap.

My relationship with Myst (and it's various successors and offshoots) has always been unrequited. Myst hates me. I have never managed to beat any of the games without basically stapling a walkthrough to my monitor. But I love Myst: the world(s) is/are very cool concepts.

So, I wanted to try out Uru. It's basically a slight update to a four year old game, with a bunch of interesting (on paper, at least) features - including the complete lack of stats, the fact that it's a "puzzle-based" MMOG, and "customizable" worlds.

I think it probably sucks. I can't tell, because it hates me. Crashing, delays, an inability to find a puzzle...

Anyhow, I don't know about the game, but as usual, the ideas are fascinating. In terms of story, the idea that the D'ni civilization (and all its worlds) is being "opened" to random explorers from earth - the "repopulation of the D'ni" - is a fascinating one with a lot of potential. In terms of gameplay, a MMORPG based on puzzles and customized worlds is also fascinating.

Of course, the game can't live up to them. This isn't something I gleaned from playing it, as I can't really play it (it hates me, yes). It's just gleaned from the fact that if it had been done, it would have been blasted across the internet in an instant, and I would have heard about it four years ago.

But, still, a fascinating set of ideas... ones which will probably see use in some other game at some other time, hopefully polished.

Anyhow, nice try, Rand Miller, and what astonishing endurance you have.

Tuesday, April 10, 2007

NASCAR Convert!

Yes, as we speak, I am sitting watching NASCAR. On two screens simultaneously!

Okay, no, not really.

My development computer, kindly purchased by Darius to lure me into the office each morning (if you can call it "morning"), has two monitors. He got a really great deal on them, and it's clear why: they are painted all over with NASCAR logos and checkered flags.

Oh, and the keyboard was French. (Twiddle mustachios) Hohn-hohn-hoh! Their left shift key is a poor, battered thing sharing its place with the deformed bastard child of the < and > keys. Not to mention the various keys shacking up in all sorts of unlikely places. It's a wild, crazy place, France.

The keyboard is easy enough to fix. But the monitors?

I guess I'm stuck as a NASCAR fan.

Monday, April 09, 2007

Boolean Choices

Last post I mentioned that boolean choices are bad. I also mentioned that all the drama engines I'd seen were doomed - they all use boolean choices. Patrick came around and said, "hey, they all use floats and stuff!"

The choices are boolean.

The most obvious example would be in a game like Knights of the Old Republic, where your choices are universally "do good", "be a spaz", and "walk away". These are not choices which give you any kind of expressive freedom.

More complex systems are growing more common. Patrick's full of examples: Storytron and Facade are two big ones. "They use floats!"

They represent an internal state with floats. But the choices the player can make are, in fact, brutally binary. This is a result of that plague on recent drama thinking: "verb thinking". Verb thinking is better than "noun thinking". Of course, getting stabbed in the shoulder is better than being shot in the face, too. It's like the difference between having the flu and having rabies. It was a good idea when it came out, but it's a dead end: it doesn't go anywhere. Now it just wastes time.

"Punch" is a verb. You punch someone and, like magic, the game runs a quick simulation. Relationship - 40 and anger + 10 or some such. It's boolean: a punch either happens, or it doesn't. "Punch" is either true or false.

Yah, have any of you ever been in a fight? There's about a million different kinds of punch, and they carry different meanings. If I punch you as hard as I can in the face, that means I'm so angry I'm willing to break my knuckles so long as you suffer. If I stick to body blows, it means I'm not willing to let this degenerate. If I throw some elbows or knees in, it means something else, and so on and so forth.

Every verb is like this. Kiss. Touch. Yell. Barter. Blackmail. Give gift. Play parcheesi. Dance in the rain. They are not true or false. It is not a question of whether you dance in the rain, but rather how you dance in the rain.

Crawford would have you use modifiers on your verbs in order to give them some kind of spin. "Punch very hard" or "punch calmly" or some such crap. Booleans stacked on booleans. Relationship - 10 * modifier. Useless. Bandaids on gunshot wounds.

Games are intricate beasts because they allow you to determine exactly how, between thousands of nearly identical choices, you want to play. In a manner so fluid you don't even realize you're doing it. These are skill challenges.

In an FPS: strafe left? Strafe right? Go straight for the health? Jump for the high ground? Here or a foot to the left? Can you dodge the rocket? Nothing's preventing you except your own lack of skill.

An RPG is shiftier, because an RPG really does boil down to hundreds of booleans: buy a sword or armor? Equip your healer or your mage? Go back to town to rest, or push on? Get that fireball spell when you level up, or that damage bonus? But these stack - a hundred boolean decisions stacked and all simultaneously in play, all the time.

Who is equipped with what. Who is at what levels. Whose stats are what. Whose condition is what. There are three or four viable strategies for each person every round, for a total of maybe a dozen viable options, all affected by the hundreds of choices you've made so far - and that's round to round. Outside of combat, there are hundreds of possible options for combat-affecting decisions. And, of course, you have to balance offense, defense, magic, healing, items, pathfinding through dungeons, lock-picking, whatever else is in the game: it's not just all frontal assault. Your equipment, stats, and other choices "communicate" on many axes, many levels.

And me? I still think the standard RPG has a pretty weak gameplay model. The choices are too transparently clumsy - hey look, a sword of kill shit + 5! That nobody bothers to export to the other town that only has pointy sticks! Like that's not made to layer on top of the hundreds of other long-term boolean choices I've made.

A drama engine? Bah-ha-ha! You get your choice between maybe two viable strategies any given round, and you have maybe three or four things that affect the outcome, tops.

Booleans. If we're talking in terms of bits, a drama engine's "complexity" isn't even one byte. An RPG? Maybe 32-bit? Depending on the RPG? A game like Quake or Valkyrie Profile or Final Fantasy Tactics, where timing, exact position, and complex recombination matter? Maybe 128-bit.

So, yeah, drama engines. Not enough expressive power using the methods they are using.

Forget your decision trees! Your choices communicate on more than one axis, so your choices should be able to move freely on those axes! Throw down the shackles of "verb thinking" and think with "sliding axis" thinking! Don't "dance"! Waltz! Shimmy! Do the twist! The robot! The hand jive! The tango. It takes more than two to tango, ha!

Brick Walls

Imagine a system that generates content. Whether we're talking new weapons, new relationships, new dungeons, or new plots.

There is a problem with all these systems so far. That problem is that algorithmic content appears "shallow". How many varieties of goblin can you face before you get bored? How many times will a slightly higher attack bonus on a different color sword make you cheer? Although there are not really any generally available plot generators (because they suck too much to distribute), the problem is the same: how many times can you get someone to like you before it just gets boring?

Some games go "around" this situation, like the Diablo series. While everything is randomly created, it doesn't really get nearly as boring nearly as quickly. This is because everything is not randomly created. It is carefully crafted stock which is just scrambled a little bit before being served up. And crafting their stock for scrambling was really limiting: notice that they didn't scramble their plot characters or villages? Just the nameless hordes?

The problem is that algorithmically generated stock is limited. It is limited by your algorithm. You can't make a sword of snicker-snack if you don't write the "snicker-snack enchantment" into your game. If you do, then the joy wears off rather quickly. This is even worse because what algorithms really excel at doing is simply recombining content with different numeric values. Call it a "vorpal" sword, what does it do? Probably the same thing as a +3 sword, only more so. A sword of fire? Like a +3 sword, only it does extra damage to some critters and less to others.

The solution seems to lie in intertangling the generators. For example, your enemy generator creates elementally-aligned baddies. Here's an ice wolf. There's a gluey goblin. Your item generator gives out fire swords and swords of whatever the hell gluey is weak against.

Then, of course, your problem is that of chaos: you have to make it so that the players have a choice but don't have too many choices. If you offer them a sword of each type, or if they face a rainbow of enemies weak against various elements, they'll get sick of trying to choose. This is especially true if your game is easy enough to beat using plain ol' weapons.

I think the solution lies in tying the generation system into the dynamics of the game rather than the content of the game.

Imagine an FPS like Halo. You can carry only two guns. But the guns and areas are randomly generated to some extent.

You don't have "fire guns" and "ice guns" and "guns +3". You have guns that have very different effects in the very deep dynamics of the system: the guns vary in accuracy, range, recycle speed, ammunition, weight, area of effect and, sure, damage types. Most of these values aren't "match three for a prize!" There are no enemies which are labeled "weak against recycle speed!"

But when the good guy is facing down dozens of quick-moving little bastards, recycle speed is often just what you need. Not because we labeled it like that, but because that's how the dynamics are.

Think of it as an aversion to booleans. Boolean choices are the worst thing in the world. A or B. B or C. Terrible choices. A or B or C - you're still making a boolean choice - A is on or off. B is on or off. C is on or off. (This is actually why I think most "drama engines" people are talking about are doomed. Boolean choices don't give you enough range of expression.)

By making something 50% faster than average, you make a monster which is harder to hit, forcing the player to rely on weapons that have better odds. If you send things that have 4 points of armor, you force the player to rely on the big guns. If you send lots of little things, the player has to adapt to that, too. But these are sliding scales: things can be somewhat fast... or quite fast, or very fast, or kinda slow, or very slow... which means that a weapon choice isn't about finding a weapon that boolean-matches their weakness. It's about using a weapon that is good enough at what you're facing.

And since it's deeply linked to the dynamics of the game, you can actually have complex routines that create bizarre content. Like a grenade launcher. A grenade launcher is not something usually covered by a generation routine because it, alone of all weapons, is affected by gravity. Gravity, recoil, cover, speed, line of sight, and dozens of other factors are all dynamics of the game, and by mixing and matching them you can get radically unusual kinds of content.

Of course, a heuristic that can measure the interplay between generation algorithms and tweak them for difficulty is probably also a wise choice...

Anyhow, I've rambled enough.

Saturday, April 07, 2007

Simulating Characters

My computer hasn't been behaving. In the process of writing my new Big Theory, I've lost the document four times. I'm not kidding.

It's okay, though - each time I write it, the thing gets shorter. The first time, it was more than twenty pages long (and unfinished). Now I've got it down to three. Of course, a lot of content was shaved off - the original essay included a scathing review of some misleading experiments, a section about simulating interplayer complexity, and a full game doc. Those will have to come some other time, I suppose.

Anyhow, I think this is an important theory, so I want you to read it and tell me what you think:

Improving character AI.

Wednesday, April 04, 2007

What do you get when you...

Took me longer to get back on line than I thought it would.

One of the things I've been thinking about is how to simulate players. Not as in "how to make AI which does what a player would do", but as in "how to simulate someone who gets excited about specific things and wants to play with the other players".

Ha! It's tough. Any thoughts?

I'll post mine once I remove the various stupid things in them...