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

Michael Litchard michael at schmong.org
Fri Aug 14 22:41:51 UTC 2015


I'm looking for unbounded but discrete, but I think conal's blog post can
help me work this out.

On Fri, Aug 14, 2015 at 3:36 PM, Tikhon Jelvis <tikhon at jelv.is> wrote:

> The problem with just modeling things is that certain questions become
> difficult. For example, it's often useful to know what thing is closest to
> some given thing, or what a thing's closest neighbor is.
>
> Moreover, while there is certainly a lot of space out there, this is
> Haskell so we can model all of it lazily. That's what Conal's blog post is
> about: a practical way to lazily model images with no bounds and no
> resolution limit.
> On Aug 14, 2015 3:31 PM, "Jeffrey Brown" <jeffbrown.the at gmail.com> wrote:
>
>> I would not model space -- there's too much of it -- rather Things in
>> space. Each Thing has a 3d coordinate (plus more geometric information,
>> plus more information). Things can be rooms, and things can have position
>> defined in terms of other things.
>>
>> On Fri, Aug 14, 2015 at 3:23 PM, Michael Litchard <michael at schmong.org>
>> wrote:
>>
>>> Well, thinking more about it, I think I want an 8-regular complete
>>> graph. I've been doodling and came to the conclusion pretty quickly that
>>> thinking of this space in terms of a grid wasn't quite right. I *would*
>>> like to only hold data of populated nodes if possible, to model an infinite
>>> space as David mentioned. I've been looking at fgl to help me think about
>>> this problem in terms of a graph. I'll think and tinker over the weekend
>>> and see if I can come up with something more articulate. Not committed to a
>>> graph, but I want a discrete structure and this looks like it fits the bill
>>> at the moment.
>>>
>>> On Fri, Aug 14, 2015 at 2:00 PM, KC <kc1956 at gmail.com> wrote:
>>>
>>>> I agree with Tikhon
>>>>
>>>> But a sparse matrix might be conceptually simpler to start with
>>>> But are sparse matrices easy to implement in Haskell and then is it
>>>> easy to change the data structure layer on?
>>>>
>>>> --
>>>> --
>>>>
>>>> Sent from an expensive device which will be obsolete in a few months! :D
>>>>
>>>> Casey
>>>>
>>>> On Aug 14, 2015 1:50 PM, "Tikhon Jelvis" <tikhon at jelv.is> wrote:
>>>>
>>>>> 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
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>>
>>>>
>>>
>>> _______________________________________________
>>> 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/851b3ea8/attachment.html>


More information about the Haskell-Cafe mailing list