Author Topic: Keep N maps loaded  (Read 1713 times)

Leeloo

  • Hydlaa Resident
  • *
  • Posts: 161
    • View Profile
Keep N maps loaded
« on: September 07, 2005, 03:50:01 pm »
We used to have the choice between loading all  maps, and loading only the current map. Then came the \"keep maps loaded\" feature, which starts out with loading only one map, and ends up with all maps loaded anyway, and thus requiring just as much memory as just loading all maps.

What I\'m  suggesting here is making it possible to select how many maps to keep loaded. Someone with only 256 MB RAM might select 2 maps, one with 512 possibly 4 or 5 maps. This should be done in a simple LRU (least recently used) fashion, when loading a new map, the map that it has been the longest time since one has visited would be unloaded.

This will allow one to e.g. run around in Hydlaa, Hydlaa_Jayose (East Hydlaa?) and the sewers without load times, and then deciding to go to Ojaveda, unloading the sewers and Hydlaa_Jayose to replace them with Ojaroad and Ojaveda. (Example with N=3).

Rolf Blacksmith

  • Hydlaa Resident
  • *
  • Posts: 167
    • View Profile
(No subject)
« Reply #1 on: September 07, 2005, 04:14:25 pm »
I think something like that is about to come anyway.

I would even prefer a pre-loading feature:
As you approach a portal, it should already start loading the appropriate map, and keep it loaded in case you exit the portal area unless you go to another portal.
I think, in this way you could smoothly move between maps without too much map loading/unloading.

But, as already said, I think the devs have figured something similar anyway ...
Typing and grammatic errors may be safely ignored, they come without charge ...

DaveG

  • Forum Addict
  • *
  • Posts: 2058
    • View Profile
(No subject)
« Reply #2 on: September 07, 2005, 07:09:30 pm »
Both ideas have been brought up before.  The fact is, that the \"keep all maps loaded\" feature is just the poor-man\'s \"load all maps\"...  :P  It\'s just to get a similar effect, with less of an initial loading time, and without having to load all the maps instead of just the ones you\'ll need.  The option is admittedly not finished.

Dynamic loading would be great, but it might be a little problematic.  It\'ll be a while, most likely...

::  PlaneShift Team Programmer  ::

fken

  • Hydlaa Notable
  • *
  • Posts: 816
    • View Profile
(No subject)
« Reply #3 on: September 07, 2005, 08:00:59 pm »
Quote
Originally posted by DaveG
Dynamic loading would be great, but it might be a little problematic.  It\'ll be a while, most likely...

Why ?

The developpers expressively chose to not use dynamic loading. Before CB, MB was using Dynamic one but developpers said they wanna use the loading time to make everyone get equals (56Kbps and ADSL/Cable)...

Rage McCloud

  • Hydlaa Citizen
  • *
  • Posts: 235
    • View Profile
(No subject)
« Reply #4 on: September 07, 2005, 08:08:22 pm »
the only loading part i hate is the one between Hydlaa and the arena because thats a long way to walk and then the loading takes a while too... its time consuming for that part... but i dont mind it too much...

what i hate is when you press t to constantly run and only control with the left and right arrows then you go to a loading part and you have to load the next map then load the last map then load the next map again before getting to run on... its because you cant auto run into a portal... its pretty annoying...
Greeting fellow adventurers!
My name is Rohnan Darosel.

SnowWolf

  • Hydlaa Citizen
  • *
  • Posts: 213
    • View Profile
(No subject)
« Reply #5 on: September 08, 2005, 10:31:13 pm »
Instead of N maps using LRU, you can just have the maps that you can access loaded. Say your zone has 3 portals, then those three other zones would be pre-loaded.

I was about to start a thread on a similar topic though, so instead I\'ll just post here. I\'m having problems going between zones since it\'s so easy to slip between the two. I suggest making two one-way portals instead of one two-way portal. How does this work?

.....[...|...].....

In this primative illustration, the \'|\' represents the current one boundary system. The parens symbolize the suggested method.

Using the one boundary method, you switch zones (and have to load them - ick!) every time you cross the line, so if you accidently move backwards somehow, you end up going back into the zone you just left.

To fix this, we make a right boundary for people travelling to the right, and a left boundary for people travelling to the left.

This means that once you step through the portal you are transported into the new zone, but to step back into the zone you just left, you actually have to turn around and walk/run/fly/etc. some arbitrary distance to get to the opposite boundary, thus removing the slipperiness.

^^
« Last Edit: September 08, 2005, 10:33:03 pm by SnowWolf »


From the Ranks of the Arcane Order

SnowWolf

Leeloo

  • Hydlaa Resident
  • *
  • Posts: 161
    • View Profile
(No subject)
« Reply #6 on: September 09, 2005, 12:36:50 pm »
Having all the maps loaded you can travel to will not change anything, because when you go to the next map, which maps you can travel to change. It would just mean even longer load times, as the number of maps being loaded would be bigger.

I\'m not sure about loading while playing, it might cause problem with stuttering / jerking movement, as the whole system is waiting for a slow PIO 4200 RPM ATA drive.

DaveG, when you say dynamic loading will be problematic, do you mean the variable max with LRU method, or loading while playing? Because I can\'t see any problems with implementing LRU, as the game already has the code for loading a map, unloading it, and keeping track of which maps are loaded. So, unless the unloading function can only unload everything, it should be just a matter of combining these features the right way.

Agreed on the part with a few meters of overlap though, requiring you to move more than 1 mm backwards to load the old map again. It would stop a lot of accidental going back to the old map.

stfrn

  • Hydlaa Citizen
  • *
  • Posts: 324
  • the beaver ex-dev :B
    • View Profile
(No subject)
« Reply #7 on: September 09, 2005, 07:23:29 pm »
Well, you people have found some good ideas, but mixed in some partial truths so lets see what I can explian:
When you load a map, not just the geography is loaded, but also all the textures and objects that it contains. Those are what can really take up a lot of space.
Dynamic loading of Objects is being worked on in crystal space. This will be done by a background thread, but the problem they are dealing with is loading a small set of objects for you to start playing, and having the background thread not interfear. They should have a solution available to us soon, and then it will be possible to impliment into Planeshift.
When I implimented KeepMaps Loaded, all I really did was find the right places where things were being unloaded and told them not to under the right conditions. Telling things to load under the right conditons is a much harder juob, as there really aren\'t the right conditons. But with the dynamic loading, and better culling of which objects are to be displayed, it maybe possible to do as trhey do in many other games. Namely all objects are loaded slowly as you move around, and reandered only when they are getting close to view. But that will require a few more features avaiable, as well as a lot of work using them.
And yes I did register for this post >.>
player -> gm -> dev -> bum

darkw00t

  • Hydlaa Citizen
  • *
  • Posts: 271
    • View Profile
(No subject)
« Reply #8 on: September 10, 2005, 11:40:58 pm »
Yeh the loading should only be once and should be fast as it should be pre-loaded as well but a little loaded to kinda tell you reached another region, you shouldn\'t have to open up a map as well
Eleloy Shadowfrost

Hirato

  • Traveller
  • *
  • Posts: 34
    • View Profile
(No subject)
« Reply #9 on: September 11, 2005, 08:14:26 am »
how bout if this is ticked a efw mroe options appear.

the first you could perhaps set a time limit. so if the map was no used for that amount of minuted it unloaded the next time you chnage a region unless the region chnage is to that map.

2 you couls set which maps will needs to stay loaded. and all other maps will be unloaded over time. eg you chsoe that ojaroad and hydlaa stay loaded. there will be no lolading inbetween or coming from another map. but there will be goign toanother map eg arena or the dungeon under the temple.

3 this will just keep it the way it is currently loading and working when this ooptuion is on.

and i\'d like to say that option was my idea. sicne i was constantly going from the arena to harnquist in hydlaa. i spend a lot of time loading. and i died a lot too and you all know hopw long it takes to load hydlaa after 30 mins of play. and the game lagged to much with all maps loaded. and why bother loading that map if you\'re not going to use it. any ideas for other options hat can appear if this option is ticked.

Rage McCloud

  • Hydlaa Citizen
  • *
  • Posts: 235
    • View Profile
(No subject)
« Reply #10 on: September 11, 2005, 11:21:08 pm »
Just go to PSSetup and click keep maps loaded... or load all maps...

on the keep maps loaded one...I.E. You start in Hydlaa plazaa, you walk to the arena and it loads... then when you want to go back and forth you dont have to load ever again... until, of course, you leave PS...
Greeting fellow adventurers!
My name is Rohnan Darosel.