Author Topic: Persistent World Area of Effect Spells  (Read 587 times)

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Persistent World Area of Effect Spells
« Reply #15 on: December 16, 2010, 08:19:40 am »


               

FunkySwerve wrote...

What server is this? I'd like to take a look. From what you describe, I just can't believe they're working (as opposed to simply getting tripped onenter, which always works).

Those crashes sound like the result of exploded bioware databases. See here for the extent of my knowledge on that:

Click Here

Funky

Its czech only specific server which is passworded on gamespy because they are running on game portal which uses special program to join the game where players can chat. All conversations are in my language so I don't think it would be even playable for you, might be quite tricky to get the password since its changed every restart.

For the bioware database, they have special treatment, they described it on this picture and thats the best script they are most proud of.
               
               

               
            

Baaleos

  • Administrator
  • Hero Member
  • *****
  • Posts: 1916
  • Karma: +0/-0
Persistent World Area of Effect Spells
« Reply #16 on: December 17, 2010, 03:48:18 pm »


               This issue, as Funky has said, is mostly due to the engine priority.



When I hosted Worlds of Rhun, a 100mb + module, the issue exists with the Native Peristent AOE spells.

Web, Grease, Storm of Vengeance.



In order to fix it, I needed to copy the hb scripts, into functions, that then called themselves, and have themselves, the hb, initiated on the SpellCast script, opposed to the default method, of letting the persistent object handling the heartbeat.



The issue is not necessarily related to player load either.

It can be related to objects, npcs, and anything else that uses the native scripting heartbeat.



Eg - Shayan's subrace engine 3.0 REFUSES to work in Rhun Modules, if you try to use the Subrace Clock placeable. However, if you attach the Subrace Clock's HB Script to the players 'default'  script (which is the player heartbeat), it will work, because this script has a much higher priority.



On the grand scheme of things, Persisent AOE Objects have a priority of about -4 compared to everything else.

If your server is going to decide on using resources to run this pretty low priority AOE script, or to Run all the NPC HB, object HB scripts..... its going to choose the npc' and Objects.

Note - As much as we might like to think that nwserver.exe can do dozens of things at once, in reality... it cant. Hense why it needs to prioritize.
               
               

               
            

Legacy_kalbaern

  • Hero Member
  • *****
  • Posts: 1531
  • Karma: +0/-0
Persistent World Area of Effect Spells
« Reply #17 on: December 17, 2010, 05:05:25 pm »


               The biggest thing that stands out to me with the "not an issue" PWs you referenced Shadow is that they reset so many times a day. Why? My own PW resets Monthly, if we need to. Yes, our player average flucuates from 0-10 constantly, though 12-20 during events and holidays breaks form work/school happens. We'll be auto resetting soon on 3 day intervals only because it'll reset many of our "do once per reset" quests for lower level PCs. With 390 areas though (and growing weekly) and 100+ shops, random NPCs in each town, Hostile NPCs that get random weapons and sometimes appearance tweaks and lots of triggers firing environmental effects (like cold damage crossing a mountain stream or slipping and falling chances in a slimey stream in the underdark) and lots of script heavy activities like foraging and custom crafting, lag and AoEs failing has never been an issue. That is until we started getting more players. When we approach the 20 mark, I can notice some heartbeat driven events faltering. Placeables with hearbeats take longer to react, AoEs seem to drag out their durations or slow down in how often they deal damage to those within them (BTW .. I spawn/despawn all placeables that use a heartbeat to keep their impacts low). While I have a script heavy module, I counter that with lean pallettes. If something doesn't need to be spawned in, created via a script or DM, then its not left on our pallettes. I also took some pretty extreme steps in laying out our base module. We use the CEP, but alot in there I either consider as dross or needed to change to meet my own requirements. So I converted their sub_v1 and build haks into erfs and imported them. I've since either modified their scripts and blueprints as I wished (they do make nice templates) and have simply deleted the rest. I estimate I've only used about 30% of CEPs scripts and blueprints and didn't have to waste room with making edit copies or renaming their modified scripts. I've also begun converting my AoEs to pseudo heartbeats based on some of Funky's examples both here and the old forums. Thanks "FS".



TSM Dude mentioned FRC. They share a similar fate. As soon as they get somewhere between 16-20 players online, AoEs begin to falter and their HBs simply fail above 30 or so (and 30+ is their norm most times of the day). FRC has been doing alot of optimizing and house cleaning of late and lag is getting better, IE lessening. Heartbeats had been a plague on FRC. They just recently killed the CEP "torch" scripts that were causing about 1900+ firings constantly. Even though these scripts simply fired and returned as no variables had been set on the placeables to make use of them properly, that was still a ton of fire/abort every heartbeats happening. You couldn't even actually count them in the completed module. The full module only showed about 20 percent of that total firing. Upon dissecting the module into several small chunks though, those HBs that never fired now fired more often and a better count was gained. '<img'> I'm also applying the AoE rewrites from my own PW to FRCs module for them (yes, not all of us see other PWs as competitors '<img'>)



Anyhow, my main point is, any module that has to reset often has some sort of issue they are addressing. So while AoEs might work there, would they if they didn't reset 3-5 times a day?
               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Persistent World Area of Effect Spells
« Reply #18 on: December 17, 2010, 10:32:01 pm »


               

kalbaern wrote...

CEP "torch"

Ha! I am quite sure the Arhalia server (low players and has this issue) have many placeables running this. Will suggest them how to get rid of it, and we will see.
               
               

               
            

Legacy_FunkySwerve

  • Hero Member
  • *****
  • Posts: 2325
  • Karma: +0/-0
Persistent World Area of Effect Spells
« Reply #19 on: December 18, 2010, 06:28:33 am »


               A simple leto script for the cep torchscripts is probably easiest. Dragonsong actually wrote up one called killtorch for just that purpose, back in the day, though I don't have it handy. Just loop through the utp's in the mod checking the heartbeat slot and setting it blank if it's set to the torch script.

As for the rest, by way of comparison, we run a lot of delaycommands, which eats into our load budget, and run a mod heartbeat that is not-quite-but-nearly as hefty as I'm comfortable making it (but adds very slick functionality to the mod). We don't see much lag unless parties mass whole areas (generating about 100 hostile critters at one go). But, we just moved to better hosting (formerly on Amazon EC2), so will have to re-benchmark, since even that no longer generates noticeable server lag. Anyway, on the old servers, despite the lack of noticeable lag, we hit this issue with somewhere between 3-5 players on. I should note that we cap our instance servers at 16 to avoid getting ugly lag - the spawn size we feature wasn't allowing more, though on the new server 100+ spawns in the same area as a party of 10 isn't making lag.

kalbaern wrote...
 I spawn/despawn all placeables that use a heartbeat to keep their impacts low).


This doesn't work, if you're suffering load. As I note above, the priority for spawned in placeable hearbeats is, like that for PAoEs, incredibly low. I know because we tried the same thing. Instead, you need to fire up psuedos on the places when players enter the area, and terminate when they're no longer in the area.

Funky
               
               

               


                     Modifié par FunkySwerve, 18 décembre 2010 - 06:31 .