[MUD-Dev] MMO Simulations (was Re: MMO Communities)

Douglas Goodall dgoodall at earthlink.net
Wed Aug 4 07:14:23 CEST 2004


John Arras wrote:

> From what I gather you were running the simulation with explicit
> monsters and objects. I don't think it's possible to get enough
> creatures in the world to run the simulation. The other issue is
> whether or not you were using ecologically/mathemtatically correct
> algorithms or you were trying to make a fun game.

I copied population algorithms as a starting point... I did tune them for
fun, but by the time the game was fun, it was no longer dynamic. Basically,
that was my point. I felt like an idiot for not using a timed or random
solution, which is what I ended up with after tuning.

It was a long time ago, but I think I started with a Leslie matrix. In
retrospect, I might have had better luck with something more like a
"Diffusion Monte Carlo" method, but I didn't know about it back then, and
can't claim to understand it today.

> Also, the populations shouldn't follow an "S-shaped" growth curve
> because this isn't the real world with a balanced ecology. This is a
> world with hundreds or thousands of superpredators (players) that
> kill everything in their path. The goal of the simulation isn't to
> simulate a world completely correctly, but to make it fun for the
> predators, which means that the population growth algorithms will
> have to be different.

The initial model started S-shaped. It tended to be unstable, even without
any players (partly because balancing PvE was challenging enough without
worrying about "EvE"). I changed the method several times until a wider
range of initial values was stable, put bounds on the results long before
we did any "live" testing, and then kept raising the lower bound until the
spawn system was basically putting the minimum resources in each zone each
tic. This was more fun, but it wasn't what I intended.

On the bright side, I did manage to make mobs fight each other (and with
more "motivation" than a predictable faction system). I've yet to see any
graphical computer game do this well. I had many advantages... First,
predators weren't directly competing with players for XP. The skill system
gave benefits per attempt (you could learn from successes or failures, but
had the best advancement rate taking challenges near your skill since you
were more likely to learn from succeeding at something hard or failing at
something easy). Second, our servers were much smaller with fewer "mobs"
(and mostly empty space, so there was probably less pathing/collision
overhead). I'm not sure I'd want mobs to fight each other in a game with
hundreds of thousands of mobs... At least not without serious computing
power behind it (though you can pre-calculate more of this than most people
realize, like pre-calculating static pathing with framed quadtree vector
fields--a neat trick from robotics I've never seen used in a game).

Also on the bright side, the spawn system discouraged "camping" in the
sense of sitting in the same place, and there were no "raid class" mobs on
18+ hour timers. There were "raid class" mobs, but they occurred in
conjunction with events or spawned randomly. I prefer this to a system
where large guilds can monopolize raids because they always spawn after x
hours in the same place. But instancing is an easier way to prevent
resource monopolization.

> Ok, so why not let players talk to villagers in local villages and
> let them ask the villagers if there are monsters of type X
> around. The villagers could then call code that scans the regions
> nearby and sees if any are likely to spawn creatures of type X. So,
> the villager gives a direction or some name of a region or
> something. Perhaps, if this is the case, then that region gets a
> temporary bonus to spawning that kind of creature to make it worth
> the player's time to talk to a villager.

That's still adding the extra step of talking to the villagers. In a Sci-Fi
context, it could have been solved with something as simple as a chatbot
that represented the "astrographical survey" or somesuch and would be
accessible anywhere. In a high-magic fantasy game, you could make up some
device, like a magic compass (which could also be a money sink if done
right). I wish I'd thought of that back then, but this is still alot of
work to fix a complex system when a simpler one doesn't need a fix...

> This I really like. I've worked with things that are really random
> like wilderness, and heavily controlled things like villages, but
> not things in between, but not little minizones that can be
> cleared out over and over again and they change. Given enough
> types and enough variation, this could be a really cool
> intermediate step between large fixed cities and very statistical
> wilderness.

Usually when I talk about that system (and a few other tricks), the
conversation goes more like this:

Me: I wrote a theme-based spawning system that blah blah...  Fellow
Developer: That's impossible!  Me: Er... which part of "I wrote"
(past-tense) did you not understand?  Fellow Developer: Take your
crazy moon language away from my cubicle!

It was very easy to code (it had to be--my only programming
experiences prior to this were LOGO, 6800 assembler, and TI Extended
Basic), and the ability to handle "Events" made it very flexible.

I've described it all over mailing lists, forums, E3, email
conversations with Famous Designers, etc. over the last 7 years, but
I've never seen it used... I scripted a simpler version for
Morrowind (it merely saved the game day and year each time you
entered a dungeon and if it had been more than 20(?) days, the
dungeon would respawn with a random "theme"), but there was little
interest. In part because the Morrowind scripting language isn't
smart enough to say "place 5 skeletons randomly in this dungeon" so
I used rings underneath the floor which would spawn a mob (or not)
from the right "theme" 50 units above it's own x,y,z location (and a
"master ring" anywhere in the zone that determined the theme and
kept track of time). I argued that placing the rings under the floor
wasn't more work than placing the ninja-monkey mob placeholders (and
that fears of mobs being stuck in walls were moot since our
miserable collision system did that anyway). I lost.

I suspect the system has a Hidden Flaw. Otherwise someone would have
used it by now.

> I think this could be solved by having orc spawning locations that
> aren't easy to stay in for very long. That way, the players could
> occasionally attack the orc homelands, but it would be difficult
> to keep the orcs down for long. There are lots of things that can
> be done here, but there are ways to make sure that there will be
> occasional orc hordes even if players like killing them.

I'd be more worried about preventing the mobs players don't like
from getting out of control. You can always trigger an Orc Horde
with a GM command or something if all else fails. It's harder to
prevent players from being forced to fight mobs they don't like when
their population is based on... players not fighting them.

There are several ways to determine which mobs are less
popular. "Age," for instance. Believe it or not, every mob kept
track of when it was spawned and could even die of old age... Except
for very powerful mobs (which may be popular targets, but still live
a long time), this would probably be a good way to determine
popularity and spawns could favor the species with the lowest
average age.

Again, this seems like too much work to go through for a system that
will probably seem random to the players. I'd like a more dynamic
system, but the games I like are not popular (except for AO and CoH,
I doubt any of them have more than 5k subscribers), so I wouldn't
recommend making a game that I like. At least not if you want to
make a profit.
_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list