UX: It's time for The Talk
-
@faraday I feel like I've provided examples all through the thread though, because people have asked me direct questions repeatedly, and I've answered them and even repeated myself in multiple posts a few times.
It's not like I'm holding up MUDs as the paragon of MUdom, I don't even play MUDs anymore for a variety of reasons. The only reason I used them as an example is because they're very good at abstracting insanely complex things and I don't think it's entirely terrible to aspire to that.
That said, the hobby is very broad, and I've played a lot of games and saw a ridiculous manner of dumb shit to the point that, yeah, my main thing is "Hey, can we please keep in mind that maybe we should put accessibility before 'does this work?'".
I once played in a MUSH that imposed an artificial one second lag between each room that you enter, to simulate "travel times". That was the dumbest shit in the universe. I can drop countless isolated examples of eccentrically dumb design decisions, and I think that warning people away from it is not a discussion without merit, because this kind of weird stuff happens all the time. Just because one particular coder wouldn't or doesn't do something doesn't mean that it's not worth discussing stuff that maybe shouldn't be done in the broader scope of things, rather than being like "Well, that's fixed, because I don't do it".
-
Give us some MOCK EXAMPLES of what you are trying to fix vs what you would do to simplify the command, please? See below!
I hate it when I see: +command/action <target>=<modifier> <modifier> <modifier>
I want to see: +action <target>
Put it in that format. SHOW US WHAT YOU PROPOSE. It can be a fake command, even! Show us how to take a complex command and make it simple.
Jesus, you're talking to coders here. Ambigious conversation (words words words) gets you nowhere with us!
-
@Rook Yeah. Although if you really want to get the point across, the mock example also needs to answer the questions: "But what if those modifiers are important" and "But what if those modifiers can have spaces in them"? Because I think answering 'yes' to both of those questions leads you directly to the syntax we already have in the vast majority of cases.
-
@Faraday
Shhhh. You've exposed my attempt to bring us back full circle and use the Socratic method to help answer his questions! -
@Rook said in UX: It's time for The Talk:
@Faraday
Shhhh. You've exposed my attempt to bring us back full circle and use the Socratic method to help answer his questions!I mean, I really think that that's what this discussion is about. Coders already use the simplest possible method to do what needs to be done. No one out there who does code is deliberately trying to make it more complex than it needs to be. The problem is that more often than not the simplest way to do it is pretty damn complex, because you're trying to take something fairly freeform from a tabletop and put it into computer format.
Which is pretty much what @Faraday said.
So I think that short of specific examples, w probably aren't gonna get much movement on this, because there's already a path of least resistance being followed. Not saying that it can't be productive, but just that talking about generalizations isn't gonna get us anywhere.
-
-
@Rook I mean, like for example, and I honestly forgot what game this was, maybe it was more than one? Anyway:
There was a game where you had to join into a combat pool. It wasn't always entirely clear if you were in the combat pool or not, you could actually forget and be in it for days, so combat was not technically over. Everyone being done didn't automatically dump you out of it or anything. There were a few commands involved, I think something like +init to start combat, then I think something like +combat/join to actually join into the combat pool thing.
This by itself isn't particularly a syntax issue (though I still think that these plus signs and slashes need to be burned with fire). But the fact that you need two separate commands to join combat, plus a third command to leave combat that you constantly forgot to even use, so you'd be trying to join a combat situation with someone else and you'd be like "Wtf is even wrong". Then you'd have to go and find the room you were in when you started combat to get out of it, if I recall correctly, some crazy shit like that. Then once you do that you can finally go back and finally enter combat with the person you planned to.
This is like, an example of a seemingly simple thing just gone way out of hand. None of this was even a bug, that was just how the freaking thing worked.
My solution would have been to just type <attack><target> and have people automatically enter initiative, then have people automatically leave initiative once the opposing party/person is KO'd. Though obviously I'd have a command to leave combat, just in case everyone doesn't get KO'd, or someone leaves combat before getting KO'd.
But anyway, the point was that it was needlessly complicated. Obviously this is just one example, but I feel like it's a good example. What makes things needlessly complicated isn't always syntax.
Another example is how I've seen some games handle descs in the past. Now, I'm personally used to @desc, I've seen easier descing systems and just didn't use them because I'm used to the regular @desc. But I've seen people create a whole thing where you had to enter into a whole, like, weird desc command line and editing the desc was a whole goddamned process, and goddamn if you wanted to write two paragraphs, fucking forget it.
Actually, I think that desc example might have happened multiple times, and they were all MOOs. In fact, MOOs (the ones I've tried) seem to do incredibly simple things in a needlessly complicated way, and I have no idea why. But anyway, the proper alternative would be literally any sane desc system. Though I do think that desc could do away with the @ and the =, it's not a huuuuuge deal for how simple what it does is.
-
@HelloProject said in UX: It's time for The Talk:
My solution would have been to just type <attack><target> and have people automatically enter initiative, then have people automatically leave initiative once the opposing party/person is KO'd. Though obviously I'd have a command to leave combat, just in case everyone doesn't get KO'd, or someone leaves combat before getting KO'd
Ok, so, I guess my questions here are as follows:
- Who are people? When you say 'have people automatically enter initiative', who are you talking about? Everyone in the same room?
- If it's everyone in the same room, how to you opt out of combat if you don't wanna join the fight? You'd have to distinguish the fighters from the non-fighters somehow, and give people a way to join in or back out/flee from the fight.
- How are you defining who the opposing party is? The game doesn't know this. All characters are equal characters.
- How are you defining when the opposing party is knocked out? I'm sure there's a flag or an attribute or something that can be set, but more often than not, MUSH combat does not work like MUD combat, and it's not always easy to define when the opposing party is knocked out.
Those questions need to be answered before we can determine if the system can be made better or not.
-
@HelloProject said in UX: It's time for The Talk:
This by itself isn't particularly a syntax issue (though I still think that these plus signs and slashes need to be burned with fire). But the fact that you need two separate commands to join combat, plus a third command to leave combat that you constantly forgot to even use, so you'd be trying to join a combat situation with someone else and you'd be like "Wtf is even wrong". Then you'd have to go and find the room you were in when you started combat to get out of it, if I recall correctly, some crazy shit like that. Then once you do that you can finally go back and finally enter combat with the person you planned to.
See that's a good example. But I can make a counter-example. FS3 combat has separate commands for starting, joining and leaving combat but there's a very specific reason for that.
It enables a GM (who is usually the one who starts combat) to set up the combat with NPCs and everything without spamming the other players, then join them to it later. Combat doesn't auto-stop when the last badguy is defeated because often you'll do a second or third wave of combatants and it would be annoying for everyone to have to re-join afterward.
Which brings us to the #1 rule of UX: Know your audience. Know what they're trying to accomplish, what their pre-conceptions and knowledge is, and then make the simplest possible thing that meets their needs. This is going to vary from game to game.
-
To coattail @faraday
If you code something for a game, you should be playing with that very code, as an end-user in a real scene. It isn't for testing, it's for usability, it's for seeing first-hand the clumsiness, the lacking features, the places where you can streamline things.
If you aren't doing that, then you have no business being the head coder on a game. IMNSHO.
-
@Derp I mean automatically enter initiative when they enter an attack, not everyone in the room.
I was thinking of parties in the factional sense, though obviously that isn't a good idea (actually maybe I need to define some sort of actual party system for my game, since it'll be more open-ended than usual for this type). I guess it would make sense to have people group up before combat. In MUDs this was done with the follow command. Like, follow <name>. If you had three people following each other, they'd all be in the same party. So, if you attacked someone, your enter party would enter the initiative of combat.
I know that on quite a few places, like M3, the old SRT, MCM, Battle Fantasia, and quite a few others, the way that a KO was determined was just your HP hitting zero and it says you're KO'd and you can no longer attack or anything. Though some of these MUSHes had items or character abilities that would automatically bring you back to 1 HP or something, for one last ditch attack.
Either way, I imagine that if you did an actual party system where people are tagged as being in the same party temporarily, then when they enter into combat, anyone who isn't in your party is the opposing party. That seems reasonable. I feel like the only extra step on the player is just using "follow", which is like one extra command, and that's only if they're using group combat. Actually, I'd probably code it more intuitively as "group", because I don't want a follow command working like an actual follow command (no one likes forgetting to unfollow someone and then get dragged like 10 rooms away).
@faraday I think that's all reasonable, especially when you consider that your system is supposed to be universal, and it probably lacks the annoying as shit quirks as the system I described. Like, this makes sense if you consider how GMing might possibly work in a particular game. I've seen games with very elaborate combat systems that are meant to be PVP first and GMing second. So, it depends on the needs, I agree.
-
-
@Thenomain I'm just trying not to seem so much like, uhh, "THIS IS HOW THINGS WORK WHERE I'M FROM", like I used to be on WORA, which is why I was trying to speak to the WoD crowd.
-
@HelloProject said in UX: It's time for The Talk:
@Rook I mean, like for example, and I honestly forgot what game this was, maybe it was more than one? Anyway:
There was a game where you had to join into a combat pool. It wasn't always entirely clear if you were in the combat pool or not, you could actually forget and be in it for days, so combat was not technically over. Everyone being done didn't automatically dump you out of it or anything. There were a few commands involved, I think something like +init to start combat, then I think something like +combat/join to actually join into the combat pool thing.
This by itself isn't particularly a syntax issue (though I still think that these plus signs and slashes need to be burned with fire). But the fact that you need two separate commands to join combat, plus a third command to leave combat that you constantly forgot to even use, so you'd be trying to join a combat situation with someone else and you'd be like "Wtf is even wrong". Then you'd have to go and find the room you were in when you started combat to get out of it, if I recall correctly, some crazy shit like that. Then once you do that you can finally go back and finally enter combat with the person you planned to.
This is like, an example of a seemingly simple thing just gone way out of hand. None of this was even a bug, that was just how the freaking thing worked.
That's a miss on the coder's part. The room, when dropped into combat, should have had an @oleave/@otport set and the player should have had an @omove set to leave the combat.
My solution would have been to just type <attack><target> and have people automatically enter initiative, then have people automatically leave initiative once the opposing party/person is KO'd. Though obviously I'd have a command to leave combat, just in case everyone doesn't get KO'd, or someone leaves combat before getting KO'd.
But what about the
childrenmodifiers? This game had no combat modifiers? Where in '<attack> <target>' did they go?But anyway, the point was that it was needlessly complicated. Obviously this is just one example, but I feel like it's a good example. What makes things needlessly complicated isn't always syntax.
Your example is not needlessly complicated. It's the exact opposite. It's anemic on details.
You are getting nowhere, here, in the quest to provide concrete things that us coders can pick apart and see where we can offer advice on simplification. In fact, there's nothing to pick apart yet?
Another example is how I've seen some games handle descs in the past. Now, I'm personally used to @desc, I've seen easier descing systems and just didn't use them because I'm used to the regular @desc. But I've seen people create a whole thing where you had to enter into a whole, like, weird desc command line and editing the desc was a whole goddamned process, and goddamn if you wanted to write two paragraphs, fucking forget it.
On those games, "@desc me=<blah>" didn't work? If you had been on MUSH/MUX, we could have taught you @edit, or just 'exam me/desc' to copy/paste back into the input buffer.
Actually, I think that desc example might have happened multiple times, and they were all MOOs. In fact, MOOs (the ones I've tried) seem to do incredibly simple things in a needlessly complicated way, and I have no idea why. But anyway, the proper alternative would be literally any sane desc system. Though I do think that desc could do away with the @ and the =, it's not a huuuuuge deal for how simple what it does is.
MOOs suck. I will not speak coding in regards to MOO, lest @Thenomain call me a Furry again.
......wait. Are your examples and the origin of this thread... based on MOOs? Oh god. I need a drink.
-
@HelloProject said in UX: It's time for The Talk:
@Thenomain I'm just trying not to seem so much like, uhh, "THIS IS HOW THINGS WORK WHERE I'M FROM", like I used to be on WORA
Then explain more "why" than "how".
When I grouse about ANSI, I don't just say 'WoD Games Don't Use ANSI' (which isn't true), but that I believe color should be informative and not decorative outside decorations (like headers and footers). I explain that my frustrations are mostly selfish, but informed. I am not disheartened when people yell at me for being stern—it's the fault of my tone that they're seeing the stern and not the potential issue.
And it should look like this: ANSI, to me, is a distraction. I'm constantly looking for the encoded information that isn't there. I could probably acclimate to it, but it's important that the information being given to the people is precise and, ironically, redundant. The word "brown" that is also colored brown in a description may fit this, but it can also lead to confusion as the reader has to take more time unpacking the information.
But making the word "brown" brown is also fun. Doing things that are ugly can be technically difficult and hell, why not show off your skills? Showing off is fun. Enjoying one another's showing off is fun. Thenomain is a kill-joy. (This is a truism.)
--
Okay, so let's look at command structure. '+roll'. God, why are we still hanging onto that +? Because people expect it. So how do we phase it out?
- Evennia is going to make command prefixes optional at the base level, but still lists all permutations of a command in the auto-generated help file. (edit and side-comment: This is noisy as fuck, and an unfortunate downside when creating an automated document system. I don't think I've ever seen one I've liked.)
- Thenomain has been making it optional for a while and has been hiding the '+' from all the help files, except '+help' because we cannot override 'help'. Yet.
- I've seen one or two bits of code that are snide if you use a depreciated system, which is off-putting but it works.
Encourage people to not use '+'. When I hear someone say, "Type +news blah," I always reply, "You don't need the +!" Phase the '+' out of all references. Maybe depreciate it entirely, though you will get the occasional kvetch as people have to use it on some games and not others.
--
Etc.
--
p.s., @Rook is a Furry.
-
@Thenomain said in UX: It's time for The Talk:
p.s., @Rook is a Furry.
-
This is a true story: I once had a charbit on some Furry game, because about five people I knew said it was fun once I got away from the Furries. So I created a chimpanzee and basically acted like myself, just smaller. I got snarked at by a few people in the main landing room for not taking the theme seriously. I logged back out. I believe this was FurryMUCK, but it was so long ago that I'm not going to hold myself to that.
-
I went there one time, and laughed myself out of CharGen due to the 'helpful pages' I was getting about what to make.
-
@Ganymede said in UX: It's time for The Talk:
@HelloProject said in UX: It's time for The Talk:
In the context of the roll command, roll Presence + Socialize + Striking Looks + Socialize: Format Events + Applicable Condition + Applicable Discipline is, to me, far simpler than having to go and either look up notes or open up PDFs or Google trying to figure out which PDF which thing is from so that you can remember that something is a 2.
Okay.
You'll be pleasantly surprised to learn that what you're proposing is the status quo, as far as I know.
On ours, it'd be +roll presence + intimidation.regal + mantle (spring)
But for say Striking Looks you'd add a + 2.
You SHOULD know what the numerical value is, though, because that value denotes how much you have or how good you are, and that influences your rp. You are not a skilled surgeon at Medicine 1, you are not very intimidating at Intimdation 1.You're not super-quick on the uptake at Wits 2. But at Medicine 5, you're among the best in the world at your field. If you don't remember how much you have,how can you accurately roleplay your skill?
-
@Paris said in UX: It's time for The Talk:
On ours, it'd be +roll presence + intimidation.regal + mantle (spring)
I know. When I'd roll, though, I'd just type "+roll <sum of my relevant dots and bonuses>." And if someone asked: "Gany, why did you roll <sum of my relevant dots and bonuses>?", I would reply with "because that's the sum of my relevant dots and bonuses."
I can count. I know how my +sheet works. I know how the game works. More often than not, I forget bonuses and apply too many negative modifiers, but I don't care, I'm having fun.