[Haskell-cafe] How to model outer space for a MUD

Tikhon Jelvis tikhon at jelv.is
Fri Aug 14 20:50:07 UTC 2015


It depends on exactly what you want to represent and how you want to do it.

The first thing that comes to mind for me would be using an octtree[1],
which is the three-dimensional analog of a quadtree[2]. Conal Elliott has
an interesting point about using quadtrees to represent images in
Haskell[3], and you should be able to adapt the idea to indexing into a
three dimensional world with an octtree.

[1]: https://en.wikipedia.org/wiki/Octree

[2]: https://en.wikipedia.org/wiki/Quadtree

[3]: http://conal.net/blog/posts/topless-data

On Fri, Aug 14, 2015 at 1:44 PM, David McBride <toad3k at gmail.com> wrote:

> If you are thinking of it as a 3d grid, you might just have a (Map
> (Integer, Integer, Integer) Contents, where every room in this 3d grid that
> has something in it is in the map and every room that is empty space has no
> corresponding entry in the map.
>
> Then when you enter a room you can quickly look up what is in that room,
> then reasonably quickly check the neighbors in every direction to see what
> the ship might be able to sense were it to travel in that direction.
>
> In this case, space is infinite, but the datastructure is only as big as
> the amount of content you have.
>
> On Fri, Aug 14, 2015 at 4:34 PM, Michael Litchard <michael at schmong.org>
> wrote:
>
>> Star Wars MUD has a 3-D coordinate system such that (0,0,0) is some
>> planet. I'm curious as to how one might model this system that could
>> simulate a ship's movement through a 3-D grid. Matrix, 3-D array, graph.
>> None of these? Ideas?
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>>
>>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20150814/c0dbb970/attachment.html>


More information about the Haskell-Cafe mailing list