XC_Engine version 25c for UT v469c (includes FerBotz)

Mar
Novice
Posts: 26
Joined: Tue Aug 27, 2013 1:04 am

Re: XC_Engine version 25c for UT v469c (includes FerBotz)

Post by Mar »

Currently I have the following error when CollisionGrid is activated on XC_Engine on some maps.

Code: Select all

NSC: [ EVENT ] you has started the game.
NSC: [ EVENT ] The game has started.
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Repeats until server crash or someone changes map. When sever travel occurs sometimes it crash also.
You can test this with map MH-(_@_)_MJD_lite_v1
Just start the map and wait some seconds.
Server gets 100% of CPU when this happens. Map become laggy with ping up to 600ms+

My setup is 469c with XC_Engine 25c on Ubuntu 22.04 (Docker Container), also tested on a local Windows server and also happens.
Any idea?
User avatar
sektor2111
Godlike
Posts: 6397
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine version 25c for UT v469c (includes FerBotz)

Post by sektor2111 »

Good to know that "CollisionGrid" is not on grid or such... even in next versions... I disabled this since day one.
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Engine version 25c for UT v469c (includes FerBotz)

Post by Higor »

Mar wrote: Wed Aug 30, 2023 5:55 pm Currently I have the following error when CollisionGrid is activated on XC_Engine on some maps.

Code: Select all

NSC: [ EVENT ] you has started the game.
NSC: [ EVENT ] The game has started.
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] Allocating extra element holder for ActorInfo
Log: [CG] Allocated element holder for ActorInfo with 1500 entries
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Log: [CG] ActorInfo::IsValid -> Using invalid object
Repeats until server crash or someone changes map. When sever travel occurs sometimes it crash also.
You can test this with map MH-(_@_)_MJD_lite_v1
Just start the map and wait some seconds.
Server gets 100% of CPU when this happens. Map become laggy with ping up to 600ms+

My setup is 469c with XC_Engine 25c on Ubuntu 22.04 (Docker Container), also tested on a local Windows server and also happens.
Any idea?
Noted   
Auto merged new post submitted 1 minute later
Can send me the .unr file?
Mar
Novice
Posts: 26
Joined: Tue Aug 27, 2013 1:04 am

Re: XC_Engine version 25c for UT v469c (includes FerBotz)

Post by Mar »

MH-(_@_)_MJD_lite_v1.unr
You do not have the required permissions to view the files attached to this post.
Mar
Novice
Posts: 26
Joined: Tue Aug 27, 2013 1:04 am

Re: XC_Engine version 25c for UT v469c (includes FerBotz)

Post by Mar »

@Higor Will there be a XC_Engine for 469d?
RocketJedi
Inhuman
Posts: 850
Joined: Wed Mar 12, 2008 7:14 pm
Personal rank: I.T Master
Location: New York

Re: XC_Engine version 25c for UT v469c (includes FerBotz)

Post by RocketJedi »

Mar wrote: Fri Dec 15, 2023 11:27 am @Higor Will there be a XC_Engine for 469d?
we desperately need this. @Higor Please and thank you <3
https://www.vulpinemission.com
Image ROCKET-X8 Server
Image MONSTERHUNT w/ NALI WEAPONS 3 + RX8
Image BUNNYTRACK NY
Image SNIPER DEATHMATCH
Image InstaGib + ComboGib + Jailbreak
Image ROSEBUM ROCKET-X RB
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Engine version 25c for UT v469c (includes FerBotz)

Post by Higor »

It will take 2 weeks (or more), got a bunch of projects lined up and a baby.
RocketJedi
Inhuman
Posts: 850
Joined: Wed Mar 12, 2008 7:14 pm
Personal rank: I.T Master
Location: New York

Re: XC_Engine version 25c for UT v469c (includes FerBotz)

Post by RocketJedi »

Higor wrote: Sat Dec 16, 2023 12:36 am It will take 2 weeks (or more), got a bunch of projects lined up and a baby.
duty calls thanks for getting back to us! I know all about that dad life!
https://www.vulpinemission.com
Image ROCKET-X8 Server
Image MONSTERHUNT w/ NALI WEAPONS 3 + RX8
Image BUNNYTRACK NY
Image SNIPER DEATHMATCH
Image InstaGib + ComboGib + Jailbreak
Image ROSEBUM ROCKET-X RB
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Engine version 25c for UT v469c (includes FerBotz)

Post by Higor »

A little update on the state of maintenance.

The initial efforts went to the Event Chain System and the path builder, got as a result a bunch of bug fixes that can be easily noticed in maps with complex navigation patterns (DM-Zeto and DOM-Olden's shield belts), this also exposed a few issues in v469's actor placement function that's also used in pathfinding...
Bot navigation should be noticeable better in all levels when it comes to understanding doors, locking mechanisms and others.
Still, it'd be nice to have custom triggers and movers supported at one point, if you have maps where bots can't navigate because of these let me know.

Since I was reviewing the whole path rebuilder code, decided to go ahead and add a functionality where Inventory and Warp markers are not deleted+generated, which I suppose is useful in some cases...
PathRebuilder.PNG
Next came the brush to mesh converter, one improvement is that if you make a mistake on a model, you can regenerate a new model with the same name if you delete the previous actor that contained it.
Aditionally, fixed a bug in texture tiling that split polygons wrong... I really didn't understand my old polygon splitting code (!!) so I rewrote that completely, works nicely now.
Brush2Mesh.PNG
Code audit going slow though, reviewed about 80 files across the board and over 230 remain. I keep finding issues->tasks everywhere, but at least I'm already deleting some classes and functions that are not needed anymore.
You do not have the required permissions to view the files attached to this post.
User avatar
sektor2111
Godlike
Posts: 6397
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine version 25c for UT v469c (includes FerBotz)

Post by sektor2111 »

OS requirements ?
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Engine version 25c for UT v469c (includes FerBotz)

Post by Higor »

Visual Studio 2022 is not the kindest when it comes to using older toolsets, but I'll stick to similar CMake settings used to build UT v469d (except for dynamic linking the C runtime, unlike v469d that does is statically)
As to how it'll affect OS requirements, I don't know since I haven't had a XP system in over a decade.

Meanwhile, for a second I thought the automatic LZMA compressor was broken but I was running the game in 64 bits, I didn't have a dll for that platform :loool:
Edit: hoping building the LZMA library isn't too complicated on ARM.
User avatar
sektor2111
Godlike
Posts: 6397
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine version 25c for UT v469c (includes FerBotz)

Post by sektor2111 »

Okay, random quote from some stock...

Code: Select all

	debugf(NAME_DevPath,TEXT("Added %d reachspecs"), Level->ReachSpecs.Num()); 
	//remove extra reachspecs from teleporters


	//prune excess reachspecs
...
The bottom comment contains word "excess". In 469b these "prunedPaths" that are "excess" were simply out of range rules causing a crap-ton of them. Excess to me means "too many", "spam", "useless". I think you can forget these because... I already have X maps that are flawless without any such "Path". I see only one deal here in "CanMoveTo" which also uses normal paths (which does a call to "calcMoveFlags()". Probably "ActorReachable" "PointReachable" will have a faster response if nodes would not have this additional load to calculate. Clearly routing process through network is faster if less data is being in account.
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Engine version 25c for UT v469c (includes FerBotz)

Post by Higor »

Pruned paths could theoretically be used to speed up path network calculations if we ran them between large zones, but unfortunately we really don't have a route mapping algorithm that makes use of them or prioritizes pruned paths on large routes.
I like keeping some pruned paths because it allows you to delete navigation points without breaking the network (something FerBotz can do in game).

With that said there are two reasons to purge all pruned paths:
- Level file size
- Minimize cache misses in CPU

The cache misses can be entirely mitigated by sorting the reachspec list by moving all pruned paths at the end, but doing such a thing would only be worth if we had real benchmarks in a controlled environment, and only @Buggie has been doing that kind of benchmarking in the game engine, I don't have the time or energy for that.   
Auto merged new post submitted 3 minutes later
About the script patcher, some of these function replacements only exist to limit the amount of replicated ClientMessage calls on the client, I'm thinking to instead hook that function and prevent replication there.

One idea would be to limit ClientMessage to one unique message per player, per server frame.
User avatar
sektor2111
Godlike
Posts: 6397
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine version 25c for UT v469c (includes FerBotz)

Post by sektor2111 »

If you keep PrunedPaths like in 469b then "ScanRange" option makes no sense - it's simply ignored. On the other hand I saw duplicated specs ground PrunedPath and a FlightPath, these two having different collision options - Big Pawn dropped but not dropped :noidea . All I see it's just a load without too much use, to not forget hilarious jumps in water and duplicated R_Special with ones R_Walk|R_Jump. For me XC 24 even if it's not so featured, looks better at this point. Run-Time stage makes some maps to work - which they in original did not work, Editor doesn't add junks to paths-net. The rest of duplicates and abnormal flags can be fixed with fore-mentioned XC_PathsWorker which also has a porky method where Paths are just cleaned up without leaving NULL ReachSpecs behind. This solution at C++ Level could be clearly better optimized than what I did.

I did some benchmarking in game using the clock from XC_Engine. Let's say that... maybe it's not very relevant for some reasons.
Deck16 map has in original inventories "unreachable" and routes missing. On the other hand, map's version that opens access everywhere responds a bit slower - to me it's logic, original which is having some paths missing, works faster because less data it's in account. Map with omni-access has more routing options, it doesn't mangling engine with 1000 nodes but it needs more time for calculating ALL inventories not only 90% of them. Anyway, differences are not very significant, these are probably noticeable only if are used 512 Bots... not my case...
To me something it's now very clear, if routing takes +0.000015 seconds in front of +0.000011 but making Pawn to not fail/fall/loop anywhere, I stick for first case through 5 routing points instead of 3 that might be causing a bugged behavior. Here it's about using a small range for preventing long bugged paths even if route will be 2-3 points longer - and using a decent movement.
Perhaps I can develop an XC version of PathsChecker tool embedded with clocking stuff, but I prefer quality even if it's a slower way in front of something faster but which is triggering a dumb behavior. I can even show an example but I doubt that it will have a great audience and interest.
Even S.Polge from Epic recommended an additional Node in some flawed spot.
EpicDoc wrote: In some situations, bots may get stuck on the edge of a ledge where it runs into a wall. This occurs because of a threshold problem. Bots won't jump off ledges until the angle of their destination is greater than 45 degrees from the ledge direction. If they run into a wall right around this threshold, they may get confused. The solution is to adjust the NavigationPoint they were trying to reach, or add an intermediate PathNode.
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Engine version 25c for UT v469c (includes FerBotz)

Post by Higor »

It's likely PrunedPaths will never be used (UT calculates paths from destination->origin, while XC_Engine tries to map the entire level from origin rendering PrunedPaths useless).
ScanRange might be an issue here since longer range will mean more pruned paths, I'll have to give this some more thought, at least for now I'm imposing a limit of 8 per node. That limit could be user defined, and pruning could effectively be disabled by setting a limit of 0.

On completely different news, porting XC_Engine to ARM64 is turning out to be bee a looong task, and due to the fact that I'm using Clang instead of GCC (due to better NEON/FPU codegen) the compiler is showing me all sorts of issues in my old code that I should better sort out (not all are ARM specific).