Page 2 of 2

Re: Request: Go back ahnonay to a solo player age

PostPosted: Tue Mar 20, 2018 1:16 pm
by diafero
If I recall correctly, the books in Ahnonay (linking between the cathedral and the main age) are not set up to actually have functional sharing on DI. Or maybe I misremember... the decision to make Ahnonay global was made long before age sharing was supported at all on DI. Originally, the game would just crash if you tried it. I think it took someone to actually patch the binary to fix that crash. (Or was that a different crash? There was definitely a crash where if one avatar was doing an emote, in particular /sit, then everyone else that was leaving the age would crash. We had hilarious work-arounds for that on the server and client side... until someone patched the binary to fix the crash.)

Initially Uru was built around the idea that all Ages are self-contained. In other words, a puzzle in an Age can NEVER interact with the puzzle from another Age (save for Journey clothes - these are your own, no matter which version of the Age you link to). But in Ahnonay's case, the game had to keep track of which sphere is currently active. Ahnonay's Cathedral uses this information to link you to the correct "sub-Age", and those sub Ages modify this property anytime you link back to the Cathedral.

There is another exception: Relto pages are also not self-contained! When you collect a Relto page, the game actually remotely accesses the game state of your Relto and enables the page. (This is very different from the mechanism used for Journey cloths.) DI has some hacks to make this seem to work; the Alcugs architecture makes this really hard to support properly. IIRC Ahnonay uses pretty much the same mechanism. (Under the hood, this is remote access to an age's SDL.)

Re: Request: Go back ahnonay to a solo player age

PostPosted: Tue Mar 27, 2018 10:13 pm
by Ehren
diafero wrote:There is another exception: Relto pages are also not self-contained! When you collect a Relto page, the game actually remotely accesses the game state of your Relto and enables the page. (This is very different from the mechanism used for Journey cloths.) DI has some hacks to make this seem to work; the Alcugs architecture makes this really hard to support properly. IIRC Ahnonay uses pretty much the same mechanism. (Under the hood, this is remote access to an age's SDL.)


It's actually kind of funny how it ends up working out with the Relto pages, if I recall correctly, the reason why you can't collect the Relto pages on the initial run through the Cleft is NOT because someone went out of their way to prevent pre-Relto book Yeesha page collecting for CC, but rather because it literally can't find the SDL for your Relto since it doesn't exist yet.


And yes, Ahnonay stores the active sphere number, and the cloth number (plus its offset to the active sphere) all in the Ahnonay SDL, which is actually Ahnonay Cathedral in CC. Strangely, MOUL also has these variables in its AhnonayCathedral SDL, but they don't actually do anything there.

So if we all wanted to have even just our own cloth links separately remembered, everyone would need their own instance of the Cathedral (but that would also make different spheres active for different people) or someone would have to create an alternate method for cloth memory which I'm guessing could be done with a method like the memory of the journey cloths and which calibration markers you collected. They're called chronicles, right?

Re: Request: Go back ahnonay to a solo player age

PostPosted: Wed Mar 28, 2018 3:09 am
by Sirius
Ehren wrote:It's actually kind of funny how it ends up working out with the Relto pages, if I recall correctly, the reason why you can't collect the Relto pages on the initial run through the Cleft is NOT because someone went out of their way to prevent pre-Relto book Yeesha page collecting for CC, but rather because it literally can't find the SDL for your Relto since it doesn't exist yet.

Oh, but wait, it gets even better ! Setting the SDL from a remote Age doesn't actually do what you expect it to !
Because each Age has TWO SDL ! *dramatic sound effect*
No kidding. I don't remember the specifics, but the "normal" way of accessing the SDL (PtGetAgeSDL()) isn't compatible with the "remote" way (getmyages().getthing().getsomeotherthing().getAgeSDL()). Which means you always have to go through the lengthy version even when you should just be able to do PtGetAgeSDL().

Oh, and browsing through my old files, I notice at some point I had issues because SDL variables that contain multiple values (array) don't send notifications to Python scripts when they are changed, rendering them useless. Brilliant.

Ehren wrote:or someone would have to create an alternate method for cloth memory which I'm guessing could be done with a method like the memory of the journey cloths and which calibration markers you collected. They're called chronicles, right?

Yup, regular ABM Ages use chronicles to store journey cloth progress. However it's instance independant, which is a tad annoying since it means you can't reset them, and means some people can open journey doors even though the Age owner hasn't touched any cloth (I think, might be worth checking).


... Yeah I'm really not fond of the way instancing and progress works in Uru.

Re: Request: Go back ahnonay to a solo player age

PostPosted: Wed Mar 28, 2018 7:59 pm
by Tsar Hoikas
And if you start playing with DirtSand, you realize that DS is evil and merges PtGetAgeSDL() (the AgeSDLHook) and the vault SDL node. :twisted: :twisted: :twisted:

Re: Request: Go back ahnonay to a solo player age

PostPosted: Wed Apr 18, 2018 11:02 am
by diafero
AFAIK the two SDLs were also merged in MOUL and Until Uru. This is needed e.g. to use VaultManager to enable and disable objects in ages. It's just that Alcugs never implemented this.

So, it's less DS being evil and more Alcugs being incomplete and one big giant mess of a hack. ;)

Re: Request: Go back ahnonay to a solo player age

PostPosted: Sat Apr 28, 2018 7:11 pm
by Tsar Hoikas
The two are merged at runtime on Cyanic server software. DS only maintains one copy of it though =P