Tobold's Blog
Tuesday, October 16, 2007

One thing that works pretty much the same in every MMORPG is spawning in the common part of the virtual world. (The private, instanced parts sometimes work differently.) Spawning is the process of creating a monster for the players to fight. Most of the time the monster just appears out of thin air, only in Tabula Rasa can you see some of the aliens beamed in from a mothership, which looks better.

Spawning works by static coordinates. There is a fixed spawn point somewhere in the virtual world which is linked to one monster. That monster might be standing still on that spot, or it might move around. But whenever that particular monster is killed, a new monster will spawn on that particular spot some time later. Conversely if the monster belonging to a specific spawn point is not killed, no new monster will appear on that spot. It isn't necessarily exactly the same monster respawning when the original one is killed. Sometimes there is a spawn table with several different monsters, or a small chance for a rare mob to spawn.

Clever players have always used their knowledge of spawning to their advantage. One good example is "placeholders". You are out to hunt Red Foozles, and you need to kill a lot of them. Now imagine the Red Foozles share a spot on a spawn table with the Green Foozles. If you go and kill every Red Foozle in sight, but not attack the Green Foozles, you will soon run out of Red Foozles to kill, because every time you kill one, there is a fifty-fifty chance of a Green respawning instead of a Red. Thus instead of running around trying to find the few Red Foozles in a field of Green Foozles, you better slaughter every Foozle in sight, and get more Reds to spawn. Another example is spawn camping, where your knowledge that some extremely valuable mob is spawning at a particular spot enables you to sit there and wait for him to spawn, instead of needlessly running around looking for him.

While the principle of spawning hasn't changed since Everquest, some parameters of spawning have changed. Mobs still spawn always at the same spot, but spawn timing changed a lot. In EQ there were some quest mobs spawning only every 8 hours, which is obviously horrible, because you need to camp the spawn to ever get that quest done, and then you must rely on people coming later not to jump in and steal your kill. In modern games spawn times are much shorter, and often a bit more random. Some games, like City of Heroes even have anti-camp code, preventing monsters to spawn at the location of a player. World of Warcraft in the Burning Crusade expansion experimented with variable spawn times, so instead of a new mob respawning exactly 5 minutes after the old one, the game takes into account all the mobs of the same type in the same area, and if lots of them are dead respawns them quicker.

Eternally discussed and even promised by some developers, but never realized, is a more dynamic spawning system, where spawn locations aren't static any more. If in the real world you would be hunting animals in one part of a forest, but not in another part, the population in the part where you were hunting would drop, while the population in the part with no hunting would slowly rise. With some effort such things could be realized in a game world too. Such dynamic spawn systems would not only add some interesting uncertainty to a game, it would also kill automated bots. One could even imagine combining dynamic spawns with dynamic quests: if nobody has killed orcs in some area for some time, the orcs there would get stronger and more numerous, but the people in the village next to them would offer better rewards to kill them. You could even imagine every village having some sort of prosperity score depending on the level of threat from monsters surrounding it. Lots of players clearing the area would make the village richer, and new NPC vendors with more interesting goods would appear. But if there are no heroes interested in working for the village, it would decay into ramshackle buildings surrounded with few NPC vendors, but lots of monsters in the surrounding area. The villagers would offer better rewards for heroes to save them, and the heroes would also be interested in places with a high monster density because it makes hunting easier. Thus a cycle between prosperity and poverty of a village would develop, making the whole game less static and more dynamic.
Lotro has one spawn characteristic that sparks debate among players. In certain regions (North Downs, Misty Mountains) normal mobs such as wargs and bears share a spawn table with elite aurochs. While the aurochs are not in themselves aggressive players on solo quests to kill for example 10 wargs will soon find themselves depopulating the area of wargs only to have them replaced by elite aurochs. In the worst cases this has led to old school spawn camping and people getting up early in the morning to grab any wargs that may have spawned overnight.
i agree there should be some flock-mechanism in it.

kill the whole flock and it takes ages to respawn.

starts with 2 small ones, they grow up after some time, 'produce' on the birds and the bees way some offspring etc. etc.
Very interesting. In fact I was thinking about more or less the same thing this morning. I'd like to see some developer test the idea of more ecologically sound zones. Let's take a game at it's release, all the zones have lvl 1 mobs and every 6 hours a mob isn't killed it levels until it reaches the level cap, just like players have a level cap. Players can kill mobs in their level range but mobs that are 6 levels above them won't pursue them (not enough meat on their bones to make it worth their while), and mobs that are 3 levels below them don't give any XP, thus making it relatively safe for all and not worth (or even counterproductive) killing lvl 10 mobs if you're lvl 50.
This creates the possibility for newbies to enter and quest in any zone. You might want to put some restrictions on this by creating semi-elite zone where new mobs spawn at lvl 30 or lvl 50 instead of lvl 1 but overall you'd see a wider variety of level ranges in mobs.

Really, does it make sense to anyone that Mulgore has lvl 10 Kodo's but no big mommy and daddy kodo's? Does it make sense that you have to travel to a new zone to see a bigger version raptor? How did the young get where they are? Does a 6 year old giraffe give birth to 6 year old giraffes or does it give birth to a 0 year old one (level 1) in the real world?
It's time to play the Devil's Advocate again..

If farming Foozles reduces the strength/spawn rate of new Foozles and Foozles have some item can only drop from them.. Foozles will become extinct.

Why? The law of supply and demand. A player goes and kills some Foozles and finds The Enchanting Formula of Minor Bling-Bling. It's a nice enchant, so he brags about it in the nearby town. Other players come and kill Foozles and get their formulas. The formula gets datamined and players from all over the world come and farm the Foozles, making them weaker and fewer. Therefore the formula becomes rarer, which only increases it's value. Although it's harder to find the formula, having one is now a matter of prestige, a mark of being one of the Wise Old School players who got their Enchanting Formula of Minor Bling-Bling when the world was young and everything was perfect. An average player is now lucky to even see a Foozle nowadays, so if one stumbles upon one, the Foozle gets killed immediately, for it might just be the one that carries the super-rare Enchanting Formula of Minor Bling-Bling.
If farming Foozles reduces the strength/spawn rate of new Foozles and Foozles have some item can only drop from them.. Foozles will become extinct.

Agreed. But that is just another not very realistic part of classic MMORPGs. I'm okay with wolves dropping wolf pelts, and foozles dropping foozle ears or whatever body parts a foozle has, but why are there monsters dropping swords, coin, and Enchanting Formulas of Minor Bling-Bling? I remember killing some sort of shamblers in WoW to get a nature protection potion recipe, but why would a nature elemental need a recipe for a potion? If the game wants me to kill X nature elementals to get that recipe, it should give me a quest to collect X elemental bits and give me the recipe as quest reward. The whole farming monsters for rare drops mechanism stinks.
You could also argue, in evolutionary terms, that the wisest and most tenacious foozles may survive the cull - hence the rare super-foozle spawns. ;)
It's so funny. I mean, I've had these kind of discussions about old paper and pen RPG's way back some 20 years ago, with the same problems and claims. Then the scenarios were based on killing monsters with increasing difficulty, gaining rare loot and hoping to find the rare Dingy.

The problem then in the commercial scenarios or adventures was, that there was no ecology of any sort. There were bloodthirsty monster after another bloodthirsty monster in an area, and from time to time their lair with the loot. What on earth did the monsters live on when there were no adventurers to chew?!

It seems that the MMO's are just at that stage: 3D presentations of the former pen and paper adventures, with no dymanical content. It's an evolving thing.

One of the nicest additions I have noticed in WoW has been the occasional 'attack' of a carnivore to capture a prey, which I have seen from time to time. Nice little detail, which could be put to even better use.

Where is the ecology in the MMO's? If we combine the two ideas (foozles losing their numbers and strength, hunters really hunting and killing the foozles) we could see a dynamic ecology. In this case, to catch the Foozles you would either have to wait for them to spawn or kill the hunters to speed the spawning...

@Tobold, I agree with you totally in the rare drops from creatures. It's one of the most idiotic concepts of all RPG's ever. Why would a guard have something like a blue gear unless s/he was some elite honor guard? If he was such, would he be the cannon fodder you encounter in the game typically?

The loot should be placed with thought too, but IMO the first step would be to introduce the real unique gear. If a gear is unique, then it should be such that there is only one around at a time on a server. It would make the 'legendary' pieces of gear mean something, and if the gear would record it's owners and where they got it from, the gear would create their own history in time...

Back to business. Spawns should be dynamic and the current computational power can sustain this. IT's up to the devs to come up with the algorithm.

More candy to the explorers!

Sadly this system has already been attempted. On release, UO had this EXACT system. Kill too many sheep, and the wolves would become more aggressive and attack players. Kill enough sheep, and the local dragon would attack a town because it has no food. Same with crafting resources and such.

Problem was, no one cared. Players killed anything and everything they saw, and quickly the system was horribly unbalanced. Then certain areas would become barren, and players complained.

Some short time after release, the system was removed and replaced with what we have now, the static spawn system. I still have an old manual from the original box of UO, and each monster has a behavior type, which would describe what it ate and how aggressive it would get. Looks great on paper, but sadly does not really work in game.
Eternally discussed and even promised by some developers, but never realized, is a more dynamic spawning system, where spawn locations aren't static any more.

Look out for Left4Dead an upcoming group-FPS from Valve. It's pretty much like an instance run in WoW, just with a system called "the director" wich dynamicly creates new enemies based on the performance of the group. Too bad this thing got its released pushed back into 2008. As someone said earlier, dynamic spawning is in dire need for instances, rather for open world areas. Let's see how this turns out in Left4Dead. After OrangeBox you can bet that this will kick just as much butt. It's just impressive how some studios after such a long time still can push their limits, after seeing so many old veterans slowing down.
The doomed game Wish had an interesting respawn method. The animals would spawn away from the players camping their “spawn” spot and walk to the area. This was nice because animals suddenly appearing out of nowhere is immersion breaking.
I love "systems" discussions. As I see it, spawn points for mobs are just a subset of spawn points for any resources. The spawning system (for all objects, mobile or otherwise) combined with the looting table(s) define the limits of the game economy.
Now, there are many ways to make things appear naturally, but, so far, I think the Burning Crusade introduction of reactive spawn timers is a step towards balance (seriously, this took until 2007!?), although it has arguably contributed to mudflation (another topic, another day).
Generally, I think it is safe to say that the more activity you have in a virtual world, the more resources you should spawn in your world. To do otherwise, as Syncaine posts above, you would have areas completely devoid of wildlife. This means we have to drop the ecology conceit and acknowledge that the world only spawns in "relevant" objects, and enough "irrelevant" objects as are needed to create some immersion--no more. We can certainly have a smarter spawner though.
What we have now with respawn timers is a very simple hack: an spawning object is placed in the world by a level designer, it's job is to make sure it's child object is spawned, but it only checks on it's child every few minutes. We could give this spawner some parenting classes by looking at what resources are needed in game, and integrating that on the back end.
In Real Life, we (as a species) tend to work harder and dig farther to get resources as they get more scarce, increasing their supply to match the demand, until we run out completely, at which time we turn to crisis mode, and recycle our junk. It would make sense that to emulate that behavior in a simulated world, the designer(s) would follow this logic--but to do so requires knowledge of demand for resources, which means changing the total model. For a hack, spawn points get the job done, reasonably well, and very cheaply.
An improvement to the current status quo could be realized in spawn points as mobile objects, themselves spawned in fixed positions, then sent off to wander, and spawning when they find a spot that fits the need of the system. You could code the spawn points to evade other mobs and players, so that they would "intelligently" seek out quiet spots, spawn a mob, and then start pathing again. I know what I'd want in a spawning system (far beyond the scope of this post), but it would involve a complete restructure of the economic model.

Are you defining spawn point as a specific position or an area?

Because not all MMOGs have specific coordinates for spawns. Some have zones. Kill a Red Foozle at coordinate X, Y and another will spawn at designated time A+x at coordinates Xb, Yb. But, they'll never spawn outside of zone b.

And, within that zone you'll still have the rotating spawn of Red and Green Foozles mixed with resources, items, etc.
Problem with too much dynamics is the problem of keeping tabs on the game-play experience and difficulty.

In WoW for example mobs are carefully spaced to avoid people getting ganked by too many mobs by sheer bad luck or to avoid that the spacing of mobs makes things trivial (i.e. one can just walk by without engaging).

If in WoW things get dense, it's usually by design. And watching for patrols or long maths or large spawn point circling motions is part of the game.

I think stuff could be more dynamic, but one has to take into account how much brain is already put into the static design to tune the gaming experience/difficulty.
I think you're working with a rather limited defintion of how spawns work. In the standard plain vanilla MMOGs (EQ/LOTRO/WOW/etc) spawning is pretty much exactly how you defined it, but that isn't necessarily how it works in all MMOGs. Here's an example of spawning in another MMOG:

Spawns are picked from a set of collections of mobs for an area. Let's say... orc camp, brigand camp, and ratman camp. Let's say each set is 3 regular and one mage or stronger version. The spawn point is just a marker. The spawn is placed at a random radius around that spawn point. With spawns like this in a zone, there isn't any real camping because the mobs could 'pop' almost anywhere. Now you add to it that the mobs are free-roaming. They can wander anywhere in the zone and do not have code to return them to their home location. So if three spawns of mobs wander around, you don't know which are from which spawn spot, further reducing 'camping' and prmoting active traveling around the area to find mobs. Each time you visit, your target won't be the same. They might be a massive cluster at the bottom of the zone, spread all over the zone, or in one or two pockets here and there.

That's one of several different designs that allow for the retention of that 'exploring' feeling when entering a known zone and make it a relatively dangerous environment for bots.

The WoW method is just the easiest to design. While it's extremely boring, it does have one big advantage... you'll never come home to a an army of orc mages on your front lawn. Oh wait... no housing in WOW. Well, you get the point. :)
Post a Comment

Links to this post:

Create a Link

<< Home
Newer›  ‹Older

  Powered by Blogger   Free Page Rank Tool