Instancing - Scope Inheritance

From OpenUru
Revision as of 12:07, 20 February 2009 by Mac Fife (talk | contribs) (Instancing Overhaul: Private, Hood, Public Scope and Instance Inheritance: Tidy indented div)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
This page contains draft content
The content of this page is a "work-in-progress" and is subject to change. Do not place undue reliance on the completeness or accuracy of the material presented here!

Instancing Overhaul: Private, Hood, Public Scope and Instance Inheritance

Cyan is implementing city instancing in the same way as other things with private, hood and public scopes. I happen to like the idea as long as it is possible for us to easily meet people in the scope of our choice. Unfortunately, some of the instance inheritance, or scope, of books within their contexts of Relto, Nexus and hood is are not entirely consistent - to put it kindly. City instancing is even worse with a byzantine organization which is probably in flux until Cyan figures it out completely for themselves. They have deployed the DRC to solicit our help in mapping the instancing, so it appears to be a work in progress.

Rather than respond to poor instancing rules of scope, and the DRC call to help them map it, I'd like to suggest how it should work. It should be simple, having as few rules as possible, and be entirely consistent so we can understand it without complex maps for the underlying structure of the game itself. The complexity should be in the puzzles, story and visual architecture - not in the interface or infrastructure. Instance complexity gets very much in the way of immersion and playing the game. I will politely point out that unnecessary complexity to an interface is poor design. DRC mapping of this complexity is a poor solution.

This is how we best understand things as a root point of origin or scope:

Relto --> Hood, Nexus, and private instances.
Hood --> Hood instances.
Nexus --> Public and hood instances.

Relto is the private n-way root which provides the two special branches for hood (hood book) and public (Nexus) scopes plus any number of additional private branches (Cleft, Gahreesen, Teledahn, Kadish, and Eders so far).

I implore Cyan to just stick to the rules of inheritance within these scopes to make things entirely predictable and intuitive without scope conflict:

Private: Relto --> Private Ages --> Stones/Books --> Private Ages
Hood: Hood --> Hood Ages --> Stones/Books --> Hood Ages
Public: Nexus --> Public/Hood Ages --> Stones/Books --> Public/Hood Ages

Book/stone sharing is only necessary with the Relto book and, possibly, hood books/stones. No repetitive book sharing should be required after the first sharing until you leave the scope via your Relto or a Nexus book.

Examples and discussion:

Touching the Baron's office link book in Teledahn should do one of these things:

Relto branch: Link to the age owner's private instance of the Baron's office and Ae'gura generally.
Hood branch: Link to the hood's private instance of the Baron's office and Ae'gura generally.
Nexus branch: Link to the public instance of the Baron's office and Ae'gura generally.

This would be no different for a guest within another's (private or hood) age. No book sharing should be required.

Touching a linking book in a hood should do these things:

Members: Continue within the hood scope.
Non-members: 1) Nothing or 2) continue within your private scope.
Non-members of a hood require a share from a member to continue within that hood's scope.

I prefer that linking books be inactive for non-members unless shared by a member. It would break the simple rules of scope and membership to either 1) allow a non-member to use a hood's book, or 2) send the non-member to his private instance. For this reason, it might be more consistent to require Relto books be actively shared. It would eliminate the need for locks, but I really like the convenience of the locks and being able to send someone to my Relto to use a book without having to be there myself. But allowing someone other than the owner to directly use a book on Relto's bookshelf would be inconsistent with the rules I've stated. After all, there is precedent because we cannot turn pages in others' Relto books. But I am willing to bend the rules slightly on Relto for this major convenience.

Private hoods should not be any different, regarding instancing and scope, than a public hood. Private only means it's not listed in the Nexus. A private hood still gets its own scope separate and distinct from its owner's Relto's private scope.

With the Kadish Gallery doors on Ae'gura opened, we now have a way to enter a hood or private instance of Ae'gura proper.

Relto's "city book" is flawed because the results of all branches (e.g. touch a stone) are saved into a single place (the city book), making it impossible to have a persistent way to reach any specific scope or instance you have visited. Instead, the links are overwritten or irretrievable. It's like saving the results of multiple equations into a single variable. It should be that any page collected by visiting areas like the balconies should add a page to the respective books for Relto, Hood, and Nexus, depending on the scope in which you collected that page.

Touching the Bahro stone in Eder Gira for Takotah Rooftop should do one of these things: Relto branch: Add rooftop page to the Relto book. Hood branch: Add rooftop page to Relto's hood book. Nexus branch: Add rooftop page to Relto's Nexus book.

Does this mean we have to visit Eder Gira three times to get our rooftop link for all three scopes? Yes. Can Cyan make an exception to make a single visit to any scope add this page to all three books? Yes! In either case, we now have a way to get ourselves to any instance and they are persistent links which will not be overwritten by the latest link. If the scope has not been instanciated yet, Cyan can either check for that and add the page when it is, or make it part of the game to prefer the efficiency of page collection after visiting your three possible scopes of any age.

Notice your Relto book now has pages to allow bypassing a useless trip into Relto and a link out if you are on a marker hunt. You can directly visit any place in your private scope for which you already touched a Bahro stone without going through Relto first. As it happens, skipping the repetitive trips to Relto just to link out again also improves the load on Cyan's servers.

I'm not entirely certain as of this writing, but this consistent foundation for scopes of instance inheritance should eliminate all need for book and stone sharing except for the Relto book and, possibly, books and stones within a hood. I haven't looked at it deeply enough to figure out a way to get rid of book sharing in a hood and allow easy access to invitations into the hood scope. Touching any book or stone within a scope keeps you within that scope, whether it's private, hood, or public. The Nexus can take us to any public hood. From there we can enter that hood's scope merely by touching or sharing one of it's linking books. Private hoods and ages can be reached by invitation or sharing of the Relto book. Sharing of any linking page in your Relto book could make a visit by you and your guest to Relto unnecessary. We don't need invitations to hoods because they are listed in the Nexus. It seems reasonable that all invitations could just be to the private scopes. Or the KI and Nexus listings, like the three Relto books, could be expanded to allow private, hood, and public invitations, but that could be more work than Cyan is willing to consider.

There might be some aspects of sharing and invitations I've missed.

A slight, and worthy, alternative from sambase for Ae'gura instances:

Relto scope: brown book on relto bookshelf
Hood scope:  New brown book in Nexus room in a hood (or anywhere in a hood)
Nexus scope: new registerable pedestals in all "brown book" areas to enable
             linking to the nexus instance by using the nexus (just like
             linking to the library or palace after registering that link
             through the pedestal)

To summarize:

1. The (non-sharable) Nexus book, regardless of what age you find it in, takes you to the Nexus which provides links to the public city (Ae'gura) instance, listed hood (Hood) instances, and your private ages. You can also select your own hood instance, listed or not, at the top of the panel.

2. The hood book takes you to your hood or hood-instanced ages for the hood of which you are a member. Hood-instanced pages from Ae'gura are also contained within. Any linking from books in a hood, except Nexus books, continue within that hood's scope.

3. The Relto book takes you to your Relto or private-instanced ages. Private-instanced pages from Ae'gura are also contained within. Any linking, except Nexus books, continues within the private scope.

4. The city book is vestigial and for sentimental value only. I think it would be okay to eliminate it, but if it has to be kept, make it represent your private instances. These are now redundant pages found in your Relto book.


(DRC)  Instancing Overhaul: Scope Inheritance[1]
(MOUL) Instancing Overhaul: Private, Hood, Public Scope Inheritance[2]