GMCP tutorial1 min read by Vadim Peretokin | Oct 22, 2011 | Informational | 9 comments For anyone interested in learning GMCP, I’ve written a tutorial – take a look! GMCPtutorial Corrections: Feb 23rd, 2013: added a note mentioning that isPrompt() only works on MUDs that support GA 9 Comments Zesstra on November 12, 2011 at 6:58 pm BTW: is there even any decent GMCP specification? (So, not the forum discussion on mudstandard.org.) Vadi on November 12, 2011 at 6:59 pm Heh, not really no. To implement it is similar to ATCP, except you get/send encoded JSON data. Zesstra on November 12, 2011 at 7:10 pm Yeah, but I don’t really see the point implementing something which is not even defined. At least not after I briefly glanced over the discussion and some web resources. Should I implement Ironrealms or Aardwolfs variant? BTW: IRE’s Comm.Channel.Start and Comm.Channel.End is a bad joke, right? Vadi on November 12, 2011 at 7:13 pm Mudlet supports either variant. They’re the same, just how they handle the data part is different – which doesn’t matter as the games themselves are different anyway, so people only play either. Heh, yeah, that thing is dumb (sticking something from out of band into the band…) and doesn’t work with Mudlet either, nor do we have plans to ‘make’ it work. It’s purely an implementation detail of their Nexus java client and how did that get into the protocol, I’m not sure. Oh well! Zesstra on November 13, 2011 at 11:49 am I will give it some thought, but this “very subject to change” does not motivate me too much at the moment… So, that means, the modules and their versions – with exception of Core? – are always completely individual for a specific MUD (Module Char V1 from IRE vs. Char V1 from Aardwolf)? Confusing (at least without information in the spec), I would have preferred to distinguish the module name in that case. Vadi on November 13, 2011 at 4:21 pm It hasn’t changed in practice since inception. Yeah, how the game does it’s data is different between them – compare ironrealms.com/gmcp-doc and http://www.aardwolf.com/wiki/index.php/Clients/GMCP#aardmodules The point of this is for the players though, and the players love it. It makes their lives so much easier, and the more data is accessible, the better. Zesstra on November 15, 2011 at 4:46 am Mhmmm. Is there any minimal agreement for the Core module or any others which should be respected by all implementors? Vadim P. on November 15, 2011 at 3:53 pm There isn’t, no. Both IRE and Aardwolf seem to implement current and max stats though as they’re updated, stuff that’s in the room, and channels talk. IRE also tells you stuff in your inventory. Zesstra on November 15, 2011 at 4:23 pm Ok… For example, I would actually like if the server responds with the list of enabled modules to the clients requested modules. Just because the server may not support all requested modules in the the requested version and then the client gets to know which are actually active. So, I guess, I would just define that like this then.