Note to Age Writers: Linking Responder issues

If you feel like you're up to the challenge of building your own Ages in Blender or 3ds Max, this is the place for you!

Note to Age Writers: Linking Responder issues

Postby diafero » Mon Feb 07, 2011 10:19 am

For the people not caring that much about technical details: Please jump to the last paragraph.

3ds Max offers many new possibilities that PyPRP did not have, and it's great to see ages using them. However, at least one of them is much more complicated and troublesome than many age writers realize: Linking responders. You need to set up the linking rules they are using, within 3ds Max, and doing this right requires knowledge about how linking works internally, and how it is related to the vault. Some of that is documented, feel free to ask questions if you want to know more details.
If you are using the kOwnedBook linking rule, this should cause a new instance to be created for each player - and no fan age offers any way of sharing that link currently. However (and to make things worse), the only multiplayer environment fan ages are played in currently (Alcugs) does not implement all linking rules the same way as UU did and MOUL does: It has different rules to decide about instancing, so this issue is partially hidden, and all players getting to the age arrive in the same instance, no matter what the linking rule was. However, their vault still gets a link to that age, needlessly filling up the database. If the link is a kBasicLink, you would get a blank new instance each time, with no way of sharing - however, on Alcugs this is actually the best linking rule to use, as it leaves no traces in the vault. It is the one that Relto Shelf and Nexus use to link to fan ages. Offline, there's just one player and every linking rule is treated as kOriginalBook, so age authors don't notice.
And even worse, some ages use this to link to Cyan ages: It is really important that all links to an age use the same settings, and that a spawn point is always called the same way (we have had weird issues by links not considering this, like being unable to collect a Nexus link if you didn't already have it while linking).

You may wonder where the different between a linking responder and a link done in Python (which is what you had to use with PyPRP) is in that regard - there is none so far. However, since Python links are completely controlled by Python, I wrote some scripts that automatically redirect the linking code served by the Deep Island dataserver to go through parts of my Offline KI, that in turn uses the linking information I collect at AvailableLinks.inf (which literally was a work of months), so I am confident every link in any fan age going trough Python will either succeed and cause no issues, or show an error message and do nothing else. Other Shard admins might take similar measures. However, that is not possible for linking responders: I can edit the linking details manually, but I can not just say "I want to city, LinkInPointFerry, let the Python figure out the rest for me" (and Python uses information from the vault that's not available when the actual patching is done).

So, if you want to link to another fan age, please read Andy's tutorial about how to do linking through Python, and ask for help if needed. I would appreciate a lot if you used that one instead of the responders - and you get a proper book GUI as bonus ;-) . It will also save your Shard admins some headaches :D . A currently usable working-around is to set the linking rule to kBasicLink, which will have no side-effects in Alcugs servers. It will not work as expected on UU Shards though, or when we get a MOUL Shard running (however, the latter will be open-source, so I think we should do something about the linking there anyway).
If you want to link a Cyan age, best thing is not do do it. If you *really* want to, make sure the whole linking information is correct to the last character (I mean it!), and use Python to make it easily fixable. Even then, people playing offline will not get the fixes (unless you decide to require the Offline KI for playing, and change the script to make the link accordingly - ask me for how to do that). Really, it's not a good idea - even if the linking information is correct, it can break gameplay, like for example the link from Camp Bravo to the Cleft which allows players to get there while they are still playing the first journey, which ought to be impossible (and Cyan's scripting partially depends on that). Cyan themselves screwed those responders up in POTS as they stopped caring about multiplayer, requiring me to add tons of work-arounds. Nexus is kind of special here since most of the linking rule is ignored, so it can safely be linked to with any linking rule.
Linking is much more complicated than those innocent responder settings may make you believe, as Cyan managed to screw that whole system up totally. It's a mess of a design, but we have to deal with it, and the consequences of mistakes go beyond the scope of the usual programming errors you can make in an age: It will leave some permanent traces in the vault, not fixable by resetting a single age or similar. This does not mean you should stop to add links to other ages, but you should be careful, and know what you do.

(EDITed to fix a broken link)

EDIT (2015-07): By now, there's also a beautiful tutorial by Sirius for how to create a linking book that does safe linking.
Last edited by diafero on Wed Jul 08, 2015 7:47 am, edited 3 times in total.
I prefer e-mails to "diafero arcor de" (after adding the at and the dot) over PMs.

"Many people's horizon is a circle with a radius of zero. They call it their point of view."

Deep Island Shard | Offline KI
diafero
Deep Island Admin
 
Posts: 2814
Joined: Mon May 05, 2008 5:50 am
Location: Germany

Re: Note to Age Writers: Linking Responder issues

Postby D'Lanor » Tue Feb 08, 2011 5:52 am

diafero wrote:If you are using the kOwnedBook linking rule, this should cause a new instance to be created for each player - and no fan age offers any way of sharing that link currently.

You meant kOriginalBook here. kOwnedBook only works if the personal instance has already been created during a previous link by kOriginalBook. So kOwnedBook would be safe to use online but also completely useless since it does nothing without an existing personal instance.
"It is in self-limitation that a master first shows himself." - Goethe
User avatar
D'Lanor
 
Posts: 1980
Joined: Sat Sep 29, 2007 4:24 am

Re: Note to Age Writers: Linking Responder issues

Postby diafero » Tue Feb 08, 2011 11:32 am

That's correct, sorry.
However, doesn't kOwnedBook also add new spawn points? If yes, it can cause issues as well.
I prefer e-mails to "diafero arcor de" (after adding the at and the dot) over PMs.

"Many people's horizon is a circle with a radius of zero. They call it their point of view."

Deep Island Shard | Offline KI
diafero
Deep Island Admin
 
Posts: 2814
Joined: Mon May 05, 2008 5:50 am
Location: Germany

Re: Note to Age Writers: Linking Responder issues

Postby Agenotfound » Tue Feb 08, 2011 11:53 am

diafero wrote:That's correct, sorry.
However, doesn't kOwnedBook also add new spawn points? If yes, it can cause issues as well.


kIssues ?
Image
User avatar
Agenotfound
 
Posts: 189
Joined: Mon Jun 29, 2009 7:15 am

Re: Note to Age Writers: Linking Responder issues

Postby Jojon » Tue Feb 08, 2011 1:36 pm

Looks complicated, all this stuff.
..or probably not all that bad, once you understand it...

Does you preprocessor log whenever it has had to correct much in a link and raise a warning flag, so that you can notify the author?
Jojon
 
Posts: 1116
Joined: Sun Sep 30, 2007 5:49 am

Re: Note to Age Writers: Linking Responder issues

Postby D'Lanor » Tue Feb 08, 2011 1:40 pm

diafero wrote:However, doesn't kOwnedBook also add new spawn points? If yes, it can cause issues as well.

No, it doesn't.
"It is in self-limitation that a master first shows himself." - Goethe
User avatar
D'Lanor
 
Posts: 1980
Joined: Sat Sep 29, 2007 4:24 am

Re: Note to Age Writers: Linking Responder issues

Postby diafero » Wed Feb 09, 2011 11:29 am

Looks complicated, all this stuff.
..or probably not all that bad, once you understand it...
It IS complicated, and it is bad even if you understood it ;-) . As I said, it's a mess. We have to try to deal with it, somehow. The most important point is to raise the awareness among age builders, especially the new ones that did not follow the development from PyPRP, back when animations were something amazingly new... :D

Does you preprocessor log whenever it has had to correct much in a link and raise a warning flag, so that you can notify the author?
The Python patcher juts looks for linking code and redirects it, so it does not know whether the original code was okay. I can't notify the author about every link they do ;-) and I don't want to force anyone to make their age depend on the Offline KI (which is what the patcher does, which is not a problem on the Shard as everyone has the KI there).
However, for prp files, I started notifying the authors when I added that check to my scripts (it checks for linking responders using a rule other than kBasicLink). There were some ages already installed that raise errors (currently I only remember Huiiiiiii, but there was another age as well), that I just fixed myself to wait for the next update.
I prefer e-mails to "diafero arcor de" (after adding the at and the dot) over PMs.

"Many people's horizon is a circle with a radius of zero. They call it their point of view."

Deep Island Shard | Offline KI
diafero
Deep Island Admin
 
Posts: 2814
Joined: Mon May 05, 2008 5:50 am
Location: Germany

Re: Note to Age Writers: Linking Responder issues

Postby Karkadann » Wed Feb 09, 2011 12:47 pm

Concerning linking, I wanted to know if it is possible to link from one place in an age to another place in the same age?
Can you link by walking threw an arch instead of using a linking book?
If linking to a sub world, where you walking on the wall (like in Relativity) will it correct the Camera angle?
and last but not least, is it easy enough for someone like me to figure out?
"It is the responsibility of every student to try and surpass there teacher"
Sorry teach a Bahro ate my homework.
Hanging onto anger is like eating rat poison and expecting the rat to die!
User avatar
Karkadann
 
Posts: 1220
Joined: Sun Aug 02, 2009 10:04 am
Location: Class Clown University

Re: Note to Age Writers: Linking Responder issues

Postby diafero » Wed Feb 09, 2011 1:05 pm

Concerning linking, I wanted to know if it is possible to link from one place in an age to another place in the same age?
Yes, the D'ni linking rules are independent from the technical ones. So, if you want all our IC guys to cry out aloud, you can do so easily ;-)

Can you link by walking threw an arch instead of using a linking book?
You can put some kind of volume into the arch, that detects if the avatar enters it, and then connect that to a python script (or a linking responder... but see above, Python would be more maintainable) to do the link. It's what Dustin did for the link from the Cleft to Myst V's Descent. Don't ask me for details though, I don't know Blender or 3ds Max.

If linking to a sub world, where you walking on the wall (like in Relativity) will it correct the Camera angle?
Good question, really. I don't know.

But in the end, these questions are already one layer more up in the stack - it's not about with which settings and means (responder or Python) the link is actually triggered, but about how the player triggers that mechanism. You can get all of it both with incorrect linking settings and hard-to-fix responders, and with correct settings, and with linking through Python.
I hope that was understandable...
I prefer e-mails to "diafero arcor de" (after adding the at and the dot) over PMs.

"Many people's horizon is a circle with a radius of zero. They call it their point of view."

Deep Island Shard | Offline KI
diafero
Deep Island Admin
 
Posts: 2814
Joined: Mon May 05, 2008 5:50 am
Location: Germany

Re: Note to Age Writers: Linking Responder issues

Postby diafero » Thu Feb 17, 2011 6:34 am

The most recent update of Huiii again needed manual fixing - unfortunately however, I don't know the age author. UAM wiki says it's "Christopher", but we have two Christopher's in this forum, and he could have a different nick as well.
I prefer e-mails to "diafero arcor de" (after adding the at and the dot) over PMs.

"Many people's horizon is a circle with a radius of zero. They call it their point of view."

Deep Island Shard | Offline KI
diafero
Deep Island Admin
 
Posts: 2814
Joined: Mon May 05, 2008 5:50 am
Location: Germany


Return to Building

Who is online

Users browsing this forum: No registered users and 2 guests

cron