23456th poster gets a cookie (cookie thread (Part 7)) (Part 11)

Who did theyt urn into ARCEUID

1 Like

Whomst

the pov character is a mod of a character called yamoto

1 Like

My own system is a framework that I use to figure out how to write role cards in all sorts of games (including weird bastard stuff!) and that I also think about it in terms of “can I envision this working in a program”.

Trying to have action resolution be deterministic and understandable is a fucking nightmare. Like doctor protection being 1 kill versus all kills is a problem I’ve worked on recently not from a “how would I implement this?” perspective, but in a “how should this work from a game design perspective?” I mostly design mashes, and mashes can have like double digit kills in a single night. If you have a doctor that stops 1 kill, and let’s say 10 kills all stack onto the target they’re protecting, how do you decide which kill is the one protected against?

Action ordering for resolution is a very, very complex problem because each action needs to have some sort of dependency function that can take another action as input and outputs if it depends on that action or not (an action depends on another action if applying the other would change the text or the existence of the first ability, what it applies to, or what it does to any of the things it applies to). If an action depends on another action, it needs to resolve after its dependency, and you can use this to build graphs and then come up with a total ordering of actions by ordering each dependency graph and then essentially resolving each graph in a random order (each distinct graph is independent of other graphs so they can resolve randomly relative to each other).

One solution is for a doctor that only stops a single kill is that it protects against a random kill. This makes the unpredictability explicit (it’s literally random), but would necessarily be a dependency of all kills that overlap targets and this can have some strange side effects that we don’t need to get into. So it’s fine, but not really ideal.

The somewhat more natural implementation (and what it sounds like Zugbot would do) is stop the first kill. This similarly would have a dependency between all kills with an overlapping target because the action can’t know the order of the kills before they’re ordered (dependencies have to be determined before actions can be ordered). I feel like disguises a bit of the unpredictability because most players would not (and should not need to) understand the intricacies of action ordering, and can get pretty messy. Let’s say we have just 2 kills targeting the player the doctor is protecting. One these kills has a side effect of giving the actor a charge whenever they kill a player. When the dependency function (which would only look at a single action at a time) compares the kill that gains the charge to the vanilla kill, it would evaluate them as independent because they don’t affect each other at all, and they both depend on the doctor because the doctor would stop one of them. If those 3 actions are the entire dependency graph, all we know is that the doctor action must resolve first, and when the resolver then sees it has 2 actions left to order and they’re independent to each other, it would order them randomly. So now we’re in a situation where none of the actions involved have explicit randomness built in, but the doctor that blocks a random kill and the doctor that blocks the first kill are mechanically identical (and also the system is no longer deterministic, so I use the first one because explicit randomness leading to non-determinism is acceptable in my view).

(And I don’t know how I’d write a dependency function to detect something like that even if it considered more actions beyond like running simulations with every possible ordering in a dependency graph, and then comparing the differences in the end states, but I’m not sure how looks as an algorithm and I have minor concerns about the computational complexity.)

cop10 is so hard to figure out the action res of yeah

1 Like

Tbh in this particular situation I tend to avoid writing roles explicitly dependent on action ordering rather than night results e.g. “if your kill targets a player who dies that night you get a charge”

2 Likes

It’s somewhat weird in communication and feels a bit inelegant but anything that introduces that weird extra dimension of action ordering ends up introducing these extra dimensions in a way I disprefer. Like I wouldn’t want the person to not gain a charge if they crosskilled without a doctor either

2 Likes

Yeah I do actually write that ability to now gain a charge if their target dies for precisely this reason, but when I’m given a role to template that steals a role ability from the player it kills, my hands are tied.

Edit: Actually nevermind it works for that too although it feels weird.

2 Likes

FAM6 had a bunch of weird edge case wordings I used exclusively so I never had to think about action resolution in detail

2 Likes

And still as soon as Chloe looked at a role they’d find like three more

2 Likes

Put in the Basement
Night Action
Kill target player. Whenever you kill a player this way, you gain a copy of all role passives their role reveals with, and you gain access to any non-factional private chats they had access to. ( You will not gain role passives from roles which are Sealed. )

Right I think I used this wording, but told the folks resolving it to give them the abilities if their target died and their ability resolved even if it happened to be protected against. I dislike the clunkiness of “Whenever a player you visit this way dies during that Night,” even though that’s probably the more accurate wording.

2 Likes

thinking about cannibalism

1 Like

open cookie thread for the first time in forever

immediately see cannibalism and nbow being a nbowie with role pm wording

so nothing new with yall either huh

6 Likes

Thats a lot of cherries

pal world

3 Likes

good
More people should do this

1 Like

i remember the palworld debates of 202something

2 Likes

game is good :)

1 Like

also i cannot believe they did this like lmfaoooooo

1 Like

Oh god i remember that lmaoo