Short Bot Note

Need some nice Mods? Here, you are right!
Post Reply
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Short Bot Note

Post by sektor2111 »

If you were asking what I've been doing last time, then I'll answer... maybe I did something - or maybe not very. I have modified Bot class into subclasses in purpose to create other Bots able to join normally in games like defaults but having small modifications. I cannot say then stuff is ready, maybe other people want more so stuff is available with full compilable resources. MBOT is the string included into the name of archive(s) - MBot comes from let's say Modified Bot or My Bot.

Short description tech related:
- wrapping (or so called sanity check) "if (Weapon != None)" else if I forgot whatever state feel free to put that where is missing;
- function CanFireAtEnemy() - looks like Bot has more mercy with doors (Doors are innocent LOL);
- state roaming has a few modifications - Don't like ? Put back default;..:
a) PickDestination will call at a moment something to gain Navigation even at 3500 UU range (if has been nasty boosted out - MH-ArdenValley.... cases);
b) Being loaded a bit with weaponry in DM will attempt to hunt an enemy (even ScriptedPawn);
c) It is not interested in a very very closer InventorySpot - attempt to remove stupid engine load while skating between 2 closer nodes - it's mapping fault but... whatever I did not loaded UScript more because at a moment with a wrong code will cause a nasty lag - this state is very powerful;
- faster in high skill - higher jump - I wanted them more challenging without using "adds";
- Because I did not find any valid information about "FindBestInventoryPath()" used intensive by Bot I was unable to debate things different so...

Being a child of Common Bot:
- will use JumpSpots and the rest of stuff common for Bot only - READ AGAIN;
- will use Bot specific A.I. weaponry code;
- will respond at TeamGamePlus A.I. directives as normal Bots are doing.
More Info has been placed in package. Package is stored in a G00gledrive folder which might be updated from time to time depending on needs which is here:
https://goo.gl/y7iBbu
I have other works started and functional in big parts (shared there as well) - feel free to mess with them if you can understand what is about.
Because MBot can be configured in User.ini it might hold different skins or things compatible with common Bot.

Edit July_31_2017:
Added link to folder with these Bots because there are readers which are reading one single page so they are going outdated.

Edit April_14_2019
An user has reported me some errors which I could not figure in my games:

Code: Select all

MTFemale1Bot5 (State MBot_F.MBot_F.Roaming:072D) Accessed None
MTMale2Bot1 (State MBot_F.MBot_F.Roaming:0735) Accessed None
I think here was missing some "bDeleteMe" check because... state changes in UE1 might cause delayed calls - as seen already in pawns and then I think another small tuning might be useful.
In order to not have any mismatch version with this MBot_F, I did a Generation update conformed with previous version.
Here is Generation2:
MBot_F_Gen2_updated.zip
(3.54 MiB) Downloaded 107 times
The rest of Botpack craps and maps goofing where pathing rules are not taken in account are not my problem and neither toward "weapons".
Other issues coming from MBot are subject for discussions. I'll drop this update in my GDrive too, in a couple of minutes.

Edit 2022: - A bit of topic cosmetics behind a recent forum update, making a mess with center alignment of attached files, after a few attempts to wrap and remove spam fake centered attachment.
Last edited by sektor2111 on Sat Apr 09, 2022 7:24 pm, edited 9 times in total.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Short Bot Note

Post by sektor2111 »

Quote at Engine.Pawn class

Code: Select all

var		bool		bHunting;			// tells navigation code that pawn is hunting another pawn,
										//	so fall back to finding a path to a visible pathnode if none
										//	are reachable
I guess Polge forgot this detail in State Roaming - > PickDestination. In My CTF I did a replacement, but for DM games MBot will be instructed with bHunting (verbosing intention) "cuz" is nice.
Verbosing.jpg
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: Short Bot Note

Post by papercoffee »

Soooo with this I can create a Loque who really is superior?
Or make an unbeatable Xan?
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: Short Bot Note

Post by EvilGrins »

Sounds like it may be fun to give a go, depending on how it's applied.

Is Mbot like a summonable monster? It doesn't sound like something that would come up in the bot lists, sounds more like a much shorter UTDMT really.
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: Short Bot Note

Post by sektor2111 »

I'm not interested about "summon". I was editing my User.ini according to document written by me (sometimes I forgot things when I'm thinking in 4 directions). After declaring classes only (using copy-Paste for speed) they enter in games using the rest of data normally: skin, name, voice.

Verbose History:
A dude was digging Internet for info related to "Bot Mind". Nah, Bot is mindless - is a script. But... considering people's curiosity, MBot might verbose what wants at a moment.

Description of MBot mind:
- initialize and wait for start;
- Wick armed - roam to some items to gain a lil power;
- Has almost number of weps from Level or a few weapons ? - look for enemy pawns checking head of PawnList (32 pieces if are available);
- if got some enemy, go for it, do not ignore closer inventories, but ignore those too much closer - please try to not get stuck;
- Got slapped into a field too far from Path-Net - look for a PathNode around 3500 range and run there with any matter - better die and respawn rather than camping useless (available in TeamGames ordered with Attack or Freelance);
- again out of load - get items sent by Engine;
- loaded but no enemy available ? Get random Inventories.
- No random Inventory reachable ? Stay a bit and retry later;
- Inventory available ? Have Translocator ? Use TLoc to skip several paths as long as no enemy disturb order;
- Game Over ? The End.

So it won't play chess, but will try to play UT. Properties of Bot usually are located in User.INI. If INT file doesn't help then you can screw them right there in User.INI. Loque is... Loque, but... little adjusted here and there.

To summarize purpose:
It wasn't in purpose an ExtraHypwerOverSuper Bot. I was interested to get rid of several Accessed Nones and a few deviations.
User avatar
Dr.Flay
Godlike
Posts: 3347
Joined: Thu Aug 04, 2011 9:26 pm
Personal rank: Chaos Evangelist
Location: Kernow, UK
Contact:

Re: Short Bot Note

Post by Dr.Flay »

It would be interesting to try a team of these against a team of Higors Bots.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Short Bot Note

Post by sektor2111 »

This MBot is an USCRIPT which is tens times slower than C++ used by Botz so what if I'm not interested to compare a bicycle with a car or a MagLev train?
I did not screw aiming as long as I don't need to see me defeated all the time.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Short Bot Note

Post by sektor2111 »

Grrr, 2 obscure errors I found in state hunting (monsters doesn't include that, LOL) being originally added for a "superior intelligence".

If Bot could not see enemy for a while (LastSeenTime) quit tracking it. The question is: What LastSeenTime ? LastSeenTime I'm very guessing has everything to do with enemy which... might get vanished (ON-LINE) - usually people are leaving when Bot is bitching to avoid losing position in their "awesome" stats. In first attempt to rewrite this one I just have removed some of errors but not all of them so... I did a revision, these Accessed Nones happening when a connection has closed.
Spectra
Masterful
Posts: 542
Joined: Tue Jan 22, 2013 5:23 pm
Personal rank: Nullified!
Location: (X) Unable To Locate....

Re: Short Bot Note

Post by Spectra »

Just a dumb question...
Is it possible to make the bots do Rocket Jumping instead of Impact Hammer or Jump boots??
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: Short Bot Note

Post by papercoffee »

Rocky wrote:Just a dumb question...
Is it possible to make the bots do Rocket Jumping instead of Impact Hammer or Jump boots??
This is a good question... If this is possible they could use our Salad Thrower properly.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Short Bot Note

Post by sektor2111 »

Technically we need such "other Bot" because original Bot and JumpSpot are linked like a mother and child + Impacthammer (almighty father), simply Bot includes:

Code: Select all

state ImpactJumping
{
.... //more lines goes here and...
	function ChangeToHammer()
	{
		local Inventory MyHammer;

		MyHammer = FindInventoryType(class'ImpactHammer');
		if ( MyHammer == None )
		{
			GotoState('NextState', 'NextLabel');
			return;
		}
		PendingWeapon = Weapon(MyHammer);
		PendingWeapon.AmbientSound = ImpactHammer(MyHammer).TensionSound;
		PendingWeapon.SetLocation(Location);
		if ( Weapon == None )
			ChangedWeapon();
		else if ( Weapon != PendingWeapon )
			Weapon.PutDown();
	}

	function EndState()
	{
		local Inventory MyHammer;
		MyHammer = FindInventoryType(class'ImpactHammer');
		if ( MyHammer != None )
			MyHammer.AmbientSound = None;
	}
....
Linked well with ImpactHammer and JumpSpot. These should be implemented with new A.I. (pawn and stuff), I think is doable even with default JumpSpot as long as it calls state without special mention.

Aside note: Once I was using 2 tiny BioGel pieces to pass over some lava (MH-LongCorridor_d+ or such). Options for jumping are a lot but... A.I. has to be rewritten.

It also might be a bit difficult to control their direction as long as they can accelerate unexpected on Z reaching in the sky in less than 2 seconds. Other factor is Level's gravity, it also need some maths which I don't like. Not even Impact Jumping has the best ever accuracy. I was recreating Bot support into a custom map in a small place. They failed ImpactJump a lot of times so I have happily rewritten a custom NavigationPoint a cousin of Higor's FV_LinkedPoint which suggest translocation (if Translocator is available) when pawn is lower than target point and will slide like a butterfly when pawn is up and target point is down, this NavigationPoint doesn't block pawn able to fly (if that one wants that path). If you are interested about such mapping tweaks we can move to that MyLevel thread.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Short Bot Note

Post by sektor2111 »

And... because I did not know native Bot's navigation in DM (engine's directives) I made a tool/mutator in purpose to travel like Bot does. Will run at mutate mebot command spawning a navigation lamp (which has to be touched) or NavigationPoints used by Bot. I was writing a few lines in document included. See your DM habits here:
Edit:
Removed old Version . Next one available - V2
Last edited by sektor2111 on Tue Jan 12, 2016 5:44 pm, edited 2 times in total.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Short Bot Note

Post by sektor2111 »

I have added colors + tiny changes here:

I'm thinking to make a tester for CTFGame (including AlternatePath usage). That one probably is a little harder, I'll see what I can do...
Attachments
BotyMan2.zip
(349.16 KiB) Downloaded 145 times
Last edited by sektor2111 on Mon Nov 09, 2015 7:53 am, edited 1 time in total.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Short Bot Note

Post by sektor2111 »

It's unbelievable how much bugs are properly chained for constant headaches.

In some heavy maps at a moment (known or less know monster bug) Bot was ghosting too, being rammed - I could see other funky things in the past when was suiciding using an overpowered weapon (probably some function was messed up in that weapon).
So I was trying to prevent roaming in ghost mode and things went well... for a few weeks :what: .

I have decided to use support for old stuff - problems were coming back :mad2: . Bot was getting Invisibility - well, it was hidden - ghost-like... no comment about what was happening.

I changed deal using collision check in hoping to not find other evilized troubles. Else, if will keep happening I'll delete that stuff causing problems... I have an update dated September 8 placed in fore-mentioned location.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Short Bot Note

Post by sektor2111 »

BotyMan2 has been updated because it was using the old version as dependency so it was not run without old version, now it should be fine standalone without other files. It was causing dependencies due to old INI used for UMAKE, LOL.
Post Reply