HeroEngine Forums
Welcome, Guest. Please login or Register for HeroCloud Account.

Author Topic: Areas beyond tier1 seamless links are being loaded  (Read 2123 times)

keeperofstars

  • General Accounts
  • *
  • Posts: 998
    • View Profile
    • StarKeeper Online
Areas beyond tier1 seamless links are being loaded
« on: Jul 18, 15, 06:05:23 PM »

So when you have linked areas, lets say in a grid. when you enter one of the areas, it loads that area, and all the areas linked to it.

Which is expected, but it is now also loading the areas that are linked to the linked ones.


so in the screenshot here, I load into A01, it has A02 linked, and that loads like it should, but the engine also spins up A03 which is not linked to A01, but is linked to A02.

So it's like this A01 linked to A02, AO2 linked to A03.
When you load into A01 the game spins up A03 as well.

It's random but if you stay in the same area and wait for normal area spin down, randomly. I say randomly cause there is no logical pattern for the ones that spin down but the "+1" linkeds sometimes spin down, not all of them just some.

http://screencast.com/t/rmOChMVFbq
Logged
[img]http://screencast.com/t/x7btcSSyp3h0[\img]

Jrome90

  • General Accounts
  • *
  • Posts: 330
    • View Profile
Areas not seamlessly linked to loaded area being spun up
« Reply #1 on: Jul 20, 15, 03:55:21 PM »

The thread here: https://community.heroengine.com/forums/index.php/topic,5942.0.html
was a result of testing in another world.
----------------------

Not too long ago I was in Pumpkin Onlines's world trying to see if I can solve the problem described in this thread: https://community.heroengine.com/forums/index.php/topic,5930.0.html
I had no luck deleting the assets in the area. In fact I cannot even spin the area up anymore (It's broken). But that's for another topic.

Anyways, I decided to go to other areas using the area organizer to see if they were linked with the broken area. After running around for a bit eventually I ran into a problem. I had reached the limit of 60 areas spun up.

It seemed strange to have reached the limit so fast, so I logged off and let the world spin down. After the world was down I logged back in, and loaded up my character and by doing so loaded into the same area I was previously in.

Not knowing that there was a chat command "/start" to see the areas currently up, I started going through the organizer and saw that quite a few areas were spun up. Those areas aren't linked to the area I was in.

After learning about the command "/start" I looked at the list of areas it produced. 24 areas not including the area I was in had been spun up.

I created a GUI that shows the areas that are currently spun up in real time.
The pink.. err red squares are the areas that are up.
Before creating the following images I removed the background map.

Here are the results :
The X is where I am loaded into.



After further investigation I believe I found what is causing this
Line 164 of the class script "_TravelDataPresenceTracker:

$AREA._RequestSeamlessAreaInstanceSpinup(me, me, tracker._TravelDataAreaInstanceTracked._currentArea, tracker._TravelDataAreaInstanceTracked._currentAreaInstance)

Code: [Select]
method _TravelTrackerRecalculateProximalPresence()
  parentClass::_TravelTrackerRecalculateProximalPresence()
  if me._TravelDataProximalPlayers > 0
    foreach proximalLink in me._TravelTrackerGetProximalLinks()
      if not proximalLink.Active
        tracker as NodeRef of Class _TravelDataAbstractPresenceTracker = $Travel._TravelGetTrackerForArea(proximalLink.AreaID, proximalLink.AreaInstanceNumber)
        if tracker._TravelDataAreaInstanceState = DOWN
          $AREA._RequestSeamlessAreaInstanceSpinup(me, me, tracker._TravelDataAreaInstanceTracked._currentArea, tracker._TravelDataAreaInstanceTracked._currentAreaInstance)
        .
      .
    .
  .
.

After commenting Line 164 out this is the results


Only the linked areas are being spun up. Exactly how I assumed it should be. (Maybe it's not?)
Further testing showed that going from "Area A" into to "Area B" The remaining areas that are linked to "Area B" are spun up too; so that works properly.

However, I don't think the solution is to just comment out line 164. It could potentially break something somewhere.


« Last Edit: Jul 20, 15, 03:57:36 PM by Jrome90 »
Logged

HE-SARRENE

  • HeroEngine
  • *****
  • Posts: 216
    • View Profile
Re: Areas not seamlessly linked to loaded area being spun up
« Reply #2 on: Jul 20, 15, 04:06:01 PM »

I can confirm this is an issue. I have tested this and had a few others to test it out. This is repeatable on several worlds that have seamless linked up in a grid or tiled.

I will make note of this and send it to the correct person.
Logged

HE-Cooper

  • *****
  • Posts: 2221
    • View Profile
Re: Areas not seamlessly linked to loaded area being spun up
« Reply #3 on: Jul 20, 15, 04:20:48 PM »

This is Functioning as designed per Engineering.

There are two reasons we spin areas up that are two hops away when active players are detected:

1) if a player travels to an adjacent area and then immediately travels again (in the case of an 'L'-shaped series of transition, for example), there is the possibility that that second-hop area will not have time to load/spin-up in time for the player, which will present the player with a loading screen and delay any server-side processing for that area until it has spun up.

(this can have particularly nasty side-effects when we consider game systems like combat in which a player could become 'frozen' for several seconds while a new area spins up. getting rid of that possibility eliminates troublesome situations like that.)

 2) anticipating player movement by spinning up areas they could potentially move to reduces the 'spikiness' of server load by keeping relevant areas spun-up and ready to receive players while at the same time distributing area spin-ups more evenly over time; if we were to not do this, the frequency of area spin-up/spin-down would be increased and the load/delay at any given time could become unacceptable.

It is basically a heatmap based on population with three values. "Somebody is here", "Somebody is nearby (two hops away)", "Nobody is nearby". We don't recommend modifying this behavior in anyway.
« Last Edit: Jul 21, 15, 04:05:40 PM by HE-Cooper »
Logged

Jrome90

  • General Accounts
  • *
  • Posts: 330
    • View Profile
Re: Areas not seamlessly linked to loaded area being spun up
« Reply #4 on: Jul 21, 15, 06:29:50 PM »

This is Functioning as designed per Engineering.

There are two reasons we spin areas up that are two hops away when active players are detected:

1) if a player travels to an adjacent area and then immediately travels again (in the case of an 'L'-shaped series of transition, for example), there is the possibility that that second-hop area will not have time to load/spin-up in time for the player, which will present the player with a loading screen and delay any server-side processing for that area until it has spun up.

(this can have particularly nasty side-effects when we consider game systems like combat in which a player could become 'frozen' for several seconds while a new area spins up. getting rid of that possibility eliminates troublesome situations like that.)

 2) anticipating player movement by spinning up areas they could potentially move to reduces the 'spikiness' of server load by keeping relevant areas spun-up and ready to receive players while at the same time distributing area spin-ups more evenly over time; if we were to not do this, the frequency of area spin-up/spin-down would be increased and the load/delay at any given time could become unacceptable.

It is basically a heatmap based on population with three values. "Somebody is here", "Somebody is nearby (two hops away)", "Nobody is nearby". We don't recommend modifying this behavior in anyway.

From an engineering standpoint that makes sense.
However, 24 areas spun up is not friendly to world building. But a grid based seamless area layout just seems wrong too.

Thanks Cooper
Logged

keeperofstars

  • General Accounts
  • *
  • Posts: 998
    • View Profile
    • StarKeeper Online
Re: Areas not seamlessly linked to loaded area being spun up
« Reply #5 on: Jul 21, 15, 09:42:07 PM »



From an engineering standpoint that makes sense.
However, 24 areas spun up is not friendly to world building. But a grid based seamless area layout just seems wrong too.

Thanks Cooper

Eh but have to be mindful not all grids are built the same. There is a difference between grids and grids that aren't exactly "reachable" for proxy / SAS operation.

So there could be a grid system, but a good part of that system is in there due to a mountain range aspect that has players never really being in place there, but there for a more open world feel. The players won't be able to transition between the two areas ever, but the two need to exist connected. For visual appeal.

It also has a bit of impact in regards to a visual option of area floating.

This is where you have area A linked to Area D

Area D is a mountain range way way off into the distance and only has a low LOD setup of the mountain range, while the two areas are linked you can never get to area D via way of Area A cause as you walk to the mountain you then get moved into Area B instead. which has it's own version of Area  D floating off into the distance with a better defined mountain range. It's a bit of voodoo, but can lead to some nice visual aspects.

Once again I'm fine with the instances spun up though, no sweat off my back, cause I use larger spaced areas, so I don't bunny hop all over zones in a hurry hitting the cap. I can see though for other worlds or worlds with teams of world builders it could be a bit of pain in the cap department. CAuse you have to learn how to manually shut down instances to prevent hitting the cap. Which can happen pretty easily.

I get the reason for the cap cause someone could quickly make a map setup and have the cloud spinning up thousands of areas in 10 seconds. Tossing cloud into a shock value on usage.

Wonder if we could get a area status gui element where we can have a tab with all spun up areas, and an easier way to mass spin down. Granted I could see that being just as much of a problem I guess as spin up.

Eh not a win win option I can figure out currently. A win for the user is a loss for the servers, a win for servers is loss for user. And I think we at the happy mid ground at the current moment.

Only thing I could think of is maybe a small bump in the area limit cap.
Logged
[img]http://screencast.com/t/x7btcSSyp3h0[\img]