Thursday, March 27, 2025

Proposal: [Appendix] Stop Being So Negative

With 1-4, this is Unpopular and therefore fails -SingularByte

Adminned at 28 Mar 2025 12:26:34 UTC

In the Appendix, in the rule “Numbers and Variables”, add the following bullet point:

* If a variable is defined as an integer, it may not be set to a negative number unless explicitly allowed by the ruleset

 

Addressing an item in the Laundry List regarding the use of integer variables. Full discussion in Zero as a Limit for reference.

Comments

Zack: he/him

28-03-2025 02:33:15 UTC

“in the rules for that variable” feels a bit ill-defined, maybe it could be “unless explicitly allowed by the ruleset”, or simply “unless otherwise stated”?

JonathanDark: he/him

28-03-2025 02:41:03 UTC

Fixed, thanks

Josh: Imperator he/they

28-03-2025 07:49:52 UTC

How is this different from the first bullet point of that rule?

If a set of valid values is not specified in their definition, game variables defined to hold numeric values can hold only non-negative integers. Any action that would set those values below zero is an illegal action unless explicitly otherwise stated in the Ruleset.

Josh: Imperator he/they

28-03-2025 07:55:48 UTC

Oh, this is some mathematician bullshit.

I think this needs to replace/augment the existing bullet point rather than adding to it.  against for that reason. I’ll defer to people who see a problem on whether this actually solves it; my concern is more for the density of the ruleset.

Kevan: he/him

28-03-2025 08:23:43 UTC

I’m not sure this solves it clearly enough, there may still be room for nonsense in what is and isn’t “explicitly allowed by the ruleset”.

If we have rules of “the Forest has an integer number of Trees, starting at 500” and “a player may reduce the number of Trees by 1 to gain 1 Lumber”, and later in the game there are zero trees, does the second of those rules “explicitly allow” me to cut down the zeroth tree and set the forest count to minus one?

I think we want to be regulating the action of setting these variables to zero, but according to the definition of the variable, rather than broader check of whether the ruleset “allows” it.

ais523:

28-03-2025 11:50:38 UTC

@Josh: “integer” is a set of valid values, so the “if a set of valid values is not specified” part of the rule doesn’t trigger.

against I think this wording is too likely to cause bad side effects; as written, it prevents you setting variables to negative values even if a specific negative value is explicitly specified as part of the range (such as the -10 in “You will have a number”), which is probably an unintended outcome. It seems so weird to have to say “X is a variable, which can be in the range -10 to +10, and which can be set to a negative number” in the case where negative numbers are desirable.

Maybe we should have some sort of “warning signs list for proposals” that lists things that are usually a mistake (such as defining a variable as an integer without explicitly specifying whether or not negative values are allowed, or without explicitly allowing zero when allowing negative and positive values), that can act as a quick checklist to avoid common problems in proposal-writing before submitting them.

Raven1207: he/they

28-03-2025 11:54:46 UTC

against

SingularByte: he/him

28-03-2025 12:17:12 UTC

against