• 2 Posts
  • 820 Comments
Joined 2 years ago
cake
Cake day: July 3rd, 2023

help-circle

  • But dnd’s paradox is it is both open ended and rigid. My problem is it’s too open ended in many ways (eg: social conflict), almost completely missing rules in other parts (eg: meta game mechanics, conceding conflicts), and too rigid in others (eg: Eldritch blast targeting rules, unarmed smite and sneak attack). That’s not even going into the bigger problems like the adventuring day or how coarse class+level makes many concepts impractical at best.

    On top of that, it is so mega popular many players have no other reference points and don’t realize its assumptions are not universally true. It’s like people who have only ever watched the Lord of the rings movies, and they’re like “of course movies are four hours long and have horses. That’s just how movies are.”

    The main things DND 5e does well are popular support, and the very small decision space for players makes it hard to make a character that’s mechanically very weak or very strong. It brings nothing special to the table for roleplaying.

    Compare with my go-to example of Fate, which has simple systems to encourage it. CofD, my second favorite, also does.




  • There’s a spectrum of play that runs from strict rules-as-written to complete calvinball. Calvinball can be fun, but it’s not really a transferrable game. It’s very particular to that moment and that group.

    Sometimes people post wacky calvinball moments (eg: rolling damage against the floor, a free action to eat tiles, a +2 bonus to hit) as if that’s baseline RAW DND. It is not. Many tables would be like “wtf, that’s not how this game works”. So it can be kind of weird when it’s presented as obvious, as if it’s raw, when it’s just make pretend.

    Imagine if the post was “we were playing basketball and I missed the shot, so I got in my car and drove up close so I could jump off the roof and dunk”. Like, wacky story but not how you’re supposed to play the game.

    Furthermore, DND specifically is kind of bad at creativity. It’s very precariously balanced, with specific rules in odd places and no rules in others. Compare with, for example, Fate, which has “this thing in the scene works to my advantage” rules built in. DND is almost entirely in the hands of the DM.






  • Never thought about it before, but the two systems I like most don’t do that.

    In chronicles of darkness, you get penalties when any of your last 3 health boxes (out of 6-10) are marked. In fate, you start getting Consequences, and those both adversely affect you and provide bonuses for your opponents.

    I think some people don’t like this because it can cause a death spiral, where whoever gets injured first is likely to get more injured from the penalties. But, that makes sense for a lot of genres.

    I routinely found it extremely irritating in BG3 when I’d do a sneak attack critical, and then the enemy would have like 3 HP left, and then they’d turn around and attack just as hard as if i’d done nothing. Unsatisfying.


  • I don’t need to know their exact stats, but I like (for example) having a system where you know a human’s health ranges from 6 to 10, and a gun does at least 3 damage, so you can be pretty sure if you shoot him four times he’s down. None of this, “Well, he’s a 12th level accountant so he has 78 hp”.

    Maybe I mostly just dislike how vague HP is in D&D.

    But it was probably mostly a GM issue.

    I’m here to roleplay, not be told immediately whether or not I can take the dude.

    I find it hard to roleplay when I don’t know what is in the world. Things that are very different (high level stuff, low level stuff) getting basically the same description is distracting. In real life, you get a lot of information looking at someone.

    Maybe I’m still just annoyed at that game where we were all 10th level and so were the basic ass soldiers.


  • One of the things I realized I don’t like about DND (and close relatives) is it’s kind of hard to reason about the rules and risks. The narrative and numbers are too disjointed.

    You might say the knight is hulking and looming ominously, but does that mean 20 AC, 50 HP, one attack at +6 for 1d8+4… Or does that mean 24 AC, 500 HP, three attacks at 1d8+8 (slashing) +1d4 (negative energy)? Could be either! The range of possibilities is largely unbound and arbitrary.

    Compare with another system that like, constrains the numbers. Strength is rated 1-5. Melee is rated 1-5. This guy is pretty buff looking so he’s probably got a total of six. That guy’s a demigod and probably throws ten. Cool I can reason from that who I can take in a fight.




  • Product owners say, "We want to change the site so users see a list of all the other users on their team with access to this project "

    Okay. Do some thinking. Going to need the backend to return that information to the front end. Decide what URL that should be under (api/v1/projects/users, maybe?).

    Now we make the backend actually do that. Create a new file for this endpoint. Update the routes file so that url points to this file. Write the handler class.

    Does this endpoint take any particular input? We know who the caller is for free from the framework. We only want to return info about one project or all projects? Make that decision. Update URL if needed.

    Write the code to get the other users on the projects in question. Maybe that’s SQL, but might also be ORM (code from a framework that generates SQL based on objects). Decide what information we actually need. Package that up and send it back. The specifics depend on language and framework.

    Write automated tests for this. Make sure it works for

    • 401 not logged in
    • 403 asking about a project I don’t have permission for
    • 404 asking about a user with no projects, or a project that doesn’t exist
    • someone with 1 project
    • someone with 2 projects
    • someone with 10000 projects
    • also consider what happens for 0, 1, 2, 10000 users on the project.

    Realize this needs to paginate. Go back and change the handler code to do that.

    Realize due to some quirk of how permissions work, someone can be on the project twice. Talk with the team about if we should just decide that here, or try to fix the root problem. Probably the former.

    Add deduplication code, then, and test cases.

    Open this up for code review.

    Start the front end work.

    Make a dummy page first and update your API calling code to know about this new route, assuming you don’t have that auto magically set up somehow. Make sure it calls it and gets a response.

    Realize that staff users technically have access to every project in the system. Ask product if that’s how they want that to behave. If no, figure out what you all want that to do instead.

    Do a bunch of react work to make the page pretty, put the response in the right UI elements with links to the right place. Realize the response you’re sending back makes building the links annoying because you didn’t send some part of it, so you’d need to make another request to the backend for every link. That sucks. Update the backend to include the user’s team-id that is for some stupid reason still in the URL. Comment on code review.

    And now I’m tired of writing.

    Edit: I hit submit before I was done. Finished now. Edit: fix typo



  • Other people have good answers already. Chiefly to ask questions and talk through your reasoning.

    But also I’ve noticed the difficulty of interview questions varies wildly. Some places would give dynamic programming problems I’m terrible at. Others would give trivial "find the largest number in this array of integers, in python. Don’t worry about efficiency. " problems.



  • I think there’s a certain kind of user who doesn’t really learn concepts, but rote actions. They click the start menu and then excel to open excel, but they don’t really understand that the start menu is an application launcher and Excel is an application that can be opened in other ways. It’s very one dimensional.

    Then when something changes, like the application launcher is moved, they freak out. They don’t have a mental model.

    That’s how my mother is, anyway. It’s all magic with no underlying coherent anything. Not sure how to fix that, because it usually comes up when they’re mad or scared, and that’s not a time anyone will learn.