Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are
spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the
password reset link.
Due to spam on this forum, all posts now need moderator approval.
Entire forum
➜ MUDs
➜ General
➜ Suggested protocol for server to client "out of band" messages
|
Suggested protocol for server to client "out of band" messages
|
It is now over 60 days since the last post. This thread is closed.
Refresh page
Pages: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 18
19
20
21
22
23
| Posted by
| Twisol
USA (2,257 posts) Bio
|
| Date
| Reply #240 on Wed 24 Feb 2010 05:44 AM (UTC) Amended on Wed 24 Feb 2010 05:48 AM (UTC) by Twisol
|
| Message
| That looks really good. About the "stubby lines" and their predicament, the mapper system Vadimuses has on Achaea allows you to manually modify the length of an exit. So you could do, say, "vmap exit length 1" to extend the exit line so that there's one grid-space between the connected rooms. Maybe that's something to look into at some point, so it becomes possible to make the maps look better. Maybe.
Actually, better question. Does the map draw itself outwards based on your current location? If it did, it would be able to draw accurate room layouts closer to you, but if a room calculated later would fall on the same plot, it gets reduced to a stub. If that's how it works, great! I have no further criticism, I just hope it's something I'd be able to tweak for Achaea. ;)
EDIT: At a glance it doesn't seem to work quite the way I suggested, since you have the diagonal branch pointing NE inside the square getting cut off, when the next room would be closer to the player than the one visible. A simple enough way to do it, I think, is to keep two lists: one for the currently being-drawn rooms, and the next list for the ones connected to them that haven't been drawn yet, adding to the latter as you move through the former.
Sorry, I hope I'm not being overbearing about this or anything. I love what you have so far and I'm excited for how it turns out, but having been an ASCII-map cartographer on Achaea myself, I've dealt with my share of room layouts, trying very, very hard to never overlap rooms. |
'Soludra' on Achaea
Blog: http://jonathan.com/
GitHub: http://github.com/Twisol | | Top |
|
| Posted by
| Nick Gammon
Australia (23,165 posts) Bio
Forum Administrator |
| Date
| Reply #241 on Wed 24 Feb 2010 06:00 AM (UTC) |
| Message
| Again, a work in progress. The example I posted, you correctly deduced that it was doing a deep scan first rather than a shallow scan.
I plan to rework it so it draws 1-level out first, then 2-levels out, and so on. That way the suppression of overlaps (which is already there) will suppress the less interesting rooms (ie. the ones further away).
It is actually amazingly quick, considering it is all being drawn on-the-fly without any pre-computation.
A side-effect of doing a breadth-first approach is that you would automatically get the fastest route to any target room (because it would be the route you drew first).
In its current form the map suddenly redraws like crazy if you happen to move through one of the "stubs" because effectively its starting position has changed and everything redraws from there (probably in Lua hash order).
I have yet to wrestle with how to depict "up" and "down". |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| Twisol
USA (2,257 posts) Bio
|
| Date
| Reply #242 on Wed 24 Feb 2010 06:15 AM (UTC) |
| Message
|
Nick Gammon said: Again, a work in progress. The example I posted, you correctly deduced that it was doing a deep scan first rather than a shallow scan.
I plan to rework it so it draws 1-level out first, then 2-levels out, and so on. That way the suppression of overlaps (which is already there) will suppress the less interesting rooms (ie. the ones further away).
Wonderful, that's exactly what I meant ^_^
Nick Gammon said: In its current form the map suddenly redraws like crazy if you happen to move through one of the "stubs" because effectively its starting position has changed and everything redraws from there (probably in Lua hash order).
*nod* Right. Redrawing by distance from current location would probably make that whole problem go away.
Nick Gammon said: I have yet to wrestle with how to depict "up" and "down".
Mm, there are two options I've seen, both of which you might want to look into. In the first, only your elevation is shown in isolation; the "search" stops at any up/down exits. In the second, similar to the exit-length thing from before, you can configure an exit to go in a different direction from what it really is. That is, an up exit could be configured to go west, for example. You could also mix the two approaches.
As for actually displaying them separately from other exits - and do keep in mind, some MUDs (such as Achaea) have in/out as well - given the first approach, I'd probably opt for coloured triangles in the corners of a room. As for the second approach - displaying up/down as flat exits - you could do something like this, except graphically with triangles:
That'd be two triangles on either side of the line, with the upwards-pointing triangle on the half of the line going towards the room that's upwards, and the downwards triangle on the opposite end. |
'Soludra' on Achaea
Blog: http://jonathan.com/
GitHub: http://github.com/Twisol | | Top |
|
| Posted by
| David Haley
USA (3,881 posts) Bio
|
| Date
| Reply #243 on Wed 24 Feb 2010 06:01 PM (UTC) |
| Message
| What about room layouts where the reverse of an exit is not in the reverse direction that you took? E.g. a curved hallway could be entered in the southern direction on one end and exited in the eastern direction at the other end.
I don't think you'd need to support terribly wacky situations, but I'm curious what would happen in a case like that.
Also, there are MUDs that have no notion of rooms at all. |
David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone
http://david.the-haleys.org | | Top |
|
| Posted by
| Twisol
USA (2,257 posts) Bio
|
| Date
| Reply #244 on Wed 24 Feb 2010 10:00 PM (UTC) |
| Message
|
David Haley said:
What about room layouts where the reverse of an exit is not in the reverse direction that you took? E.g. a curved hallway could be entered in the southern direction on one end and exited in the eastern direction at the other end.
I don't think you'd need to support terribly wacky situations, but I'm curious what would happen in a case like that.
I'd opt for something simple, like:
David Haley said: Also, there are MUDs that have no notion of rooms at all.
If you try to make everyone happy, nobody will be happy. With MUDs, as far as I know there really isn't much of a common denominator. At least besides Telnet. A decent, well-implemented map plugin would cover most room-based MUDs very well. |
'Soludra' on Achaea
Blog: http://jonathan.com/
GitHub: http://github.com/Twisol | | Top |
|
| Posted by
| Nick Gammon
Australia (23,165 posts) Bio
Forum Administrator |
| Date
| Reply #245 on Wed 24 Feb 2010 11:32 PM (UTC) |
| Message
|
David Haley said:
What about room layouts where the reverse of an exit is not in the reverse direction that you took?
I am now detecting that if A --> B, but the inverse does not apply, then it draws a small arrow.
David Haley said:
Also, there are MUDs that have no notion of rooms at all.
It won't work for them. :P |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| Nick Gammon
Australia (23,165 posts) Bio
Forum Administrator |
| Date
| Reply #246 on Wed 24 Feb 2010 11:41 PM (UTC) |
| Message
| This is the current look of the mapper (of course the colours can be adjusted):
This image shows:
- The white square in the middle is where I am
- Gold squares are healers
- Dark green squares are vendors
- The gray square near the bottom-right is a blacksmith
- Purple lines are up-down lines. Where possible it draws them instead of ne/nw/se/sw. In the case of Darkhaven Square (near the middle) you see a purple top to the room box, which indicates you can go up, but the up line isn't drawn as there is already a ne/nw line.
- You can RH click to speedwalk by the most direct route to any square.
- If you LH click when in a shop it lists the goods in it
- As before, the dotted lines are unexplored areas
- There are some one-way exits visible, particularly in the arena under the academy. It looks like there are a lot of rooms in the "up" direction but they are in fact the same room. Oh well, that is what you get when the underlying design doesn't totally make sense.
- Short "stubby" lines indicate an exit where you can go if you get closer, but because of room overlap it can only draw one room
- The rooms are now traversed breadth-first (rather than depth-first) so the view is better the closer it is to you.
The time to draw that map on my PC was 0.009641 seconds, so it isn't exactly going to slow you down. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| Twisol
USA (2,257 posts) Bio
|
| Date
| Reply #247 on Thu 25 Feb 2010 12:13 AM (UTC) Amended on Thu 25 Feb 2010 12:21 AM (UTC) by Twisol
|
| Message
|
Nick Gammon said: This is the current look of the mapper (of course the colours can be adjusted):
That looks amazing. What if there's multiple "special" things in a room, though, like both a vendor and a healer? As a suggestion, I would like to see the color "cycle" every two seconds or so, on a fixed tick period. And perhaps hovering the mouse over a room would position an info tooltip (miniwindow, not tooltip-text) listing the "special" things there. "You are here", the white square, would count as one of these special things, so you don't hide other special things there.
Also, thinking of Achaea, each room has its own environment. A facility to set a room's border, and its inside color (under the "special" overlays), based on its environment would be nice. Green for forest, for example. Obviously the based-on-environment bit is MUD-specific, but if the map is configurable this way it would be pretty easy to fit in. (EDIT: Also perhaps a way to set the background color of the map itself?)
EDIT 2: Also, how does the map deal with visibility? That is, once the map overflows the borders, does it stop drawing? Achaea is.... huge. A fully-loaded map would probably take a lot more time than your partially-explored Darkhaven. |
'Soludra' on Achaea
Blog: http://jonathan.com/
GitHub: http://github.com/Twisol | | Top |
|
| Posted by
| Nick Gammon
Australia (23,165 posts) Bio
Forum Administrator |
| Date
| Reply #248 on Thu 25 Feb 2010 01:06 AM (UTC) |
| Message
|
Twisol said:
That looks amazing. What if there's multiple "special" things in a room, though, like both a vendor and a healer? As a suggestion, I would like to see the color "cycle" every two seconds or so, on a fixed tick period. And perhaps hovering the mouse over a room would position an info tooltip (miniwindow, not tooltip-text) listing the "special" things there. "You are here", the white square, would count as one of these special things, so you don't hide other special things there.
Well you could do that of course. I am just trying to prove the idea.
Twisol said:
Also, thinking of Achaea, each room has its own environment. A facility to set a room's border, and its inside color (under the "special" overlays), based on its environment would be nice. Green for forest, for example. Obviously the based-on-environment bit is MUD-specific, but if the map is configurable this way it would be pretty easy to fit in.
Just about to do that.
Twisol said:
(EDIT: Also perhaps a way to set the background color of the map itself?)
You mean from the server? Not just now but that is an idea for setting the mood.
Twisol said:
EDIT 2: Also, how does the map deal with visibility? That is, once the map overflows the borders, does it stop drawing? Achaea is.... huge. A fully-loaded map would probably take a lot more time than your partially-explored Darkhaven.
Well there are a number of limiters to stop it drawing for hours:
- A configurable "depth" which I currently have at 30, so it never draws more than 30 steps from where you are.
- It won't draw on top of an existing room
- It won't draw off the edge of the map area, so that naturally limits it anyway
The room size is configurable too, so it would be interesting to explore a whole lot of places and then "zoom out" and see how fast it draws hundreds of rooms.
Ideally it should look better than a rectangle with lots of boxes in it, however it is far, far better than what we currently have with MUSHclient and mapping.
BTW the whole thing is done in a miniwindow, this is not a client enhancement as such.
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| Twisol
USA (2,257 posts) Bio
|
| Date
| Reply #249 on Thu 25 Feb 2010 01:55 AM (UTC) |
| Message
|
Nick Gammon said:
Twisol said: (EDIT: Also perhaps a way to set the background color of the map itself?)
You mean from the server? Not just now but that is an idea for setting the mood.
No, simply as a client-side configuration option.
Nick Gammon said:
Twisol said:
EDIT 2: Also, how does the map deal with visibility? That is, once the map overflows the borders, does it stop drawing? Achaea is.... huge. A fully-loaded map would probably take a lot more time than your partially-explored Darkhaven.
Well there are a number of limiters to stop it drawing for hours:
*A configurable "depth" which I currently have at 30, so it never draws more than 30 steps from where you are.
*It won't draw on top of an existing room
*It won't draw off the edge of the map area, so that naturally limits it anyway
The room size is configurable too, so it would be interesting to explore a whole lot of places and then "zoom out" and see how fast it draws hundreds of rooms.
Ideally it should look better than a rectangle with lots of boxes in it, however it is far, far better than what we currently have with MUSHclient and mapping.
Ah, that makes sense. Yes, a zoom feature would be cool!
Nick Gammon said: BTW the whole thing is done in a miniwindow, this is not a client enhancement as such.
Of course, of course. |
'Soludra' on Achaea
Blog: http://jonathan.com/
GitHub: http://github.com/Twisol | | Top |
|
| Posted by
| Nick Gammon
Australia (23,165 posts) Bio
Forum Administrator |
| Date
| Reply #250 on Thu 25 Feb 2010 02:11 AM (UTC) Amended on Thu 25 Feb 2010 02:12 AM (UTC) by Nick Gammon
|
| Message
| Zoomed out:
Zoomed in:

|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| Nick Gammon
Australia (23,165 posts) Bio
Forum Administrator |
| Date
| Reply #251 on Thu 25 Feb 2010 02:21 AM (UTC) |
| Message
| This one shows the terrain colouring:

|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| Nick Gammon
Australia (23,165 posts) Bio
Forum Administrator |
| Date
| Reply #252 on Thu 25 Feb 2010 02:55 AM (UTC) |
| Message
| The source to the mapper is here:
http://github.com/nickgammon/plugins/blob/master/Mapper_Telnet.xml
It requires the special telnet codes to work without modification.
To make it work on an existing MUD you would need to work out a unique room ID for each room, somehow.
There is some discussion about the difficulties in doing this here:
With the cooperation of MUD admins, with their cooperation I say (hint hint), any MUD could use the mapper and have a very cool automatic terrain mapping going for it.
Basically the MUD needs to send down in some format (one way is via telnet subnegotiations, another way is specially formatted message intended to be caught by triggers and then omitted from output) the following:
- The current room id
- What exits it has, and the room ids each exit leads to
- Some sort of information about the room if possible, eg. terrain type, whether there is a shop there etc.
- The room name
The mapper just uses a string room ID, so the room ID (guid) could be a number, a string (like: "forest.1234") or indeed anything that uniquely identifies rooms.
My code caches the room information, so once it has it once you don't need to request it again (all you need to know on a minute-by-minute basis is your current location, obviously, so it knows where to center the map).
So in essence, the transaction goes like this:
- Server: you are in room 21023
- Client: I don't know about that room, please tell me more (ie. give me info on room 21023)
- Server: OK then: room 21023 has exits <list of exits> (eg. n:21024, s:21022, e:21025). It has name "Darkhaven Bakery" it is "indoors", and it has a shop in it.
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| Twisol
USA (2,257 posts) Bio
|
| Date
| Reply #253 on Thu 25 Feb 2010 03:23 AM (UTC) |
| Message
| | With Achaea, you can easily get the room number (id), exits, and name through ATCP. You can't get environment, although I suggested it a long while back. You can get the environment with the SURVEY command, though that requires gagging and a list of possible "fail" messages (in case you're underground or otherwise unable to use it). Shouldn't be too hard to fit the rest in though. |
'Soludra' on Achaea
Blog: http://jonathan.com/
GitHub: http://github.com/Twisol | | Top |
|
| Posted by
| Nick Gammon
Australia (23,165 posts) Bio
Forum Administrator |
| Date
| Reply #254 on Thu 25 Feb 2010 03:32 AM (UTC) |
| Message
| | So how many hours until the Achaea version is ready Twisol? |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.
928,612 views.
This is page 17, subject is 23 pages long:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 18
19
20
21
22
23
It is now over 60 days since the last post. This thread is closed.
Refresh page
top