Friday, May 12, 2023

Proposal: Closing the Orphanage

Times out 2-0 and is enacted -SingularByte

Adminned at 14 May 2023 08:28:17 UTC

Create a new dynastic rule called Variable Tracking:

All named variables in the dynastic ruleset, if they do not define how they are tracked, are considered publicly tracked unless they meet one or more of the following conditions:
* They have a reasonable means of determining their value from the gamestate. (A value simply having a default is not enough to meet this condition.)
* They are defined and used only within a defined action.
* The value is determined privately, or otherwise relies on private information.

This is my attempt at fixing the whole orphan variable problem that keeps cropping up. I’m intending to make it an appendix rule once we have it balanced and working, but I figure it’s best to make it a dynastic rule first in case it turns out to be scammable.

Comments

SingularByte: he/him

12-05-2023 07:22:23 UTC

For reference, since I’ve been changing the bullet points around a bunch after I posted this, here’s the ones I’ve discarded and why. I can re-add them if they’re still seen as useful, but for the most part they should already be covered under other points:

* They are already tracked within another variable. <- Covered by “reasonable means of determining their value from the gamestate”
* If there is an Urbifex Maximus, and the value of the variable is said to have to be sent to them privately. <- Covered by “determined privately, or otherwise relies on private information”
* They are said to be privately tracked, or untracked. <- A previous draft had all variables be set to public, but now I’m only setting the ones whose tracked status is unknown to public so this is now redundant.

redtara: they/them

12-05-2023 13:09:17 UTC

This still relies on the still undefined concept of “variable”. If the rules say “there is a variable called x” it’s clear enough.

redtara: they/them

12-05-2023 13:28:14 UTC

Sorry, that thought was unfinished. Point is, what about the cases where it’s not expressly defined as a variable? What does and what does not count?

Kevan: he/him

12-05-2023 15:20:48 UTC

“They are defined and used only within a defined action.” has lost me a little. Is it “(defined) and (used only within a defined action)” or “(defined and used only within) a defined action”? The latter makes sense if it’s aimed at something like “when casting this spell, choose X to be a value from 1 to 6, then destroy X Creatures and gain X Life”, where we wouldn’t want X to be considered private or orphaned.

The only odd situation I can think of is that if we have a rule of “Each player has a number of Tangelos, defaulting to 13.” and no actions that could ever modify that number, Tangelos are considered a mysterious unknowable orphan variable (“simply having a default is not enough to meet this condition”) that has to get locked down, rather than something which is obviously 13 for everybody.

[Redtara] The Orphan Variables lock only applies to “dynastic gamestate variable”, so variables seems the right thing to focus on here, whatever they technically are.

SingularByte: he/him

12-05-2023 15:46:32 UTC

[redtara], I’m hoping that variable would be self-evident: that it’s a named box that can hold a value. Simply being an entity like a city or a player wouldn’t be enough, but anything they have that can hold values and have defined names would count.

[Kevan], yeah, your example of the is the kind of thing that I’m meaning that exclusion for. There’s no need to track such a variable since its chosen value will be evident from the gamestate (or at worst is just as orphan as it was before my fix), and we wouldn’t want to give it persistence where if someone picks 4, then someone else has to use 4 since it’s now publicly tracked.

In your Tangelos example, it would meet none of the conditions:
*It has no easy method of determining its value, and the default of 13 doesn’t count.
*It exists outside an action, so it’s evidently not a temporary one-shot variable.
*It is not determined privately since the default is publicly set and there’s no known way to privately modify the value.

Therefore, given that it is not excluded by meeting the conditions, it is public.

Kevan: he/him

12-05-2023 15:55:54 UTC

Ah, I was carelessly misparsing “not enough to meet this condition” as applying to the overall condition of whether it was public, not the “reasonable means of determining their value” sub-step condition. That makes sense, then.

JonathanDark: he/him

13-05-2023 00:02:13 UTC

for