Page 1 of 1

Delaying mutators with DelayerM mutator

Posted: Wed Sep 12, 2018 4:41 pm
by Nelsona
While heavy patch files can mess up stuff based on navigation, we need to wait for patch jobs to get done. This means waiting 2-4 seconds for various things to do their jobs. Several mutators and even ServerActors are supporting a delay in load with no single issue, others... don't.
Relics, SwarmSpawn, ScoreSaver, ipToCountry stuff, etc. everything which has nothing to do with Level or Game initialization can be loaded later preventing various iterators to complete first load and coming later successfully.
Because I did not see too many such tools and probably I'm not bother to search Internet everywhere, I did such tools (two pieces for multi-server).
DelayerM is the tool having a configuration accessible even from "preferences" console command where all required with delay things are described and load-timer is being set. At closing Preferences or running these first time, an INI file is saved accordingly.

As a matter of fact ipToCountry do seems to work a bit better than when is loaded in server's launch at NfoServers - it's alive more time, proving that some "INIT" related stuff in UT is not that entertaining but that server is a good one as I could figure so far.
Here is archive:
Delayers.zip
(53.51 KiB) Downloaded 433 times
containing two pieces, one I'm using in DM and so on, the other one in MH gaming (both MonsterHunt versions running there).
Sample snippets from INI used

Code: Select all

[DelayerM.DelayerM]
LaterMuts[0]=SwarmSpawn.SS
LaterMuts[1]=ipToCountry.LinkActor
LaterMuts[2]=TBooster.TBooster
LaterMuts[3]=LessTele3.LessTele
LaterMuts[4]=
...
LaterMuts[63]=
DelayLoadTime=3.000000

[DelayerM_MH.DelayerM]
LaterMuts[0]=MAHelp.MATune
LaterMuts[1]=ipToCountry.LinkActor
LaterMuts[2]=MRele.Rele
LaterMuts[3]=LessTele3.LessTele
LaterMuts[4]=
...
LaterMuts[63]=
DelayLoadTime=4.000000
Discussions around might go below for some cases of evil situations encountered.

Re: Delaying mutators with DelayerM mutator

Posted: Thu Sep 13, 2018 8:07 am
by medor
There is a bug with iptocountry and the max number serverpackages we can set on the server.
an example among others
http://www.unrealadmin.org/forums/showt ... ptocountry

Is this can prevent that ?

Re: Delaying mutators with DelayerM mutator

Posted: Thu Sep 13, 2018 5:16 pm
by Nelsona
I cannot answer if some stuff can be prevented but... server has a default load, several actors can be delayed. Initialization will not see them, but... if they are coming later (like projectiles fired) they might be more welcomed. ipToCountry was nasty for me all time, amazingly, not working in a perfect stage, it was better when I started it... LATER. Mutate command reported country even after some kills, after some action which I did not see before. I don't know all effects when Engine is firing ALL actors at once VS Actors started later but... things do seem different when I'm waiting a bit before adding ServerActors or whatever Mutators. Monster Gaming Server has several actors initialized later and they are just fine. It's all about checking, because not all Servers have the same behavior. My Home server do works in a way, HOF is a bit different, NfoServer is a bad-ass really powerful and stable as a rock (I'm jealous here) it has a constant Tick-Rate :shock: .
You can setup some tests, post some logs, we can setup debates around them. So far NfoServer was reacting as I was expecting and even better than I could imagine.

To not forget: NfoServer aka Monster Gaming Server is using XC_Engine 21, Engine 451b (not my deal), XC_Core v8, and sorted things generally. All graphs were nice (they do have statistics) I really have no reason to complain except the way of killing server's thread losing critical data from logs... which in my house are entirely available.

And let's see that... thread.
55 ServerPackages :shock: :shock: :shock: ... What the hell does that mean ? Player loading X MB just because we can edit an INI ? Lol admins... In 100 years I cannot detect problems caused by this way of doing...

Next toy specific for XC_Engine is a mutator having some... different duty. It is intended to map packages outside of INI depending on game-type preventing this insane dumb load with ServerPackages even if they are not needed. In CTF I don't need DM stuff, and neither MH stuff. This might sound as a myth but it's a reality in 2018, such tool runs in testing stage and it can be modified and improved.
Let's see a snippet copied from INI according to that mutator:

Code: Select all

[Packager.ServPackager]
GmType[0]=MonsterHunt
GmType[1]=DeathMatchPlus
GmType[2]=TeamGamePlus
GmType[3]=CTFGame
...
SrvPacks0[0]=Ns_SpawnPoint2
...
SrvPacks1[0]=UTToolbox
SrvPacks1[1]=NsMonster
SrvPacks1[2]=Cacher
SrvPacks1[3]=UTrooper
SrvPacks1[4]=UTrooper2
...
SrvPacks2[0]=UTMHPack
SrvPacks2[1]=UTrooper
SrvPacks2[2]=UTrooper2
SrvPacks2[3]=UTToolbox
...
SrvPacks3[0]=NsMonster
SrvPacks3[1]=Cacher
SrvPacks3[2]=UTToolbox
SrvPacks3[3]=XCTFAnnouncer_ST
...
I don't have all packages for a single stupid game-type, I simply have ONLY what is necessary. Other game-type has another collection of packages, and then I don't see any additional memory load for nothing useful at time. If these have common named classes used by 3 packages I'm not sure if they will not have internal conflicts and problems, I might wrong here but... I prefer to not load USELESS packages just because the server must be... fancy... but unstable and just a guess work.
Packages used by Monster Gaming Server ?
Let's take a look together:

Code: Select all

ServerPackages=MBot_F
ServerPackages=SoldierSkins
ServerPackages=SoldierSkins_HOF
ServerPackages=SoldierSkins_HOFjester
ServerPackages=CommandoSkins
ServerPackages=FCommandoSkins
ServerPackages=FCommandoAsia
ServerPackages=FCommandoHOFgirl
ServerPackages=SGirlSkins
ServerPackages=SGirlSkinsHOF
ServerPackages=BossSkins
ServerPackages=BotPack
ServerPackages=MultiMesh
ServerPackages=EpicCustomModels
ServerPackages=TCowMeshSkins
ServerPackages=tcowmeshskins_bdsm
ServerPackages=TNaliMeshSkins
ServerPackages=TSkMSkins
ServerPackages=SkeletalCharsFix313
ServerPackages=XXanPackage
ServerPackages=AdvancedModelSupport
ServerPackages=DarkHelmet
ServerPackages=CountryFlags2
ServerPackages=HoFIntroV7
ServerPackages=hofpackage18
I'm sitting down to think if I do need all of these... games and maps have BotPack classes as dependencies so this package it's mapped automatically, and then... probably it's useless declared in INI... Right ? What do you think ?

Re: Delaying mutators with DelayerM mutator

Posted: Fri Sep 14, 2018 6:36 am
by medor
I do not think much. My level does not allow me :D

I'm just an assembler, I do not create anything.
I might see an opportunity to get rid of this bug limit which I have seen for years with just add this as patch.

Re: Delaying mutators with DelayerM mutator

Posted: Fri Sep 14, 2018 2:56 pm
by Nelsona
I understand, this tool is just setting up some delayed load for certain actors/mutators supporting this. For ipToCountry I had some battling in my own yard and I cannot figure what is damaging this tool. It do works and then... it's out without response. I would like to know more "http" things I mean net protocols but I have a lack of knowledge about these. However NfoServers are acting better but NOT perfect proving that ipToCountry is not OK and neither to be initialized too fast... It's useful but... unstable as I could figure or... It do works better on Linux ?

What I can say about that and I might be wrong here. This toy is opening some connection(s) right from start. A connection as I know has a timeout when has no data received sent going to some latent state which I think it's not in account somewhere into codes. Figuring that for me it's a long battle, to not forget that engine might have bubbles which UScript won't really help all time. Coding methods usually for bad natives is to Not Call them rather than fighting with them. I wrote a lot of stuff trying to get rid of PlayerCanSeeMe crashes and now I have not only a fix but I have even other solution. This would be cute for this ipToCountry too. Else I see others not speaking too much about internals of this tool because probably debugging is generally hard not only for me... or it was working in the past based on older net protocols which are changed nowadays because of security reasons or whatever fancy junks...

Re: Delaying mutators with DelayerM mutator

Posted: Fri Sep 14, 2018 6:35 pm
by medor
It do works better on Linux ?
No i have this with old server team essentially linux since 10 years.
Tested Under windows and linux it's the same.

Re: Delaying mutators with DelayerM mutator

Posted: Fri Sep 14, 2018 7:45 pm
by Nelsona
medor wrote: Fri Sep 14, 2018 6:35 pm Tested Under windows and linux it's the same.
Then definitely this tool will need a professional examination which I cannot do right now, but maybe I can figure something in future.

In mean-time I'll prepare after a small examination "Packager". A tool which is entirely using XC_Engine intended for saving a crap-ton of packages when are not needed in Multi-Servers - I won't keep stuff from Monster Gaming Server outside of world, others might need it - explanations are integrated as usual.

If "DelayerM" will act strange feel free to keep moving in this thread.