15 Mar, 2010, donky wrote in the 41st comment:
Votes: 0
Scandum said:
Orrin said:
Obviously you can't trust this information completely as clients like mushclient and zmud can be configured to send arbitrary terminal types.

Same goes for TinTin++. One thing I need to add is for tt++ to report the actual terminal emulator (RXVT, XTERM, etc) on a 2nd TTYPE request, though I don't think there are any muds that poll multiple times and do something useful with it.

And Putty, the user can change its behaviour in many ways, to alter the fingerprint it shows a server. Including changing the answerback string from PuTTY to something else. Any procedure which tried to identify what client a player was using, would have to take this and other possibilities into account.
15 Mar, 2010, donky wrote in the 42nd comment:
Votes: 0
David Haley said:
One wonders if it would be useful to just ask the player for the name of their client, perhaps from a list of supported clients (with "guess for me" as an option). If you could motivate them with carrots like nifty extra support, the step sounds like it wouldn't be too onerous.

While it is not the common case, there are options which a server might want enabled in a client, yet it is unable to know whether it needs to tell the player to manually enable them or whether it can just go ahead and enable them remotely. A recent thread on unicode and mushclient is related to this, a mushclient player would most likely need to enable the option, whereas a Putty player could just have it remotely enabled with no switch in attention span.

Now, this is not the common case, but what I wonder is what possibilities this might open up if client identification is a known technique that is achievable. I tend to use the telnet client at hand, which is Windows Telnet. And Putty when I have to use something else. But as a server developer, I think there is too much that is unknown in the world of dealing with clients and I see possibilities for making these things known and improving the status quo.
15 Mar, 2010, Runter wrote in the 43rd comment:
Votes: 0
Asylumius said:
I like descriptions. No ASCII. No maps.

I've never played a MUD that used ASCII maps in which the room descriptions were anywhere near the quality they are on MUDs I'm used to playing, or even most random MUDs that don't use ASCII maps. I think it detracts from the immersion of the game and all takes away from the all around value of quality areas.

I can understand having them in MUDs of certain genres, but I tend to stick to plain old sword and sorcery Diku MUDs, and I'm not much for innovation I guess.


Wrench tossing inc.

I'll put two questions to you. How do you feel about only installing your ASCII map after all of your areas are finalized and quality tested? Second question. How do you feel about only giving mapper to immortals? It can be a good tool for visualizing. Especially if you aren't the immortal working on the zone and you want to see it laid out.
16 Mar, 2010, Scandum wrote in the 44th comment:
Votes: 0
donky said:
Now, this is not the common case, but what I wonder is what possibilities this might open up if client identification is a known technique that is achievable. I tend to use the telnet client at hand, which is Windows Telnet. And Putty when I have to use something else. But as a server developer, I think there is too much that is unknown in the world of dealing with clients and I see possibilities for making these things known and improving the status quo.

One option is adding a row with client side TTYPE support (yes/no) to: http://en.wikipedia.org/wiki/Comparison_... next create a TTYPE article, and add to it a table with clients and the TTYPE(s) they report. That should at least put the information for an implementation out there.
16 Mar, 2010, Asylumius wrote in the 45th comment:
Votes: 0
Runter said:
Asylumius said:
I like descriptions. No ASCII. No maps.

I've never played a MUD that used ASCII maps in which the room descriptions were anywhere near the quality they are on MUDs I'm used to playing, or even most random MUDs that don't use ASCII maps. I think it detracts from the immersion of the game and all takes away from the all around value of quality areas.

I can understand having them in MUDs of certain genres, but I tend to stick to plain old sword and sorcery Diku MUDs, and I'm not much for innovation I guess.


Wrench tossing inc.

I'll put two questions to you. How do you feel about only installing your ASCII map after all of your areas are finalized and quality tested? Second question. How do you feel about only giving mapper to immortals? It can be a good tool for visualizing. Especially if you aren't the immortal working on the zone and you want to see it laid out.


At that point, it would come down to somebody else having to put in the wrench time to write the code. It's not a feature I care about or think adds a lot of value to the kind of game I would want to run or play. If another coder felt like adding it (post-QA, so to speak) I wouldn't object, but it's not a project I would dedicate what time I have, especially since there are always a hundred other things to work on.

As for visualization, I guess the best counter-argument I can come up with is "Meh". I've built a half dozen or so areas for MUDs before and I've never found it difficult to form a mental picture in my head even before I do the work. Builders should be mapping their areas on paper or digitally anyway. Toss in OLC such that you can walk around and I again chalk it up to a feature I just don't personally see as very useful.

I realize I probably sound like the grumpy old guy who refuses to buy a cell phone or ditch the rabbit ears antenna on his old ass TV, but the luxury of MUDs and the Internet is that I can do mine my way and just maybe a handful of people will come by and agreed with my taste.
16 Mar, 2010, donky wrote in the 46th comment:
Votes: 0
Scandum said:
One option is adding a row with client side TTYPE support (yes/no) to: http://en.wikipedia.org/wiki/Comparison_... next create a TTYPE article, and add to it a table with clients and the TTYPE(s) they report. That should at least put the information for an implementation out there.

I've been trying to google this sort of information, but being able to find a good reference to it on wikipedia is a great heads-up on it. However, given what I read about the nightmares people go through with wikipedia, I do not think I will spend any time trying to get my edits in there.
16 Mar, 2010, Scandum wrote in the 47th comment:
Votes: 0
Can't blame you. I added a TTYPE row over here: http://www.mudpedia.org/wiki/Comparison_...

I guess it needs a row for clients that can use and negotiate character mode as well, though tt++ is the only one that I know of.
16 Mar, 2010, donky wrote in the 48th comment:
Votes: 0
Scandum said:
Can't blame you. I added a TTYPE row over here: http://www.mudpedia.org/wiki/Comparison_...

I guess it needs a row for clients that can use and negotiate character mode as well, though tt++ is the only one that I know of.

Is there a formal description of what one needs to do to enter character mode? The following seems to suggest that the server sending WILL ECHO is not enough. But it would be nice to have a clear description somewhere.
RFC857 said:
The echoing option alone will normally not be sufficient to effect
what is commonly understood to be remote computer echoing of
characters typed on a terminal keyboard–the SUPPRESS-GO AHEAD option
will normally have to be invoked in conjunction with the ECHO option
to effect character-at-a-time remote echoing.

Mushclient is marked as supporting ECHO in that table, but does not support character mode.
16 Mar, 2010, Scandum wrote in the 49th comment:
Votes: 0
Server needs to send IAC WILL SGA and IAC WILL ECHO (in other words, server offers to suppress go ahead (assumed enabled by default) and handle local echoing for the client), client needs to send IAC DO SGA and IAC DO ECHO - after that client side character mode is assumed to be enabled.

I think zMud has a character mode switch, but I don't think it enables it upon negotiation.
16 Mar, 2010, KaVir wrote in the 50th comment:
Votes: 0
donky said:
If I were to look further into and write up this sort of thing, do you think anyone would both to implement it in order to gain that information? Or to be able to make best use of the capabilities of each client, like with ANSI for me.

I'm always interested in collecting statistics, although I'm a bit wary of adding telnet negotiation to do it automatically, as a few of my players use pretty basic tel.... No reason why it couldn't be added as an optional command, though.
17 Mar, 2010, donky wrote in the 51st comment:
Votes: 0
KaVir said:
donky said:
If I were to look further into and write up this sort of thing, do you think anyone would both to implement it in order to gain that information? Or to be able to make best use of the capabilities of each client, like with ANSI for me.

I'm always interested in collecting statistics, although I'm a bit wary of adding telnet negotiation to do it automatically, as a few of my players use pretty basic tel.... No reason why it couldn't be added as an optional command, though.

Having my server send a WILL or DO MXP to GMud did result in a junk character, but '
Having my server send a WILL or DO MXP to GMud did result in a junk character, but '[' rather than the 'Z' you note in your linked post. Now GMud does not respond to other basic options like WILL ECHO, DO NAWS and DO TTYPE, but it also does not display junk characters for these options.

The approach this suggests to me, is that if a client responds to negotiation attempts for basic options, then it might be assumed that the more problematic ones could then be attempted. And if a client does not respond to negotiation at all, then it is guaranteed to be a basic telnet client and further negotiation of otherwise problematic ones should not be taken.

Does this sound workable? Do you know the names of other basic telnet clients I can test this out on, if need be?

Edit: I should add if it matters, the version of GMud I found and used was 1.9b.
18 Mar, 2010, KaVir wrote in the 52nd comment:
Votes: 0
donky said:
Having my server send a WILL or DO MXP to GMud did result in a junk character, but 'Having my server send a WILL or DO MXP to GMud did result in a junk character, but '[' rather than the 'Z' you note in your linked post.[/quote]
Well the Z was for M[u]S[/u]P, but I think it's much the same problem.

[quote=donky]Now GMud does not respond to other basic options like WILL ECHO, DO NAWS and DO TTYPE, but it also does not display junk characters for these options.

The approach this suggests to me, is that if a client responds to negotiation attempts for basic options, then it might be assumed that the more problematic ones could then be attempted. And if a client does not respond to negotiation at all, then it is guaranteed to be a basic telnet client and further negotiation of otherwise problematic ones should not be taken.

Does this sound workable?[/quote]

Clever…yes, that might indeed overcome the issue. It would certainly work for GMud.

[quote=donky]Do you know the names of other basic telnet clients I can test this out on, if need be?[/quote]
I believe the problem was with a standard windows telnet client, but I don't know which version I'm afraid.
18 Mar, 2010, Scandum wrote in the 53rd comment:
Votes: 0
The windows telnet client of XP an later disables local echo when it receives any kind of telnet negotiation. I wouldn't worry about it as telnet is disabled as of Vista.
18 Mar, 2010, donky wrote in the 54th comment:
Votes: 0
Scandum said:
The windows telnet client of XP an later disables local echo when it receives any kind of telnet negotiation. I wouldn't worry about it as telnet is disabled as of Vista.

Barm's similar comment says something related, that you cannot reenable it. These are good things to know, regardless of the indirect way that Windows Telnet has to be accessed.
18 Mar, 2010, Scandum wrote in the 55th comment:
Votes: 0
donky said:
Barm's similar comment says something related, that you cannot reenable it. These are good things to know, regardless of the indirect way that Windows Telnet has to be accessed.

You can't, though it's possible to detect windows telnet and handle the echoing server side.
18 Mar, 2010, KaVir wrote in the 56th comment:
Votes: 0
Scandum said:
The windows telnet client of XP an later disables local echo when it receives any kind of telnet negotiation. I wouldn't worry about it as telnet is disabled as of Vista.

I do worry about it though - I have players who use windows telnet to play from school, and they're not able to install other clients or connect through FMud, so they've no other options.

If there's no way to negotiate without killing echo then one possibility might be to bind the mud to a second port, and only negotiate on clients that connect to the main port number.

Another possibility might be to negotiate after the player has connected, and add a config option for switching it off (they'd then have to open a new client to reconnect). But they'd probably end up leaving the option off, meaning I'd never get to see what client they used at home.

A third option could be to prompt the user every time they connect, although I dislike adding things like that, and it rather undermines the point of having automatic negotiation.

Perhaps the second and third options could be combined though - at the login screen where the user is given a list of options (create, load, who) there could be another command for switching off negotiation. Then when they create or load their character the negotiation could be performed, unless they'd previously chosen to switch it off.
18 Mar, 2010, Scandum wrote in the 57th comment:
Votes: 0
Or the fourth, detect windows telnet and echo the input back to the user as they type.
18 Mar, 2010, KaVir wrote in the 58th comment:
Votes: 0
Scandum said:
Or the fourth, detect windows telnet and echo the input back to the user as they type.

I'd rather avoid character mode.
18 Mar, 2010, Tyche wrote in the 59th comment:
Votes: 0
donky said:
Windows Telnet sends four terminal types to the server, including VTNT. Mushclient sends one terminal type of "mushclient". Etc.


Another problem with Windows telnet client is that after cycling through terminal types one cannot get out of VTNT terminal. The RFC states the last TTYPE should be listed twice before cycling back to first TTYPE. It doesn't. Same or similar problems with SimpleMU.
18 Mar, 2010, donky wrote in the 60th comment:
Votes: 0
Tyche said:
donky said:
Windows Telnet sends four terminal types to the server, including VTNT. Mushclient sends one terminal type of "mushclient". Etc.


Another problem with Windows telnet client is that after cycling through terminal types one cannot get out of VTNT terminal. The RFC states the last TTYPE should be listed twice before cycling back to first TTYPE. It doesn't. Same or similar problems with SimpleMU.

Actually, I get out of it every time I use it, and my server enumerates all terminal types on client connection for all clients that connect.

When I read the RFC several days ago, my understanding of it was that some clients may not cycle and will list the last terminal type repeatedly, and some will cycle. But that the heuristic was that you should on seeing the same terminal type twice (assuming you have seen more than one different one) restart the terminal type negotiation process. This is what I do, and by doing so, I return successfully back to the first terminal type for any client that connects including Windows Telnet.
40.0/70