printf("\e
printf("\e[10;24r"); // set the scrolling region from row 10 to 24, assuming a 24 row screen, which leaves a 9 row static area.
// This only needs to be done once. Disable with "\e[r"
printf("\e7"); // save the current cursor position.
printf("\e[1;1H"); // move cursor to row 1; column 1 in the top left corner of the screen.
printf(map); // print your map now as you'd normally print it, which should be fairly inexpensive if you have MCCP.
// It's possible to only update text that changed with some smart coding.
printf("\e8"); // restore the cursor position.
[/code]
Simple as that, and all that's needed is a VT100 client like tintin++, zmud, and most telnet clients.
You then navigate mostly by moving between designated objects. So "go to hill", or "go to house", "go to blasted oak" or "enter green door". The MUD would track movement to quite a fine degree, so if you pick up an object it would model you walking towards it first, and track what position you were in and which direction you were facing as a consequence.
"Resume" would allow you to continue heading in the direction you were previously going.
In appropriate areas you could also opt to "follow road" or "follow corridor" or "follow river" , and you would then set off along the road and continue moving until either you manually stop or you reach a junction, at which point you would then choose which way to proceed. (There needs to be some sort of option as to whether you stop at every junction or keep going until you explicitly stop).
Directions would be normally be relative rather than absolute. So instead of being told "there is a river to the north" you would be told "there is a river ahead and to your left", with the direction changing if you face a different way. Commands would work the same way (so "turn right", "take left fork", "follow road left", "follow river downstream" rather than "go north").
While moving you would be informed about the more noticeable landmarks as you went along ("ahead and to the right you see a ruined cottage…" "you are now passing the ruined cottage on your right…" "in the distance to your left you see a horse and his rider galloping along the skyline…" etc.) You might then decide to stop and examine the cottage up close, or enter it.
You'd have different rates of movement, depending on encumbrance, whether or not you are mounted, etc. so that there could be meaningful chases, and tactical decisions about how much gear to carry, etc. ("You are riding at a gallop. About 50 years behind you, Shasarak is galloping after you. He is gaining slowly.")
If in the middle of open country with no obvious landmarks you would have the option to set off in a specific compass direction ("go north") but "north" in that context would be merely a guess rather than an absolute direction; so a ranger might actually be heading within a couple of degrees of north, while a "townie" might well actually be heading east but think he's heading north (unless he has a compass and a map).
I'd also add in the ability to follow directions on a map, and for players to learn the route between places ("follow map to Oasis of Bright Water") with the degree of familiarity and travelling conditions affecting the chance of getting lost en route - you're more likely to get lost in the dark or in a snowstorm, less likely in daylight or if you know the route well.
The advantage of this system is that I think it actually imitates the way people really do move around. You don't say to someone "head along there, then turn north", you say "head along there then turn left at the church".
The disadvantage is that anyone other than a total newbie would probably log off in disgust the second that they realised they couldn't use the commands "n", "s", etc. to move around.
:sad: