Daniel Lepage on Tue, 5 Dec 2006 18:06:20 -0700 (MST)

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [s-d] attributes redux

This still seems unnecessarily formal, fairly redundant, and overly  

On Dec 5, 2006, at 7:00 PM, Chuck Adams wrote:

> How's this look for another treatment of Attributes?  The only major
> change is that any object can have attributes, not just Players, which
> was really the main reason.  That and wanting to head off any need for
> formalisms such as types or ranges, because Rules themselves already
> serve for constraints and interpretation on anything and everything.
> (Admin: not a proposal yet, just a discussion)
> {{
> Any Game Object may possess a non-negative, finite number of
> Attributes.  No Attribute may be created, assigned to an object, or
> removed from an object except as expressly permitted by the Rules.

I'd prefer a separate rule saying "The gamestate doesn't change  
except according to the rules". That would cover this, and a lot of  
other ambiguities.

> An Attribute is defined as a Game Object that contain the following  
> values:
> 	* A name.
> 	* A value.

It's a bit confusing that you refer to these both as values. Also,  
why require a value? E.g. "When a player is Hit with a Big Stick, e  
gains the attribute 'Stunned' for one nweek". No value, just a name  
to mark that it's there.

Obviously that wouldn't work as well in a programmatic nomic, where  
you'd probably give each player an "isStunned" attribute that could  
have the value 1 or 0.

Although if you're running a python nomic, you really could do it  
with existence only -
wonko.stunned = 0
del wonko.stunned

> An attribute's name shall consist only of alphanumeric characters.

Why restrict this? I'll vote against a prop that tries to define a '  
' attribute, but I don't see why punctuation etc. can't go in an  
attribute name.

> An attribute's value may potentially represent whatever its definition
> specifies.  The actual interpretation of an Attribute's value is
> specified by the rule that creates the Attribute or allows for its
> creation.

Isn't this paragraph redundant, if the rules are already going to  
tell you how to interpret attributes?

> [[Explanation: an attribute may be defined by anything such as "the
> integer 876", "the string ''foobar''", or "the essence of three
> turnings of Vanatu's aura".  The interpretation of what these values
> "mean" are up to the creator, then ultimately to the judges.
> Hopefully no one would vote for the creation of something as bizarre
> as the third unless they're up for some "interesting" RFJs]].
> No Attribute may be created that lacks either a name or a value.

But I could just as easily proclaim my valueless attribute using a  
term other than "Attribute".

> No Attribute may be given to a Game Object if the Game Object already
> possesses an attribute with an identical name.

This also comes automatically if you don't bother to define  
attributes. If one rule says "A player's score is the number of  
points e has", and another says "A player's score is the name of the  
last player e killed", then we'd use normal precedence methods to  
determine which was is actually the score.

> The Rules may specify constraints on an Attribute's value, such as
> what is considered a valid value, what Game Objects it may be applied
> to.  No change of an Attribute's value is permitted if it would would
> violate these constraints.
> [[ Technically this clause is redundant, because if you write a rule
> constraining the value, it already has a self-enforcing effect. ]]

Yes, it is redundant.

> No element of a Game Object shall be interpreted as an Attribute
> unless specifically referred to as an Attribute by the Rules.
> [[ Thus, player names aren't Attributes because nothing says it's an
> Attribute, nor are Properties attributes.  ]]

What is the point of Attributes, then? That is, if you're thinking of  
making X an Attribute, why not just make X an... aspect, or whatever  
"name" and Properties are? This has the added benefit of not  
reserving all the useful words - I can't say "attribute" or  
"property" without causing confusion.


spoon-discuss mailing list