UX: It's time for The Talk
-
@HelloProject said in UX: It's time for The Talk:
@RnMissionRun I went to a place called Big Gay Ice Cream, and they have rainbow Golden Girls art all over the place.
Where is this magical place of which you speak?
-
https://www.biggayicecream.com/ Philly and New York.
-
@RnMissionRun said in UX: It's time for The Talk:
@Thenomain said in UX: It's time for The Talk:
Crow about Pueblo or MXP as much as you want, it never made it into Mush-user-style clients because nobody convinced us why we'd want it, and to do that someone has to use it.
The biggest problem with things like MXP is, people would have to switch clients to use it, and trying to get people to use a different client is like trying to sell ice to Eskimos.
Atlantis 1 supports MCP—both internally (the standarized editor package and a few others) and for the plugin API that no one but me ever used, and for scripts. I think two people ever used it.
I'll probably still end up adding a few other things like MXP, MCP, and so on to Atlantis 2, but my expectation that anyone will use them is Not Particularly High.
-
If nothing else, I'm pretty sure at least one of these has been used in one circle of MUing since about 2009. Started on SRT, then M3, then more MUs in that circle.
Drives me fucking nuts when I can't click shit with my mouse in other MUs, because I'm so used to it now.
-
@Rook said in UX: It's time for The Talk:
Yeah, there seems to be a lot of complexity around MUDs that MUSHes don't use, because MUSHes inherently have 99.99% of the development happening inside the game itself, not in the hardcode like MUDs do. MCP is an attempt to make a unified message bus in a MUD between the client and server, to standardize things, and it seems like it wasn't widely adopted. Likewise, some clients have started to allow SSL connections, to stop employer snooping.
Normal players don't use this stuff.
I think this is much of the problem yeah. Since even though MUSHclient has been supporting these things since pretty much when they came out, I don't know any means you can actually send this kind of data through PennMush softcode.
-
@Sparks What would really make the MCP feature pop, if is Atlantis could be configured to open the text in an external editor! The current implementation is ok for editing short bits of text (descs, for example), but not for editing code, where syntax highlighting and such would really come in handy.
-
@HelloProject said in UX: It's time for The Talk:
https://www.biggayicecream.com/ Philly and New York.
For a similar gay experience in Ontario, Canada, try Demetre's. Growing up, we used to call it "Gay Demetre's" due to its extremely loud and festive décor.
-
@Thenomain said in UX: It's time for The Talk:
I would give my left...I don't know, sock...to get MCP, or even GMCP. I had completely forgotten about it. Let people build their own clients on a metadata standard.
We didn't go for MCP in Evennia, but we do have support for both GMCP, MSDP and MXP links (among other things). A client like Mudlet offers very extensive options for offering GUI-"themes" matching your particular game, using GMCP to handle interface updating and interaction.
GMCP has some decent docs these days, but for the longest time it was just defined by the biggest games that implemented it (like the IRE games). Not the best of situations, which is why we first added support for MSDP which has had a proper, central definition with standard messages for years and years.
In the case of our webclient, it's all JSON though.
-
@Griatch I had thought to implement at least the simple-edit MCP package for Evennia (which is the only part of the spec that ever saw much use anyway), but then I figured that most of my players would be connecting with a MUSH client, so I did something a lot more simple:
from evennia import default_cmds # ghetto fugueedit command # Public domain code by Darren Wheeler DaW@Prime Directive. class CmdEdit(default_cmds.MuxCommand): """ Syntax: @edit <object> Quick and easy desc editing for FugueEdit aware clients. """ key = "@edit" aliases = ["edit"] lock = "cmd:all()" help_category = "General" def func(self): enactor = self.caller # Make sure that they supplied an argument. if not self.lhs: enactor.msg("FugueEdit: required argument missing.") return # Search for the object. what = enactor.search(self.lhs) if what: # We found something! Let's format the msg text. out = "FugueEdit > @desc #%i=%s" % (what.id, what.db.desc) # Now we display it to the user. We need the "raw" option to prevent the game from # processing any inline funcs or substitutions. enactor.msg(out, options={"raw" : True}) else: # The object reference could not be resolved. Complain. enactor.msg("FugueEdit: Object not found.")
-
@RnMissionRun said in UX: It's time for The Talk:
@Griatch I had thought to implement at least the simple-edit MCP package for Evennia (which is the only part of the spec that ever saw much use anyway), but then I figured that most of my players would be connecting with a MUSH client, so I did something a lot more simple:
FWIW, there's also the SimpleMU/Atlantis /grab system, which was meant to prevent people spoofing FugueEdit stuff into your input window. You had to set a 'grab password' on yourself, and then it was "1234<password> <line>" — the password was to avoid things like the jackass I ran into who used to be a complete jackass who would @pemit FugueEdit lines to folks during scenes in order to clear their input windows while they were posing.
Still, I used to have a command on most MUSHes I staffed on, where if they set a grab password on themselves, the +grab would use the SimpleMU 'secured' method; if they didn't, it used FugueEdit.
(Really, though, proper out-of-band support is best for things like this. I just wish more clients supported it properly.)
-
@Sparks That kind of reminds me of the dice system I coded once where you could set a password only you could see that verified if rolls were spoofed or not without having to have spammy nospoof code set. Different function of course, but I like the idea of individual passwords used in code. Also was used in system to stop @forcing, if the originator's code didn't match the enactor and the originator wasn't staff then it stopped the code from functioning. This was big when I was automating some things but I eventually think I went with setting everyone's locks at creation of player object.
-
@Sparks For sure I would add support for a grab password before the game was opened to the general public. I threw that together in two minutes to stop my one builder from griping about having to use the line editor to edit descs
-
@RnMissionRun While your example code is simple enough, I must admit I'm not familiar with FugueEdit. Is it an in-client editor? Could you elaborate a bit on what it is and how it works compared to say Evennia's in-built
@desc/edit
that uses theEvEditor
?
.
Griatch -
@Griatch said in UX: It's time for The Talk:
@RnMissionRun While your example code is simple enough, I must admit I'm not familiar with FugueEdit. Is it an in-client editor? Could you elaborate a bit on what it is and how it works compared to say Evennia's in-built
@desc/edit
that uses theEvEditor
?FugueEdit or SimpleMU-grab type stuff pulls text into the client's input area, pre-populating it.
So if I grabbed a desc, instead of it being in the in-game editor, it would pull the desc into my input area, so I can edit a single word or whatever, and then just hit enter again to re-send the command.
-
@Sparks said in UX: It's time for The Talk:
@Griatch said in UX: It's time for The Talk:
@RnMissionRun While your example code is simple enough, I must admit I'm not familiar with FugueEdit. Is it an in-client editor? Could you elaborate a bit on what it is and how it works compared to say Evennia's in-built
@desc/edit
that uses theEvEditor
?FugueEdit or SimpleMU-grab type stuff pulls text into the client's input area, pre-populating it.
So if I grabbed a desc, instead of it being in the in-game editor, it would pull the desc into my input area, so I can edit a single word or whatever, and then just hit enter again to re-send the command.
Ah, I see, thanks.
.
Griatch -
Hey I'm pretty new to this community, I'm one of the Mudlet developers (windows/macos/linux native client).
The conversation touched the topic of UIs and I thought I'd pitch in with my thoughts on this - the power of MU*'s is, obviously, in their text - but text is a steep learning curve to get into. You have to admit that few people in the world like a wall of text, reading instructions, or not getting instant gratification these days.
This is where having a cool UI for your game can help you out. It gives instant gratification to the newbie to see colourful pictures and a cool interface, and it makes them stick around longer to read the reams of text they're gonna have to learn to love. We encourage games and players to create UIs for this very reason, see some sample UIs here. Many other game admins have arrived at the same conclusion - see custom clients for BatMUD, IREs, and so on.
On the topic of server <-> client interaction - I agree that an out of band protocol is necessary for a modern server as it just cuts a lot of the boilerplate out, so to speak, that players will be otherwise forced to create. My preference is GMCP since it is JSON-based and JSON is a lot easier to work with, but we support a few in Mudlet and even have the ability for scripts to add support for more.