MUME / MMapper

🧙‍♂️MMapper is a graphical client designed for the MUME (Multi-Users in Middle-earth) game
https://mume.github.io/MMapper/
GNU General Public License v2.0
35 stars 26 forks source link

Using mmaper with other muds #219

Open 0cenka opened 3 years ago

0cenka commented 3 years ago

Is it possible to use mmaper to draw maps from other muds? I.e. without auto mapping, just drawing the map and changing the position of the character on it? If I have a map-a set of rooms with unique numbers and names, and a set of transitions between them in standard directions (n, e, w, s, d, u) can I pass information to the application in some form, and then indicate where the character is by the room number? If this is possible, what is the most correct way to do it?

nschimme commented 3 years ago

It's definitely possible but you we would need to change the way MMapper identifies rooms them. This would allow it to still operate as a proxy.

Also, supporting other MUDs isn't something that is in MMapper's current charter so it's not something I would be personally investing my personal time into. For what it's worth, I work on MMapper to further MUME's agenda but am happy to consider integrating support if you can do it in a clean manner.

0cenka commented 3 years ago

Thank you for answer. Is it possible to use non-proxy mode? I.e. an option when another mud client loads the finished map into mapper, for example, in xml format and specifies only the ID of the room where the player is located. MMapper draws the map. Mud-client tracks all movements independently, passing the cartographer only the unique ID of the new room for changing the player's position. I understand that these changes are interesting only to me, and I will have to implement them myself. I'm just trying to assess the extent of the required changes. And one more question. When drawing cards, a big problem is the overlapping of the room. Does Mmapper know how to stretch paths independently so that all rooms are placed when displaying, or do you need to do this manually when editing the map? I've been playing mud Arctic for years (mud.arctic.org based based on TSR's Dragonlance novels) I'm trying to find a normal modern cartographer for drawing maps now.

nschimme commented 3 years ago

MMapper wasn't designed for a non-proxy mode since the use case never existed for MUME. In fact, it was never designed to accept an arbitrary room identifier and instead just creates its own internal room identifier because MUME doesn't share room identifiers.

MMapper does not know how to stretch paths automatically as of right now. It places rooms on a coordinate plane and if there is overlap it'll go up or down a z-layer. A possible solution here is to automatically generate the coordinate plane using a 'best fit' algorithm of some kind.

kjvalencik commented 1 year ago

@nschimme Thanks for sharing some details here. I wanted to give this a try with https://rotsmud.org/.

Could you point in the general direction in the code where it gets the current position / room information? Thanks!

nschimme commented 1 year ago

Mapper doesn't have native GMCP room id support yet (!) so it's not going to be fairly straight forward without you analyzing the path machine engine and simplifying it. I'm not super familiar with ROTSMUD but if it has GMCP then there might be a more cross-MUD way of supporting the functionality. We would need to first code that up in addition to the current XML mapping library.