Short Bot Note
- sektor2111
- Godlike
- Posts: 6413
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Short Bot Note
Ah, I see, I apology for my memory, I forgot those things. It is about around 2 years since I'm using default Bots only for random tests, I'm using only MBots...
To mention:
Discarding those errors might happen by screwing PickDestination. How ?
- ReplaceFunction - XCGE in stage;
- Other Bots - suggested name GBots (aka Gadavre Bots).
Advantage of a new child Bot:
A lot of options and variables and checks and adds - total gaming compatibility + a little more intelligence and/or aggressiveness habits.
Advantage of XCGE tweaking:
All stuff is original and fixes are aiming exactly the error source - no new packages, no complex extra-config, only adding XCGE and desired Actor for tweaking. Such a sample is XC_Titans or something like this which I've posted somewhere in a XC related stuff thread.
To explain different:
If in a map exist a Titan which by default Titan does what Epic says, by using tweaks operated with XCGE you can see that original Titan doing things different, nothing replaced in Level just execution is changed.
To mention:
Discarding those errors might happen by screwing PickDestination. How ?
- ReplaceFunction - XCGE in stage;
- Other Bots - suggested name GBots (aka Gadavre Bots).
Advantage of a new child Bot:
A lot of options and variables and checks and adds - total gaming compatibility + a little more intelligence and/or aggressiveness habits.
Advantage of XCGE tweaking:
All stuff is original and fixes are aiming exactly the error source - no new packages, no complex extra-config, only adding XCGE and desired Actor for tweaking. Such a sample is XC_Titans or something like this which I've posted somewhere in a XC related stuff thread.
To explain different:
If in a map exist a Titan which by default Titan does what Epic says, by using tweaks operated with XCGE you can see that original Titan doing things different, nothing replaced in Level just execution is changed.
- sektor2111
- Godlike
- Posts: 6413
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Short Bot Note
Bump.
A seldom error has been found by an user so I went to update last MBot_F version to a Generation2 package in order to prevent version mismatch errors. This update has been added in first post and the GDrive link described there. Old versions are removed because I do not have plans for using them at this moment.
Point2: Maps goofing and so called navigation networks which are not following Bot Pathing rules are not subject for discussions toward MBot and neither sh!t codes a la "BotPack.CTFGame.AssessBotAttitude" - that's another guy in charge for fixing that.
A seldom error has been found by an user so I went to update last MBot_F version to a Generation2 package in order to prevent version mismatch errors. This update has been added in first post and the GDrive link described there. Old versions are removed because I do not have plans for using them at this moment.
Point2: Maps goofing and so called navigation networks which are not following Bot Pathing rules are not subject for discussions toward MBot and neither sh!t codes a la "BotPack.CTFGame.AssessBotAttitude" - that's another guy in charge for fixing that.
- papercoffee
- Godlike
- Posts: 10451
- Joined: Wed Jul 15, 2009 11:36 am
- Personal rank: coffee addicted !!!
- Location: Cologne, the city with the big cathedral.
- Contact:
Re: Short Bot Note
Me too, though I'm still using version C! Anyway big thanks to sektor for the work on the botspapercoffee wrote:I should finally update my MBot ...I think I still use version B.
![goodjob :gj:](./images/smilies/goodjob.gif)
- sektor2111
- Godlike
- Posts: 6413
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Short Bot Note
You can keep or use what is more suitable for you. I was only trying in next version G which I'm studying for now, some path pruning as another attempt to get over those loops... Maybe doesn't worth many efforts because maps can be patched and even edited due to new XC add-ons. I can handle even manually creating good routes pretty much compatible with default Bot too. Also if default Bot doesn't jump I have "Bot_Jumper" types that can be injected or mapped and then... it's all good. For my needs I won't use default Bot because... it's not sanitized as I wanted.
-
- Experienced
- Posts: 86
- Joined: Thu Nov 03, 2011 5:12 am
Re: Short Bot Note
Began a subclass of these in yet another attempt to work towards getting a satisfactory bot for BRUT.
It will take a while, currently I feel it can still take me forever.
Unfortunately surely not an easy quick-win to be had in this endeavor for a newbie like me, plus unfamiliar with the original Bot code or the changes MBots bring to it.
It is the right way but too complicated for me for a days job.
I managed to make them quite braindead quite fast. >_<
Also my botch job would require XC_Engine I bet as I have not differentiated so neatly as Sektor did.
And to mock me even more they currently clip into the ground lol.
Gustavo's mod build system and being able to diff my overridden parts to the originals fast and easy would likely help.
Switching between the text of classes in UEd is sloooow and it jumps around a little on reloading a previous one ...
Sektor do you have a ready MindReader adaption for MBots?
I made myself one for FerBotz but if you already had one ready ...
It will take a while, currently I feel it can still take me forever.
Unfortunately surely not an easy quick-win to be had in this endeavor for a newbie like me, plus unfamiliar with the original Bot code or the changes MBots bring to it.
It is the right way but too complicated for me for a days job.
I managed to make them quite braindead quite fast. >_<
Also my botch job would require XC_Engine I bet as I have not differentiated so neatly as Sektor did.
And to mock me even more they currently clip into the ground lol.
Gustavo's mod build system and being able to diff my overridden parts to the originals fast and easy would likely help.
Switching between the text of classes in UEd is sloooow and it jumps around a little on reloading a previous one ...
Sektor do you have a ready MindReader adaption for MBots?
I made myself one for FerBotz but if you already had one ready ...
- Attachments
-
- BRUTMBot.u
- This is not suggested to get played with yet.
Also a medium Accessed None galore is included already (currently still anyway) - (175.25 KiB) Downloaded 15 times
- sektor2111
- Godlike
- Posts: 6413
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Short Bot Note
"Reading" their mind I think can be more advanced now-days with the performance price to be payed. In previous method I adapted that "Verbose" stuff from event -> "event UpdateEyeHeight(float DeltaTime)"
Section which "I loved" is this one:
The deal is that if Bot is set with bVerbose = True, if you apply F5 TeamView or in a Local DM Game just F5, it will print on screen what it does - if in code all requirements are completed.
What can be find - samples:
- MoveTarget - already shown;
- Focus;
- Last Routecache number - if under 16;
- Last Node in a full route;
- How many Paths are to the goal;
- Roaming distance to a supposed goal (Inventory, Enemy, Flag, Fort, ControlPoint); -> errors for lifts with hard-coded data...
- Time taken for reaching at goal ? Perhaps Lifts timers will inject some errors too...
Lasts calculations must be linked in PickDestination and used temporary dynamic vars completed here, in main movement states, or else paths-net internal chain is changed in next milliseconds by another Bot... and report will deliver fake news.
At this time I don't have plans for these as long as I can see enough from Editor (credits for primary code goes at Buggie) and game stage might reveal if some spots have movement problems. For connecting/testing logic paths I don't need too much run-time debugging.
Section which "I loved" is this one:
Code: Select all
for ( P=Level.PawnList; P!=None; P=P.NextPawn )
if ( P.IsA('PlayerPawn') && (PlayerPawn(P).ViewTarget == self) )
{
bViewTarget = true;
if ( bVerbose )
{
if ( (Enemy != None) && Enemy.bIsPlayer )
P.ClientMessage(PlayerReplicationInfo.PlayerName@"Orders"@orders@"State"@GetStateName()@"MoveTarget"@MoveTarget@"AlternatePath"@AlternatePath@"Enemy"@Enemy.PlayerReplicationInfo.PlayerName@"See"@LineOfSightTo(Enemy), 'CriticalEvent' );
//All future stories goes here - perhaps last node in the searching chain up to a nearby actor - if is InventorySpot, just print it's MarkedItem - if exists.
What can be find - samples:
- MoveTarget - already shown;
- Focus;
- Last Routecache number - if under 16;
- Last Node in a full route;
- How many Paths are to the goal;
- Roaming distance to a supposed goal (Inventory, Enemy, Flag, Fort, ControlPoint); -> errors for lifts with hard-coded data...
- Time taken for reaching at goal ? Perhaps Lifts timers will inject some errors too...
Lasts calculations must be linked in PickDestination and used temporary dynamic vars completed here, in main movement states, or else paths-net internal chain is changed in next milliseconds by another Bot... and report will deliver fake news.
At this time I don't have plans for these as long as I can see enough from Editor (credits for primary code goes at Buggie) and game stage might reveal if some spots have movement problems. For connecting/testing logic paths I don't need too much run-time debugging.
Re: Short Bot Note
So~ what are the key differences between MBots and FerBotz? I get the impression that both can be used in the same match without issue, so I'll likely run a match myself out of curiosity. Would still like to hear some details from either of you, though.
-
- Skilled
- Posts: 163
- Joined: Sat Mar 24, 2012 1:37 am
Re: Short Bot Note
Hopefully you don't mind me tagging along.
At base, I think Mbots tackles a lot of the issues that stock bot has with map navigation. For the rest, maybe Sektor can provide more detail because there is way more stuff that either I don't remember or forgot. But I do believe there are also combat changes and various other adjustments to fix bad bot behavior. Id like to see Sektor make a bot that is more crazy in jumping and dodging though
![lol 2 :lol2:](./images/smilies/lol.gif)
Ferbotz on the other hand is a subclass of Pawn, separate from stock bot. Because of that there can be issues with custom gametypes. Stock gametypes work well from what I remember. Furthermore, because ferbotz is seperate from stock bot class, Higor was able to add a bunch of features and not worry so much about the hardcoded aspect; started from the ground up from nothing. To be honest, you shouldn't have any issues running Mbot and Ferbotz simultaneous in your matches. As a matter of fact, this creates rather very fun offline sessions since you got stock bots, mbots and ferbotz running at the same time, all of which are different. At times, certain sessions look no different than what id see on a server.
- sektor2111
- Godlike
- Posts: 6413
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Short Bot Note
I must specify than MBot was a stuff decided after getting tired of errors spread around and their loops in certain cases. These weren't entirely solved but somehow mitigated. Probably the verbose would be better to have more details but capturing data is possible to cause performance issues - hunting their goal. I was interested to find out where wants to go exactly a Bot and I studied FindPath.... whatever. But that thing tells nothing about how was called and where is final point. Now I know that we can calculate route but... it will be called a linked list which might not be nice in those maps with "improved paths" loaded with more useless data... and combos going through floors and... the rest. As a note, me one I was capable to generate edited versions of stock maps having files smaller than originals without to move anything without reducing too much data. Only deleting tags from brushes, OldLocation and useless vars charged during pathing process decreases map size between 30-100 kb depending on map. Here we have some jumpy spots where... I could not do too much without to ruin other stages and then... I quit trying to adjust jumps in other way. It only generates 20 fixes and other 22 bugs virtually speaking. But no bugs are encountered if map is executed correctly - unfortunately EPIC is not in this circle, all of them were working harder against Polge's notes. I don't need to quote document and images with original works executed in opposite direction.
-
- Skilled
- Posts: 163
- Joined: Sat Mar 24, 2012 1:37 am
Re: Short Bot Note
lol. Although, one must give them credit for later iterations. It's insane how much of a jump they made from UE1 to UE2 but that is probably more attributed to engine, not so much map pathing.sektor2111 wrote: ↑Mon May 30, 2022 5:13 pm unfortunately EPIC is not in this circle, all of them were working harder against Polge's notes. I don't need to quote document and images with original works executed in opposite direction.
- sektor2111
- Godlike
- Posts: 6413
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Short Bot Note
Because I was often knocked in head about my crap posting, I'll show you some proof toward what I had to deal in a new Bot but not helping all time.
Document
Next ? Here you go...
In exchange, the same map does sometimes issues here.
#2
As between UE1 and UE2 - UE1 being more simple, we have some capability to solve these even in rented servers getting used to "restore lost stock maps", by using another folder happily defined in INI file and preventing trashes to get loaded by whatever MapVote stuff. If not possible, then patching using hard-way might do something, I can move those items and PathNodes if I have to do that.
And now some cheap and less useful "propaganda":
And the things with visible each-other is ONLY for Plain Paths - PathNodes and similar ones. Combos, Teleporters are already demonstrating that paths are working if are created even if are not visible each-other.
You have described the need for adjusting Z. And NO, the problem is the height not the distance... Connected paths are working even for 1200 UU distances if you can map them, and it's not like Pawn won't move because next node is far from 350 UU.
Resuming, the question is: What kind of Bot do we need for dealing with stock as first row of issues ? And then... non-stock ones are more "entertaining" at this point.
Document
And execution...S_Polge wrote: Since PlayerStarts and Inventory will be placed on the navigation network, the designer can (and should) not place PathNodes where these other NavigationPoints can substitute.
And I witnessed some times issues when they were crawling here...
Next ? Here you go...
Indeed, very very rare issues here but it's against docs.
In exchange, the same map does sometimes issues here.
No issues in whatever custom DM game where Items are relocated UNDER InventorySpot - the logic is: If InventorySpot was placed by Scout in a navigable spot then item should be there too... and preventing Bot from bouncing repeatedly into that wall. Of course a Bot could be a bit polished for keeping direction until Item is clearly visible but... that's more code to execute. The faster for Engine it's just putting damn items normally in first second and... done.
#2
Adjusting Z probably is confusing as long as it wasn't specified anything else, and here we go again - definitely Nodes were hidden here for preventing novice user to see that piece of crap - but we can see...S_Polge wrote: Bots will have problems if the NavigationPoints are too high off the ground. Make sure that the NavigationPoint is no more than 1.5x the bot's collisionheight off the ground. This will normally be the case automatically, but in a few situations (such as very steep ramps), the level designer may need to manually adjust the Z position of the NavigationPoint.
And ? And we know what's about our flag carrier here, a pretty often occurrence.
As between UE1 and UE2 - UE1 being more simple, we have some capability to solve these even in rented servers getting used to "restore lost stock maps", by using another folder happily defined in INI file and preventing trashes to get loaded by whatever MapVote stuff. If not possible, then patching using hard-way might do something, I can move those items and PathNodes if I have to do that.
And now some cheap and less useful "propaganda":
If said spot is aiming Inventory - the creature delegated to gain that is... BOT slash BOTS. There will be a RED line (actually two lines mixed) which if are placed normally are NOT having ANY ISSUE. 700 UU ? Because of what ? You do paths at 1000 UU. Bot thrown between these two points is logically placed at 500-600 (depending on location) distance from these. And then ? And then it will enter the network natively at 800 UU so there is no problem. Anything else ? Yes, we can have UScript solutions for entering the network even over 2500 UU distance - I WROTE such stuff and it's working normally.S_Polge wrote: Paths need a line of sight to each other, clear to the width of the maximum width (2 * collisionradius) of creatures which will use this path. PathNodes should not be placed more than 700 units apart.
And the things with visible each-other is ONLY for Plain Paths - PathNodes and similar ones. Combos, Teleporters are already demonstrating that paths are working if are created even if are not visible each-other.
S_Polge wrote: On stairs and ramps, the PathNodes should only be 350 units apart.
![Omfg! :omfg:](./images/smilies/omfg.gif)
Resuming, the question is: What kind of Bot do we need for dealing with stock as first row of issues ? And then... non-stock ones are more "entertaining" at this point.
Re: Short Bot Note
Got curious to see the MBots & XBots in action separately, so I recorded two DM-Tempest & CTF-Beatitude matches respectively.
Question: Does having the XBots mutator active affect the MBots if they're on UT's default bot list? Is it even okay to add MBots to the XBots lists? o.O
Note: I realized after the first recording that I should've set all the bots to better stats instead of average, but wasn't willing to go through the trouble by that point. >.>
The videos are below. Do with them what you will, but always credit.
UT99 MBots test run - DM-Tempest (8v8) - Hardcore Adept AAS
UT99 XBots test run - DM-Tempest (8v8) - Hardcore Adept AAS
UT99 MBots test run - CTF-Beatitude (8v8) - Hardcore Adept AAS
UT99 XBots test run - CTF-Beatitude (8v8) - Hardcore Adept AAS
Question: Does having the XBots mutator active affect the MBots if they're on UT's default bot list? Is it even okay to add MBots to the XBots lists? o.O
Note: I realized after the first recording that I should've set all the bots to better stats instead of average, but wasn't willing to go through the trouble by that point. >.>
The videos are below. Do with them what you will, but always credit.
UT99 MBots test run - DM-Tempest (8v8) - Hardcore Adept AAS
UT99 XBots test run - DM-Tempest (8v8) - Hardcore Adept AAS
UT99 MBots test run - CTF-Beatitude (8v8) - Hardcore Adept AAS
UT99 XBots test run - CTF-Beatitude (8v8) - Hardcore Adept AAS
- Attachments
- sektor2111
- Godlike
- Posts: 6413
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Short Bot Note
These are two different things. XBots is a mutator dealing with Bots, MBot means another Bot, not a mutator - it's Pawn.
Access at properties is available due to INT file. I'm tempted to do INT files for my mods generally for having access even in preferences menu-command...
Access at properties is available due to INT file. I'm tempted to do INT files for my mods generally for having access even in preferences menu-command...
Latest version is not very shared because... I don't like it 100%. There I have to figure some movement problem when are defending at random, not a priority work right now but I listen if anybody around has something to show or... whatever good tweak...
Last edited by sektor2111 on Sun Jun 05, 2022 10:40 pm, edited 2 times in total.