Daniel Lepage on 27 Apr 2003 22:40:01 -0000 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: [spoon-discuss] Why we need OO |
On Sunday, April 27, 2003, at 02:54 PM, Rob Speer wrote:
So, a whole lot of wins or attempted wins have come from the fact that the rules don't cleanly define what things _are_. Is a Charter a bunch of text? Is it an object that can take actions? Is it Wonko? Does it exist at all? If objects were defined by a class system, then there would be no question of a Charter possibly being turned into something it isn't. I was about to propose my OO system. The proposal is kind of large, because it contains a whole ton of classes - to be precise, as many classes as are necessary to bootstrap an OO system that is itself OO. The idea behind the system is that it can coexist with the ruleset, buteventually parts of the ruleset will be replaced such that the ClassTreedefines what things _are_, while the Ruleset defines what they _do_. Now that things are all confused, I'm going to wait until the CFJs go through or we get things sorted out some other way (I dislike SOEs, by the way).
Really? I always thought they were rather interesting. I like the idea of a sort of 'meta-game' that we withdraw to when the game becomes unplayable. Sort of like how proposals in this game could be used to fix fatal flaws in an INH subgame.
But I'll post the current version of the proposal here. If you want to get to the important part, look at Thingy and Class, which define most of the system; Object, which almost everything will derive from; andUnique, a concept that has been sorely missing from the Ruleset. I'm notdefining things like Players within it yet; this is just the foundation for the system, and changes like that can be proposed separately. __Be Objective__ {{ 1. Destroy the Base class, and repeal rule 1447 [[Class System]]. 2. Create a rule: __Object-Orientation__ {{ Everything in the game is an instance of a Class, as defined in the ClassTree. If not otherwise specified, it is an instance of Thingy. Taking X to be the name of any class: if an object is an instance ofclass X, or any subclass of X, it can be referred to as "a X" or "an X".}}
One wonders if there might be a better way to phrase the last sentence - I'd prefer not to encourage saying, "an Gnome" or "a athame".
3. Create the ClassTree, which has these contents: {{ Class: Thingy Properties: * {10} It follows the Rules. * {9} It is an instance of a Class.* {8} It has all of the properties of its Class, and all Superclasses of itsClass, except when those properties contradict, in which case: - If a property contradicts a Rule, the Rule takes precedence.- If one property has a Chutzpah greater than the other, that propertytakes precedence, otherwise:- If both properties come from the same class, the one that is later inthe Properties list takes precedence- If the class that creates one property is a superclass of the classthat creates the other, the subclass takes precedence- Otherwise: Take the highest Superclass of the Class that inherits fromboth classes with contradictory properties - the property from the class which comes earlier in the Superclass's inheriting list takes precedence.
One wonders if "Object" would make more sense here than later...
[[Abstract stuff that's needed for a fully bootstrapped OO system:]] Class: Concept Inherits from: Thingy ClassFeatures:* Every possible instance of Concept, or any subclass of it, already exists,and does not need to be explicitly created.
I'm not sure I like that wording... a Win in my possession, or a rule that gives me absolute power, are both possible Concepts... this suggests that they both exist already.
Class: Text Inherits from: Value [[not String]] Properties: * It is a sequence of words, where whitespace and formatting are not relevant.
Perhaps, should some distinction be made between class Text (just a block of text) and class Document (an official game document such as a rule, charter, or proposal)?
[[ Now, the class that actual game objects can derive from! ]] Class: Object Inherits from: Thingy Properties: * It has a name. * Its existence is tracked by the Administrator. * {3} It is part of the Gamestate.
Gnomes are Objects; their existence is tracked by the Minister of Gnomes and the Minister of the Ordinance Survey, neither of whom is necessarily the Administrator.
Also, perhaps this should be a "game object", not just an 'object', as numbers and whatnot should be called objects too ('cause they are).
Class: Class Inherits from: Object Properties: * It inherits from one or more classes, unless it is named Thingy.* It has a list of Superclasses, which contains each Class that it inheritsfrom, plus all the Superclasses of each of those Classes. * It has a list of ClassFeatures. * It has a list of Properties.
Many of these definitions have no ClassFeatures, and some don't have Properties.
_______________________________________________ spoon-discuss mailing list spoon-discuss@xxxxxxxxx http://lists.ellipsis.cx/mailman/listinfo/spoon-discuss