1998Q1/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: 3D engines for MUDs -->
<!--X-From-R13: @vxynf Syzdivfg <q97ryzNqgrx.punyzref.fr> -->
<!--X-Date: Mon, 23 Mar 1998 19:17:36 +0000 -->
<!--X-Message-Id: Pine.SOL.3.96.980323195840.19285A&#45;100000#licia,dtek.chalmers.se -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 9803210147.8w1b@ami&#45;cg.GraySage.Edmonton.AB.CA -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, 3D engines for MUDs</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:d97elm#dtek,chalmers.se">
</head>
<body background="/backgrounds/paperback.gif" bgcolor="#ffffff"
      text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000">

  <font size="+4" color="#804040">
    <strong><em>MUD-Dev<br>mailing list archive</em></strong>
  </font>
      
<br>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
<br clear=all><hr>
<!--X-Body-Begin-->
<!--X-User-Header-->
<!--X-User-Header-End-->
<!--X-TopPNI-->

Date:&nbsp;
[&nbsp;<a href="msg00850.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00853.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00801.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00861.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00851">Author</A>
&nbsp;|&nbsp;<A HREF="#00851">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00851">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>3D engines for MUDs</H1>
<HR>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<UL>
<LI><em>To</em>: <A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A></LI>
<LI><em>Subject</em>: 3D engines for MUDs</LI>
<LI><em>From</em>: Niklas Elmqvist &lt;<A HREF="mailto:d97elm#dtek,chalmers.se">d97elm#dtek,chalmers.se</A>&gt;</LI>
<LI><em>Date</em>: Mon, 23 Mar 1998 20:17:32 +0100 (MET)</LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>
[Chris Gray:]
&gt; [Niklas Elmqvist:]
&gt; :As mentioned earlier, polygon height field rendering is ideally suited for
&gt; :visualizing large, outdoor areas. This is perfect for those MUDs where
&gt; :most of the action takes place outdoors. In addition, the height field
&gt; :nature lends itself easily to fractal terrain generation -- maybe it would
&gt; :be possible for the server to merely send a seed to the clients and have
&gt; :them generate the fractal terrain client-side. Has there been any
&gt; :discussion about anything like this earlier?
&gt; 
&gt; That's what I want to do. You also have to send over information about
&gt; any exceptions to the fractally computed heights (where builders have
&gt; customized things), and of course any visible non-terrain stuff in the
&gt; 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#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


</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00801" HREF="msg00801.html">Re: [MUD-Dev]	3D engines for MUDs</A></STRONG>
<UL><LI><EM>From:</EM> cg#ami-cg,GraySage.Edmonton.AB.CA (Chris Gray)</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00850.html">Re: [MUD-Dev] Dynamic Loading of Modules</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00853.html">World Persistence, flat files v/s DB v/s ??</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00801.html">Re: [MUD-Dev]	3D engines for MUDs</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00861.html">Re: [MUD-Dev] 3D engines for MUDs</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00851"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00851"><STRONG>Thread</STRONG></A></LI>
</UL>
</LI>
</UL>

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
<ul><li>Thread context:
<BLOCKQUOTE><UL>
<LI><STRONG>Re: [MUD-Dev]  Parlez vous NPC?</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<LI><strong><A NAME="00807" HREF="msg00807.html">Re: [MUD-Dev]  Parlez vous NPC?</A></strong>, 
Matt Chatterley <a href="mailto:matt#mpc,dyn.ml.org">matt#mpc,dyn.ml.org</a>, Sat 21 Mar 1998, 13:12 GMT
</LI>
</ul>
<LI><strong><A NAME="00869" HREF="msg00869.html">Re: [MUD-Dev]  Parlez vous NPC?</A></strong>, 
Nathan F Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Tue 24 Mar 1998, 03:39 GMT
<UL>
<LI><strong><A NAME="00892" HREF="msg00892.html">Re: [MUD-Dev]  Parlez vous NPC?</A></strong>, 
Matt Chatterley <a href="mailto:matt#mpc,dyn.ml.org">matt#mpc,dyn.ml.org</a>, Wed 25 Mar 1998, 08:37 GMT
</LI>
</UL>
</LI>
</ul>
</LI>
<LI><strong><A NAME="00801" HREF="msg00801.html">Re: [MUD-Dev]	3D engines for MUDs</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sat 21 Mar 1998, 02:29 GMT
<UL>
<LI><strong><A NAME="00851" HREF="msg00851.html">3D engines for MUDs</A></strong>, 
Niklas Elmqvist <a href="mailto:d97elm#dtek,chalmers.se">d97elm#dtek,chalmers.se</a>, Mon 23 Mar 1998, 19:17 GMT
</LI>
<LI><strong><A NAME="00861" HREF="msg00861.html">Re: [MUD-Dev] 3D engines for MUDs</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Mon 23 Mar 1998, 20:52 GMT
<UL>
<LI><strong><A NAME="00873" HREF="msg00873.html">Re: [MUD-Dev] 3D engines for MUDs</A></strong>, 
Ling <a href="mailto:K.L.Lo-94#student,lboro.ac.uk">K.L.Lo-94#student,lboro.ac.uk</a>, Tue 24 Mar 1998, 14:58 GMT
<UL>
<LI><strong><A NAME="00876" HREF="msg00876.html">3D engines for MUDs</A></strong>, 
s001gmu <a href="mailto:s001gmu#nova,wright.edu">s001gmu#nova,wright.edu</a>, Tue 24 Mar 1998, 15:30 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
<UL>
<li>&lt;Possible follow-up(s)&gt;<br>
<LI><strong><A NAME="00866" HREF="msg00866.html">Re: [MUD-Dev]	3D engines for MUDs</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Mon 23 Mar 1998, 23:21 GMT
</LI>
</UL>
</LI>
</UL></BLOCKQUOTE>

</ul>
<hr>
<center>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
</center>
<hr>
</body>
</html>