3D engines for MUDs (was: The MLI Project)

Niklas Elmqvist d97elm at dtek.chalmers.se
Thu Feb 26 12:43:03 CET 1998


On Wed, 25 Feb 1998, Chris Gray wrote:
> [Niklas Elmqvist:]
> 
> :Another problem with the Quake engine is that it does not work well with
> :large outdoor areas, and it is hard (read: memory-consuming) to include a
> :lot of "organic" terrain (most Quake-levels are still very angular) such
> :as rolling hills, steep canyons and craggy mountains. Using some kind of
> :voxel scheme for the terrain rendering would be neat, especially if the
> :terrain could be generated client-side using a suitable fractal and a seed
> :sent from the server. (I don't think 3D accelerators support voxels,
> :however, just texture-mapped polygons?)
> 
> I don't have a Windows box, but the last time my mother was in town, we
> went out and bought one for her. It came with a game called, I think,
> "Magic Carpet". It seemed to do a decent job of outdoor texture mapping,
> including fogging. We didn't have a joystick, and we never read any
> instructions, so our total exposure was about 10 minutes, however.

Indeed, Magic Carpet does a very good job at outdoor texture mapping
(incidentally, I love that game!), and yes, fogging is a key technique
here to limit the visibility of the surrounding terrain and not make the
rendering machine choke at the potentially vast amount of polygons that
otherwise would have to be transformed and drawn (in addition to this,
fogging actually looks gorgeous). However, since the MC terrain is
made up of a heightmap (very much like the heightmaps of voxels (see
below), although not as "dense"), it is quite hard to draw realistic
man-made structures, which tend to be angular in appearance -- in a
heightmap, you cannot associate a single point with more than one
altitude, which is why you may notice how the walls of the buildings in
MC are sloping.

In MCII, Bullfrog "solved" this problem by introducing two heightmaps, one
showing the altitude of the ground and the other for the ceiling -- this
was used in the underground levels. While this could certainly work in a
dungeon-like setting, I am much more in favor of using a single heightmap
(or possibly two if we want the ceiling as well) and then do the objects
on the map (trees, buildings, vehicles, etc) as real 3D objects. This
still leaves the problem of having Quake-like areas which are entirely
indoors.

No engine is perfect, but if we somehow could blend QuakeII with Magic
Carpet, we'd really have something that'd be perfect for a 3D MUD. 

> Something that I had thought of in relation to my fractal terrain
> generation was that you could carry it all the way and use it to help
> generate a display like in that helicopter simulation. I saw that one
> on a friend's machine, but don't remember the name - it seemed to just
> use a large database of detailed altitudes to draw the image in realtime.
> I forget the name of the technique, but its been discussed in
> rec.games.programmer in the last year or so.

I think you are referring to Comanche: Maximum Overkill and using voxels
(volume pixels, essentially 3D pixels) to draw the terrain. For every
point on the map you have an associated altitude (and a color, but for
less memory-intensive applications the color could be a function of the
altitude or dependant on light sources and the likes), and then you do
some suitable transformations and draw each voxel as a colored bar (or, if
you're feeling ambitious, a real 3D bar). Put together, the effect is
stunning, but does not scale very well to ground-based simulations (as
NovaLogic's Armored Fist clearly shows). The result tends to be blocky,
unless you use very fine-grained voxels (like in the Mars demo someone
might have seen).  

IMO, the real problem with voxel-based rendering is the immense amount of
memory it consumes -- every single point on the map has to have an
altitude and possibly a color value associated to it. Maybe this could be
solved by using fractals which are calculated client-side and supervised
by the server -- I don't know. Another problem is the fact that today's 3D
accelerators only support texture-mapped polygon rendering, not voxels.

> Chris Gray   cg at ami-cg.GraySage.Edmonton.AB.CA

-- 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