[MUD-Dev] RP thesis...

Nathan Yospe yospe at hawaii.edu
Fri May 30 10:27:17 CEST 1997


On Thu, 29 May 1997, Marian Griffith wrote:

:On Wed 28 May, Adam Wiggins wrote:
:> [Marian:]

:> > Why not make the ashes of that bonfire a very real object in that
:> > area that will be present in the room every time that room is re-
:> > created. Of course you also have to make it decay over time but
:> > that's something I find in most muds anyway.

:> Right.  The trick is, of course, that you just store a general description
:> of the world (things like terrain and elevation), and then *changes* to
:> that.  Things like tracks, campfires, objects on the ground, sigils
:> carved in trees, local mana depletions, and so on are stored as lists
:> rather than arrays.  If you only have one campfire, you only have one
:> item in the list.  [etc snipped]

What if the entire landscape has been burned down? Just a sudden
thought... I use a method similar to this, though variations in my
variable terrains are random, seeded by the location. I do have thoughts
as far as implementing trails and the like... a time weighted apply that
is applied to the region the next time it is instantiated. I think I could
possibly compress it by reucing it to a regional definition... perhaps a
fuzzed third order geometric representation in two dimensions. That way,
if you had a big blotch that was burned, you find the nearest fit, mark
the time, and next time this random region is intantiated, whatever part
of it is visable is going to be presenting its time devalued affects. More
concrete features (an object dropped, a tent, etc...) might be stored in
the current list I have. I am thinking I also might store population
densities with the same time weight, allowing me to randomly model an
ecosphere in these regions... even if they happen to be cities. Of course,
the interesting areas are going to be the ones with nonrandom thought
going into their construction, but I think some incredible things can be
done with the random generation. For example... I have a cave world. I
define the critical regions, and a clear path between them, and the three
or four dozen _types_ of features I have described for these caves... and
then I let the engine extend the caves to hundreds of times their current
size, making them a truely formidable maze. (What's worse, there are some
vital things hidden in that cave system... a hidden sentient aboriginal
species, the headquarters of the resistance, and more...) To make it
worse, in this case, the walls of the cave are too thick to link to the
wormhole network's commnet, which means you are trapped until you get
close to the surface, the cave's populace is unfriendly, and the surface
is a hurricane gale sandstorm. Its bad enough as I have it now... I
created a couple miles of caverns, total... but extending it to hundreds
of miles, requiring you to blaze your paths, and scan for signs of
traffic... makes it into a thinker's situation.

:I'm not sure I follow this all, but my simplistic idea would be to have
:a list for 'the forest of green shadows' and another list for 'the
:mountains of sorrow'. That should allow more special objects to be kept.
:And if that's not enough you can further subdivide the forest and the
:mountains until you have a manageable number of objects in each location
:in the world, right?

Right. I call these subdivisions "nodes", and have one per (approx)
hundred meter square, or at least, if the nodes of a 10 km square are not
filled, I have a 10 km square node listing significant nodes. I also have
one node per (defined) enclosure or region. This includes the insides of
containers. It also includes the surfaces of objects with stuff on their
surface.

On another note, it helps to lazy copy these things. If you have a hundred
traffic lights, you can represent them with what amounts to a hundred
pointers to one traffic light, until some idiot bangs into one of them, at
which point, you have 99 pointers plus one damaged light. Same for
instantiated units of a crowd. It also helps to be able to group things,
creating crouds out of preinstantiated people, for example. We've
discussed this a few times before. I'm getting quite good at the grouping
problem. (I think J C coined the phrase Bulking Container?) In any case...
I have gotten to the point that I am using groups of lazy copied objects
to represent the entire construction (physical) of a Character, groups to
handle crowds, to handle dichotomous regions (places that change drasticly
over a short period of time), and for any number of other things,
including the construction of new Items out of simpler Items.

   __    _   __  _   _   ,  ,  , ,  
  /_  / / ) /_  /_) / ) /| /| / /\            First Light of a Nova Dawn
 /   / / \ /_  /_) / \ /-|/ |/ /_/            Final Night of a World Gone
Nathan F. Yospe - University of Hawaii Dept of Physics - yospe at hawaii.edu




More information about the mud-dev-archive mailing list