Wednesday, February 28, 2007

NPCs as a resource

"Hi! I'm the Port Tjrmuth smithy! You - and a quarter of a million other adventurers just like you - will buy most of your weapons and sell most of your cruft right here. Also, just like everyone else, I'll ask you to fetch me some meteorite iron from the Blimjaggie Jungle. Of course, even though I make it sound like like an unexplored nightmare land, when you get there you'll find it a traffic jam of avatars looking for meteorite iron. Actually, some people run up and down the line selling circus peanuts and soda. Oh, don't try to go to some other smith, I'm the only one in this entire ten-million inhabitant city."

Or... how about not?

Imagine this: we've built a MMORPG, and it's in very early beta. Our world on any given server is not a painstakingly crafted map made by us. It is a few small dots on various shorelines - new colonies, villages of a few dozen NPCs. The players in our closed beta start at one of these locations.

The map is randomly generated as necessary - mostly when explored by players. It is generated following stringent rules as to terrain and the challenges in any given region are generated to match player level and party size. It's more complex than it sounds, but definitely doable.

As players go out into the world and get loot and levels, they come back to town to sell their stuff and buy upgrades (or even sell craft goods). Here's where the game gets odd: player A and player B are probably going to find different smiths, different potioneers, etc. Why?

Well, we're generating townspeople pretty much at random. Each time a townsperson has a "full schedule" (enough people buying and selling), he stops being marked and players can't just walk up to him and buy stuff. Someone who is already a customer can introduce other players, though - just no walk-ins. If there are too few marked NPCs for a particular kind of thing, new ones are generated as new arrivals from the mainland. Of course, if a player stays away from an NPC for too long, the NPC has more free time and maybe shows up on the main map again...

These NPCs start as newbies like you. They increase their goods quality as you gain levels, and in the direction of the things you sell to them and buy from them. For example, if you sell Joe five hundred wolf pelts, he'll start selling more wolf-pelt-related items. (Due to socio-economic repercussions, his buy price for wolf pelts has to remain constant even if you're selling him a ridiculous number.)

Also, Joe has quests for you, relating to explored space. The missions are unique - if Joe wants you to buy agates from Donna or find a piece of armor in the marshes of Gorb, you can be sure you're the only character with these quests. The quests have to reflect the level and "traveled-ness" of wherever he's pointing you to, but it's actually pretty straight forward to do that... although populating a "quest pieces list" might be more difficult.

As you go on quests for Joe, he sells stuff to you cheaper and even gets access to unique items. This means you can foster a relationship with Joe that is very interesting from a play standpoint: you can buy Pelts of Wolf Form for half the price that your buddies can. You could even, say, be a middleman. Even if you introduce them to Joe, they don't get the discount, you see.

The town swells with NPCs. You want to be really cool? Maybe the NPCs that live near Joe start wearing wolf-related clothes. Anyhow, the town grows according to rules similar to those of terrain. And quests inside the town take the town terrain into account, of course. And it's a great way to meet new NPCs - maybe non-vendors, but people with quests and rewards all their own.

New cities? Of course. Certain places in the wild are suitable for cities - ancient ruins, fertile valleys, the edges of rivers. A player may try to set up a new village in these places if he discovered them (or bought rights to them), in which case any NPC who favors him enough, along with a smattering of random weak NPCs depending on his level and renown, will set up shop there. A new town is born - one with a player mayor/king.

This fragments both the economy and the resources of the game in intriguing ways. Your personal story and resources are no longer simply variations on everyone else's.

At least, that's your advertising slogan. During your beta you quickly realize that with the data explosion this level of generative content creates, it would be only moderately less effective to actually smash your servers with a hammer.

But... it won't always be that way!


Damion said...

Data management isn't really the problem. Actually providing the new players a predictable and fun experience is the problem, since what a player experiences on day one might be vastly different than what he experiences in year 4, day 1.

It's still a cool idea, if not doomed to be a tad niche. But it might be a big niche that grows if the idea is successfully executed - part of the appeal of Eve, for example, is how the universe has gotten richer as the players have amassed wealth. Eve will never beat WoW, but they certainly have created a spot in the MMO continuum that they dominate.

Craig Perko said...

I don't know, Damion. Having done a lot of generative content, it tends to bloat pretty quick. Worse is that the expense of searching and using that data is generally n-squared due to the level of data interaction and dependencies, so even though you can get enough hard drive space, the world begins to slow to a crawl.

The predictable and fun bit is the important part, and was what I had originally intended the essay to be about. I have thoughts on that matter, and I'll probably post them soon. It's certainly not something that should just be assumed.