Mods that enhance the Bot AI

Do you search a certain mutator, mod, skin, map, everything else?
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil
Contact:

Mods that enhance the Bot AI

Post by Gustavo6046 »

Hello, my dear gentlemen. I've recently made a simple Translocator subclass/modification that could create "jump pads" on the fly with swJumpPads, and I've noticed bots won't use them to reach their destination, unless they're pushed to them. However, they do go after Inventory items, which create InventorySpots on the fly as well.

So I thought to myself, "what if, instead of bringing the existing bot to the jump pad, we had a bot that could use these?". And that's when I realized the community must have already created bots that can perform an even wider array of actions and navigational possibilities than before (come on, it's already 2018!), which should include dynamic stuff like my jump pads!

So now I'm here, asking:

Are there any mods that enhance the AI of the bot and give it more navigational freedom, without fully replacing it?

Subclassing is OK, as long as it is easy and intuitive to add the bots. (FerBotz and XBots are therefore not going to be in this list!)

I'm eagerly waiting for your answers. Thank you.
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

Weapon of Destruction
User avatar
papercoffee
Godlike
Posts: 10443
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.
Contact:

Re: Mods that enhance the Bot AI

Post by papercoffee »

I say, a good bot pathing is the answer. As a mapper you have to guide the bots through a map and tell them what they have to do on certain spots.
Jump-spots, lift-exit, trans-destination etc.

And since you excluded FerBotz already... Good Luck.
Last edited by papercoffee on Sun Feb 18, 2018 8:53 pm, edited 1 time in total.
Reason: typo
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil
Contact:

Re: Mods that enhance the Bot AI

Post by Gustavo6046 »

I have more really excluded FerBotz since I already have it. (I still didn't figure out how to add them, but that's a problem in my side so it doesn't count :P )
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

Weapon of Destruction
Terraniux
Masterful
Posts: 717
Joined: Mon Jan 05, 2009 8:08 pm
Personal rank: Banished member

Re: Mods that enhance the Bot AI

Post by Terraniux »

Are there any mods that enhance the AI of the bot and give it more navigational freedom, without fully replacing it?
Didn't program Nelsona ( Sektor) such things? I mean he is all about that!

He does have a little nufty website tho , but I forgot it.
This member can only post when permitted.
User avatar
papercoffee
Godlike
Posts: 10443
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.
Contact:

Re: Mods that enhance the Bot AI

Post by papercoffee »

Terraniux wrote:
Are there any mods that enhance the AI of the bot and give it more navigational freedom, without fully replacing it?
Didn't program Nelsona ( Sektor) such things? I mean he is all about that!

He does have a little nufty website tho , but I forgot it.
It's in his profile.

Edit-------------------------------
Oh I forgot ...Mr Loathsome has a mutator which can enhance the UT performance and it'll also enhance the bot behaviour as a byproduct. They act much faster and more deadly.
I forgot the name ...have to look after it.
User avatar
ExpEM
Adept
Posts: 298
Joined: Wed Nov 09, 2016 1:48 am

Re: Mods that enhance the Bot AI

Post by ExpEM »

Gustavo6046 wrote:However, they do go after Inventory items, which create InventorySpots on the fly as well.
InventorySpots are created during path building in UEd.

Bots wont use NavigationPoints created on the fly as they aren't attached to the path network.
Signature goes here.
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil
Contact:

Re: Mods that enhance the Bot AI

Post by Gustavo6046 »

ExpEM wrote:InventorySpots are created during path building in UEd.
Well, how else do bots find and pick up dropped weapons and pickups? The factor that would concretely determine whether the inventories are added to the path network is whether bots actually navigate toward items, once their location is known, instead of simply walking or gravitating toward them.
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

Weapon of Destruction
User avatar
OjitroC
Godlike
Posts: 3605
Joined: Sat Sep 12, 2015 8:46 pm

Re: Mods that enhance the Bot AI

Post by OjitroC »

Gustavo6046 wrote: Are there any mods that enhance the AI of the bot and give it more navigational freedom, without fully replacing it?
As alluded to earlier, have you tried sektor2111's MBots? Go to his website or search this forum (as there is a thread which deals with them).

MBots are 'tweaked' and their behaviour is somewhat different to the default bots. I play a lot of TDM and it always annoys me when bots go off to grab pickups, etc even when ordered to "Follow Me" (as it breaks up the 'group' and sometimes defeats my stealthy approach to hunting down the other team). The MBots will stick with me regardless and it can be difficult sometimes to get them to pick some stuff, even health when they need it. Needless to say, though, TDM is much more like a team game with MBots on my team.

I don't know if they will do what you want but give them a go.
User avatar
papercoffee
Godlike
Posts: 10443
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.
Contact:

Re: Mods that enhance the Bot AI

Post by papercoffee »

Gustavo6046 wrote:
ExpEM wrote:InventorySpots are created during path building in UEd.
Well, how else do bots find and pick up dropped weapons and pickups? The factor that would concretely determine whether the inventories are added to the path network is whether bots actually navigate toward items, once their location is known, instead of simply walking or gravitating toward them.
We created for our Mansion of Choas map a movable Inventory-Spots (weapon spawn and health spawn) with exactly that kind of hack. They where placeable "randomly" during the match ...but the big drawback was that those Inventory-Spots could not put to sleep when someone picked up the item and the bots where always attracted to it. Even so the spot was empty they would never leave that area.

You must imagine bots like very dumb hungry blind people... if the smell of a good meal is still in the air, they want to have it, even so it's long eaten by others or them self.
User avatar
ExpEM
Adept
Posts: 298
Joined: Wed Nov 09, 2016 1:48 am

Re: Mods that enhance the Bot AI

Post by ExpEM »

Gustavo6046 wrote:
ExpEM wrote:InventorySpots are created during path building in UEd.
Well, how else do bots find and pick up dropped weapons and pickups? The factor that would concretely determine whether the inventories are added to the path network is whether bots actually navigate toward items, once their location is known, instead of simply walking or gravitating toward them.

Code: Select all

var Weapon EnemyDropped;

Code: Select all

	if ( (EnemyDropped != None) && !EnemyDropped.bDeleteMe 
		&& (EnemyDropped.Owner == None) )
	{
		DroppedDist = VSize(EnemyDropped.Location - Location);
		NewWeight = EnemyDropped.BotDesireability(self);
		if ( (DroppedDist < MaxDist) 
			&& ((NewWeight > MinDistraction) || (DroppedDist < 0.5 * MaxDist))
			&& ((EnemyDropped.Physics != PHYS_Falling) || (Region.Zone.ZoneGravity.Z == Region.Zone.Default.ZoneGravity.Z))
			&& ActorReachable(EnemyDropped) )
		{
			BestWeight = NewWeight; 		
			if ( BestWeight > 0.4 )
			{
				MoveTarget = EnemyDropped;
				EnemyDropped = None;
				return true; 
			}
			BestInv = EnemyDropped;
			BestWeight = BestWeight/DroppedDist;
			KnowPath = BestInv;
		}	
	}	
	EnemyDropped = None;
ActorReachable(EnemyDropped) is the interesting bit.

Code: Select all

//Reachable returns what part of direct path from Actor to aPoint is traversable
//using the current locomotion method
native(521) final function bool pointReachable(vector aPoint);
native(520) final function bool actorReachable(actor anActor);
EnemyDropped keeps track of the dropped weapon from the Bots last kill, if they can't grab it, they forget it. No other bot is made aware of it, it is not added to the network.
Signature goes here.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Mods that enhance the Bot AI

Post by sektor2111 »

OjitroC wrote:The MBots will stick with me regardless and it can be difficult sometimes to get them to pick some stuff, even health when they need it. Needless to say, though, TDM is much more like a team game with MBots on my team.
MBot in roaming is not always interested about nearby inventory, if has a goal will head to that goal unless something is pushing it as "freelancer". I got tired of crapped maps where default Bot was ALWAYS trying to get "Reachable items" but falling almost to death. If you don't like MBot's habits don't use this class, because I will use them as a permanent stuff as long as they are exactly what I need, of course I still have to put something here and there, but that's not a critical priority, perhaps I will not add other things, but patch modules for maps have their advantages - truly doable nowadays...

To summarize you don't need a super duper intelligent Bot, intelligence can be called when it's needed without to force engine permanently.

However, I'll quote a few default needs that can be added in whatever "Bot_Mutator" or Actor from map - injected or mapped:
- guarding water zones - always check for physics swimming;
- don't be an ass on a Mover(Base) - just wait it to stop - yeah simple and doable the tweak for jumping from an horizontal lift too early without special crapping (ooops mapping) - else if lift is moving on Z you can even jump from it if you can figure a closer LiftExit;
- don't force an obstruction if your speed is low - try to jump and take a break;
- no line of sight to target from legs ? JUMP - is a damn obstruction;
- guard land point on X,Y - in BT zones (when mappers will learn to do them) you will not need to jump too far into death, just block velocity and fall properly to the destination;
- Boosted out of path-net from whatever cause ? If exist a line of Sight to a Pathnode at 2000-3000 UU just move there with any matter if not engaged with an enemy;
- configurable camper option for sniper servers -> Direct line with enemy ? ShootTarget(Enemy) - no stupid decorations rotating and stacking around, no visibility checking, no dumb timers - that simple.
- Bad Spot - Bot is still almost in the same location for 20-30 seconds in a map with paths ? Move to RouteCache[1] or RouteCache[2] if reachable - this has to be written properly by whoever has a good idea toward it.

More "navigational freedom" is mainly IMPOSSIBLE with Stock Engine out of Editor - good luck with that... When you will learn to use XCGE you will have Way MORE options...
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil
Contact:

Re: Mods that enhance the Bot AI

Post by Gustavo6046 »

Thanks for your awesome and well-winded replies.

Yet, I wonder: is there any way to make a Bot use such translocator thing? (it creates permanent swJumpPads from the player's initial spot to the destination disc) I'm assuming not.
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

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

Re: Mods that enhance the Bot AI

Post by sektor2111 »

Gustavo6046 wrote:Yet, I wonder: is there any way to make a Bot use such translocator thing?
Bot can use Translocator in order to reach at certain target/location. This habit can be triggered by a wise actor in a needed spot or VIA Navigation directives - custom written nodes using "SpecialHandling" stuff, and here if we speak about mapping such things probably these can be divided in parts: custom teleporters or combos and the second method linking with brute force using XC_PathBuilder. In another format and ONLY by using XC_Engine you can deploy specific stuff in a target map during RUN-TIME where links are doable at will, so to speak "this" point will have a link with "that" point giving you almost full control. Last time I did way better deals than my first pathing spree for NavAdder - I even revised some of Server-Side modules, more work with these = more understanding how much is doable. Actually by developing new nodes you can make Bot/A.I. Pawn to do a lot of unusual things, even to jump randomly while is roaming, shooting some targets, playing victory dance, simulating fear, even sending written messages. Another option is like a "dynamic map", map has nothing special native but when it will figure XC_Engine will initialize a self attack - a self editing, mapping some paths accordingly, let's say that we can use term "XC MAP" type, working even in a plain server but way limited in case of using only default Engine.

According to topic and section Download Search I'm not sure if at this moment you can find some "tools" because these are a little newer things and I don't see too many people addicted to code such stuff. A large percent of them are just Bot HATERS, they are unable to manage a fart of the Bot, but... they are just hating, it's all what they know to do for Bot - HATE. Not the last thing, such a mod will need "eyes" if you want it for common usage as a normal mutator. Maps are... different, by dropping paths blindly result might go ugly, so mods that enhance Bot A.I. are not like an easy task as Outside things - mutators or Server-Actors. Think what Barbie said with MapPatcher - only such a dynamic thing can help + XCGE, for the rest... I have doubts. Default Engine is attacking navigation only in Editor and can do a "destruction-only" in run-time by removing some accessible data from Nodes or toggling things On/Off.

In mean time I'll do some experiments, but... ReachSpecs are a C++ duty out of UScript so I have doubts about any success here... Epic did not set any important Scripting support for this chapter, else mutators for pathing maps would be done for years...

Edit:
For chapter Translocator I have a recall about whatever actor which I wrote for mapping but it might be used even in a mutator working in maps with paths and game allowing translocator. Code can be tweaked with "Random" stuff. Take a look here...

Code: Select all

class TBooster expands Actor;

event PreBeginPlay()
{
}

event PostBeginPlay()
{
	InitialState = 'DoTracking';
	RemoteRole = ROLE_None;
	bMovable = False;
	SetCollisionSize(0,0);
	SetCollision(False,False,False);
}

function ScanAndPush()
{
	Local Bot aBot;
	Local Int J;

	J = 15;
	foreach AllActors (class'Bot',aBot)
	{
		for ( j=15; j >= 1; j-- )
		{
		if ( aBot.PlayerReplicationInfo != None && !aBot.bHidden && aBot.Health > 0 &&
			aBot.PlayerReplicationInfo.HasFlag == None && aBot.RouteCache[J] != None && aBot.MyTranslocator != None
			&& Mover(aBot.Base) == None )
		{		
			if ( FastTrace(aBot.Location,aBot.RouteCache[J].Location)
 				&& VSize(aBot.Location - aBot.RouteCache[J].Location ) < 1000
				&& VSize(aBot.Location - aBot.RouteCache[J].Location ) > 400
				&& !aBot.MyTranslocator.bTTargetOut )
			{
				aBot.bCanTranslocate = True;
				aBot.TranslocateToTarget(aBot.RouteCache[J]);
				if ( aBot.ActorReachable(aBot.RouteCache[J]) || ( aBot.Location.z+10 > aBot.RouteCache[J].Location.z ) )
					aBot.StopWaiting();
				J = 15;
				break;
			}
		}
		}
	}
}

Auto State DoTracking
{
Begin:
	Sleep (3.00);
	Disable('Touch');
	Disable('Trigger');
	bHidden = True;
LoopMe:
	if ( Level.Game != None && Level.Game.bGameEnded )
		GoTo('End');
	ScanAndPush();
	Sleep(2.00);
	GoTo('LoopMe');
End:
	LifeSpan=0.5;
}
Hint: In case of door borks you might use Trace with completing vectors, not FastTrace. For the map which I was tweaking this was suffice.
User avatar
EvilGrins
Godlike
Posts: 9668
Joined: Thu Jun 30, 2011 8:12 pm
Personal rank: God of Fudge
Location: Palo Alto, CA
Contact:

Re: Mods that enhance the Bot AI

Post by EvilGrins »

Kinda surprised nobody brought up Higor's babies · viewtopic.php?f=64&t=3805
http://unreal-games.livejournal.com/
Image
medor wrote:Replace Skaarj with EvilGrins :mrgreen:
Smilies · viewtopic.php?f=8&t=13758
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Mods that enhance the Bot AI

Post by sektor2111 »

EvilGrins wrote:Kinda surprised nobody brought up Higor's babies · viewtopic.php?f=64&t=3805
Also surprised for not figuring that FerBotz need some work around because they are way different and maybe a bit difficult to manage... Else they are probably OFF-Topic as long as Ferbotz are not BOT child types, Ferbotz are PAWN child classes. The question was about mods than Enhance Bot AI not Pawn AI.
Post Reply