Wizardry and Steamworks/GEP Group Identifier Syntax
- 1 Group-Enclave-Player Group Identifier Syntax
- 2 Rules
- 3 Symbols
- 4 Possible Derivations
- 5 Enclaves
- 6 Usage
- 7 Second Life Event Example
- 8 Connections to Other Games
- 9 Command Observations
- 10 GEP Dynamics
Group-Enclave-Player Group Identifier Syntax
Back in the old days, groups were formed such as lofts, clans or guilds and frequently their activities spanned multiple environments. Some of those environments did not have the luxury of graphics and the need to create an universal syntax to distinguish clan members from other people soon gave birth to the notion of clan tags. Commonly, you would see a nickname such as:
[SPIKE] Lady Morgan
Where SPIKE represents a clan tag and Lady Morgan is the nickname of the user belonging to that clan. This can be seen in multiple games that are heavily based on guilds, for example GuildWars. The problem is that the current syntax is not powerful enough to represent the entire structure of a group. Taking GuildWars as an example, alliances may be formed, which represent a collaboration between a guild and another guild. However, the syntax used by a.net is insufficient when it comes down to attributing the interactions between alliances, guilds and players.
The Wizardry and Steamworks group would like to propose a similar, more elaborate syntax hoping that it will be sufficiently powerful to include all the interactions between member, groups and enclaves.
The Wizardry and Steamworks group thereby pushes forward the following syntax:
[ Group-[Enclave-Internal Enclave Member,...]-...-Group Member Mark,... ]-[External Group Mark]-...-External Member Mark,...
- A group is always enclosed in square brackets [ Group ] and uses the space symbol between the square brackets.
- Multiple groups are always separated by a dash sign [ Group ]-[ Some Other Group ].
- An independent user, that does not belong to a group, is never surrounded by square brackets but separated from the rest with a dash [ Group ]-User.
- Groups always precede independent users [ Group ]-[ Some Other Group ]-User.
- A group member is separated from its own group by the dash sign [ Group-Member ].
- Multiple members of the same group are separated by commas [ Group-One Member,Another Member ].
- Multiple independent users are separated by commas [ Group ]-UserOne,UserTwo.
- Additionally, enclaves are sub-groups which are obtained inductively by following the rules above [ Group-[ Enclave ] ].
- Group names, enclave names and users may use personal textual identifiers and markings as long as they do not collide with the markings used for structure.
- The ordering of GEP is, as its name implies, from left to right given by: Groups, Enclaves, Players.
- The user is the central component of this notation and the notation does not exclude a collaboration between two groups where one or more members may be part of several groups.
Example: [ WaS-K,FQ ]-[ Some Other Group-K,WQ,LO ].
- The previous point applies similarly, by induction to enclaves.
The GEP syntax would allow us to create a syntax tree and programmatically determine the contributors to some work.
The choice of what identifiers groups, enclaves and players adopt are environment dependent. The Wizardry and Steamworks syntax uses initials (such as WaS for Wizardry and Steamworks or K for Kira Komarov) as terms. That is not a general rule and, in other environments, the full username may be employed as well. The only rule, so that the variation is a GEP-compliant syntax variation, is that the new terms or symbols should follow the general structural rules.
For example: [WaS-Kira Komarov,Flax Quirina]-William Riker and <WaS-Kira K,Flax Q>-William R are both possible legal variations, abstracting over the default GEP symbol set.
The GEP syntax uses the following symbols:
- Matched angle brackets [ ] to enclose groups.
- Optional spaces between a group name and members and the enclosing brackets when clarity is needed, otherwise omitted for brevity.
- Comma , to enumerate members or independent users.
- Dashes - to separate group from other groups and independent members.
This may not be feasible in all environments (for example, where an environment restricts the symbol set so that using the square brackets is prohibited). Thus, any variations of these symbols are accepted. However, a group will still require to be enclosed by a complementary matching symbol set (eg: < and > or ( and ), etc...).
- [ WaS-K ]
For work created by Kira Komarov, member of the Wizardry and Steamworks group.
- [ WaS-K,FQ ]
- [ WaS-K ]-WR
For work created by Kira Komarov, publishing under the Wizardry and Steamworks group and collaborating with some external avatar named William Riker represented by his personal mark WR.
- [ WaS-K ]-WR,B
For work created by Kira Komarov, publishing under the Wizardry and Steamworks group and collaborating with some external avatar named William Riker represented by his personal mark WR and an external avatar Belana Troy represented by her personal mark B.
- [ WaS ]-WR
For work that represents the sum of all collaborations within the Wizardry and Steamworks group, publishing under the Wizardry and Steamworks group and collaborating with some external avatar named William Riker, represented by his personal mark WR.
- [ WaS ]-WR (final product)
- [ WaS-K ] (scripts)
Individual sub-components, such as scripts, textures, etc... may be published under the Wizardry and Steamworks logo and branded with the stamp of that particular member within the Wizardry and Steamworks group. For example, a final object could be branded as the sum of a collaboration between the Wizardry and Steamworks group and William Riker represented by his personal mark WR. And, separately, the scripts belonging to the group member Kira Komarov represented by her personal mark K could be branded differently.
- [ WaS ]-[ Some Group ]
For a pure collaboration between Wizardry and Steamworks and a group named Some Group, the work may be dual-branded.
- [ WaS-K ]-[ Some Group ]-[ Some Other Group ]
For a collaboration between the Wizardry and Steamworks member Kira Komarov and a group named Some Group and another group named Some Other Group, the work may be tripple-branded.
- [ WaS-K ]-[ Some Group ]
- [ WaS-K ]-[ Some Group-R ]
- [ WaS-K ]-[ Some Group-R,SD ]-WR
- [ WaS-K,F ]-[ Some Group-R,SD ]-WR
- [ WaS ]-[ Some Group ]-WR
- [ WaS-K ]-[ Some Group ]-WR
- [ WaS-K ]-[Some Group ]-[ Some Other Group ]-WR
- [ WaS-K,FL ]-[ Some Group ]-[ Some Other Group ]
All other legal derivations over the syntax are valid.
In some situations, enclaves might be needed to represent a sub-division of a group. The enclave represents a sub-part of a group and follows the same syntax with particular attention to group-to-group interactions.
An enclave within a group may be expressed as:
- [ Group-[ Enclave ] ]
which, intuitively represents a sub-division of that group. The same derivation rules apply, for example:
- [ WaS-[ Wizardry-K ] ]
For Kira Komarov belonging to the group Wizardry and Steamworks and the enclave Wizardry.
- [ WaS-[ Mechanics-FQ ] ]
For Flax Quirina belonging to the group Wizardry and Steamworks and the enclave Mechanics.
- [ WaS-[ Steam-K,FQ ] ]
Structurally, given a well-formed expression which follows the derivation rules, multiple enclaves are also possible, eg:
- [ WaS-[ Wizardry-K ]-[ Mechanics-FQ ]-SomeUser ]
As well as sub-enclaves:
- [ WaS-[ Day-[ Light-FQ ]-K ]-SomeUser ]
- Light is a sub-enclave of Day which in turn is an enclave of Wizardry and Steamworks.
- Flax Quirina is part of the sub-enclave Light which is an enclave of Day.
- Kira Komarov is part of the enclave Day which is an enclave of Wizardry and Steamworks.
- SomeUser is a generic member of Wizardry and Steamworks and not associated with any enclave or sub-enclaves of Wizardry and Steamworks.
Every sub-enclave pushes the order of the enclave further. Taking the example above:
[ WaS-[ Day-[ Light-FQ ]-K ]-SomeUser ]
- Day is a 1st order enclave.
- Light is a 2nd order enclave.
The enclave ordering becomes essential in command structures and its importance will be observed later on when we explain GEP dynamics.
The GEP group Identifier notation may be adopted by players or used internally for generating titles or tracing relationships between groups, enclaves and players.
- [ Awesome Alliance-[ Awesome Guild-[ Officers-KK,FQ ]-TR,LD ]-[ Another awesome Guild-[ Officers-GF,TQ ]-MK,KD,QR ] ]
Example title generation: KK, Officer of Awesome Guild, part of Awesome Alliance.
- [ Awesome Guild-[ Officers-KK,FQ ]-TR,LD ]
Example title generation: KK, Officer of Awesome Guild.
Second Life Event Example
In Second Life, players are represented by avatars, groups are represented by groups while enclaves may be the equivalent of a Second Life role. Since we do not have sub-roles, there are no sub-enclaves.
Suppose K is a bouncer of Some Other Group as well as a dancer of WaS and an event is held between WaS and Some Other Group, the whole event could be signed:
[ WaS-[ Dancers-K ]-[ DJs-FQ ]-LM ]-[ Some Other Group-[ Bouncers-K ]-[ Cooks-CO ]-PR ]-QD,LO,GM,FL
- K is a dancer of WaS, FQ is a DJ of WaS and LM is a generic member of WaS contributing to the event in some way.
- K is also a bouncer of Some Other Group, CO is a cook of Some Other Group and PR is a generic member of Some Other Group contributing to the event in some way.
- QD,LO,GM and FL are the independent avatars that don't belong to any group but contributed to the event (donors, sponsors, etc...).
As you can see, one structured line can give a lot of expression power to a signature, telling you precisely who contributed, in what way, what their affiliation is, as well as the names(markers) of the groups, enclaves and contributors.
Connections to Other Games
For completeness, in GuildWars groups can be either alliances or guilds, depending on whether the guild is part of an alliance. GuildWars guilds have sub-enclaves as well (and probably little ties of friendship between those may be considered a sub-sub-encalve, or 3rd order enclaves):
- If the guild is part of an alliance:
- Groups are alliances.
- Guilds are enclaves.
- Ranks are sub-enclaves of Guilds.
Example: [ Awesome Alliance-[ Awesome Guild-[ Officers-KK,FQ ]-TR,LD ]-[ Another awesome Guild-[ Officers-GF,TQ ]-MK,KD,QR ] ]
- If the guild is not part of an alliance:
- Groups are guilds.
- Ranks are enclaves of Guilds.
Example: [ Awesome Guild-[ Officers-KK,FQ ]-TR,LD ]
The bracketed syntax uses dashes to isolate groups, enclaves and players. The amount of brackets that must be crossed from right to left (respecting whether we cross a sub-order enclave or an equal order enclave), from a member to a group, gives us an estimate of how many levels of influence must be crossed in order to influence the group. In cases where a member is part of multiple order of enclaves, the highest order enclave is the position from which the influence distance is calculated for that group member.
A consequence is that independent players must cross over all the influence of the lower order enclaves in order to reach the top and influence the group. This effectively makes an independent player influentially equidistant to the group as any non-enclave affiliated member of the group.
- Each group may be represented in some ways as a multi-dimensional tree (since each leaf-node may have multiple enclaves as parent-nodes). The root-node represents the group identifier, the leaves branching from the root-node may be either enclaves or players. Leaves branching from enclaves represent players.
- Depending on the height of the tree, the location of the leafs representing enclaves gives us the order of the enclave. An enclave that is a direct descendant of the root-node, is thus a 1st order enclave. If we add command to the structure, each enclave may command lower-order enclaves, thus making the 1st order enclaves the most important enclaves in the internal affairs of the group.
Command-Structure Analysis using GEP
For example, consider the group-enclave-player structure in bracketed notation:
[ WaS-[ Mechanics-[ Gears-K ]-FQ ]-Q ]-PL
- We observe that the player K has to cross over the boundaries of the higher-order enclave Mechanics giving a total of 1 bracket.
- However, the player FQ is part of the enclave Mechanics, which is a 1st order enclave, which gives us no brackets at all, the influence being direct.
- The player Q, has to cross 2 brackets, stepping over both Gears and Mechanics enclaves.
- We also see that, counting brackets, the player PL has to cross 2 brackets as well, stepping over both Gears and Mechanics enclaves.
This sets the independent player PL and the non-enclave affiliated group member Q on the same command level.
This is different from same-order enclaves. Let's go back to guilds, and let's take a look at:
[ Awesome Guild-[ Officers-KK,FQ ]-TR,LD ]-GR
This all works out perfectly, since the officers influence the guild directly, whereas regular members of the guild TR and LD must step over the influence of the Officers enclave. Similarly, independent players GR must step over the Officers enclave in order to influence the guild. This is perfectly ok, since non-enclave affiliated members of a guild are not much more better quoted than independent players, external to the guild. There might be ties between officers and and non-enclave affiliated members of a guild, however, if that is the case, the structure above is too weak and should first be strengthened in order include the Officer Friends enclave representing those ties. Then we can apply the reasoning again. Let's see:
[ Awesome Guild-[ Officers-KK,FQ ]-[ Officer Friends-KK,TR ]-TR,LD ]-GR
Before, TR had to step over the Officers enclave to influence the guild. Now, since TR is in an enclave of the same order as the Officers enclave, TR influences the group directly. Again, when analyzing command and influence for a player, the highest order enclave to which the player belongs represents the starting point from which we start counting towards the top level of the group. In this case, TR is both in the Officer Friends enclave as well as being a non-enclave affiliated player of the group Awesome Guild. However, TR's highest influential rank is the rank given by the highest-order enclave that TR is part of; which, in this case, happens to be the Officer Friends enclave.
This leads to the stunning conclusion that the lobby of the Officers enclave has now been entirely bypassed by TR, now part of an equally-ordered enclave Officer Friends, and may now post actions, via the proxy KK, directly to the group.
Any person may be coerced, corrupted or influenced to act on behalf or to elevate the privileges of another lower-ranking person in a GEP-structure. In an ideal world, where group and enclave members cannot be coerced this would not be possible. However, an ideal world is neither realistic, nor possible. The group dynamics of GEP are characterized by:
- group or enclave establishment: a group or enclave may be formed by any player.
- group or enclave disbandment: a group may be disbanded by the members of the highest-order enclave and an enclave may be disbanded by any higher-order enclave.
- promotion of a person to a higher-order enclave (by moving the person from right to left) may be performed by a member in that higher-order enclave.
- demotion of a person to a lower-order enclave (by moving the person from left to right) may be performed by any member of the higher-order enclaves.
These operations can be induced by coercion, corruption or influence.
The following sub-sections analyze some arbitrarily chosen GEP dynamics that change the structure of a group. At any point, the GEP identifier syntax represents a snapshot of the current state of internal affairs within a group. Transitions from one state to the other are made through coercion, corruption or influence and have the consequence of promotion or demotion of players, group or enclave disbandment, or group or enclave establishment. In some cases, transitions are non-atomic, in the sense that several steps may have to be performed at once (Group Destruction - Step 2). However, one may of course obtain more fine-grain atomicity by breaking those bunched transitions into little steps (unless there is a possibility of true parallel execution of these operations).
In order to make the history of the GEP motion explicit, players are not removed from their former enclave memberships. Since only the highest-order enclave memberships are relevant to influence for players, the fact that players are not removed (in the history log) has no consequence on the GEP motion.
Privilege Escalations in GEP
Let there be a GEP structure of the form:
[ Awesome Guild-[ Officers-KK,FQ ]-[ Officer Friends-KK,TR ]-TR,LD ]-GR
where the independent player GR that wants to escalate the command structure of the group Awesome Guild. One interesting thing to note is that TR is already in the Officer Friends enclave. As a consequence, TR may already exert its power over LD and toss that member our of the guild. Any promotion (characterized by the movement of a player to the left) yields another level of power that may be exerted on the right part of the GEP structure.
- [ Awesome Guild-[ Officers-KK,FQ ]-[ Officer Friends-KK,TR ]-TR,GR,LD ]-GR (player TR invites player GR to the group)
- [ Awesome Guild-[ Officers-KK,FQ ]-[ Officer Friends-[ TR Friends-TR,GR ]-KK,TR ]-TR,GR,LD ]-GR (player GR already knows TR, so player GR befriends player TR, creating a new sub-enclave TR Friends of the Officer Friends enclave)
- [ Awesome Guild-[ Officers-KK,FQ ]-[ Officer Friends-[ TR Friends-TR,GR ]-KK,TR,GR ]-TR,GR,LD ]-GR (player GR befriends TR more and TR invites them to the Officer Friends enclave)
- [ Awesome Guild-[ Officers-KK,FQ,GR ]-[ Officer Friends-[ TR Friends-TR,GR ]-KK,TR,GR ]-TR,GR,LD ]-GR (player GR befriends KK since they are now in the same enclave and KK promotes GR to her higher order Officers enclave)
The part where TR feels betrayed and LD starts to complain could be represented by the TR Friends enclave, in this case consisting only of TR and GR, being disbanded.
Group Disbandment in GEP
In this example, the order of steps is quite important. We will pick up in the state of the GEP structure in the the last step from the previous section and assume that GR disbands the sub-enclave TR Friends to simplify the example:
- [ Awesome Guild-[ Officers-KK,FQ,GR ]-[ Officer Friends-KK,TR,GR ]-TR,GR,LD ]-GR (player GR disbands the TR Friends enclave)
- [ Awesome Guild-[ Officers-GR ]-[ Officer Friends-GR ]-TR,GR,LD,KK,FQ ]-GR (with the new power, GR demotes KK from both the Officers and the Officer Friends enclave, demotes TR out of the Officer Friends enclave and demotes FQ from the Officer enclave - given this GEP structure, these steps must be performed in one pass, otherwise other enclave members might regain power, eg: FQ might try to demote GR out of the Officers enclave before all actions are performed)
- [ Awesome Guild-[ Officers-GR ]-TR,GR,LD,KK,FQ ]-GR (GR now has total control and disbands the Officer Friends enclave)
- [ Awesome Guild-[ Officers-GR ]-GR ]-GR,TR,LD,KK,FQ (GR removes all the members from the group except itself)
- [ Awesome Guild-[ Officers-GR ]-GR ]-GR,TR,LD,KK,FQ (now GR may disband the group - note that disbanding the Officers enclave would not be wise since it is the only protection GR has from the newly ejected members TR, LD, KK and FQ)
- GR,TR,LD,KK,FQ (the group is destroyed)
Group Establishment in GEP
TR, LD, FQ decide to re-compose the group, this time punishing KK and leaving that player unaffiliated with any enclave. They decide to perform social justice and given the previous history, LD appears to be the most innocent member which will become the new leader of the New Awesome Guild. They also decide to set FQ as an officer since, given the transition history, it is the next least-liable player. The sequence of steps is also important for this example. More precisely, LD must first establish control of the New Awesome Guild by establishing the New Officers enclave before promoting members inside the group.
- GR,TR,LD,KK,FQ (the group is destroyed)
- [ New Awesome Guild-LD ]-GR,TR,KK,FQ (LD spawns the New Awesome Guild)
- [ New Awesome Guild-[ New Officers-LD ]-LD ]-GR,TR,KK,FQ (LD establishes the New Officers enclave)
- [ New Awesome Guild-[ New Officers-LD ]-LD,TR,KK,FQ ]-GR (LD promotes TR,KK and FQ into the guild, leaving GR out)
- [ New Awesome Guild-[ New Officers-LD,FQ ]-LD,TR,KK,FQ ]-GR (LD promotes FQ into the New Officers enclave)
Cleaning up, by eliminating redundant enclave-order memberships we obtain:
[ New Awesome Guild-[ New Officers-LD,FQ ]-TR,KK ]-GR
Which, if you look back, is structurally equivalent to the old Awesome Guild group that we had before the Officer Friends enclave was established:
[ Awesome Guild-[ Officers-KK,FQ ]-TR,LD ]-GR
If we were to represent them both as trees and disregard the values of every node, the tree structures will be identical.
Large-Scale GEP Dynamics
Using the GEP syntax and semantics, we are able to simulate: structural interferences between groups as well as internal power play between enclaves, non-affiliated enclave players and independent players. In such cases, victory would be accomplished by eliminating all players of a group or enclave or by subversively removing all players through privilege escalations. In which case, the defeated group or enclave would be disbanded or, in the case of enclaves, recreated provided that there still are members within the group and that the group has not been defeated.
Simulating GEP Dynamics using LSL
Although, LSL would belong to the family of LISP-like languages (yes, Wizardry and Steamworks considers that whenever LISP is mentioned, at least one LISP pun should be immediately entailed - gah!), one problem that must be overcome is that LSL does not support nested lists. That would, at a first glance, make it inconvenient to represent deeply nested enclaves. However, one may track enclave order using some flags. It would not make the simulation of GEP dynamics impossible but rather less elegant than a pure LISP-like language where every step of motion could be represented as some structural changes within a list, containing enclaves as sub-lists and elements as players.
Taking our initial example structure:
[ Awesome Guild-[ Officers-KK,FQ ]-[ Officer Friends-KK,TR ]-TR,LD ]-GR
and converting angle brackets to brackets and dashes to commas, we obtain the ordered list:
((Awesome Guild,(Officers,KK,FQ),(Officer Friends,KK,TR),TR,LD),GR)
and using that list, we can simulate the GEP dynamics programatically.
On a more optimistic note, Second Life allows us to easily represent data using objects (programmatically, powerful graphical structures with fields such as colors, textures, shape, etc...). One thing that could be done would be to create a simulator that, given a transition history would generate the corresponding tree-structure using primitives and display the group-restructurings visually using primitives.