RanvierMUD / ranviermud

A node.js based MUD game engine
https://ranviermud.com
MIT License
796 stars 247 forks source link

GMCP support #276

Closed vadi2 closed 7 years ago

vadi2 commented 7 years ago

Is GMCP (out-of-band JSON) or any other out-of-band communications protocols supported?

shawncplus commented 7 years ago

The core doesn't have any real opinion about it, the implementation of the network layer is customizable. There is currently a ranvier-telnet bundle but it doesn't do any GCMP. So if someone wanted to implement GCMP they could use that bundle as a base and implement their GCMP code on top of it without changing the core.

If you're using the default ranvier-telnet bundle it might require that you fork and change the Telnet server that it uses to one that supports GCMP though since the Telnet.js that the example bundle uses just silently swallows SB/SE sequences.

vadi2 commented 7 years ago

Ok, that's a pity, I think this should come as a standard with a modern MUD engine.

On Fri, 15 Sep 2017, 8:33 pm Shawn Biddle notifications@github.com wrote:

The core doesn't have any real opinion about it, the implementation of the network layer is customizable. There is currently a ranvier-telnet bundle but it doesn't do any GCMP. So if someone wanted to implement GCMP they could use that bundle as a base and implement their GCMP code on top of it without changing the core.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/shawncplus/ranviermud/issues/276#issuecomment-329865196, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGxjF0YJDCiIc4Uwc-QM45Mmha49ip-ks5sisMDgaJpZM4PZWGD .

shawncplus commented 7 years ago

The point of the engine is that it's not opinionated, even about the network layer. If someone wants a networking layer is that has GCMP they're free to use whatever telnet library they want and hook that into Ranvier and can do so without having to change any of the core code. Ranvier is not a MUD-in-a-box like SMAUG. I happen to think GCMP is a hacky solution that doesn't need to exist anymore but that's just me. For example, with Ranvier, if you want a nice fancy client with a bunch of extra features you can just enable both a websocket layer and a telnet layer at the same time. The fancy client can connect to the websocket layer and old clients can connect to the telnet layer. Or protobufs, or whatever transport you want to use.

shawncplus commented 7 years ago

@vadi2 As of the latest commit ranvier does support GMCP, see https://github.com/shawncplus/ranvier-telnet for usage.

vadi2 commented 7 years ago

Awesome, thanks!