XC_Engine [20] - XC_Core [7b] - XC_IpDrv

User avatar
sektor2111
Godlike
Posts: 6039
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine [19] - XC_Core [7] - XC_IpDrv

Post by sektor2111 » Mon Jan 16, 2017 6:14 pm

Eternal gratitude :D .

SC]-[WARTZ_{HoF}
Adept
Posts: 425
Joined: Tue Feb 21, 2012 7:29 pm

Re: XC_Engine [19] - XC_Core [7] - XC_IpDrv

Post by SC]-[WARTZ_{HoF} » Tue Jan 17, 2017 1:33 am

Most appreciated as always. :rock:
Image
Image
Image

User avatar
sektor2111
Godlike
Posts: 6039
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine [19] - XC_Core [7] - XC_IpDrv

Post by sektor2111 » Tue Jan 17, 2017 8:01 am

Let me explain why I'm so happy.

For testing XC_PathBuilder I fast build a room 256×300×5000 spreading 4 PathNodes and 1 Playerstart. Let me see, Editor did not link anything there. Then I went to XC_PathBuilder with 1200 at "MaxScanRange". I did not only have them perfectly linked but I even could figure None unreachable spot testing even if do helps in bOneWayPath - it works like a charm. The main trivia, such a map with hyper paths works perfectly even without XC_Engine - seriously Epic were too restrictive with pathing stuff, mooing at Bots. With a few Console commands (I have to prepare some exec macro again) you can discard creating a crap-ton of paths through ammo loaded by keeping only weaponry marked, decreasing CPU processing for finding a route. I got an old cubed map (even with LowGrav inside) and I have tweaked some paths this way, it's just too good right now...
Little cons:
- mapper in advantage - such a map if by chance is full rebuild without XC stuff, will mess up paths because Editor is a bit retarded at chapter A.I. - lol Epic with "Paths Build" Command which has to be deleted from tutorials because is only an useless nonsense;
- Maps with geometry rammed cannot be recovered - simply DevPath is rejecting such tasks - no names - you'll see what I mean - the most disappointing there were done by dudes with some years spent in Editor - so to speak a bit more advanced than a noob cube drawer like me.

Now this stuff is fascinating, keeping me a bit busy in here, to mention that if you need normal paths but... Editor will not link some Nodes as you want, this is pretty much doable. By following Higor's documentation, actually you can handle things as you wish.

User avatar
rjmno1
Masterful
Posts: 707
Joined: Fri Aug 12, 2011 9:38 pm
Personal rank: masterfull
Location: https://sites.google.com/view/unrealtou ... oject/home

Re: XC_Engine [19] - XC_Core [7] - XC_IpDrv

Post by rjmno1 » Wed Jan 18, 2017 12:59 am

Yeah i think this is a good project i read some very positive things about this edited ut 99 core.
I just wanna say keep up the good works and go on like this.
Will be very handy to do a install writen text document with the files.
This files must be downloaded and installed in the ut 99 system directory?
Just a good hint make a help file with this package so other ut 99 editors mappers and gamers can download it ,or is it just server stuff?
Forgive me guys i just dont know jack shit about this editing.to complicated for me yes i,m a oldsckooler and a fossil about editing. :help:
unreal tournament 99
®
Image
Image
ImageImage
https://sites.google.com/view/unrealtou ... oject/home mine home ut99 website.
https://richardmoust105.blogspot.com/20 ... ef-in.html dutch blog page about ut99 settings.

User avatar
Chamberly
Godlike
Posts: 1963
Joined: Sat Sep 17, 2011 4:32 pm
Personal rank: Dame. Vandora
Location: TN, USA

Re: XC_Engine [19] - XC_Core [7] - XC_IpDrv

Post by Chamberly » Wed Jan 18, 2017 2:13 am

@rjmno1 check this out: https://sites.google.com/site/ut99gotyd ... gameengine

I just don't have XC_Pathbuilder tutorial set up.
Image
Image
Image Edit: Why does my sig not work anymore?

ShaiHulud
Adept
Posts: 446
Joined: Sat Dec 22, 2012 6:37 am

Re: XC_Engine [19] - XC_Core [7] - XC_IpDrv

Post by ShaiHulud » Wed Jan 25, 2017 10:03 am

Feature request. Well, possibly - this might be a really stupid code breaking idea, but I'm struggling to get the behaviour that I want at the moment (though perhaps there's another better way of achieving what I'm trying to do).

I'm modifying the UT bot behaviour. At various points, I want the bot to remain completely stationary and just loop the same animation until a number of seconds have passed. So far I've been using a goTo with a custom state for this. Something like (simplified for brevity):

Code: Select all

state busyState
{
  Begin:
      Acceleration = vect(0, 0, 0);
      PlayAnim('Breath1', 0.2, 0.2);
      Sleep(5);
      GotoState('Roaming');
}
This... sort of works. In a very limited way. If the bot has no stimulation - by which I mean, if there are no enemies near, or other activity nearby - it'll sit there looping the animation for 5 seconds, just as I want.

However, say, an enemy player happens to wander by. It appears (I don't really know enough about how UT works behind the scenes to actually know this, I'm just sort of inferring it) that the bot 'mind' activates and runs some of the non-latent regular function code that controls bot movement. The result is that, one moment the bot will be standing completely still (yay), and then very abruptly it might side-dodge to the left or the right (boo).

I've tried to find a way to prevent this from happening by overriding as many of the functions that deal with movement in bot.uc/humanbotplus.uc as I can find and inserting a test for a boolean that I set at the top of my state before proceeding, but it doesn't work very well. There are still unwanted movements during my latent 'sleep' call.

So I tried doing the same thing in a regular function and just sitting in a while loop (which is horrible from first principles because I imagine it would peg the CPU at 100%)

Code: Select all

function blockingWait(float duration)
{
  local float endTime;

  endTime = Level.TimeSeconds + duration;
  while (Level.TimeSeconds < endTime) ;
}
...but of course that just leads to a "runaway loop detected error". Which could be worked around, but it's missing the point.

So what I'm wondering is - as far as XC_Engine is concerned - would it be possible to include an unrealscript function that could call a native sleep? I've used the Win32 sleep() function in the past (to yield the timeslice of a heavy working thread - I know, bad form), and I'd like to do something similar here in a "regular" function, since I can't rely on sleep to block other bot activity in state code. Some kind of "nativeSleep()" which would block any other function from executing until it completed. Possible? Madness? Alternatives?

User avatar
sektor2111
Godlike
Posts: 6039
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine [19] - XC_Core [7] - XC_IpDrv

Post by sektor2111 » Wed Jan 25, 2017 10:09 am

Code exist, is called Roaming - labels Camp/LongCamp, just look there.

ShaiHulud
Adept
Posts: 446
Joined: Sat Dec 22, 2012 6:37 am

Re: XC_Engine [19] - XC_Core [7] - XC_IpDrv

Post by ShaiHulud » Wed Jan 25, 2017 10:51 am

Thanks sektor, I'll check that out this afternoon

User avatar
sektor2111
Godlike
Posts: 6039
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine [19] - XC_Core [7] - XC_IpDrv

Post by sektor2111 » Wed Jan 25, 2017 3:44 pm

:Whispering: that old thing for monster called jumper (due to lack of navigation from scriptedPawn and/or others...) I have developed a few toys for Bot (Bot jumper, pauser, hunter - shooting some targets) these are dedicated for default Bot. Making a Bot to camp at a moment is not that hard, it uses defending code - ALL defenders are camping.
But... XCGE can help you in screwing decisions ( PickDestination ) in order to not see it very busy with items and less attention at threats around.

User avatar
rjmno1
Masterful
Posts: 707
Joined: Fri Aug 12, 2011 9:38 pm
Personal rank: masterfull
Location: https://sites.google.com/view/unrealtou ... oject/home

Re: XC_Engine [19] - XC_Core [7] - XC_IpDrv

Post by rjmno1 » Wed Jan 25, 2017 3:55 pm

Chamberly wrote:@rjmno1 check this out: https://sites.google.com/site/ut99gotyd ... gameengine

I just don't have XC_Pathbuilder tutorial set up.
Thanks chamberly i will give it a try.
first install version 7 and then 18 right? :help:
i did install all files propperly and ut is running good on the new engine.
Maby a strange question but what are the bennefits with these new files?
i did also edit the unrealtournament.ini
unreal tournament 99
®
Image
Image
ImageImage
https://sites.google.com/view/unrealtou ... oject/home mine home ut99 website.
https://richardmoust105.blogspot.com/20 ... ef-in.html dutch blog page about ut99 settings.

User avatar
sektor2111
Godlike
Posts: 6039
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine [19] - XC_Core [7] - XC_IpDrv

Post by sektor2111 » Wed Jan 25, 2017 4:59 pm

rjmno1 wrote:Maby a strange question but what are the bennefits with these new files?
What !???
Read this topic right from the start location - Page No. 1.

Edit:
New Iterator NavigationActors take in account only Nodes registered in NavigationPoint List, those added later or without paths built are not in account by this iterator. I think I'll "foreach AllActors" then...

Higor
Godlike
Posts: 1844
Joined: Sun Mar 04, 2012 6:47 pm

Re: XC_Engine [19] - XC_Core [7] - XC_IpDrv

Post by Higor » Thu Jan 26, 2017 4:21 am

Why would nodes be outside of that NavigationPointList chain? If you have to resort to other iterators, you're doing something wrong :mrgreen:

Code: Select all

native final function LockToNavigationChain( NavigationPoint N, bool bLock);
Btw found a crashbug!
Some ape put a PlayerStart outside of a map and bots fail to spawn there, causing an infinite loop.
ImageImage
Image unreal://23.111.157.138:7777
Image unreal://46.228.199.205:7788

User avatar
sektor2111
Godlike
Posts: 6039
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine [19] - XC_Core [7] - XC_IpDrv

Post by sektor2111 » Thu Jan 26, 2017 7:18 am

I might not want QueenDests linked in PathNet and then new iterator with queen tweaks will not find any - else I was doing a cube for testing all old weapons without to build any path, findplayerstart triggered the second method based on "num = 0" doing a stupid log: "Did not find PlayerStart for team 0" and PlayerStart was Team 0 by default. Just saying...

ShaiHulud
Adept
Posts: 446
Joined: Sat Dec 22, 2012 6:37 am

Re: XC_Engine [19] - XC_Core [7] - XC_IpDrv

Post by ShaiHulud » Thu Jan 26, 2017 12:05 pm

Hmm. Sorry, I don't want to take this thread off-topic with my question, but I'm still having problems with the existing latent functions. I copied the code block for LongCamp and Camp separately into my state, and even with those additional changes - bCamping, bFiringPaused etc. - the blasted bot still breaks out of the latent code as soon as it gets to my call to sleep.

Once execution hits sleep, it starts to jump around again. I'm out of ideas. I might need to appeal for the native sleep function again :D Any other suggestions?

User avatar
sektor2111
Godlike
Posts: 6039
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Engine [19] - XC_Core [7] - XC_IpDrv

Post by sektor2111 » Thu Jan 26, 2017 2:42 pm

My Bot_Pauser works fine just because I'm using a code already done and not other state, Bot is roamer addicted to roaming, just use damn roaming. ALL TIME Defender STAY and defender is in state ROAMING-LONGCAMP. You simply don't call codes correctly, I assure you that Bot stay on demand by itself. In Assault game all defenders are camping - so is not impossible to do such thing with a default Bot.

Code: Select all

B.Velocity=vect(0,0,0);
B.bCamping=True;
B.CampTime=10;
B.MoveTarget = None;
B.GoToState('Roaming','LongCamp');
If other line is needed this action can be logged for future debugging.