Cookie Thread Act 4: katze thread

To ramble on my action resolution philosophy a bit, roles should be thought of as compositions of abilities and abilities as compositions of effects and constraints. This framework works completely fine for conventional vanilla games, but is much more flexible and theoretically would allow extremely custom games with wild actions to be run by a bot with little host intervention. (The difficulty of creating such a bot is and has always been action resolution.)

So, we think of as a player being a Tracker if they have a Track action. The difference is in a compositional framework is that there are no primitive role + action relationships, only primitive effects. In this case, to create a Tracker, you would create a role named “Tracker”, give it a night action that targets a player, and give it a primitive Observation effect (you learn something about the actions a player used). In this case, the Observation is limited to learning who the observed player visited. Watcher, Voyeur, Follower, and Motion Detector all have actions with the same primitive effects, but just learn different things. Voyeur and Follower would translate to learning each all the effects of observed actions (because trying to think of actions as having a single “kind” really breaks down at some point, and cleanly resolves what a JK action is i.e. protection and blocking).

The important distinction here though is that things like Role Cops now fundamentally have to change because learning a role name is often meaningless with regards to its actions and the effects of those actions. You could create a cop that inspected a player and learned their role name and that’s going to suffice in games with purely conventional “vanilla” roles, but would be insufficient in games where the role name is arbitrary and independent of both its abilities and the effects of those abilities. Finding solutions for situations where this framework doesn’t perfectly conform to convention can be tricky, but I find that doing so usually results in ability text that’s just less ambiguous.

2 Likes

succcurlyeq

checks out
image

1 Like

baseball

Ivy says hi

It’s so incredibly deeply personally entwined with Hideaki Anno’s life experiences that there is truly nothing else like it

If that speaks to you it’s incredible and if it doesn’t then it doesn’t

2 Likes

who up $$\succurlyeq\hat{\cdot}int their \preccurlyeq$$

1 Like

it does help that the art on display across animation and music are also both really really good

for the time yes but also just in general

1 Like

Indeed. I’ve taken the simple and much less scalable route of custom programming every role effect, but if someone was skilled in OOP and data optimisation there’s 100% a way to make a very highly scalable framework
Like, you could program in mafia chat as a neighbourhood with a factional action - which allows the same code to be used for other neighbourhoods etc.
I am not skilled enough to fully utilise OOP to this extent and nor do I have the patience to achieve this :wowee: This project was just something I decided to do:tm: - I agree with your philosophy on action resolution.

3 Likes

(I use the neighbourhood as a factional action example because I would know how to do that, and could’ve, but chose not to because I do not foresee this project extending to neighbourhood actions - maybe in the future. But there’s other ways to optimise the bot like that example that I don’t know existed, haven’t thought of or haven’t done.)

can you tell ivy super auto pets

also good news I think I have successfully resolved roleblocker conflicts. this took me 3 hours. oh dear.

2 Likes

Ivy has been told Super Auto Pets

can you tell ivy “holy shit, we actually have the nofly list. holy fucking bingle. what?! :3”

1 Like

Even things like factional actions are surprisingly not straightforward even when looking at vanilla roles. Like most people would say a factional action is “anyone in the faction can use it”, but then there are lost wolves. So then maybe the next step is attaching it to the neighborhood, but, again, lost wolves come into play because they need to gain access to it which complicates things. You could just write it so that “if lost wolf, lost wolf gets the kill”, but what if there are 2 or more lost wolves? And you have to be careful of how the factional kill is made available to the lost wolf because you probably don’t want to staple it on as a role ability because that can cause weird interactions. You could, like, move them into a new wolf chat neighborhood where they’re the only member, I guess. I mostly handwave the source of the factional kill, and pack wolves have access to it, and it goes to lost wolves via whatever manner the hosts collectively feel like at the time if it’s not straightforward for whatever reason (this has never come up so I’ve never bothered to formalize it).

2 Likes

I would probably have the factional kill be a property of the group that represents the wolf faction as well as the private chat, and factional actions are available to all members of the faction. If a player is Lost, they cannot use or see the target of factional actions unless only living members of the Faction are Lost in which case a Lost player is chose at random to then be able to use it, and they are not in the factional private chat. Rejoining the pack is making them no longer Lost.

Edit: fwiw this is pretty much exactly what you said but in my mind, all neighborhood’s are groups but not all groups are neighborhoods, so the difference is mostly semantic.

3 Likes

Being a lawyer sounds lawful, I’m good

1 Like

Ok, but the superior way is to just eyeball resolution and “screw it, we ball” from there.

Hi lavender. Hi Ivy

aw man if it did i could finally get people to play turbos here

1 Like