3D engines for MUDs

Niklas Elmqvist d97elm at dtek.chalmers.se
Mon Mar 23 20:17:32 CET 1998


[Chris Gray:]
> [Niklas Elmqvist:]
> :As mentioned earlier, polygon height field rendering is ideally suited for
> :visualizing large, outdoor areas. This is perfect for those MUDs where
> :most of the action takes place outdoors. In addition, the height field
> :nature lends itself easily to fractal terrain generation -- maybe it would
> :be possible for the server to merely send a seed to the clients and have
> :them generate the fractal terrain client-side. Has there been any
> :discussion about anything like this earlier?
> 
> That's what I want to do. You also have to send over information about
> any exceptions to the fractally computed heights (where builders have
> customized things), and of course any visible non-terrain stuff in the
> scene.

The problem lies with making two fractal terrain height fields which
share a common boundary to blend together in a natural-looking fashion.

One solution I've been toying with uses the fact that fractals can be
zoomed infinitely; we would first create a "world map" with dimensions
of, say, 256x256 (I presume that we're using a subdivision fractal where
we subdivide our map and generate heights for the corner points in each
subdivided square until we have reached the desired resolution). Then, the
individual maps would be generated by taking four adjacent heights (that
is, four points arranged in a square, meaning for example (0,0), (0,1),
(1,0) and (1,1)) in the world map and subdivide for another 256x256 using
these four heights as corner points in the large 256x256 square (insert
any dimension you want here). Actually, we can continue zooming in, using
each quad of heights in the submap as corner points for a *new* map, and
so on into infinity... (triple-dot denotes proof by induction according to
my maths professor :)

Anyway, using this scheme, we get a nifty way of viewing and designing
the macro-geography of our world (by first generating the world
map and then possibly tweaking it a little with some kind of editor), as
well as blending together the boundaries of adjacent submaps.

Of course, all the terrain generation would be performed client-side, with
the server merely sending seeds to the clients and allowing them to do the
dirty work (then again, the server probably needs a copy of the terrain as
well to check for various things such as collisions and the likes). To
make things easier, the xy-coordinate of the submap in the world map could
serve as basis for the random seed generation. 

-- Niklas Elmqvist (d97elm at dtek.chalmers.se) ----------------------
"You can't trample infidels when you're a tortoise. I mean, all you 
 could do is give them a meaningful look."	 
	- Terry Pratchett, Small Gods




More information about the mud-dev-archive mailing list