[MUD-Dev] Distributed PSW design

J C Lawrence claw at kanga.nu
Fri Jan 19 15:32:10 CET 2001


On Fri, 19 Jan 2001 11:48:30 -0800 
John Buehler <johnbue at msn.com> wrote:

> I've got a little program that uses fractal subdivision on a
> geodesic sphere to produce reasonable terrain.  The technique that
> it uses could easily work such that the server sends a few magic
> numbers to the client so that it can generate the terrain in a
> given part of the world, but where the client does the majority of
> the work.  Right now, the magic numbers are generated from the
> pseudorandom number generator, rand() and then inferred from
> there.

Most of the interesting work 3D world generation I know of is using
some form of fractals and seeded algorithms to gen their
environments client-side.  You then just apply deltas (which can be
quite small) to implement post-generation changes (eg buildings,
human artifacts, results of recent events (eg eruption, bomb crater,
etc).  The bit that's bugged me about this approach is that
simplicitly demands only convex hulls.  There are no complex forms,
and in particular, there are no concave hulls (caves, arches,
tunnels, caverns, convoluted canyons, etc).

> One opportunity for hackery is many different players collecting
> magic numbers and bringing them all together to get an
> artificially-accurate map of the world.  Of course, any intent
> hacker can take whatever you send to the client and eventually map
> your world.  In that fractal subdivision can generate fast
> quantities of data, most hackers probably won't want to do it.
> The game client becomes the best viewer of game data.

Quite.  Additionally, given the above approach, such hackers are
missing the server-genned and delivered deltas which morph the raw
genned data into the actual data set which is shared
(computationally albeit) with the other players.  Given taht such
delta sets can be highly tokenised and compressed, the overhead
requirements can be small and the actual impacts on the perceived
world large (yes, there was a Everest-challenging mountain there,
but a nuclear blast has replaced it with a thousand square mile lake
of bubbling lava).

> The factral program can be found at:

>   http://communities.msn.com/JMFB/files/Terrain2.exe

> with a somewhat less compute-intensive version at

>   http://communities.msn.com/JMFB/files/Terrain.zip

Any sources?

> Note that it's on an MSN 'communities' page, which can mean that
> you may have to create a quick MSN membership.  My apologies, but
> that's the only web space that I have.  The first version brings
> my 866MHz system to its knees.  I believe the second can be run on
> most systems.

Give me a week or so.  You'll have all the web space you want on Pan
(currently 160Gig free, with an easy potential for another 480Gig
with minimal effort.

> Personally, I don't see a big problem with game designers simply
> looking around in a huge world for places that catch their fancy
> and put interesting content in those areas.  I like the idea of
> having a realistic terrain into which I can craft a story, versus
> artificially-constructing terrain features in order to facilitate
> unusual story ideas.  In any case, the 'tweaked fractal' approach
> should permit plenty of control over the planet's structure.  To
> save myself hassle, I left most everything random.

Yup, there'e been quite a bit of discussion of such approaches here
on the list.  In my limited play time my approach has been:

  Set system to gen world data sets while I'm at work^H^H^H^Hwishing
  I was asleep.

  Review the half dozen or so results for any that are interesting
  and then record the seed values that produced that data set.

  Repeat.

--
J C Lawrence                                       claw at kanga.nu
---------(*)                          http://www.kanga.nu/~claw/
--=| A man is as sane as he is dangerous to his environment |=--
_______________________________________________
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