Portal Mechanism For Ahra Pahts

A community Age for Uru.

Moderator: Aloys

Re: Portal Mechanism For Ahra Pahts

Postby Grogyan » Sat Apr 05, 2008 1:53 am

My computer has more than enough grunt, and can get good frame rates.
Needless to say that my investment of a 8800 GTS 512MB G92 from nVidia is very good.
Better to have loved and lost than never to have loved at all
User avatar
Grogyan
 
Posts: 1203
Joined: Thu Oct 11, 2007 1:27 am

Re: Portal Mechanism For Ahra Pahts

Postby D'Lanor » Sat Apr 05, 2008 3:30 am

Paradox wrote:Might I also suggest never paging anything out?

I agree with that. While paging in and out has many useful features which I am exploring in my own small age, it would not work for a large community age. Anything associated with a prp file that is paged out goes down the drain with it. That includes Python scripts which may still have running timers.

And another downside is that lights do not affect objects in other pages. So if you split up the big structure every page needs its own lighting. But perhaps that has already been taken care of in Pahts.

btw, though Pahts takes a long time to load it is less of a resource hog on my older pc than most of the recent explorer made ages which are much smaller.
"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: Portal Mechanism For Ahra Pahts

Postby LaReh » Sat Apr 05, 2008 7:09 am

Gee, I guess I'm the only one who doesn't mind the load time for Ahra Pahts. I don't think it's that bad and love being able to run the entire city without any limits. Are these proposed new mechanisms in preparation for a potential large avatar population one day to help with lag? It just seems (to me) like an awful lot of work when, in my case, I don't find the load time to be a big problem.
KI 8907958
User avatar
LaReh
 
Posts: 23
Joined: Sun Sep 30, 2007 5:26 pm

Re: Portal Mechanism For Ahra Pahts

Postby Aloys » Sat Apr 05, 2008 7:17 am

Again the performance is decent on the publicly released version, but on the new version that I'm working on things are *very* different. :)

D'lanor wrote:Anything associated with a prp file that is paged out goes down the drain with it. That includes Python scripts which may still have running timers
Oh, interesting, I hadn't thought about that. hm that might be a problem for some shells..

D'lanor wrote:And another downside is that lights do not affect objects in other pages. So if you split up the big structure every page needs its own lighting. But perhaps that has already been taken care of in Pahts.

Yes; I feared something like that so a couple 'global' things (like the sun light, the sky dome etc) are all grouped on a page that will always remain in memory.
User avatar
Aloys
 
Posts: 1968
Joined: Sun Oct 21, 2007 7:57 pm
Location: France (GMT +1)

Re: Portal Mechanism For Ahra Pahts

Postby Owehn » Sat Apr 05, 2008 7:19 am

Since we now have visregions, would it be possible for shell writers to make low-poly versions of their shells, to be seen from a distance? Would that even help at all?
User avatar
Owehn
 
Posts: 132
Joined: Sat Sep 29, 2007 8:05 am

Re: Portal Mechanism For Ahra Pahts

Postby Robert The Rebuilder » Sat Apr 05, 2008 9:25 am

The visregions/relevance regions would indeed help with the frame rate. But they'll require having everything already loaded in memory, which defeats the two other purposes for using the paging scheme: preserving memory and reducing initial load time. I would still love to see a relevance region example, Paradox, so that it can be applied in cases like Owehn described. We would like to use that on the Hub, for example.

D'Lanor: it is true that shells with plPythonFileMods will be paged out. If they are in the middle of a timed event when PtPageOutNode() is called, the plPythonFileMod will still persist in memory until the timed event completes; then it will disappear. If it schedules another timed event within the OnTimer() callback, that event will be lost when the current callback goes out of scope. In general, the code in the OnTimer() method should always check if other objects still exist before dereferencing them.

And even without this paging mechanism, shells should not be triggering timed events unless a user activates them somehow (e.g. clicking on something, entering a region, etc). Image the CPU load if every shell had a plPythonFileMod firing off timed events...
Can we rebuild it? Yes, we can - here's how.

MOULagain KI# 1299

Myst Movie coming soon - spread the word!
User avatar
Robert The Rebuilder
 
Posts: 1383
Joined: Sat Sep 29, 2007 7:24 am
Location: Virginia, US

Re: Portal Mechanism For Ahra Pahts

Postby D'Lanor » Sat Apr 05, 2008 9:42 am

Robert The Rebuilder wrote:D'Lanor: it is true that shells with plPythonFileMods will be paged out. If they are in the middle of a timed event when PtPageOutNode() is called, the plPythonFileMod will still persist in memory until the timed event completes; then it will disappear. If it schedules another timed event within the OnTimer() callback, that event will be lost when the current callback goes out of scope. In general, the code in the OnTimer() method should always check if other objects still exist before dereferencing them.

And even without this paging mechanism, shells should not be triggering timed events unless a user activates them somehow (e.g. clicking on something, entering a region, etc). Image the CPU load if every shell had a plPythonFileMod firing off timed events...

I am a big fan of Python timers (as is Cyan apparently). The load of a Python timer on the CPU is practically nothing. But don't worry, I don't have an Ahra Pahts shell. ;)

However, if I had multiple Pahts shells I would like to make a puzzle which required actions in both shells. And in that case I would not be happy to have one of them paged out.
"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: Portal Mechanism For Ahra Pahts

Postby Paradox » Sun Apr 06, 2008 1:58 pm

plRelevanceRegions are now implemented in the SVN HEAD of PyPRP.

Basically, create a new SoftVolume region, change the alctype to "relevanceregion".

The .csv file will need to be created by hand and encrypted.
Paradox
 
Posts: 1290
Joined: Fri Sep 28, 2007 6:48 pm
Location: Canada

Re: Portal Mechanism For Ahra Pahts

Postby Robert The Rebuilder » Mon Apr 14, 2008 7:39 pm

Sorry for the long delay. I finally got the imposters to look halfway decent.

To see for yourself, first get rid of all the previous LinkTest01 files (if you downloaded the portal version). Then download this file:

LinkTest01_imposter.zip (7 MB)

Unzip it and put the dat files in your Uru's dat folder, and put the PAK file in your Uru's Python folder.

This time, there are no moving parts. You simply walk into the tunnel and just past the halfway point it will page in the new district. There is a slight pause as it does this.

Caveats:
  • This test age only has a quarter of a subdistrict's geometry (which is a quarter of a full district). So, the actual paging pause that you would experience in the full city will be at least 16 times this demonstration's pause.
  • The tunnel is again just rough art; it is not the final version.

If you don't want to download the age, you can view the movie below:

ahra_pahts_imposter.wmv (3 MB)

Please try this out and see whether it is something that you can live with. If so, I'll provide a follow-on post that will describe how to make imposters for the city.
Can we rebuild it? Yes, we can - here's how.

MOULagain KI# 1299

Myst Movie coming soon - spread the word!
User avatar
Robert The Rebuilder
 
Posts: 1383
Joined: Sat Sep 29, 2007 7:24 am
Location: Virginia, US

Re: Portal Mechanism For Ahra Pahts

Postby Nadnerb » Mon Apr 14, 2008 8:44 pm

I downloaded and ran the test. The pause, I can live with. I could live with it in Portal, and I can live with it in Pahts. :)

The tunnel seems a bit excessive though. Pahts was already built with dynamic loading in mind, hence the tall district walls. I was thinking more along the lines of having a 3rd of the white district paged in at any given time, as well as the external district, so that when you enter one corner of the white district while passing through to get to a different larger district, it would page in the next district, and once you turn the corner through the white district, it would page out the previous larger district. This could avoid the use of impostors entirely, and would only be slightly more complex.

Something like this. (the red dot represents the player, crossing each node)

Image

This would have the advantage of not requiring extra content creation for impostors, and wouldn't require "tunnel vision" to work. (ie, the existing visibility blocks would suffice)
Image
Live KI: 34914 MOULa KI: 23247 Gehn KI: 11588 Available Ages: TunnelDemo3, BoxAge, Odema
Nadnerb
 
Posts: 1057
Joined: Fri Sep 28, 2007 8:01 pm
Location: US (Eastern Time)

PreviousNext

Return to Ahra Pahts

Who is online

Users browsing this forum: No registered users and 0 guests

cron