Page 32 of 35

Re: FerBotz (new AI, global release 18)

Posted: Wed Mar 09, 2016 6:57 am
by Higor
Well, one of the mods/mutators you're loading is generating a 'clearArray' name entry.
I'd say BunnyTrack has something to do with it, but if you can do text searches withing binary files, you'll easily find out which one it is.

Unless you're in for yet another ugly hack...

Re: FerBotz (new AI, global release 18)

Posted: Thu Apr 07, 2016 3:37 am
by [rev]rato.skt
hi guys,


I have a problem when the Ferbotz enters the game soon after it leaves and enters a normal game bot...

Re: FerBotz (new AI, global release 18)

Posted: Thu Apr 07, 2016 4:35 pm
by Gustavo6046
[rev]rato.skt wrote:hi guys,


I have a problem when the Ferbotz enters the game soon after it leaves and enters a normal game bot...

Uhh, details? :P

Re: FerBotz (new AI, global release 18)

Posted: Thu Apr 07, 2016 8:43 pm
by Chamberly
[rev]rato.skt wrote:hi guys,


I have a problem when the Ferbotz enters the game soon after it leaves and enters a normal game bot...
Check an ini somewhere or something?

Re: FerBotz (new AI, global release 18)

Posted: Fri Apr 08, 2016 12:30 am
by [rev]rato.skt
[Core.System]
Paths=../System/Botz/*.u

[Engine.GameEngine]
;ServerActors=IpServer.UdpServerQuery
ServerActors=FerBotz.Botz_UdpServerQuery

[Engine.GameEngine]
ServerPackages=MVLA14UUb13C
ServerPackages=FerbotZ_cl_3

[CacusMapVote.CacusMapVote]
CustomGame[2]=(bEnabled=True,GameName="TeamGamePlus",RuleName="Siege Ferbotz",GameClass="SiegeIV_0025.SiegeGI",FilterCode="sgxFer",bHasRandom=False,VotePriority=1.000000,MutatorList="FerBotz.BotzMutator,NoMapProtection.NoMapProtection",Settings="MaxSpectators=4,MaxPlayers=18,MinPlayers=18",Packages="")

MapFilters[2]=sgxFer CTF-*

add folder Botz to
UnrealTournament\System\

logs

http://freetexthost.com/zv153uq5ma

Re: FerBotz (new AI, global release 18)

Posted: Fri Apr 08, 2016 4:50 am
by Chamberly
I didn't say server packages and all that. Just settings. Well, give me a few days to figure this out or so, I don't have my PC atm so I'll have to re-install and work with it.

Re: FerBotz (new AI, global release 18)

Posted: Fri Apr 08, 2016 5:21 am
by [rev]rato.skt
Chamberly wrote:I didn't say server packages and all that. Just settings. Well, give me a few days to figure this out or so, I don't have my PC atm so I'll have to re-install and work with it.
i wait thx.

Re: FerBotz (new AI, global release 18)

Posted: Sat Apr 09, 2016 11:38 pm
by [rev]rato.skt
I could find out WHAT caused the error, MinPlayers = 0 this is set to 0 , if not in the 0 Ferz not working,
but I have another doubt for him to create buildings in the siege as it does ? here he is not doing anything , or updates in created things...

Re: FerBotz (new AI, global release 18)

Posted: Sat Nov 05, 2016 10:13 pm
by a9902957@nepwk.com
Hello,

love this modding project of yours Higor!

Also like playing Unreal Badlands ( https://web.archive.org/web/20050101180 ... anual.html
http://www.moddb.com/mods/unreal-badlands1 ) to the music of LucasArts' Outlaws.

So I made some necessary adaptions to play the Wanted gametype with FerBotz <3 (well, should have made a new gametype and not touch Badlands.u but
"meh!" and the Script Editor not playing all that nicely in Wine (or is the doubling bug also there when run natively on Windows?) did not help it much either).

They have problems with reloading sometimes and not go actively enough for the dropped cards, but all in all they are competitive.


I gave it a quick try to make them go down the well in BL-Sundown but failed at that. :|


Also tried them with UnrealGod ( http://unrealtournament.99.free.fr/utfi ... God_16.rar ) and was delighted that UnrealGod detected them as players outright.
(They do not spend their skill points of course and are not roaming the maps but that could be helped of course. Great job on making this so easiely extensible and open to additions!)

I would also love to try them on Infiltration or Night's Edge (well, did so already for the latter but they are not getting a Loadout).

AirFightUT should have airnodes (however it has utterly different handling/gameplay, too).

http://www.ut-files.com/index.php?dir=M ... WAR2.0.zip has a jetpack pickup (and overpowered weapons).

Also tried them on the PlannerBot Test Release gametype together with PlannerBots, alas that would take some hacking, too.


:rock: :gj: :tu:

Re: FerBotz (new AI, global release 18)

Posted: Sat Nov 05, 2016 10:56 pm
by Chamberly
That is good to hear and what a good post! Glad you could take them out of the boundary and try other things.

@Rato it depends on map. They can play Siege maps - Clarion, Kanjar, and Niven. I'll work on expanding map playable soon once I get a hang of the editor.

Re: FerBotz (new AI, global release 19)

Posted: Thu Feb 09, 2017 2:37 am
by Higor
Version 19 update
This is a test build intended to test a widely rewritten package/class structure.
- Changes from this version:
================= BUILD IS NATIVE ONLY:
XC_Engine (v19) is required to run FerBotz
- Dummy pawn code entirely removed.
- Servers require XC_GameEngine.bUseNewRelevancy=True to display bots on clients.
- Bots that imitate a player type not supported in clients will look like Xan instead of being invisible (VA styled).
- UnrealScript-only classes and plugins can use XC_Engine natives (previously in FerBotz) for improved functionality.
Vastly improved elevator handling, botz can even assess when generic elevators can be at the nearest to them.
Botz are less likely to jump down bridges and other ledges during combat.
Path weighting rewritten, botz are more likely to select alternative routes.
Alternative UnrealScript pathfinder implemented, botz can find kill routes that give it a line of sight to a target.
Random Botz may take the face setting as name.
Botz added from list properly select a team.
Improved long range sight and sniping.
Combat profiles:
- Added 'EnemyTooClose' condition to weapon profiles.
- Fixed bug causing bots to not select appropiate weapon profile in arena matches.
- Improved Shock Rifle and Rocket Launcher usage at melee range.
- Weapon profiles loaded up to down, custom profiles are prioritized over default ones.
MonsterHunt profile reworked:
- Only compatible with the MonsterHunt prototype: https://github.com/CacoFFF/MonsterHunt-Rebuild
- Bots tend to hunt and clear most monsters.
- Less performance drain at high bot count
DLL changes:
- Botz is no longer a native class, now subclassed from FerBotz_cl_4.BotzClientPawn.
- Botz_PathLoader is no longer a native class, path loader uses XC_Core.BinarySerializer.
- Added Botz_NavigBase.ResetScriptRunaway function.
- Improved Botz_NavigBase.ClearAllPaths function, can relink previously pruned paths going through node being cleared.
Path builder:
- DynamicBotzPlayer displays real/path distance on each connection.
- Simplified and improved path pruning (some maps were broken due to this, recheck!).
Notes:
The alternative pathfinder is a lot slower in code, but completely immune to a bug that happens in big maps where paths don't work regardless of how well the network is built.
Interactions between gametype plugins and stuff like weapon profiles may lead to very weird behaviour (make sure you report everything you see).
Try MH-LongCorridor2006 with lots of Botz if you have it (plus the MH prototype).

Re: FerBotz (new AI, XCGE release 19)

Posted: Fri Feb 17, 2017 9:21 pm
by Zanna
Can someone explain how this works?
"mutate addbotz help" or any other of the parameters in the read me does not work
Did the whole "set up" and added the path in the .ini; added "Activar BotZ" as mutator, still nothing; not even the other one (player vs botz"

Did I miss something?

---ok i think I need the custom engine, lets get it
-- ok done, they seem to be working now

Re: FerBotz (new AI, XCGE release 20)

Posted: Mon Mar 06, 2017 11:37 pm
by Higor
Version 20 update

- Changes from this version:
================= BUILD IS NATIVE ONLY:
Path builder:
- Added Botz_DirectPlatformBelow path, it's a direct link that activates when it becomes walkable.
- Added Botz_NavigRemoverSmart, removes clustered/excess PathNodes and InventorSpot within its radius.
- Added Botz_Telewatcher, dynamically disables routes through disabled teleporters within its radius.
- Fixed bug preventing 45ยบ routes from being pathed upwards.
- Botz_NavigDoorSpecial paths can optimally remove links between other nodes blocked by a gate.
- Botz_NavigDoorSpecial works normally in case of one-way incoming paths.
- Botz_NavigDoorSpecial supports triggered doors.
- Various bugfixes on direct link node placement.
- Water reachspecs have added weight (as with unreal editor built paths)

New pathfinder:
Maps the entire path network and sets on each node the path's weight (that leads to said node).
Then objectives are evaluated based on said networks mapping, this allows botz and game profiles to
evaluate multiple goals by mapping the network once.
It is possible to even determine which of many objectives can be reachable sooner.
- Used for all (except inventory finding) pathfinding now.
- Ported to c++, can call an event to customize cost in the route network.
- Can be used to remap the network from a different starting point without having to recalculate the cost.
- It's possible to modify the requirements for allowed reachspecs during mapping.
- Fixed route caching bug causing bots to get stuck on walls.

Botz_LiftCenter path better handled by both Botz and other pawns.
Botz are less likely to get stuck at items.
Botz's weapons no longer freeze when they go out of ammo.
Shock rifle profile and combo code greatly improved.

Game profiles:
- Attacking code revamped, BotzTargetAdder.SuggestAttack is always called, then bot decides whether to get items or not.
** This lets SuggestAttack modify the bot's inventory picking priorities.
- MonsterHunt profile (MH proto only): prioritization of objectives according to orders:
-- Attack: MonsterWaypoints/MonsterEnd, Monsters, Triggers
-- Freelence: MonsterWaypoints/MonsterEnd, Triggers, Monsters
-- Defend: Triggers, Monsters, MonsterWaypoints/MonsterEnd
*** If bots try going through locked doors/gates, order 'defense'.
EDIT: Added this PNG file to visual tutorials, remember to check the DirectLink tutorial on how to connect these nodes to ANY other node.
PlatformBelow.png


=============================
The route mapper has it's downsides, as it only currently maps the entire path network and that can be slower on maps with way too many navigation points.
The upside is that it allows the coder to evaluate multiple 'endpoints' without performing pathfinding for each one.
Other advantages are that one can specify the Start Anchor meaning that pathfinding in air situations (or for hypothetical paths taken by other creatures) is possible.
If this goes well, it'll be implemented into XC_Engine in a not so distant future.



Anatomy of the route mapper:

Every NavigationPoint's VisitedWeight will indicate the 'distance/cost' of the shortest route between StartAnchor and said point.
If VisitedWeight is equal or above 10000000 then that means said node is unreachable from StartAnchor.

Code: Select all

//Modifiers:
// 0x0001:	no R_WALK routes
// 0x0002:	no R_FLY routes
// 0x0004:	no R_SWIM routes
// 0x0008:	no R_JUMP routes
// 0x0010:	no R_DOOR routes
// 0x0020:	no R_SPECIAL routes
// 0x0040:	no R_PLAYERONLY routes
// 0x0080:	soft-reset (VisitedWeight, prevOrdered) instead of hard-reset (+ cost, nextOrdered)

// When calling MapRoutes a 'hard-reset' will occur and all paths will be ready to be mapped
// PostHardResetEvent allows the user to modify NavigationPoint's cost inbetween a hard-reset and the mapping

// If you intend to change the StartAnchor after already having mapped the network,
// perform a soft-reset to avoid calculating path 'Cost' again
native final function MapRoutes( NavigationPoint StartAnchor, optional int MinWidth, optional int MinHeight, optional int Modifiers, optional name PostHardResetEvent);
This is an example function for locating StartAnchor near the bot, StartAnchor is a global variable here.

Code: Select all

//Only overrides anchor if found one
function bool LocateStartAnchor( optional bool bUnreachableAllowed)
{
	local float BestWeight, Weight;
	local NavigationPoint N, NewAnchor;

	BestWeight = -1;
	ForEach NavigationActors ( class'NavigationPoint', N, 2000)
	{
		Weight = 2 + int(FastTrace(N.Location)) - VSize(Location - N.Location) * 0.001;
		if ( (Weight > BestWeight) && (bUnreachableAllowed || PointReachable(N.Location)) )
		{
			NewAnchor = N;
			BestWeight = Weight;
		}
	}
	
	if ( NewAnchor != None )
	{
		StartAnchor = NewAnchor;
		return true;
	}
}
When a hard-reset occurs, every NavigationPoint's Cost is set to either:
= ExtraCost variable if bSpecialCost=False
= SpecialCost event if bSpecialCost=True
This event (if specified on MapRoutes) will allow the modification of Path's costs between the hard-reset and the route mapping.
Here the Botz increase cost of paths where he's been previously killed.

Code: Select all

// Increase cost of navigation points post MapRouts hard-reset
event CostBads()
{
	local Botz_BaddingSpot B;

	For ( B=MyBads ; B!=none ; B=B.NextSpot )
		B.ApplyBadding();
	if ( PlayerReplicationInfo.Team < 4 )
		For ( B=MasterEntity.TeamBads[PlayerReplicationInfo.Team] ; B!=none ; B=B.NextSpot )
			B.ApplyBadding();
}
This is an example function on how to build the route cache from a desired EndPoint, obviously we should check that this EndPoint.VisitedWeight is lesser than 10000000 to verify it's reachable.
This allows us to determine the next path to follow AFTER we've mapped the route.
There 10k arbitrary limit is there to prevent crashes.
This code skips elements in the route that are touching or too close to the bot.

Code: Select all

function NavigationPoint BuildRouteCache( NavigationPoint EndPoint)
{
	local int i;

	EndPoint.RouteCache = none; //Build the chain
	while ( EndPoint.prevOrdered != None )
	{
		EndPoint.prevOrdered.RouteCache = EndPoint;
		EndPoint = EndPoint.prevOrdered;
		if ( ++i == 10000 ) return None;
	}

	i = 0;
	while ( (EndPoint != None) && InRadiusEntity(EndPoint) ) //Skip nearby nodes, treat them as visited
		EndPoint = NavigationPoint(EndPoint.RouteCache);
	while ( (EndPoint != None) && (i<16) )
	{
		RouteCache[i++] = EndPoint;
		EndPoint = NavigationPoint(EndPoint.RouteCache);
	}
	return RouteCache[0];
}

Re: FerBotz (new AI, XCGE release 20)

Posted: Tue Mar 07, 2017 5:54 am
by Old UT Veteran
Damn, Higor is on a roll here. MH and now Ferbotz - gotta start checking this shit out.
----------------------------
Quick late night comment:
I checked out v20 and now I can't win a DM match if my life depended on it.
My concerns (noted but never reported): Botz turn rate is kind of annoying as they just 'snap' toward an enemy mid/close distance. I noticed that the shooting animations would either desynchronize or not update, and make the botz appear as if they're shoot bullets out of their sides (e.g. bot looks in direction N but bullets fire 45-90 degrees off to the left or right of the direction bot is facing) - prominently when using the mini-gun. In extreme cases when botz is retreating, I noticed that they would run toward the retreat destination and bullets would be flying from their backs. Additionally when using the bio-rifle, botz would charge up sludge, fire it at wall and kill themselves afterward if no objectives are noted or botz is just wandering in the same spot. They tend to hold the charge and then release it after a certain amount of time.

Other than that I'm really happy how fun it can be to play against those pesky fellas.

Re: FerBotz (new AI, XCGE release 20)

Posted: Tue Mar 07, 2017 12:30 pm
by UnrealGGecko
:tu: :rock: :gj: :thuup: