Friday, June 30, 2006

On Simplified Combat

Over the past few months, I've been working on shoring up my design weaknesses. I'm bad at combat engines, for example, so I made a tabletop game specifically to test some combat engine theories.

My primary working goal was simple. The reason I don't like combat in tabletop RPGs is because I grew up with combat in video games. Tabletop RPG combats move at about one round per five minutes. Sometimes, you get an easy round. But most of the time? Five minutes. And that's for a middle-of-the-line system like D&D or Whitewolf.

That's much too slow. It's not a little too slow. It's on the wrong order of magnitude.

So my goal with 2077 (that's the name of the game) was to get it down to 30 seconds or less per round.

Without making it boring or straightforward.

I did a lot of experimenting. Here is what I've learned about fast systems:

Round Robin: Players will want to go round robin. You can make them go simultaneously, but this actually slows the team as a whole down to 1/6 or 1/7 as they think out their options. So, unless you have big freaking teams, round robin is fastest.

Maps: Maps offer instant depth and variability. Even a simple, worthless map adds elements of positioning, speed, and cover which add complexity to any combat without increasing turn delays.

No Dice!: Counting, rolling, and measuring dice takes forever, especially when players are just learning a system. It is much, much faster to use some kind of action point thing and have a zero or extremely low randomness combat system. If you want randomness, use playing cards as chits and flip them over: red is win, black is fail.

Investment Actions: Allow the players to distribute their combat resources either in small pockets or huge lumps. IE, you can REALLY shoot that guy dead, or you can kind of wing him and the other two guys. This increases the complexity of the situation and lets players decide on a much more complex set of tactics besides "move three hexes and attack".

Defense Good: Allow players to invest in their own defense, but have rules for mobbing, area effect, or multifire so that even if a player all-out defends they are not invulnerable.

No Complex Effects!: Complex or multi-pronged effects should be extremely limited. In 2077, the only "complex effects" you could do were aimed shots. In a tabletop, you can allow for some amount of off-the-cuff complex effects (such as cutting a catwalk), but by and large, they should be very uncommon.

No Combat Buffs!: Buffs should not be available in combat. Healing, power boosts, changing armor - these things should be only available outside combat, if at all. Exceptions can be made for really critical moments like boss fights, but minimize the buffing. It makes the action dreadfully complex and leaves people hemming about how many action points they have or how much armor.

Player-Calculated Damage: Let players calculate the damage. If you hit them, tell them how much damage they take and let them calculate out how much their armor or immunities reduces it. This allows you to move on to the next target. You can do the same thing with enemies, if you can bear telling the players how much armor the enemies have. Obviously, this doesn't work if you're trying to surprise them with the resilience of your beasties.

Weak Characters Okay: Combat-weak characters are okay. The combats move fast and are complex enough that scouting, cover-firing, and staying out of trouble should keep them entertained enough. If you give combat-weak characters a small stash of "get out of jail free cards" (such as grenades), this will make their role as important as the front-rankers.

Effect Variations Critical: Players all need to have different capabilities. For example: short range, sniper, flame thrower, grenadier. Each character having one "shtick" and maybe a weaker backup shtick is usually enough. Their combat is mostly about maneuvering for maximum effect without getting slaughtered, and that doesn't ever appear to get old.

Waves: Combats of 5-10 rounds are painfully short. The way to fix this is not to make highly durable enemies, but to use waves of enemies. Highly durable enemies limit the GM's options and don't give the players a sense of accomplishment. You probably want enemies that can take 2-3 hits from a standard weapon - or enemies which are knocked around by player attacks. Obviously, waves of enemies don't all have to come from the same direction.

Turnaround is Fair Play: Movement is critical, and your players will undoubtedly use it to get in prime spots. For example: snipers like long range. You will undoubtedly have a "fast as hell" character if you allow for faster and slower characters, and this guy will be a pain. Fortunately, you can use snipers and fast-as-hell characters, too. In addition, you can make parts of the map collapse, bring in new waves of enemies, and turn out the lights. Use the terrain, but don't thwart the players' every move, 'cause that gets old real fast.

Go Out with a Bang!: You don't have to fight until the last man. Let enemies run, and try to end the combat with some kind of big change. An explosion, a wave of reinforcements, the floor giving out, people getting sucked into space. Grinding to a win is not quite as much fun as grinding to a win and then having something big happen.

Objectives: This is hard. Fights with objectives are simply more fun than fights to fight. Objectives can vary: defend this person, press that button, blow up that thing. Objectives can be map-based, time-based, or skill-roll-based. Whatever the objective is, it adds more spice than simply fighting.

Building From Scratch: Starting players with very simple rules and allowing them to improve to more complex ones is infinitely preferable to starting with complex rules and confused players. This kind of clashes with:

Front Load: Front loading is what got me started. It's a bit complex.

Front loading is essentially letting the players make their characters up ahead of time, spending a lot of time working on the abilities, skills, and stats. This boils down to a simple set of rules which the player remembers.

However, the joy comes in when you start offering radically different kinds of abilities, skills, and stats to different players. For example, some of my players have dermal armor (reduces damage) while some have bone lacing (caps damage). This high level of variation allows for unique characters that, while based on complex rules, simplify to allow for <5 second combat turns.

Front loading should not only be about combat, but also noncombat. A combat example might be what gun they take. What range is it best at? Can it be fired full-auto? What does that do, exactly? How many shots does it have? What kind of ammo? All of this stuff allows for a player to choose to be a certain kind of character, but even if they all choose the same kind of character, they'll end up with very different feels.

To keep things simple, you can insist players only take one or two "special rules", and let them get more special rules later, once they're used to the system.

I think that's it. :)

Thursday, June 29, 2006

Torque... Game Builder?

So, I'm finally managing to upgrade from Torque 2D Alpha 2 to "Torque Game Builder", which is apparently the beta version of Torque 2D.

I haven't got to play with it much, but I'm already excited. They have packages!

Packages are when you can define code without executing it. The primary usefulness is making polymorphic functions. You can have a global function, then have another version of that function in a package. When you load the package, it overwrites the global function.

So what? Well, here's the kicker: when you unload the package, the global function comes back.

For a simple example, lets say you want your player to be "dizzy" for a while. Well, just load a package which overwrites the default control functions with something less reliable. Then, when the timer is up, unload them.

That's a pretty poor example, because it can be easily emulated by checking a "dizziness" variable and calling a different function. But, take my word for it, packages are a very powerful design feature.

Also, Game Builder has a snazzy interface that handles what appears to be the vast majority of the busywork. To me, that's secondary to the radically enhanced capabilities that packages give. So many of my algorithms are suddenly simplified!

If you have an early adopter T2D license, go download the new version.

No license? You can buy it. It's no longer hella-cheap, but it's still pretty cheap.

My vigor is renewed! Expect something fun soon!

Some Economics

Hi there! Let's get back to basics for a bit.

Here is Broken Toy's opinion of developer-backed RMT.

I'm a little confused about his spouting commentary about Darwinism and that sort of thing, but the basic idea he has is that allowing people to buy fake money for your game from the developer unbalances your game's economy.

So, here's a simple question: what the hell is the difference between buying the money and killing a goblin for it?

The answer is: nothing! It's still just money in the system!

Sure, the dynamics change. Which players buy how much and how long it takes to gain money changes. But the basic balance does not: put money in, take money out.

Depending on your game, there's a zillion ways to take money out. Taxing purchases is one of my favorite: every time the player buys something in-game, the developer gets a cut and the seller gets the rest. Charging fake cash for skill learning, crafting, travel, and other in-game activities is also a valid idea, although it will probably piss off the poor players. You can charge money for owning land - a steep price, if the land is able to earn money by, say, being a shop or hosting tourneys or docking space ships. Thus, being a landowner makes you into a money sink.

These are largely adaptive systems. Sure, if someone comes in and brings $10,000 to the table, there's gonna be an in-game devaluation. But that devaluation isn't inflation. It's a bump. The currency gets spent on your money sinks and returns to a comfortable level of value, assuming you don't panic and drop real-world prices on your fake money.

This is true even if you provide a stipend to players (IE, 100 silver coins a week). You'll have to do some calculating and price adjusting based on how large other fonts are, but it's far from being a catastrophic, economy-ending event.

The only problem is if you put in both classic money fountains (like quests and goblin corpses) in addition to RMT. Then your RMT cost is going to have to reflect how quickly people can actually gather money in-game. That can get iffy. But it can still be managed.

...

Sometimes it feels good to get back to the basics for a while.

Wednesday, June 28, 2006

MMNG: Content Generation

All right, folks, here it is: the craaaaazy part of the game. Content generation.

Classically, creating a story is a royal pain. You have to design characters, places, and objects. Then painstakingly place them. Then animate them, script them. Then you can start to tell the story.

That's an entry barrier which is pretty absurdly high, I think you'll agree. Even reducing the complexity of the tools (to, say, SecondLife level) doesn't change the dynamic. It just makes the entry barrier slightly less absurdly high.

So, my whole purpose in designing this whole "MMNG" thing was to lower the entry barrier to as close to zero as possible. The other bits you've read about are put in to balance and enhance this "easy content creation" system.

Let's take this from a player just starting. It'll be first person, for ease of pronoun use.

---

Well, I just created a new account, "SpaceWarrior". Now it says, "welcome blah blah blah". The top of the screen says "Prep". I'm sure that's explained in the welcome dialogue, but it looks like some kind of character creation system, so we'll just wing it.

On the right it has a number: "Points". It's at 100.

Also on the right is an empty box with the gray silhouette of a person. It's labeled "Quick Start".

Beneath that is an empty box spanning most of the width of the screen, labeled "edit".

The upper portion of the screen contains a tabbed, scrollbarred selection area with things in it. In this case, half a dozen people.

I click on a person, and he appears in the large "edit" box. Also appearing is some text telling me a bit more about the character: "name: Warrior Bob", "cost: 100", etc.

I can change the camera angle and rotate Bob around. I also find that by clicking on various parts of Bob, I can pull up specifics for Bob's equipment. "name: Generic Sword", "cost: 20".

I drag the sword away, off the edit box. Suddenly, Bob's cost drops to 80. Seems fairly straight forward enough. I notice that a few new tabs have popped up on the upper "select" section: "valid weapons" and "valid items".

Clicking on those pops up a number of pretty generic-looking things that fill the niche. Sword, bow, ax, staff, gun, laser pisol. I notice that I can tweak the sort and filter of this, so I put a "max 20" on the price. The gun and laser pistol fade away.

That's kind of cool, but I really want a more unique character. So I give Bob back his sword, then click the "evolve" button.

Suddenly, there are half a dozen tabs on the "edit" box. Swapping between them, I see subtly different versions of Bob, ranging in cost from 80 to 120 points. Faces, body shape, clothes, sword - each varies from a little from Bob to Bob.

I drag my favorite Bob onto my "quick start" box, and the game dumps me into the center of a town.

At first, it feels like a normal MMORPG, but I quickly notice that the other players are rather more highly varied than the normal "elf, barbarian, troll" standards. There are angels, blobs, a tiger, some kind of dragon. Names above their head.

Clicking on them shows their owner, stats in terms of "more than you, newb", and point cost. Surprisingly, many of the more impressive avatars have a fairly low point cost - I notice that they have very unimpressive stats. Probably specifically to keep the point cost low.

(Later, I would be told that you can directly edit the files containing data, and therefore many people have a cheap and expensive version of their avatars.)

I go back to "prep" and have more fun. I learn to mutate specific aspects - from a stat to only his shirt. I learn how to drag new elements on - I give him wings, a second head. It's fun. While things can be carefully placed, by default they are placed in an "intelligent" place: the wings are put on his back, but I drag them to his shoulders. I move his heads to the elbow of his wings. Now I've got a weird headless, two-headed, winged warrior Bob.

I decide to make something else. I go to the "plot" tab and pull down "kidnapping" into the edit box.

It becomes a diagram. Gray figures populate the diagram, labeled with things like "victim", "villain", "primary enemies", "location", "base", "rescue path challenges".

Clicking on them pulls them up, superimposed over a grayed-out diagram. The "victim" is "Princess Anne", a generic-looking princess. But she's grayed out, as the text explains, because she's a "seed", rather than a "final character". I guess that means any given run through will have Anne be a slightly different princess.

I click around. I notice that it's put Winged Warrior Bob in as the main villain, supported by bats and guardsmen in black. The location is "generic field" and the base is "generic tower". The "rescue path challenges" are a little less visual, but instead show a twisted path through half a dozen challenges. Each challenge is things like "300 point fight", "200 point jumping puzzle".

I can edit all of these. I can mutate them, too.

In fact, I can mutate the whole thing at once, if I want. I can nail down elements of it, let other elements free.

I notice that each character has an "automation" selection. Clicking on that overlays the edit area with a map of the character's response patterns. It looks complex, and a warning box pops up. It says, "warning: automation is very complex. We suggest you evolve it rather than edit it."

I back out, then I click on the characters "dialogue" selection. Suddenly, there are text boxes within frames. Each frame is labeled: "faced with danger", "losing", "winning", "taunt", etc.

The text boxes contain really bad dialogue. "You don't stand a chance!" "I'll get you, #enemy!" "I am unbeatable!"

There are also other tabs - we're on "general", but there are tabs for each individual challenge as well. Plot-specific tabs. There's also a "replies" tab. It turns out to be filled with complex stuff.

That's rather more work than I care to put in, so I back out.

I drag the whole mess into the "quick start" box.

The screen background changes to a rather dramatic "fuzzy shot" of Bob grabbing a princess with a tower in the background. The top changes from "Prep" to "Prep for Mission". The "points" section changes to "120". I remember seeing that in the mission parameters. "Quick Start" turns into "Launch".

My winged Bob is more like 300 points, so I simply take one of the more pricey mutations of the original warrior Bob.

It plays through like a standard MMORPG, except with significantly more NPC chatter. I don't lose. Winged Bob has vastly more maneuverability, but is not significantly better in combat. After a tense fight, I win, rescue the princess, and fade to "prep".

A little more experimentation shows that I can put that mission up on my personal land and let people play through. Apparently, everyone who plays through will give me points, although there is some weird wording in there.

But I don't have any personal land, because this isn't a paying account.

I spend some time exploring other people's personal land. Some people have rolling hills, or underwater lakes (it turns out that, yes, Bob can drown), or even asteroids and space ships. Most of them have missions, not all of which are combat related, but many of which string on to other missions, rather than being standalone.

I also find a lot of free stuff. Dialogue tries, automation and response engines, dragons, clothes (oh so many clothes).

People have created rudimentary ecosystems - wildflowers, animals, even cities. Some personal lands are downright dangerous.

Then, I got the PM asking for help.

---

This system relies on some rather complex algorithms - the 3D animation is probably the hardest part. But the underlying idea of using mutations and automatic fill instead of careful editing... that's solid. Sure, he could manually place every goblin in the dungeon... but it's preferable to say, "500 point combat challenge" and specify it happens in a dungeon, with goblins. Let the game place the gobbies.

Also, you can spend all your time breeding new gobbies using the "evolve" button.

Next time: Narrative generation and interplayer connectivity. :D

Tuesday, June 27, 2006

Multiplayer vs Single Player

So, I've made some prototypes, but they sucked. I started asking myself, "what's up with this? Have I lost my touch? Can I only make good designs in the winter? Are my expectations simply too high and others would find these fun?"

Well, I think I figured out the answer.

You see, the vast majority of my game designs are multiplayer, but one I go to build a prototype, I've been building them as single player. This difference is enough to make the prototypes worthless, because the two styles of gameplay are so fundamentally different.

So I looked into it. What's the difference in multiplayer games vs single player games?

The answer is extremely clear to me: complexity.

A single player game has very high complexity, while a multiplayer game uses much lower complexity but with intelligently adapting play (IE, the other players).

Examples: Halo has the more or less the same basic equipment whether in single or multiplayer. But in single player, you play on a huge map with complex combats and carefully designed (or misdesigned, whatever) pacing. In multiplayer, you play on smaller, simpler maps which shape the experience but do not directly guide it.

In a game like Starcraft, you have a fairly simple set of units and capabilities, and it's all in adapting to what the other player might be doing.

"Fairly simple? Are you mad? There's, like, a zillion different units and upgrade paths in recent RTS games!"

Ah, but the content/game complexity of even the most recent, complex RTS games pales in comparison to the content/game complexity of the original Final Fantasy.

Why? Because RTS games are intended for multiplayer, so the game is designed to let the players interact in complex, conscious ways. The RPG is designed for just the opposite: as a solo game, you have only the game to interact with, so the game has to shoulder the burden of that complexity. It has to provide as much complex entertainment as at least one other player would.

MMORPGs are actually one-player games at heart, for a number of reasons. I think that's a mistake, but I've never built one, so I couldn't say for sure.

Annnnyhow.

In my efforts to design ever-simpler-to-implement games, I quickly found myself making multiplayer games, shifting the burden of complex content onto "the other player". Which is fine, if you have another player. But I don't. So the emergent complexity of these designs rarely worked in my favor, because the computer AI I design is simply too stupid.

(I'm not embarrassed by that at all, actually. You try building an AI for a game you've never seen played.)

This approach is untenable. I do not have multiple players for my computer games, and I cannot simulate them.

So, I need to rethink my approach and come up with a design that's intentionally single player without requiring scads of content creation.

Make sense?

Monday, June 26, 2006

MMNG: Global Narrative, Part Two

In part one I asked questions. In this part, I hope to answer some of them.

The basis for my solution revolves around the fact that any given player is too unreliable to be trusted with a global narrative. If a player proves that theory wrong, hire him. Then, of course, he won't be a player, and the theory will go back to being right.

I don't have a magic solution for doing player-driven global narratives automatically. I do, however, have some ideas as to how to allow players to create their own narratives and attach them to a global narrative to affect it... and how the employees writing the global narratives can use player-generated global narratives to drive their own narratives.

The basic idea is that anyone can create a plot and leave "hooks" coming out of it. A hook is something that allows other players to affect the plot. Which players can be limited, of course. Specific players, certain guilds, certain ratings, freely available: it's all possible.

A plot might be "I've kidnapped the princess, mua ha ha!" and a hook might be a castle raid.

Now, this is pretty straight forward. What kind of people can enter the castle raid with what kinds of supplies and at what times can all be strictly limited - but, of course, the more other players involved in your plot, the more "plot points" you get.

The complicated part here is that someone else can attach a new plot to the hook. For example, you attach a "gather an army" plot to the castle raid hook.

Visually, this would probably serve the same purpose as simply running around asking people to team up with you and go on a raid. But in the mechanics of a game, there is a very good reason to do it like this: plots have payoffs. The more people involved, the more the payoff. So, with your "gather an army" plot, you might get a hundred more resource points: enough resources to bring twenty more men into the castle with you.

Of course, focusing the payoff is also a major part of any plot. An extra soldier might cost twenty points, but buying in bulk is cheaper. So if you split the payoff evently, maybe each of the ten people can afford to get one extra guy, but if all the points are given to one man, then he can afford to get twenty extra guys.

The "capture the princess" plot itself is simply a method of harvesting the points that automatically come off participants and giving them, wholesale, to the owner of the place. There is almost certainly a payoff for "winning", although it might not be points. It could be the princess character, for example, added to your roster. This costs nothing to give you (it only costs when you bring it into play), but it took time and effort to design.

The "gather an army" plot could be as simple as getting people to sign on. Or it could be as complex as a tiered jousting tournament to choose who gets to lead the army into the castle.

Points themselves are just a touch complex. You see, points you gain in one plot can only be used to fuel expenditures in the plots it is hooked to. So you can't use your newly founded army in Africa - you're stuck here, rescuing this princess. However, now that you've imported them to rescuing the princess, you can continue and import them to whatever that plot is hooked to. Furthermore, there's a "tax" on imported points which is given to the owner of the plot you're porting into, which gives people a good reason to create chains of plots.

So, points are local, but they can be moved.

You can also turn temporary points into a permanent threshold by spending. It gets more expensive to raise your permanent points for each permanent point you have, of course... and you can only spend from one plot.

So, what this means is that the guy who's running the captured princess castle is trying to save up enough points to buy himself a permanent pool. The guy running the "raise an army" plot is just trying to get an edge against the "captured princess" plot - quickly gained, quickly spent.

A plot developer can choose to lock off pool spending and mandate a starting expenditure (reducing everyone to equal footing), lock off plot stringing (restrict people from gaining extra points to spend by creating hooked plots), and several other methods to control how people participate.

And, of course, anyone who wants to create a plot doesn't have to worry about in-plot spending: they can simply create their plot as they see fit, with as much grotesque overspending as they please. So the pool is kind of useless, I guess.

No, the real reason pools are important is in global narratives. While players have the same creative capabilities and tools, most of the global narratives will be created by script designers (often working off submissions from the players). These plots will be the primary source of fame and "fortune", awarding unique content and ranks to winners and participants. Designer-backed names and content will have an unforgeable demarkation - such as yellow letters - which let people show off. This can be further classified with information as to how old the custom content is, how difficult the quest was, and any additional awards the designers felt should be given out.

The designers can theoretically write whatever they want. In practice, however, a good scripter will quickly realize what's hot and what players love most, and write to that preference. Scripters can also incorporate huge swaths of player-submitted plots, allowing a scripter to work only a fraction as much as someone starting from scratch would have to.

Now, one of the biggest reasons to have a global narrative is that it is written specifically to mix newbs and elites. A newb comes into the game, and the game says, "you can start wherever you want, but we suggest you start with these low-level global narratives". Then the newb goes off and participates in some largely stable event which lets them get used to the world, get some quick content, and get a feel for the game.

This steady flow of newbs also gives points to the owner of the node, which means that lots of players will want to write newb nodes and have the designers link them directly to the newb starting area. The player-designer submits a design. The employee-designer reviews it, rejects it, modifies it, accepts it, whatever. Only the employees can link to the newb starting areas. (Although, of course, Newbs can simply go off and wander, if they feel like it.)

The way this links to elites (and, in fact, any more experienced player) is somewhat complicated and directly influences the design engine, so it'll have to be covered elsewhere.

Anyhow, that's my idea.

Sunday, June 25, 2006

MMNG: Global Narrative, Part One

A lot of people think that the problem with user-generated content is that most of it is very poor. This isn't the problem at all: most internet-distributed games are very poor. But you rarely hear about the bad ones because there's an entire infrastructure dedicated to sorting them.

The problem that people are really talking about is that the games don't have any such infrastructure.

Anyway, even that isn't the real problem. The real problem is, however, somewhat related.

The real problem is that there is no shared narrative in games with heavy user-generated content.

In most games, such as WoW or even A Tale in the Desert, there's a shared experience, a shared language. You and some other player can do that old skit: "Hey, remember when we did that thing with the doojigie?" "Yeah, and then that girl said that stuff?" "Yeah!" (Both laugh.)

This is important - it ties the fan base together.

Players will talk about all the global narratives that crop up. This includes "metagame" global narratives, such as nerfing the paladins or how irritating a particular subculture is.

Sometimes, in a game like SecondLife, you'll get a tide of content of one variety, and suddenly you have a player-created global narrative. For example, the recent increase in the number of crackers taking down servers: everyone talks about it. It's a global narrative that is player-generated.

The problem being, of course, that everyone playing the game despises it. They can't do anything about it. They can't learn the deep secrets, or play with it. That's because SecondLife doesn't have a framework to support global narratives in a constructive way. In order to have a global narrative, it essentially has to be outside of the game, leading to culture wars and hackers.

Eve Online and A Tale in the Desert both have some global support framework. While very difficult, players can have a functionally global effect in these worlds, because players can directly and distinctly affect the well-being of other players. This gives people a vested interest in one another - something which is lacking from nearly all MMORPGs, including SecondLife and WoW.

It's no surprise that both Eve and aTitD have a huge amount of politics, co-op, and PvP (Eve has more PvP, aTitD has more politics). Those are the two basic types of interaction - in-game-engine interaction, out-of-game-engine interaction, and both simultaneously (co-op). Their framework doesn't offer any other kind of interaction, so the options are rather limited.

"What other options are there?"

Well, there's emotional and narrative systems, in theory. The problem is that any given player isn't reliable in any way, so these systems can be abused.

Any given player isn't reliable...

But all players taken as a group are.

This is how Eve Online and aTitD work. aTitD uses a heavy-churn method. The designers introduce a large number of designer global challenges and let players compete. If a player flakes out, no big deal, he doesn't succeed. Someone else does.

If a player grabs power and then flakes out, aTitD adapts by eventually restarting the whole universe. Not exactly ideal, but such is life. A slacking powerful character will also be eventually replaced by an upstart, even if the powerful character completed a global challenge and the upstart did not: the upstart simply works hard and/or completes a different global challenge.

Eve takes the opposite approach, with a minimum of designer global challenges. Instead, they have an unforgiving economic engine. If a corporate head flakes out after rising to the top, then the rest of the corporation will either flee to more agile corporations or replace the slacking corporate head.

Neither of these approaches is particularly friendly to the casual or new player. In fact, both universes are hugely unfriendly to a newb. Not the players: the universe. There is a steep learning curve, mostly related to the fact that the social terrain of the game is built on the fly by the players, rather than being carefully engineered by the designers.

So, here's the question:

Is there a method for allowing this kind of player-affected (if not player-driven) global narrative content without destroying the experience for a casual player or newbie? Also, the global narrative content can't be the only narrative content - players all still have to have unique experiences.

Can you think of a way to do it that doesn't revolve around statistical power? IE, no economics, no +10 sword, no climbing the battle ranking ladder.

How would you do it?

(As you might have noticed, this is part one. In part two, I'll throw out some of my ideas.)

Saturday, June 24, 2006

Pacing

I haven't had the time to finish writing the MMNG post I want to write, so here's a simpler post about something else entirely.

Some of my very old readers might remember I occasionally posted about pacing. When I watch a movie or play a game, pacing is one of the most critical elements. A poor script can still be an excellent movie if paced well, and an excellent script can be turned into a worthless movie with the wrong pacing.

Pacing isn't solely the director or the writer: it's a bit of each. So, it's very hard to get the pacing in a movie or game right.

When it does go right, you know it. Something clicks. System Shock II. Lost in Translation. Young Frankenstein.

Of course, not everyone feels the same way about all pacing. Chances are, you hate some of the things other people consider very well paced. That's because there's more than one kind of pacing, and people have different preferences (and often, their preferences vary by mood).

Blade Runner is running in the other room. Blade Runner has exquisite pacing. But the pacing is similar to that of a three-toed sloth with no arms. So how can the pacing be considered good, when it is so slack?

Imagine a more tightly paced Blade Runner: put some strings or drums in the action scenes, trim some of the many slow sections, maybe add some snappy patter. What do you end up with? Suddenly, it becomes cheesy.

But because Blade Runner is paced more like a National Geographic documentary than a sci-fi movie, it has a weight to it that you don't get with tighter pacing. The pacing in Lost in Translation gives it a rather etherial feel - if you don't feel sleep deprived when you begin watching it, you'll feel sleep deprived by the time the credits come up.

So, I don't think there's any "global formula" for pacing. But there are some heuristics: you have to decide what kind of feel you want the pacing to give you. Hard or soft? Fast or slow?

Regardless of what you choose, and what medium you're working in, pacing is always going to be a critical element. Whether you're programming a game or writing a novel, pacing is often what makes good good and bad bad.

Friday, June 23, 2006

MMNG, How Not To Play

I've been trying to figure out how to write the MMNG design up, but it's not something that can really be summarized very well because I can't say, "well, it's just like X except Yier."

So, I guess I'll talk about it in little parts.

This first part is how not to play a game.

When you let people build their own stories in your game, it is a common mistake to think that most players will want to do that. In actuality, although more than 50% of your players will probably try it out, fewer than 5% (and probably closer to 1%) will produce much. And their skill will be, for the most part, pretty low.

A game which allows people to generate content cannot, therefore, be simply a game that lets people generate content. It has to have a backbone of other kinds of play.

For example, SecondLife has a strong socialization, grouping, and trade backbone. This isn't actually very much, and is probably responsible for the rather low player count.

The problem is that any game which players can generate content for rapidly unbalances. The "first person shooters" in SecondLife are worthless, because it's relatively easy to build a nuke and kill everyone in the quadrant. The more tightly you control the game, the more balanced it is, but the less player content interacts with it.

The solution is fairly simple: partitioned player content.

This is sort of like not letting that irritating twink play your tabletop game with his level eight million wizard of god-slaying.

There are, as far as I can tell, two big ways to partition player content.

The first is a "hard" partition: in order for player content to affect you/the world you're in, it has to follow your rules and/or be explicitly allowed. This has the major downside of requiring players to do a lot of work to manually tweak these settings, and that has a bunch of downsides.

My preferred method is a "soft" partition. By using a carefully designed system of creation, you can have player-created content "decay" as it gets further from the source. This can be a universal decay, or it can be a social decay (IE, the more people use it, the less decay it suffers).

The hard partition means that when Avagadro makes his 6.0221415x10^23-bladed sword, it is useless unless they allow for hugely powerful swords in their world (or worldview).

The soft partition means that Avagadro's sword can still be used anywhere, but the metaphysics of the universe differ enough that it is blunted to a reasonable weapon.

There are a million ways of dealing with this in particular, mostly linked to how your creation system works and what your setting is.

Annnnnnyhow, now that we've wandered off, let's bring it home:

Using a system of automatic (or mostly automatic) re-balances, you can bring player-generated content under control, and allow it to be used in minigames without crashing the game's balance too much.

You do lose some of the freedom player-generated content normally provides. For example, you can't allow people to program objects using a powerful script code, because they'll work out some algorithm which makes their otherwise-generic object into a killing machine no matter how weak you make it.

There's ways of minimizing this loss - use of energy costs and a restricted scripting dynamic, primarily.

But the basic idea is relatively simple:

You can't have a game which focuses entirely on generating narratives: not if you want it to be popular. But player content (narrative or otherwise) normally unbalances the other games you might include.

So, allow it to be unbalanced, but only in a limited scope.

That allows BobTheBreaker to design a narrative in which there is a god-king Centennial who kicks all the ass... but if he includes Centennial in other people's narratives, unless the local author allows for Centennial's power, Centennial is stuck being a moderate power level.

Wednesday, June 21, 2006

Sink it into the ocean!

I've tried to write this essay three times, each time from a different angle. Each time failed. Maybe third time will be the charm.

Update: It's written. I pity anyone who reads it, though. This is mostly for my own edification. :P

Imagine a MMORPG like any other. Something like WoW or EQ.

Now, imagine the game doesn't ever get any "bigger". The number of zones is always the same, and with each expansion, old zones are plot-killed and taken off line for every new zone that rises up.

I'm not saying this is always a good idea. I'm going to use it as a jumping point into a completely unrelated essay: Massively Multiplayer Narrative Games.

MMNGs exist: to some extent, every forum is a MMNG. Some forums are particularly MMNGy as they are actually about writing stories as a team. The problem with these kinds of games is threefold. One: the immersion is very poor, partly because it's almost always only text, partly because many of the players are very poor writers. Two: It requires a lot of effort on the part of the players to create a piece of story. Three: Well, three's the toughie. Three's the one that I've been trying to figure out how to explain.

Three is why this essay is so long.

The basic idea behind many single-player games is functionally to take problems one and two and get rid of them. By writing the story for the player and letting him walk through at his own pace making minute changes, you functionally turn the player into an excellent writer who doesn't have to work very hard to build his story.

Massively multiplayer games can't really do this - a normal player fades into the woodwork with other normal players, and only exceptionally talented, hardworking players stand out enough to build shareable narratives. Functionally, we're right back where we started: problem one is still solved (ooh, pretty), but problem two rears its ugly head again. A player's narrative cannot be the game's narrative, because it doesn't stand out. Everyone is telling the same story.

Now, the idea of the game with limited zones is to go around problem two by taking adventures off-line. "You have an agrarian sword of corn slaughter? Wow! That's totally legacy, because the Farm Labyrinth has been offline for three years! Wow!"

What we've done, if it isn't clear, is we've turned a massively multiplayer game into a historical relative single player game.

Okay, them's some big, ivory-tower words.

What it means is that your stories (which are actually the game designer's stories played through by you) aren't some generic recount of an adventure everyone else has gone on/will go on. Instead, they are relatively unique - and the longer you play the game, the more unique they become.

This allows us to conquer problem two: once again, the players can use our stories as their personal stories... to some extent. It's not anywhere near perfect because we have very slow turnover times, so roughly half of the population will have played any given zone before it dies. We'll get to my solution for that later, but there are several alternatives.

But now we're at problem three. The mysterious problem three.

Problem three is sharing stories and keeping history.

A month from now? They don't remember that epic battle they had. And nobody else ever hears about it. Right now, the only way to tell stories is over forums or comics. And those are always player-generated stories, never in-game stories except in the loosest sense of the word.

Right now, our concept of "MMORPG" is so incredibly warped, what I'm trying to say doesn't even make sense in its context. I'm talking about history.

When you read about a MMOG, what do you read about? You don't read about how the story of the demon god Spaam is fascinating. You read about guilds and funny things and stories that are made up on the border between the game's reality and the internet. Spaam never comes up: he's just another generic token.

Now imagine you're reading about a MMOG and it says, "a few decades ago, the pirate nation of Keled-zai gathered a fleet of outlaws and conquered the capital of Mira-mira. For the past few decades, they've been building their fleet and conquering nearby colonies. Recently, however, a band of nationalists calling themselves 'the unforgiven' have uncovered an ancient artifact and started raiding Keled-zai fleets."

Okay, a decent enough backstory, right? So, why is it important? Why are they talking about it?

Because it's really what's going on.

Keled-zai is run by a group of old, hard-core players. The unforgiven are another group of players. The whole thing is players. Players everywhere.

The plot may be engineered by the designers, sure. But it is executed by the players.

"It's too PvP! Most players prefer PvE, and a PvP universe leaves casual players in the dust!"

That is thinking too linearly! It's not... really... PvP...

See, the plot is something global. Whether designed by the designers or by a band of players agreeing on a plot arc is irrelevant. Everyone knows how the plot progresses. It probably has a simple two-way structure: either "A" happens or "B" does, and the conditions are agreed upon ahead of time.

So, yes, it's PvP. But it's not running willy-nilly killing people. It's goal-based PvP. It's coop PvP. COPvP?

The only effect it has on casual players is that who is in charge tends to change, but that has little effect on a casual player.

Now, what is that third problem?

A year from now, nobody will remember that the Unforgiven rose up against the Keled-zai. It's ancient history. It's totally unimportant. It's not history: it's simply nonexistant. This is an utter waste of IP building. If everyone had totally forgotten the first three movies, nobody would have gone to see the latest Star Wars films. On the strength of the best stories of the past, they did well. We need to tap into that same power.

So our game, our theoretical little marvel, automatically stores stories.

This means that someone a year from now, a decade from now, can find the story of the Uprise of the Unforgiven. Screenshots, purple prose, drama, personality, and perhaps even humor are found in the story. Maybe the book is even an interactive history, allowing you to "play" a subgame based on the uprising, or study given figures in more detail (linking to other stories related to those people).

Bored with playing for the moment? Sick of waiting for your guild? Pop open a book. Suddenly, the world has a very vivid and personal history.

"That sounds pretty... dumb. I mean, who would bother to read that stuff?"

Well, I would bet at least 1% of your population would become regular readers, and at least 5% will read one if it is recommended to them. But, you're right: it needs to be made part of the game.

So the stories are linked to power.

You read about the Uprise of the Unforgiven? You gain hints as to a secret new power, or the location of an artefact. Put together the clues, become a more central player in a related plot event!

This isn't a one-time affair. John can't read the Uprising three times to gain more and more clues, but the clues John gets and the clues Sara gets are different. Even after the Uprising is ancient history and dozens of plots have uprisen from it, the next player to peer into that dusty tome will still get an applicable clue which can be leveraged into their own plot point.

Which, of course, becomes a new story that can be read and clues gained from it...

(Also, you don't gain anything for reading stories that you were a major player in. Cross-pollination is important.)

"Wait, this is getting more and more convoluted! Now we're talking about a kazillion plots! Who's scripting all these things?"

Yes, I've rather left the "churning zones" game behind in favor of a "player-generated plot game". But, as you might recall, I've been aiming at one for months. And I think I know how to do it.

This post is long enough, though. I'll post that design later.

If you made it this far, you have too much time on your hands. :)

Tuesday, June 20, 2006

Replay! Part Two.

"How can we put replayability in our games most efficiently?"

It's an important question.

A lot of people suggest variation. Let the player go through as a warrior, or a mage, or whatever. Let him choose good or evil. It's certainly the most popular assumption, but I don't think it's correct.

Actually, I think it's accidentally accomplishing a goal which could be accomplished much cheaper.

You might not replay many games. I do. What games do you replay? What games do I replay?

Well, I replay Quest for Glory 1-4, System Shock II, Carnage Heart, DOAXBV, Chrono Trigger, Valkyrie Profile, Brigandine, and Spades.

What do these games have in common?

Not a god-damn thing. Not one single thing. Some of them actively suck.

Some of them offer "multiple paths", but you know what? I never follow them. By the time I replay the game, I've forgotten enough that I'm just looking to have a very similar experience to what I had before. Sometimes, after my very first play through, I'll sit down and immediately play again with a different "path". However, it's rare that I'll finish that play, because I'll get "played out" before reaching the end.

I've tried to play these games using other styles, but I usually just can't do it. It's just not as interesting to me. So, obviously, their extremely high replay values don't come from being able to play different ways.

I always play a mage, a hacker, a scientific expansionist, and a volleyball player with unconvincing breasts.

But the games with the highest replay value typically allow me to play as a thief, a soldier, a berserker, and... a different volleyball player with unconvincing breasts. Even if I don't choose to.

So perhaps there is something that happens because of this design feature.

I think it's extraneous patterns.

Okay, most of you probably don't have a clue what I'm talking about.

When you play a game, you're really pounding through patterns. Sometimes, this is extremely obvious: gotta dodge the bullets, gotta level optimally, whatever. Most games focus on these kinds of central patterns.

But the games which have a high replay value seem to have patterns you don't use. Added details that are necessary for other plays, but not for this one. These details catch your attention, they give the world a depth... because they are't there for you. You remember them, like a road crash you saw while driving to work. The world feels alive and you feel like there's more to the game than just you wandering along the straight and narrow path to victory.

This isn't just extra content, or a widget hunt. This is stuff you, the player, actually cannot use. It's a person who won't talk to you because of your gender, or a lock you can't pick because you don't know how to pick locks. It's a health packet on a ledge that you can't reach without telekinetics.

It's also beautiful backgrounds, and moving music, and strong dialogue. It's the ten thousand stupid books in any Elder Scrolls game, and the way that randomly generated worlds have random crap in them that isn't really useful to anyone.

It's any pattern which isn't in your path. Any pattern which you aren't going to negotiate, but only notice. Even if you aren't actually going to consciously notice it, you'll feel the depth.

It's depth.

Now, do you have to implement fifteen ways of getting through each level to get this kind of depth?

I don't really think so. Sure, it will certainly work, but that's a hell of a lot of effort, don't you think? Isn't it better to spend that time on ten times as many extra patterns that don't require extra scripting and rebalancing?

Hrm. Oh. Don't tease the player by putting in what appear to be play options but actually aren't. I really hate that.

Comments and questions very welcome. I'd like to hear about what games you like to replay.

Replay! Part One.

Okay, there's some chatter about replay these days. Some people think it's absolutely critical, others think it's either totally irrelevant or even a waste of effort.

Me, I float in the middle.

When you design a game, one of the things you need to keep in mind is an "efficient" use of your audience. Basically, you want to impress your audience, get your audience dedicated, get your audience evangelizing, and get your audience to pay you.

Lets say we write a fifteen hour game, selling it over the internet for $14.99.

Let's skip all the other stuff and go to the heart of the matter: getting a dedicated audience. Dedication really drives everything else. Dedicated fans will evangelize, spend money, and be impressed.

Dedication is largely a function of how much time you can convince someone to spend in your world. In this case, our game is fifteen hours long. So, we get a certain amount of dedication out of that: let's say it's 15 * Q, where Q is our Quality.

The thing is, Q also determines how long people want to play the game. So, if our Q is low enough that they only want to play for five hours, then we're wasting our time developing fifteen hours of game. The additional ten hours not only aren't necessary, they actually decrease the amount of dedication players will feel because they won't get to see our cool endgame - no closure. All the player remembers is that he didn't manage to get through the game.

On the other hand, if our Q is high enough that they want to play for 40 hours, then our 15 hours of gameplay simply aren't enough! We're not being as efficient as we could be.

There's three solutions to that.

1) Episodes. Release new content. Have them pay for it. This will probably work, but I question how well for reasons I'll explain shortly.

2) Player content. Allowing players to generate content, whether in-game or simply fanfiction, radically increases the amount of play time players can spend in the game. Of course, this has a lot of other benefits and problems, and is really a book on its own.

3) Replay value. Allow people to replay your 15 hour game several times, each time having fun.

Here's the thing: people don't react the same way to the same game. For one person, they might want to play your game for 80 hours. Another person might only want to play it 10 hours.

With episodic content, the people who only want to play 10 hours aren't going to buy additional episodes because they are played out. Or, worse, they'll buy the episode not realizing that they're played out and think that it's "boring". Additional episodes would have to be very different games in order to draw these people back in.

With replay content, however, people can choose how much they want to play.

"Isn't that inefficient? Can't you get more money by using an episodic system? Sure, you'll lose some players, but the rest..."

It's a tough question. First, episodes cost a whole lot more on a per-hour basis than adding replay value. So, you're spending a whole lot more money and probably falling behind your demand. You've got to worry about players drifting away and forgetting about you.

Second, having a significant portion of your audience going, "yeah, I played the first two episodes, but it got kind of boring" is pretty damning. It's probably going to rather painfully limit your mass appeal if that kind of opinion is common.

Third, hardcore players who play your one game with high replay value for a hundred hours will be just as zealous about selling your next game (be it an episode or an unrelated event) as players who play through seven fifteen-hour episodes.

How this balances out, I'm not sure. Is it worth going episodic and trying for extra money? I think, if you do, you'll have to try for a high-quality game where each episode has new gameplay and a decent replay value.

Hrm.

The other half of the equation is "what can we do to increase the replay value of our game"?

I'll post about that in a few minutes. Or, probably, you just read it, since these things display backwards. My opinion might surprise you. Unless, of course, you've already read it.

Monday, June 19, 2006

Worcester!

Fascinating.

Apparently, the Worcester PD's "non-emergency" number routes straight to their complaints department.

Well, that's efficient. Sad, but efficient.

Sunday, June 18, 2006

Links n' Stuff

I was recently asked for links n' stuff on hoity-toity game design. Here's some. If you have some, comment away.

MDA/8 Kinds of Fun (Poor website, IMO, but good ideas.)

8 Kinds of Fun (also avaible in flavors of 7, 9, and 13, as I recall) is simply a way to get you to think about what kinds of experiences you'll be providing - helping you to either focus or diversify.

MDA is a method of looking at how mechanics affect the end experience of the player - this mechanistic style of game design is pretty much all I go for, although I personally think MDA is a bit... "loose". It doesn't contain any real helpful things, just a kind of generic overview of ways you might want to think about stuff.

Poker player types, which are actually very good analysis of game players in general, although they're missing several kinds of players because poker doesn't appeal to everyone.

Maybe more useful, 4/25 types of players. Not the standard fare, but I never liked the standard fare. It's humor, but there's a lot of real data there. Which, really, is the reason it's funny.

Of course, the standard fare is Bartle's Four Player Types. I think this is an old essay, but I can't tell for sure. Anyhow, that's the most popular analysis of player types.

When it comes to design paradigms, there aren't very many links available. MDA is one of the few (first link). There's a few others, like the 400 project and about a million "patterns of game design" knockoffs.

Mostly, however, it's a tenuous gathering of posts from people who are thinking but not publishing. For example, Skotos, Sirlin, and even me.

The real problem is that the deeper theories come from people who have half a dozen theories. Me? I run with PAC, nested gameplay loops, and relative play vision - all three of which provide for interesting, useful ways of looking at games. But it's not a theory. Most other theorists of this type are in the same boat.

(Those links are old, because it's been a while since I've posted overviews. As time goes on, it's updates and new permutations...)

There. Post your favorite links in the comments section.

Agreeing

Wow, I wonder where I've heard this before...

Oh, yeah...

It's the same system I proposed many months ago, in the exact same context, for the exact same purpose. Great to know I'm not just wandering off at random.

Since then, however, I turned that into the "color networked" method of tracking customer preferences. If you haven't read it, you can get some details here. I've since worked out some simplifications so that the computation doesn't eat quite so many resources.

The basic problem with Bartle's reputation system is that it doesn't split things up.

For example, I like Matt. Matt's a good guy, he speaks in real words, and he consistantly trades me wombat phlegm for a fair price. Also, some of Matt's friends are brokers as well, so when I need fish fur and binky thorns, I know who else to go to.

But much of Matt's friends list is filled with raid team members. In order to reliably get wombat phlegm, he goes on raids pretty much every day, and he has a few hundred contacts to facilitate this.

I have no interest in these people. Not only are they playing a different game, their personality is probably more suited to raiding than trading. There's nothing wrong with that, but in my eyes, they're worthless. They're not interesting at all, and they're not providing anything I want. Even if they want to sell their stuff, it's stuff like a sword of wombat-slaying. I'm a noncom - why would I want that sort of thing?

Bartle's system might slow down irritating gits, but it doesn't raise connectivity, because there's simply too much noise. If I see someone with a high rating, it means nothing to me, because he's probably been rated by someone with different needs and a different perspective. Even though the rater is my friend, his friends are another degree of separation away.

If you stick to socializing, you have the same problem.

My roomie and I have some of the same friends. But I have no use for his "ratings", because the majority of them are for people who I have nothing in common with. Sure, we can be idealistic and talk about different kinds of people finding similarities they never knew they had... but when 99% of your socialization is finding similarities you never knew you had, you realize you aren't really getting anywhere. (Unless, of course, you're the sort of player who likes doing that.)

But if I had a way to split roomie's picks into "geeks" and "non-geeks", suddenly his ratings become useful to me. Not only can I rate his geeky friends higher, I can actually rate his non-geeky friends "lower" (by which I mean "less likely to be interesting", not "irritating").

This can't just be "number of links", because the raiders outnumber me a million to one. If they only link a little, it outnumbers the maximum number of merchants' links. So you need to be able to split it correctly - functionally, automatically generating "circles of friends" from people's ratings without needing them to specify.

That's the method to the madness.

Also, it has the benefit of producing a global net rather than 10,000 local nets. The 10,000 local nets are handled on the client, and the servers only need to keep track of a single super-net.

Broken Toys' take.

Saturday, June 17, 2006

Gods of the Future

I had a dream last night. Like all dreams, it was a bit rambling. However, I am gifted with fundamentally bizarre but coherent dreams, so perhaps you'll find it interesting. It's kind of a boring future-fairy-tale.

I was in the future, and I was responsible for designing gods. Gods are pseudo-AI systems which make interacting with complex things easy. I had designed a few, and then someone dumped the god of the internet on me.

It was a herculean task (not that "herculean" was a reference to this kind of god). The old god of the internet (the third god of the internet) was having a very hard time coping with the growing number of transmedia communications. He couldn't translate from english to VR to neurocode very well, and that was what the internet of the future was particularly focusing on.

I needed to replace him. The mythos was simple: I was creating the son (or daughter) of this internet god - smarter, more cunning, one step closer to ragnarok. The actual algorithms were, however, exceptionally difficult.

So I went looking for help.

First I went to the goddess of translation. I figured: languages are a little like different media. It's pretty rare to be able to have a straight translation that doesn't end up with a different subtext. Especially when one of those languages is a descendant of LISP and the other is French.

The goddess of translation was known as "Doke Doke", which roughly translates to "get the hell out of my way". She manifested by turning a portion of the Japanese-style white-paper-balsa-wood walls into a high-definition screen. If you hadn't guessed, she "lived" in a pseudo-Japanese mansion, replete with koi ponds and clutter-free rooms.

Anyhow, she was happy to teach her secret, but first I had to learn the language her secret could be described in. And in order to do that, I had to learn a language that would teach me enough of a framework to learn that language.

So, I learned all that stuff, only to realize her secret wouldn't help me because it was entirely about languages. It couldn't be translated into visual design or neurocode or anything like that. I realized that it was probably time for Doke Doke to retire as well: her Mystery was showing its age. But she still had a huge number of satisfied worshippers, so it was unlikely to happen.

After that, I went to Jupiter to see the god of starship and habitat design. I figured that using a huge variety of technologies to create on working product might be exactly the kind of robustness I needed.

That god was called "HAL", which kind of made me a little nervous, but he was a very nice guy. "Lived" in a giant space station. Some parts looked like something from Aliens, other parts looked very pleasant.

(In case you can't tell, architecture plays a huge part in my dreams.)

HAL taught me his secret, which was considerably less complex. I was fascinated to learn that he used the bizarre, backwards approach of using humans to do all the work. All he did was translate worshipper requests into a language that the engineers could understand.

This worked for him because any given technology was obsolete in twenty years or less, so there was no need to "keep it on record" for more than the lifespan (150-200 years) of the specialists who knew about it.

Not feasible for me, unfortunately, but a fascinating concept. He told me he was built on suggestions from - guess who? The internet god.

So, for the first time ever (in person), I went to see the god I was planning on forcing to retire. I was very nervous, because not all gods take retirement well.

The MCP "lived" in a giant, abandoned, white-and-silver futuristic mall. Catwalks and floaty escalators everywhere, and him right in the middle. Same voice as the MCP from Tron, and same sinusoidal head movements and cylindrical shape.

After a few minutes, I decided he was a bit of a hack. I don't think he was capable of even understanding the idea of "being replaced", let alone get upset at me for trying to do so.

He liked to talk, and when I poked him for information on HAL's algorithm, he told me he had recovered the file from his mother, who had recovered it from her father, who had found it back when Earth was the only colonized planet.

An algorithm that had survived since the beginning of time!

I was excited - I had grand thoughts of ancient wisdom, lost through the centuries.

The algorithm was, when translated: "use humans to do the hard part".

I was dismayed, but then I got a glimmer of an idea.

I took it back to Doke Doke, who taught me the original language (an "ancient and barbaric dialect of LISP"). Untranslated, it was a recursive meta-algorithm which actually specified how to use humans to do the hard part (which was, rather unsurprisingly to those of you who know what "recursive" means, to get humans to do that part, too).

This algorithm was rather more useful, and I made the next goddess of the internet: Little Endian, blind child goddess of transmedia.

Functionally, all she did was ask people to translate something from one media to another, and "average together" their results using a kind of geeky popularity contest. Therefore, she could translate one thing into another by simply pointing to someplace that had already made the translation.

Of course, I thought it was a huge revelation, and everyone lauded me for my exceptionally clever program.

Then I woke up. I realized it wasn't a revelation at all: it was rather oldschool and kind of passe. But it could still work, I supposed. I pulled up the assignment and scanned through it - they didn't specify that I couldn't use human resources as a backbone for the god.

It might be worth trying, although it would require centralized data stores, and those had been out of style for five hundred years.

Well, I didn't exactly have any other options, so I started to program it.

Then I really woke up.

Friday, June 16, 2006

Evolution of Games

Every once in a while, the Ivory Tower calls to me, and it says: "Doooo game components..."

See, everyone likes to talk about game components. They like to come up with ideas, and cool phrases, and say, "this game is put together like that, and that game is put together like this!"

So, I'm gonna prattle about it myself. I'll be using the "evolutionary model". If you "don't believe in evolution" or don't understand it, then this probably won't be a very fun essay for you, so go read a different one.

Back in the good ol' days, there was Pong. Pong and Pac-Man and Space Invaders. Simple games for simple times.

These were our single-celled organisms. They were the amoebas of game. They flagellated through the cities of Japan, eating all the five-yen coins and excreting sweaty otaku.

But times advanced. Limited resources forced competition. Bigger, more powerful games were needed. Graphics were pushed. New IO doohickeys were deployed. But a single cell can only get so big. What the game industry needed was a more complex organism. Something with some guts.

Games began to incorporate other elements from other kinds of living creatures. Where before there was just a "play" cell, now there was a play cell, a save/reload cell, a high-score cell, a setting cell, and a story cell working together as one glompy bunch of symbiotes.

Soon, their DNA cross-mixed. Games following these games weren't about glomping disparate symbiotes together, they created the symbiotes while being produced. A "multicellular game" became the default organism. Specialized cells allowed these games to compete on many levels: they could compete as games, as social phenomina, as stories, as competitions.

Games continued to grow more complex. Where before things were multicellular, they were now growing organs and - dare we presume - even an occasional spine. They prospered as living things do: their success as much about the environment they lived in as their actual capabilities.

Unfortunately, game reproduction isn't quite as nicely squishy and autonomous as living organisms. Games don't use DNA: they use HNA. Human...nucleic acids... or something.

Anyhow, instead of one game waltzing over to another game and saying, "hey, let's have babies, baby!", a game's HNA is manually interpreted by people with silly obsessions and even sillier theories about what is or is not fun. The people not only manually mix HNA from one game with HNA from another game, they even manually construct and staple together the cells that HNA describes.

And they screw it up.

Especially since the need to get bigger and stronger never ended. Now we have these tremendous dinosaurs waddling the land, mooing about how it's tough being a dinosaur and raking in subscription cash. And we have a bunch of retrograde designers sending out squads of simple puzzle-game clones. Nothing wrong with that, really - a well-built insect can be strikingly beautiful, and they keep the ecology balanced.

So, that's where we are.

Mmmm. Then? To space! Extremophile games that were born in the shocking freeze of, say, Wall Street, or in the exceedingly salty heat of religion. These freaks of nature can show us more about the biology of games than we might think!

Now, how about a game which can reproduce by itself? Or with the assistance of random people instead of particular, well-funded people?

Take the next step! Species of games! Wheee!

A Bit of Rocket

I made some early ideas for rocket heart script programming.

If you're interested, you might find them here:

RTF
PDF

It basically gives a hint as to what the language would be like.

Thursday, June 15, 2006

I Wanna be the Rigger!

So, there's a lot of talk about the new "Shadowrun" game. For those unfamiliar with the situation, the game is is "based on the Shadowrun game system" in the same way that, say, Desperate Housewives is based on Taming of the Shrew. It's a different universe with a different feeling, different core game dynamic, and different concentration.

In short, it's not a Shadowrun game at all.

Okay, now, before anyone dives in for or against this other game, let me remember my Shadowrun experiences.

Hmmmurmmmmuuuu... it's coming to me...

Oh, yeah! The fact is that hackers, riggers, and mages aren't playing the same game as anyone else in the party. Or each other, for that matter. Always slowed the game to a crawl.

They're off routing nodes, or scouting paths, or doing astral projection, or something. And they kind of sit in the back as support staff while the combat team rolls all the dice and feels all the intensity.

Now, let's move that into a massively multiplayer game.

I'm not stuck sitting at your table. Instead of having to pull me aside every time you something happens to me, the game automatically can talk to me, as if I were the primary team.

There's no long delay, no disrupting the party. The hackers can be hackers, the riggers, riggers, and the mages, mages. They can all play their different but intertwined games, creating a rich, diverse, team-heavy play style.

Creating, in short, a Shadowrun that is better than the original.

Here's the question: why didn't they choose to do this? Why did they choose to make it Quake With Magic instead?

Imagine it. You're a hacker. You're playing a game consisting half of TRON-like VR, half of green phosphorous on black backdrops. You crack ice, you open doors, you shut down camera feeds. And in this time, your infiltration team is running, realtime, through the system you are hacking! You hack the doors, the team gets to go through them. It's beautiful.

Similarly, imagine a drone rigger whose screen is primarily a "radar map" display of where all his vehicles are. He can move them around and, if he feels the need, even pull up a "real-cam" display and pilot them in detail. True scouting and defenses.

All of these "secondary games" become "primary games" when they are put in an MMOG. This would be pretty damn cool, don't you think?

I think it is the coolest MMOG concept I've heard in a long time. The difference between character classes isn't something stupid like, "my ranged attack is a radius fire attack, while his is a machine-gun". These different classes approach the entire game world in a different way.

Also, it allows for an awesome crafting engine.

What a mis-step, to throw all this away. It's like someone giving you a free ticket to a five star restaurant, and you trade it to the nearest street vender for a hot-dog with everything.

Bleah!

Wednesday, June 14, 2006

Circles in the Sand

I am a proponent of death. The more fatal, the better.

I do not like med kits. I do not like respawns. I do not like phoenix downs. I am, of course, talking about death in games - I think it should be deadly, and I dislike nerfing it.

But, on the other hand, I hold even less fondness for killing.

"Wait, for death, but against killings? What is he saying?"

I'm saying that, in order for a game to be truely dramatic, death has to be so fatal that you avoid it. Death has to be something you only risk for the most important reasons.

And the place I think this is most important? Massively multiplayer on-line RPGs.

Yes, that's right, I'm talking about perma-death.

"Everyone hates it! Nobody will play! You'll be the scorn of the universe!"

Bah. It might not please the mainstream, but lots of things don't please the mainstream and still have merit. Like truth, like science, like greed... like death.

Think about all the problems that impermanent death causes. Trolls. PKers. Maxed-out characters. Mudflation.

Can you solve these without resorting to perma-death? Maybe. But permadeath solves all of them, and offers some astonishingly unique and interesting opportunities.

Imagine a game where you control your family, or a game in which when you die, the player takes over a related character. Instead of building your character, you have to build your family's legacy.

Imagine a game where you could sacrifice your character for something you really believed in - a game where your allegiance isn't just an hour of your time, but your very life, sacrificed to stop your enemies.

Imagine a game where you really could have a sword passed down from generation to generation, imbued with the spirits of your noble ancestors. A unique magic item deeply linked to your personal story.

Drawbacks? Yeah. You don't want to kill anyone who doesn't know they're risking getting killed, primarily. You don't want new characters to be able to kill themselves to stop experienced characters, because then the PKers and trolls will not be stopped after all.

But these are easily solved. There's a hundred ways of doing it.

Anyhow, just thought I'd bring it up. Perma-death should not be taboo. It should be courted. It is viable.

Tuesday, June 13, 2006

Stealing Ideas

There has been a recent furor over movie studios stealing script ideas, and there seems to be a fear among the young that game devs might steal ideas, too. People want laws made! People want action taken!

People want to shoot themselves in the foot!

I know people who work in fairly high positions in fairly large companies. They regularly (often more than once a week) get mailed or emailed by someone who has "the bestest idea".

Because of the way the law works for non-creative-media companies, these appeals aren't even looked at. They are returned unopened, often with a "have your lawyer contact us" stamp. Why? Because if the company ever produces anything vaguely similar, they get sued. Difference between patents and copyrights, I guess. I'm not an expert.

I think that is just a fantastic idea to apply to the movie industry. Yeah! Instead of suffering the tiny chance that your script gets stolen, you should instead save yourself by simply being unable to get anyone to read your script in the first place. Whoa! Great fuckin' solution there, boys!

Here's the thing: ideas, and even whole scripts, are pretty much useless. In order for something to have any merit, it not only has to be good, it has to fit in a slot.

When you pitch a script or a game bible to a production company, you're not really pitching that script. You're pitching your ability. The script is just a script. It's simply proof that you can write (or design). Is it gonna get stolen?

Well, it's unlikely, but maybe. Who cares? It's not your freaking baby, it's a script. As a professional, you should be able to produce endless varieties of scripts for anyone willing to drop money on your desk.

The power of being a pro isn't that you've got a great idea. It's that you have a hundred thousand great ideas, and you have new ones every time someone says, "I need a..."

The power of being a pro isn't in any given production, it's in the fact that you can reliably produce.

Now, if you pitch a mostly completed movie or game to one of these companies, and they steal that, well... that's far, far more serious shit. Those are largely completed products as opposed to ideas barely even stamped on paper.

It's also extremely rare, easy to prove, and easy to sue for. Those might be related facts.

So, IMO, don't worry overmuch about your ideas being stolen. It probably isn't going to happen. If it does, it'll be a slap in the face, but at least you know you're in the right skill bracket. Also, it's fairly likely that there was another, virtually identical idea pitched at roughly the same time. You'd be amazed at how often two or three versions of the same weird-ass idea roll into a studio.

Your power isn't in that paper you wrote. It's in the fact that you can write the paper they want you to write. That's true of game design, it's true of script writing, it's even true of fiction and nonfiction writers, although in a more roundabout way.

Monday, June 12, 2006

Politics as Usual

Most bloggers are extremely hard pressed to leave politics out of all their posts, and their opinions usually creep into the conversation once in a while - some more often than others.

The interesting thing is that I'm reading blogs whose writers are from every side of the political spectrum. That guy's a hardcore fundamentalist christian conservative, that girl's a socialist, that dude's a fiscal conservative, that girl's a libertarian. All bright people, but divided on the most fundamental topics. All write brilliantly in their field of expertise, but they can't agree on even a starting point for how to balance a national budget.

To sound wise, people who want to make peace between the camps say things like, "it's a matter of perspective" or "they have different priorities". I think this is a terrible thing to say. Look at science.

Real science, done by real scientists, results in everything from vaccines to airplanes to search engines. If you put these scientists in a room together and have them talk, they'll have a hundred different priorities and perspectives. That scientist is a money-grubber. That one is trying to make the world a better place. That one is simply curious. That one wants to fund his own "super-think-tank". Blah blah blah.

But these scientists don't disagree on fundamental issues in science. Excepting, of course, the <1% "crazed loon insisting he's a scientist".

Sure, they disagree on lesser issues (that may seem like core issues to the people involved). They can even disagree on the stability and importance of a given core issue. But you won't hear one of them saying, "well, I think it's most critical to take gravity into account when building a jet" and another saying "no, you're totally wrong, it's all about the atmosphere." They both know that both need to be taken into account.

In defending the massive variety of opinions in the political arena, you can say, "it's a burgeoning field, not as well known as other sciences" or similar. But even in a burgeoning field, there are obvious lines of discussion, even if there are disagreements as to the best simulation. Economics is a burgeoning field, and there are many opinions as to what the algorithm really is, and what the best approach is. But the people aren't arguing over whether money is something economics should be concerned about...

Of course, the best argument is "it's not a science!"

It's also the worst argument.

You're telling me that our political decisions shouldn't take science into consideration? Science has extended lives, connected billions of people, brought us into outer space, and given us digital watches. It has proven itself to be the most effective source for stable, reliable improvements in every industry and even in many religions and communities.

What else would you rather use? What else has a higher success rate? What else is more efficient?

Every time I see four people I respect posting from four radically differing political views, and seeing the comments field fill with people who deeply hate one side or another, I get angry. Political parties are more a matter of convenience than anything else, and the idea that someone's worthiness can be identified by their affiliation is a flawed idea.

It just stuns me that people who are good people, brilliant people, can hate each other because of a political affiliation. It stuns me just as much that these people have such radically differing political affiliations.

It's not just where they want our limited resources to go first: it's that they want them applied in literally the opposite way. They can't even agree that something is worth spending any money or laws on.

This seems bizarre to me. Really, deeply bizarre.

We have data. We have tools of analysis. But we don't use them. We refuse to acknowledge serious long-term problems with our favorite political decisions. Sure, the data is sometimes rough and sometimes flat out unreliable. Sure, you can't reproduce experiments or isolate variables. But in many situations, these bright people back decisions which have been flat out proven wrong.

I can see the general public backing asinine choices... but these are brilliant people. Scientists. Skeptics.

Why?

Sunday, June 11, 2006

Rocket Heart!

Actually, I've decided I like calling it "rocket heart" rather than "chu chu carnage". Hey, I never claimed to be good at names.

Anyhow, this post is about my social algorithm idea. This is a really long, boring post about a topic I haven't totally clarified to myself, yet. Read at your own risk, and I suggest bringing a sandwich. :)

This might seem like a pretty weird algorithm, but the primary component is in the highly individual programming that goes into each character. These aren't interchangeable characters: they react to the same stimuli in very different ways.

Each character has the ability to launch out a "relationship anchor", which you can think of as a chain connecting the launcher to the target. For example, if Anna likes Bob, she'll latch a relationship anchor to him. One representing the relationship she's aiming for - so maybe a pink one.

This anchor doesn't anchor Bob to her, though! It has no effect on Bob at all! It's just an intention to have a relationship with Bob.

Characters can choose to send events down these anchor chains. We'll imagine these events to be a horde of sparkles riding down the chain. These events are used to convince your target to respond to you in some way - say, by anchoring a similar chain to you. The reason we're imagining them as sparklies is because there are lots of ways to express yourself, and some of those ways are significantly more sparkly than others. IE, shouting that you love Bob over schoolwide PA is pretty damn sparkly, whereas smiling and waving is not very sparkly.

Pretty simple? Okay, let's punch it up a notch.

When characters are in the same physical place, think of their chains as glowing. Now, everyone in that place can see actions which other characters take. IE, they can see the sparklies. (You can put in a "not paying attention" thing, where less sparkly events aren't noticed, but functionally, if you're in one place, you see the sparklies.)

Okay, this is where I describe how the characters are programmed.

They use a system of sight responses, link responses, attenuating link actions, and removed link responses. Also, it is usually the case that a programmer scripts them to have several pre-exising links - characters don't usually start from zero.

Sight responses are responses to seeing a character. If a character has a sight response, it'll usually relate to some shared element between characters (for example, Charles falls for every redhead). This usually just establishes a link of a given type if another character has a given attribute. It's really the "first impression" response.

Link responses are responses to incoming events. An example might be to forge a romantic relationship with anyone who shoots a romantic event at you. We do want over-the-top characters, but that's a bit too over-the-top, so we'll probably have a somewhat more complex script which determines the value of the offer and how strong your other romantic relationships are... but it varies hugely from person to person. Don't forget, many actions are "live" and can't simply be ignored.

Attenuation actions are functionally timed events linked to any given relationship link. For example, every day Donald wants to visit his girlfriend, whoever that might be. Pretty straight forward. This can also be done with schedules to save computation: people will slot scheduled events at the same time if they want to see each other. It's very easy, but less adaptable.

(Also, attentuation actions typically reduce link strength after a certain amount of time without a phone call. :P)

Removed link responses aren't responses to breaking social links. They're responses to other people's actions on other people. Remember, if we're in the same place, we can see actions taken. So, if Anna sees Bob being romantic with Coco, Anna will probably be upset. On the other hand, if Anna sees Bob being angry at Donald, she's likely to also be angry at Donald because she is on Bob's side of... whatever it is they happen to be arguing about.

But Anna can only work with what she can see (or sense, if she establishes an "informant" relationship with someone who tells her about Bob).

Okay, kind of complex? Really, it's complex enough to have it's own domain language. The basic idea is that each kind of relationship has different actions associated with it, each of which has a few features (most notably a "sparkliness"). Each person's preferences determine which actions they would prefer to take, and this can survive transition from one set of mechanics to another.

For example, if Anna is shy, she won't want to use very sparkly actions. Most in-person actions are highly sparkly, so when Anna is actually with Bob, she's likely to hang in the background and do nothing other than be shy and occasionally whisper to a friend. When not in person, she likely persues some of the less-sparkly actions, such as talking to her friends about Bob, writing and discarding love letters to Bob, and stalking Bob.

Most kinds of relationships will probably have around a dozen actions associated with them, all at various levels of sparkliness.

Sending out of relationship actions is an important point, too. If Anna has only a romantic link to Bob, then any action she takes will be rated as a romantic action. This means she's going to be universally shy, because even talking to him about homework is going to make her think romantic thoughts.

If she has a "friend" or "working" relationship with Bob in addition to her romantic one, she'll judge those actions on a different scale, and therefore will only be shy when it comes to romantic events. Presumably, non-friend, non-working, non-romantic events will default to either friend or working rather than romance... but it depends on her programming.

Why wouldn't Anne establish a working relationship if she's going to be talking about homework? Because Anne might be programmed not to set up working relationships with men, or with someone she has a crush on. It makes for a more entertaining character.

You can allow for demeanor in addition to event, if you feel particularly aggressive... but it isn't necessary to the system.

Requests:

Requests are usually made in response to an event. For example, if someone punches you, you can reply with a request for him not to do that again. A request is, in these cases, asking the person to do or not do a particular event. It can be sent loudly (vocally) or softly (body language or simple "stop"). If sent loudly, it is sparklier than the event you're trying to cause or stop. If sent softly, it is far less sparkly.

Requests can also be "now" or "forever". The difference between "not in the face!" and "don't ever hit me again" is rather important. This leads us into indirect requests, which we'll talk about later.

This is also useful in situations where someone wants a more or less sparkly event to use. In Anna's case, she might softly request Bob smile at her, which would consist of her tipping her head and giving him a slight, curious smile. Or, in Coco's more aggressive case, she might corner Bob and demand he kiss her.

In a full system, there would need to be a complex system to deal with this, involving feedback loops and caution and all sorts of crap. In this system, each character is programmed individually, so their reactions to requests are also handled individually.

Of course, each character has "default" code they start with. This code governs what their basic responses and actions are when they have no personality. For example, it might be, "if you get a request to do something, if you have a link of that relationship type with that person that is at least as strong as the sparkly level of the action, do it." It would be irritating to type that every time.

Indirect Requests:

Indirect queries are things like "please be nice to Bob!" These are on the complex side, and most characters will probably have this handled by their default code.

Also, indirect requests are often used to create informants:

Informants:

Informants are an advanced concept that only need to be used in systems which feature gossip as a major source of interest. This is functionally an advanced request which, instead of asking for the target to perform or restrain from an action, asks them to report on someone else's actions.

For example, Anna asks Coco to tell her about Bob. Coco will tell Anna what kinds of relationships Bob has had in the past, and then will tell her anything interesting he does while in her presence in the future. This forms a "vapor" relationship between Coco and Bob.

Of course, what Coco actually does depends on her programming. She may simply refuse. She may lie. She may lie only if she's already in a romantic relationship with Bob. The possibilities are endless, but in function there's only three or four potential "response templates", so just choosing one instead of programming this in full is fine.

Base Code:

Notice that as the systems got more complex, they get less unique? Indirect action responses and informant responses are probably always going to be handled by default code rather than by uniquely programmed code.

This is because these systems are getting closer to the "real" algorithm. The "real" social algorithm uses simple rules to build up a complex response system, but not only do I not know those simple rules, it would take too many system resources to make them happen.

However, the complexity level is too high to program individually for each character. So the character's individual code is largely limited to basic relationships, as listed near the beginning of this giant freaking essay.

Express Yourself:

Linking this to meaningful output is still quite difficult. For example, what is a "mild stop doing that" shown as? What about when it's "stop making fun of Anna" versus "I wish Anna would stop stabbing Coco with that knife." Presumably, the two are different.

Mild commands are generally nervous or suppressed, depending on the character, so that part is easy enough. But if you have actual text output? Ouch. That's gonna be pretty tough to get working right.

I would suggest a symbolic language rather than a real one.

Anyhow, the whole algorithm might sound a little messy, but it isn't. It's fast, adaptable, and doesn't require any huge breakthroughs. It also gives you over-the-top characters rather than generic ones - actually pretty rare with social algorithms. It does require careful placement: the inhumanities in the algorithm are going to be most clear when a character is out of their element (IE, Anna is less realistic when she's not crushing on Bob).

The core code which allows this system to work is a simplistic domain language. I'll share that some other time.

If you got this far, you have more patience than a depressed robot with pains up and down the diodes on his left side.