While working on my own MUD game, I came to realize it would be a really great advantage if builders would have a graphical map and interface to aid in building, as well as being able to view statistics.
Let me clarify through these two use cases:
- For example, I want to create a road. Rather than typing repeated commands for adding rooms and setting the descriptions, I would like to click a few times in the direction of the road. Rooms would be created with the name and description of the start of the road copied.
- I want to see which parts of my map are most actively visited. Or which rooms cause most player deaths, or in which rooms players most commonly are when they quit. Such statistics could be tremendously helpful for improving the game world to be more friendly to newcomers, or to detect excessively hard areas, for example. Preferably, this information could be presented in a map similar as the one used for editing, but using color codings to identify hotspots, for example.
I already found the MUD Map Designer: http://realmsofkaos.net/forum/viewtopic.... I think this client is a good example for the clearity of a good map. A map like this would lend itself well to color coding, and it's easy to imagine how editing controls could be added.
Unfortunately, for my own project I have a very hard requirement that such a tool would be webbased, so the above client doesn't fit my needs. As far as I am aware, there's nothing webbased out there yet that comes even close to this. Please correct me if I'm wrong here :)
Now, I could try to build something like this myself, but it would take away time from building the core of my game engine, so I want to try to cut corners. If anyone is willing to build something like I am suggesting, I am willing to sponsor him or her by donating EUR 500,- to him/her.
In order to qualify, you will need to follow these requirements:
- The solution should present a map within the browser (I would suggest using an HTML5 canvas element, but other solutions may apply too). Your solution should be able to generate the map on the fly, which means my engine is not going to give you instructions on which coordinates to draw what. You will simply get a list of rooms, with their exits, and that's it. Not even all exits will specify a direction. Writing a proper algorithm to generate the map will probably be the toughest part of the solution, so please pay proper attention to it.
- The solution should be flexible enough that it can update its views depending on different data sources. For example, once you have generated the map, I may want to feed it with statistical data about number of player visits per room, and the view of the map should reflect that. From there, I may want to switch back to edit mode, so the view may need to be updated accordingly.
- I encourage anyone building this to also build in flexibility to have different sources from which you can generate the actual map. That should allow the tool to become useful to other MUDs as well. That said, I only really need it to work with my engine, and that's what I will judge it on. To work with my engine, you will need to query for the necessary data over a WebSockets connection. If you need specific server-side support to get the necessary data, I can help with that.
- Your solution should be licensed under a BSD license. You don't need to assign me copyright, and you are free to use the code in any other way you like as well, but once delivered I want to use it however I like as well.
Just a little message to inform that the bounty is closed.
I did find a student who was willing to implement the feature, but eventually couldn't due to time constraints. Nevertheless, we exchanged some ideas and requirements which did help to get my mind set to building the mapping algorithm on my own.
If anyone is curious about the final solution, I can do a small write-up about that.
The solution I created was written during some spare time past weekend and yesterday evening. I consider it a start rather than a destination.
It also has some limitations: * No area may have more than 8 exits. * No 2 adjacent areas may be more than 3 rows or columns apart. This is purely an implementation limitation though. * It works for my demo world (about 50 areas), and should work with bigger worlds though, but I have not done any performance testing on that yet. * The code is currently highly integrated into my own MUD web frontend. If someone wants to make it more reuable, just contact me.
Here are some screenshots of my work so far (please bear in mind I have only focused on functionality, not yet on styling)…
The MUD itself:
The map with stats of most visited areas:
Editing an area description:
What about one way links, as in A connects to B but B doesn't link back to A? And how about "simple overlaps" such as, A - west - B - east - C? And what about links like: A - west - B - west - A? I'm not even going to mention any of the more complicated stuff that can happen across more than 3 non-logically linked rooms…
I'm just curious if your algorithm supports something that hasn't been supported before, especially since you started out with some pretty complicated requirements. Or did you decide (like many folks did before you) to simplify?
I definitely still want to do one way links. Shouldn't be too difficult to represent either (just an arrow). But I have to admit none of the special cases you mention are currently implemented. So yes, I took the simplification route.