MU Soapbox

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Muxify
    • Mustard
    1. Home
    2. faraday
    3. Posts
    • Profile
    • Following 0
    • Followers 8
    • Topics 14
    • Posts 3117
    • Best 2145
    • Controversial 1
    • Groups 1

    Posts made by faraday

    • RE: Health and Wealth and GrownUp Stuff

      @macha You could try requesting things explicitly in writing. Your documented request coupled with their refusal probably says something about them.

      Or do a defensive documentation thing like an email saying: "Just to follow up on our conversation on <date>. Just to confirm, we agreed <things>." If they email back to confirm or deny, you'd have some documentation.

      Good luck. Sounds like they're horrible.

      posted in Tastes Less Game'y
      faraday
      faraday
    • RE: Autism and The MU* Community

      @macha Sure, and if you'd rather take the risk of them NOT hiring you because of a disability (which is illegal but can also be the result of unconscious biases) over the risk of them hiring you but then failing to provide reasonable accommodations for a disability (which is also illegal), that's your prerogative. Doesn't mean I would advise someone to do that in an interview though.

      @il-volpe said in Autism and The MU* Community:

      Yeah, somebody applying for a full-time position and then demanding part-time as an accommodation is probably being crap.

      Yeah, I don't know all the details obviously but that doesn't exactly scream "reasonable accommodation".

      posted in Tastes Less Game'y
      faraday
      faraday
    • RE: Autism and The MU* Community

      @23quarius said in Autism and The MU* Community:

      So to read the idea of people encouraging you to NOT disclose, it seems to set you up for getting fucked.

      Obviously applying for a full-time job and then being all: "Oh, no actually I can only work part-time" is a stupid thing to do. You need to be able to fulfill the basic duties of the job.

      But there are reasons that employment law limits an employer's ability to ask about disabilities. Prejudice is a very real thing. If you can do the job with reasonable accommodations, why give them a reason to NOT hire you based on some preconceived (and probably incorrect) notion of what <diagnosis> means?

      posted in Tastes Less Game'y
      faraday
      faraday
    • RE: Health and Wealth and GrownUp Stuff

      @mietze said in Health and Wealth and GrownUp Stuff:

      Smoking cessation programs often are at least partially covered by insurance. Rarely are weight loss programs. Not even nutritional counseling.

      Of course that's horrible. It should be covered. We should also be developing the weight-loss equivalent of nicotine patches and such, and constantly improving those types of supports.

      We have an incredibly judgey society that looks down on people with addictions, mental health disorders, etc. "If you were just a stronger person you could beat your <eating disorder / depression / ADHD / heroin addiction>..." is a common attitude that's appalling, untrue, and harmful. Sadly it spreads into the medical community as well, which is even more shameful since they of all people ought to freaking know better.

      Changing ingrained behaviors will always be super hard. A modest success rate means we (as a society) have more work to do, but it doesn't mean we should just give up and accept things as they are.

      posted in Tastes Less Game'y
      faraday
      faraday
    • RE: Health and Wealth and GrownUp Stuff

      @derp said in Health and Wealth and GrownUp Stuff:

      But at best, one out of five people actually manage to maintain weight loss for more than a year, and fewer than that for more than five. Many others never manage the weight loss in the first place.

      I don't disagree that there are harmful stereotypes, both in everyday society and in particular in the medical community. That's most assuredly a problem and anyone who struggles with it has my sympathy.

      But I don't really understand what alternative you propose. Only 1 in 10 people who try to quit smoking actually succeed. Relapse stats on heroin addiction are equally dismal. Yet we don't just throw up our hands and pretend like either of those behaviors is good for you just because they're very hard to beat.

      It's true that there is no equivalence between weight and health, but there are correlations between obesity and all kinds of other health problems. Some overweight people may be healthy; the majority are not.

      I think there's a middle ground of compassion and assistance that's somewhere between the extremes of 1) stigma/shaming and 2) asking doctors to ignore a very real public health problem.

      posted in Tastes Less Game'y
      faraday
      faraday
    • RE: What's So Hard About Ruby?

      @cobalt said in What's So Hard About Ruby?:

      I wanted to code a widget that would flip the area a room was at from "simulated weather" to "space", to simulate turning a viewport off and on. And I couldn't, for the life of me, figure out how to get/set the area.

      Sorry for the triple post but wanted to answer the pieces separately.

      # Set your current room to the space area
      space_area = Area.named("Space")
      enactor.room.update(area: space_area)
      

      Changing it back gets a bit trickier because you might have to create a temporary storage for "the area it used to be in" or something. Kinda depends how you want it to work.

      Regardless, this is not something I would have expected to be super intuitive looking at the 2,000 or so lines of code in the 'rooms' module, so you shouldn't feel bad for not being able to just figure it out at a glance. I'm always happy to help point folks in the right direction though.

      posted in Game Development
      faraday
      faraday
    • RE: What's So Hard About Ruby?

      @derp said in What's So Hard About Ruby?:

      And still, I'm left going -- ok so if I wanted to do 'Strength has a range of values from 1 to 5 in integers' -- how do I do that?
      If I do set Strength = 5 how do I tell the game that the 5 is an integer and not a string?
      How do I tell it that Strength = Duck is an invalid value in the YAML?

      These are great questions for the Ares forums or discord, and there are lots of different ways to do it, but this might help. (I'm winging it, so please don't expect this to actually work right as written)

       class AttributeSetCmdHandler
            include CommandHandler
      
            # Place to store our ability name and rating
            attr_accessor :ability, :rating
      
            # This makes sure you gave both an ability and rating
            def required_args
              [ self.ability, self.rating ]
            end
            
            # This cracks apart our `set Strength=5` into its pieces.
            # The ability is trimmed and titlecased.
            # The rating is interpreted as a number. If it's not a number string it becomes 0.
            def parse_args
              args = cmd.parse_args(ArgParser.arg1_equals_arg2)
              self.ability = titltecase_arg(args.arg1)
              self.rating = integer_arg(args.arg2)
            end
      
            def handle
              # Read our list of attributes and max rating from the YAML config.
              valid_attrs = Global.read_config("yoursystem", "attributes")
              max_rating = Global.read_config("yoursystem", "max_attr_rating")
              
              if (self.rating < 0 || self.rating > max_rating)
                client.emit_failure "Invalid rating."
                return
              end
              
              if (!valid_attrs.include?(self.ability))
                client.emit_failure "Not a valid ability."
                return
              end
              
              # update the database. attributes is probably a name:value
              # hash, so there's a little extra fussing you have to do.
              abilities = enactor.yoursystem_attributes
              abilities[self.ability] = self.rating
              enactor.update(yoursystem_attributes: abilities)
      
              client.emit_success "You set your #{self.ability} to #{self.rating}."
            end
          end
           
      
      posted in Game Development
      faraday
      faraday
    • RE: What's So Hard About Ruby?

      @Cobalt @Derp I don't think there's anything wrong with you or that you're missing anything in particular.

      Ares is massive. Thousands of files. Tens of thousands of lines of code. A website. A database. Two different programming languages (more if you count the templating languages and YAML and CSS).

      It's a lot.

      The thing is - MUSHcode was a lot too. I remember printing out the function help files back in the '90s and being all: OMG this is overwhelming. I learned it piece by piece, starting out with some dumb little notepad object or something and working up slowly. We've just all had so many years to build up familiarity with it, and probably have forgotten how hard it was to get started.

      Another confounding factor is that in Ares, most of the stuff you need is already built. So all that remains is the hard stuff - chargen, magic, and other massive systems. Nobody's starting with their own custom +finger because that's already done for you. And even if you did want to customize it, you have to first decipher what's already been made. So you go from getting your feet wet in the tutorials to jumping right into the deep end. It's hard.

      But none of that has anything to do with the language itself.

      posted in Game Development
      faraday
      faraday
    • RE: What's So Hard About Ruby?

      @groth said in What's So Hard About Ruby?:

      It's probably fine to call MUSHCode a bad language for modern use.

      If your constraints are that you need to be able to edit complex systems live in-game through a MU client, I doubt you could do much better than MUCode. People are still doing that so I consider that a modern use. YMMV though obviously. Bad or not, it's a pain to code in.

      @groth said in What's So Hard About Ruby?:

      That said, one thing that's easy to do in MUSH and hard to do without MUSHCode is scripting unique objects. I haven't tried it in Ares but I know in Evennia it's non-trivial to make something like a ball you can throw at people or a magic 8 ball or whatever.

      I mean, it depends on what you want the thing to do.

      class MagicEightBallCmd
            include CommandHandler
            
            def check_has_ball
               return "You don't have a magic 8-ball!" if false
               return nil
            end
            
            def handle
               message = ""
               case rand(3)
               when 0
                 message = "A"
               when 1
                 message = "B"
               else
                 message = "D"
               end
               client.emit "You shake the magic eight-ball. It says: #{message}"
            end
          end
      

      What's different about Ares is that it's designed for global systems, not local code. Why? Because I personally feel that local code is archaic and rarely-used on the kind of narrative-focused MUs that Ares is made for, and also local code doesn't mesh well with web portal play, which Ares is also made for.

      So if you want your 8ball command to be a global available to anyone on-demand, it's easy. If you want to limit it, you need to put a bit more thought into how exactly that's going to work and update the check_has_ball method accordingly. Is it a full-blown economy and inventory tracking system, a "has_eight_ball" flag that's set by staff, something that only works in Joe's Bar, or what?

      posted in Game Development
      faraday
      faraday
    • RE: MUs That We Would Love To Make (But Won't)

      @misadventure said in MUs That We Would Love To Make (But Won't):

      Given the issues with -isms in peoples RP space, could you even have nation based stereotypes like in 7Th Sea? The countries are fiction, but clearly based on one or more country stereotypes from the real world.

      Can you? Sure. It's been done. Will it offend someone somewhere? Probably. Is that a reason not to do it? That's entirely a personal decision.

      I personally don't find the barely-veiled national stereotypes and conflicts in the BSG universe offensive, but I can see where somebody might. Even so, after umpteen different BSG games, I've never felt a situation where it's like: "OK, we really need to tone down the Virgons (Space British) hating the Leonese (Space French) because it's getting to be a problem." But that's just me. YMMV.

      posted in Mildly Constructive
      faraday
      faraday
    • RE: Weird or unrealistic gaming... stuff

      @arkandel said in Weird or unrealistic gaming... stuff:

      is much easier than doing so for a table-top RPG

      I mean... kinda? Having done both, my 2 cents is that they're each royal pains, just in different ways.

      A MU is kinda like a MMO in that you can adjust on the fly (like you said), but it's also like a MMO in that people get very attached to doing things in a certain way. If you change (or heaven forbid nerf) something, people can get super pissed off. They also have a direct channel to gripe at you about it.

      Also you seem to be presuming that you've got some kind of metrics to tell you whether +3 initiative is as useful as +3 defense. But how? How many combats have you really got going on in your game on a daily basis? How many skill rolls? How many times does the 'mass stun' spell get used? Probably not many. Compare that to how many vocal players who are just ticked off because they imagined their character performing differently than the dice worked out to be. That's not necessarily a problem mechanics (or with the players, for that matter), it can just be a clash of expectations.

      On topic though, the whole idea of skill points, levels, dice... it's all just weird. It's a pretty crappy way of modeling humans.

      posted in Mildly Constructive
      faraday
      faraday
    • RE: Weird or unrealistic gaming... stuff

      Dice mechanics are HARD. You have to have something that is:

      • Intuitive enough for people to understand (FS3v1's custom dice curves did NOT go over well)
      • Have enough variation that the dice feel meaningful, but... not TOO much, because it's frustrating when your character's performance is wildly unpredictable (I'm looking at you D20).
      • Have enough ability for modifiers that you can account for difficulty/wounds/etc., but not SO much that a +2 mod changes you from a complete noob to a professional (I'm looking at you FUDGE).

      Sometimes it feels like an impossible balancing act and at some point you just have to say "screw it, roll some dice and have some fun".

      posted in Mildly Constructive
      faraday
      faraday
    • RE: Weird or unrealistic gaming... stuff

      The general indifference to wounds and deaths in both RPGs has always kind of baffled me. I get that everyone wants to be the hero, but even John McClaine was feeling it when his feet got shredded. And even though YOU know that your character has luck points/fate points/a kind GM or a FS3 combat system that won't kill you, your PC doesn't know that. They should maybe not be quite so reckless all the time.

      posted in Mildly Constructive
      faraday
      faraday
    • RE: What's So Hard About Ruby?

      @arkandel Heh, right?

      For comparison, here's the same function (more or less - there's not a 100% mapping) in the Ares ruby framework. It's still complex, but at least it's readable.

      https://github.com/AresMUSH/aresmush/blob/master/plugins/fs3combat/helpers/actions_helper.rb#L392

      And because it's a modern framework, I can have unit tests to make sure each piece works right.

      posted in Game Development
      faraday
      faraday
    • RE: What's So Hard About Ruby?

      @groth said in What's So Hard About Ruby?:

      MUSHcode serves as a fairly good introduction to Lisp. Dialects of Lisp and languages similar to Lisp are still used by systems that need concurrency like telecom and financial backends.

      That's true, but Lisp languages are such an infinitesimally small percentage of real-world programming that it's kind of like learning some weird dialect language that's only spoken in a far-flung corner of the world. Sure, if you live there or have a specific application for it, it's useful. But in general? Not so much.

      Lisp-based languages have different design patterns. Lots of recursion and nested function calls umpteen layers deep. MUSHCode in particular lacks many features of most modern languages - classes, named variables, clear function definitions (to @Tat's point about understanding helper functions) or even comments and whitespace (unless you use a custom offline parser). And the way people generally code in MUSHCode is very different - no source control, editing live on game, putting in your code all smushed together onto a single line. These are things that would be considered unacceptable in almost any other programming venue.

      I'm not saying Lisp (or MUSHCode for that matter) is a bad language. They have their niche uses.

      But come on... this is ONE function from the FS3 combat system in MUSHCode. Even with liberal FUN_ helpers, t's insane. It's just not a good way to learn how to program. And I say that as someone who has literally taught programming.

      &FUN_ACTION_ATTACK FS3Combat Instance Parent=localize([setq(0,u(fun_combatstat,%0,ammo))][setq(1,switch(grab(%2,burst,,),,1,min(%q0,3)))][setq(2,u(fun_weaponstat,%0,recoil))][setq(3,u(fun_range_mod,%0,after(grab(%2,range=,,),=)))][switch(0,t(u(fun_combatstat,%0,weapon)),u(fun_combat_msg,[prettify(lcstr(%0))] tries to attack but has no weapon!),t(u(fun_combatstat,%0,target)),u(fun_combat_msg,[prettify(lcstr(%0))] tries to attack but has no target!),not(u(fun_out_of_ammo,%0)),u(fun_combat_msg,[prettify(lcstr(%0))] tries to attack but is [ansi(hr,out of ammo)]!),[switch(%q1,>1,u(fun_combat_msg,[prettify(lcstr(%0))] fires a [ansi(hm,%q1 round burst)]!))][iter(lnum(1,%q1),[u(fun_do_attack,%0,switch(u(fun_is_in_vehicle,%1),1,u(fun_combatstat,%1,vehicle),%1),unprettify(after(grab(%2,called=,,),=)),add(%q3,-[mul(sub(#@,1),%q2)]),0)])][u(fun_suppress,%1,switch(u(fun_weaponstat,%0,wpntype),melee,0,1))][u(fun_subtract_ammo,%0,%q1)][switch(u(fun_out_of_ammo,%0),1,u(fun_combat_msg,ansi(hm,[prettify(lcstr(%0))]'s weapon clicks empty.)))])])

      posted in Game Development
      faraday
      faraday
    • RE: What's So Hard About Ruby?

      Tangent - I didn't pick Ruby for Ares because I had some kind of love for the language. I barely knew it at the time.

      The first Ares prototype was in C++, then I dabbled in C# with a Lua scripting thing for the plugins, then I tried Python seriously for a bit. Ruby was the one where the language itself supported the idea of a live-reload and easy overrides/extensions of core code via the plugins.

      So I don't think there's anything magical about Ruby, but it's a nice language.

      posted in Game Development
      faraday
      faraday
    • RE: What's So Hard About Ruby?

      @rnmissionrun said in What's So Hard About Ruby?:

      What changed to suddenly make ditching MUSH in favor of Ares (or Evennia), a good idea?

      Whatever success Ares has actually has zip to do with the programming language. It could have been Ruby, Python, or even been written entirely in MUSHcode. It doesn't matter.

      Ares appeals to people because of its usability and web portal. It's not ditching MUSH; it's extending it. And it's not designed for coders; it's designed so you don't need a coder.

      Now, as a coder designing a complex chargen system or whatever, I'd much rather work in a more modern language with all the conveniences of a full development environment, rather than trying to do 17-level nested parens and brackets stuffed onto a single line on my live game. But that is a wholly tertiary concern for why Ares is what it is.

      posted in Game Development
      faraday
      faraday
    • RE: Weird or unrealistic gaming... stuff

      @pyrephox said in Weird or unrealistic gaming... stuff:

      @carma In Ares, I really wish there was more cultural acceptance of, "Joey filled in Susan on the events of <link to log>last night," instead of having to do direct dialogue.

      The expectation of direct dialogue has been a thing since I started playing in the 1990s - it really has nothing to do with Ares.

      That said - yeah, MU conversations are pretty absurd. That's partly why I can't do big scenes any more (even more than 3 people). Everyone is putting so much into their individual poses that by the time it comes round to me there are like 27 conversation threads to keep up with and my brain cries uncle.

      posted in Mildly Constructive
      faraday
      faraday
    • RE: What's So Hard About Ruby?

      @arkandel said in What's So Hard About Ruby?:

      I found coding for MU* was an invaluable experience. .. I would heartily recommend it to anyone who's looking to get into programming or is curious about a different professional path.

      20-30 years ago I would absolutely agree. Now? MUSHcode is so far divorced from modern programming paradigms and languages that any concepts you learn from it don't translate very well.

      That said, people learn best when they're passionate about the thing they're trying to learn; doubly so if there's a tangible, useful project that can come out of it. So for you if that's old-school MUSHcode, go for it. Far be it from me to stand in the way of anyone's passion project.

      But if you're trying to learn it as a generic stepping stone to get into programming, there are better ways to do that IMHO.

      posted in Game Development
      faraday
      faraday
    • RE: What's So Hard About Ruby?

      @cobalt That gets to what I was saying about how to learn the entire package, not just the language. Getting an attribute out of a room has very little to do with ruby itself, because the core language knows nothing about MUSH rooms or Database attributes. You'd have a similar challenge with coding in any modern full-stack application, regardless of language.

      For the record, it's usually just enactor.room.some_attr or Room.named("Bob's Cantina").some_attr. You do also have to define attributes ahead of time - you can't just wing it with set(). So yeah, there are some moving parts and there's a learning curve.

      Ares has an extensive set of tutorials starting from 'hello world' and building up to adding a new field to the web portal. And of course you can always ask on the forums or discord. or page me on the test game or PM me here or send a carrier pigeon... I mean really, there's a lot of avenues for helping people to figure things out.

      posted in Game Development
      faraday
      faraday
    • 1
    • 2
    • 14
    • 15
    • 16
    • 17
    • 18
    • 155
    • 156
    • 16 / 156