Sunday, 23-Jul-2017  00:00:00
Enhanced Coop  
[ New messages · Members · Forum rules · Search · RSS ]
Page 1 of 11
Forum moderator: MrLoathsome 
Forum » Map Packs, Mods & Mutators » Mutators » The UT AutoAdjust Bot Skills Thread
The UT AutoAdjust Bot Skills Thread
MrLoathsomeDate: Wednesday, 17-Mar-2010, 1:47 PM | Message # 1
Lieutenant colonel
Group: Moderators
Messages: 150
Awards: 0
Reputation: 0
Status: Offline
"Why would anybody care about this ?" I have been asked. "If your playing online, you should play against people."

Well, not sure if you have checked the server lists lately, (when the master servers are working....), but there is
not so many people out there playing UT as there used to be. You would be waiting a while on most servers
for anybody to show up. Nice to have a few bots there to shoot at while waiting.
Some people still play practice matches I am sure. Not to mention that one of the servers I have had
up for almost 7 years now runs the Teambot mod. Players VS Bots. 2 bots for each player.....

Having said that, I decided to look closer at the AdjustSkill function in Unreal Tournament, to see if I could
fix it.

It is broken you know. Turn on the AutoAdjust bot skill option and play for a while. Starts off working ok, but after a
match or 2 the bots are all Godlike or Inhuman. Not very good.

Seems to work like this. At start of the match, all the bots are set to the Difficulty/Skill level you select.
During the match, the bots skills get adjusted up or down whenever they kill a player or are killed by one.
No adjustment occurs when bots kill each other...

When the next map starts up, ALL the bots are initialized to the Skill level the winning bot in the previous match
was at when it ended.

Another problem is the broken default routine allows the Difficulty level to get way out of the valid range.
This is the list of bot skills right out of the UT source:

Code

          Skills(0)="Novice"
          Skills(1)="Average"
          Skills(2)="Experienced"
          Skills(3)="Skilled"
          Skills (4)=" Adept "
          S kills(5)="Masterful"
          Skills(6)="Inhuman"
          Skills(7)="Godlike"

I played a few test matches in DM-Fetid with 14 bots set at initial Skill level of Adept.
Was finding values for the Difficulty setting in the User.ini file of 13, 15 etc....

That is broken. You should be able to use that value as an index for the above table.
Another issue is that in any team game, if there are no humans on the other team, your teams
bots will never adjust.
Soon you and 3 Average bots are against 4 Masterful or higher bots. Also not good.

By randomly adjust either the winner, or the loser, or neither, I was able to
get the bots to adjust when killing each other without just getting pegged at whatever the MaxBotSkill
is set at. By adjusting skill on both down sometimes, we get a better dispersion of skill values in
the range (0...MaxBotSkill).

This should work with the default UT bots list in User.ini.
Running a variant currently on the MooCow Assault & MultiMode servers
now that operates with the random XBots list.
You can set the MaxBotSkill variable in the AdjustoBots.ini file that is created when you
run it for the first time. Valid range 1 - 7. Pointless to set Max at 0... (Novice)

Will be testing it more to make sure there are no problems with it, but so far it seems to
be doing what I want. Hopefully not too horrible for my first Mutator.

If there is any interest, I might make a UMod or something for distribution.

Added (07-Mar-2010, 10:32 PM)
---------------------------------------------
Update: 3rd times the charm. I hope.....

Added (10-Mar-2010, 11:24 Am)
---------------------------------------------
Update: Current "Live" version of above running on the Moocow servers now.

Note the Seedlist function in the above wasn't needed and has been removed.

Will include source classes with final version when it is made available for
download, in the unlikely event that anyone is interested in it.
happy

Added (17-Mar-2010, 1:16 Am)
---------------------------------------------
Current beta of this still in testing and development, but getting much closer.
Improved version of the AdjustSkill function has been re-written completely.

Additions to the release version will include the following:

1. bAdjustoBots Option. Enable or disable adjustments on Bot vs Bot encounters.

Note the Auto Adjust Skill checkbox in the bot setup window will toggle adjusting
of bot skills when they are killed by human players.
(Variable bAdjustSkill=True in the [Botpack.ChallengeBotInfo] of your User.ini)

All combination's will use the MaxBotSkill variable and improved AdjustSkill function.
Recommend running with both True for best results.

2. bSilentMode Option. Turns off messages regarding bot skill changes.

Will continue testing for a week or 3 before finishing up documentation and releasing
something.

Post any comments or suggestions here.

Added (17-Mar-2010, 1:47 PM)
---------------------------------------------
Update: Found a way to correct the root cause of the problem with the default AdjustSkill
function last night. Needless to say this has been re-written again.
It now adjusts bots in a logical manner based upon game activity rather than resorting to
random switches in skill for adjustments.

Also corrected some problems that caused the elusive "bThreePlus; // high skill novice"
skill rating to only show up for seconds occasionally with the default function.
This skill level will be used now if MaxBotSkill set at 4 or above.

Current version running on servers now with the bSilentMode option on.
Message volume did increase a bit with this update.


Moo

 
MrLoathsomeDate: Sunday, 04-Apr-2010, 5:27 AM | Message # 2
Lieutenant colonel
Group: Moderators
Messages: 150
Awards: 0
Reputation: 0
Status: Offline
Here it is:

Added (04-Apr-2010, 5:27 Am)
---------------------------------------------
This little bit makes the bots much less stupid:

Code

var int BotID[32];

function ModifyPlayer(Pawn Other)
{
  local Bot B;
  local int RV;

  if ((Other.IsA('Bot')) && (BotID[Other.PlayerReplicationInfo.PlayerID] != Other.PlayerReplicationInfo.PlayerID))
  {
   BotID[Other.PlayerReplicationInfo.PlayerID]=Other.PlayerReplicationInfo.PlayerID;
   B=Bot(Other);

  if ( Level.Game.GameName == "Assault" )
   {
   B.bLeading = False;
   if ( TeamGamePlus(Level.Game).IsOnTeam(B,0) )
    B.SetOrders('Defend', None, true);
   else
    B.SetOrders('Attack', None, true);
   }
   else
   {
   if ( DeathMatchPlus(Level.Game).bTeamGame )
    {
     B.bLeading = False;
     RV = Rand(2);
     if (RV == 1)
      B.SetOrders('Attack', None, true);
     else
      B.SetOrders('Defend', None, true);
    }
    else
    {
     B.SetOrders('Freelance', None, true);
    }
   }
   log(RV$"   Orders set for "$B.PlayerReplicationInfo.PlayerName$"  "$B.PlayerReplicationInfo.PlayerID$"  "$B.Orders);
  }

  // called by GameInfo.RestartPlayer()
  if ( NextMutator != None )
   NextMutator.ModifyPlayer(Other);
}

Now running in custom version of XBots9b on the MooCow servers.

tongue

Attachments: LoathsomesBotPa.zip(80Kb)


Moo

 
NelsonaDate: Sunday, 06-May-2012, 7:18 PM | Message # 3
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Appologise if this is a bump. I think I need to pay attention too at this chapter. I just delivered some Bot Support in an attached MH. Here is about a single team not many teams. About skill ?
I have 5, file is restored each server start, I can see them dodging well, they have the same speed like player, I don't know if they are altered but is good to watch this.
 
NelsonaDate: Wednesday, 08-Aug-2012, 6:28 PM | Message # 4
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
A small notice related to AdjustoBots mutator. I tried this one for a reason. I noticed in servers tab anounced my Bots "skilled". After a few matches I noticed "experienced", I was thinking to keep them unchanged but in a map ended by a mover triggered by a monster death, game crashed from some Engine.Mutator.HandleEndGame infinite recursion calls - we were 2 Players and 2 Bots. I removed mutator - no more crashes. Maybe I need to try some check. I'm thinking at whole party. If Bot is not engaged in action, is just runing, I think I'll try to save his skill at begining trying to restore it each 30 seconds or whatever time (maybe configurable). I have to log also timed or simply broadcasting on screen their skill. I think can be used state FallingState (they don't fall too much to spam screen) to deliver: Drimacus -> My skill in this moment is X value.
 
EvilGrinsDate: Saturday, 11-Aug-2012, 10:28 PM | Message # 5
Sergeant
Group: Checked
Messages: 23
Awards: 0
Reputation: 0
Status: Offline
I'm not generally a big fan of stuff like this, for my own games anyway. I personally set the skills of each individual bot I use in games, some are great and some suck based on a semi-personality profile I sorta make based on name and appearance.

I worry an auto-bot skill mutator might reset their skill setups even when it's not currently selected.


Have you hugged a Skaarj today?
http://unreal-games.livejournal.com/
 
GuestDate: Sunday, 12-Aug-2012, 3:46 AM | Message # 6
Group: Guests





Quote (Nelsona)
A small notice related to AdjustoBots mutator. I tried this one for a reason. I noticed in servers tab anounced my Bots "skilled". After a few matches I noticed "experienced"


Well, that because that is what this mutator does. Adjusts the skills of the bots in-game based upon what is happening.....

It will not reset or trash your individual bot game difficulty settings. It uses those as a base each time
you start a session or the server up, and adjusts the bot skill setting from that point on.

It might leave the overall botskill setting at wherever it was last, but it will not mess with your bot settings.

I am pretty sure... been quite a while since I had to look at this thing very close.
Do have it running with fairly low skill setting on the AS/CTF/DM servers, as the bots do get mean quickly
at the higher settings.
 
NelsonaDate: Sunday, 12-Aug-2012, 10:19 AM | Message # 7
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Good, but I want them equal and no alterations. I mean Skilled must be Skilled even after 5 matches (server), no lower, no higher.
Aynway I looked a bit in DeathMatchPlus class. I found where they are alterred, is about killed function calling adjust of skill and saving value, heck. Who granted permissions to to this DeathMatchPlus for altering my files ? smile Read-Only or restoring helps only if a crash might occur. Because server isn't crashing often and I don't want insane skills I just called in my controller again (GameInfo) superclass skipping BotPack. Now should be ok. I need to play 5 maps to see what is about. I'll see if I messed something else.

Note: I tried this mutator because in default game, without it, my Bots were altered to higher skill.


Message edited by Nelsona - Sunday, 12-Aug-2012, 10:21 AM
 
NelsonaDate: Sunday, 12-Aug-2012, 12:22 PM | Message # 8
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Back, Tested. Hm, could be a flaw somewhere. In first map they are reported skilled, later experienced and they keep this skill unchanged. Passing to GameInfo delivered a more quiet game without spaming excessive taunts just calling help at enemy encounter (native attitude). Until now things are just nice, Experienced skill seems OK for the moment, party is great.

Now I have to fix assumed Bot Support added in a few maps (never worked), I want to test my skills in setting up a good fight.
 
MrLoathsomeDate: Sunday, 12-Aug-2012, 10:38 PM | Message # 9
Lieutenant colonel
Group: Moderators
Messages: 150
Awards: 0
Reputation: 0
Status: Offline
I am confused. Did you read post 1 or the readme file ?

If you want the bot skill NOT to change, then don't use this mutator, set the botskill to your desired value, and uncheck the broken
option in UT for adjust skill.


Moo

 
NelsonaDate: Sunday, 12-Aug-2012, 11:55 PM | Message # 10
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Um, I think this one confused me:
Quote

Another problem is the broken default routine allows the Difficulty level to get way out of the valid range.
This is the list of bot skills right out of the UT source:
....
I played a few test matches in DM-Fetid with 14 bots set at initial Skill level of Adept.
Was finding values for the Difficulty setting in the User.ini file of 13, 15 etc....


I was thinking about this problem, maybe I was in a big hurry in reading (my fault). Anyway I'm satisfied for the moment about back calls to avoid more IF-s delivered by DeathMatchPlus to TeamGamePlus and so on.
 
B4MDate: Thursday, 06-Jun-2013, 11:07 PM | Message # 11
Group: Guests





Hello , Interesting read over here smile

just wondering , would it be possible to add / implement a default setting for Bot Difficulty at start of each round (optional)

as what I can see happening here based on what Ive read is that slowly after several rounds the Bot's head towards Godlike ?..

what happens when a nub comes in , does this level decrease? or is it based on the best Pawn's ranking during matches?

so if the best Pawn was logue for example , would the difficulty engine increase to his level?

Perhaps.. it would be good to AutoAdjust bot Difficulties Based on Player Levels/Rankings only , some kind of Averaging perhaps for 2 players could be implemented.

ie;

1 Player vs 1 Bot , player skillLevel average , Bot SkillLevel novice. > Few Frags Bot Increases to Player SkillLevel+1

2 Player vs 1 Bot , Bot SkillLevel advances to Average skillLevel of both Players+1

etc..

on empty Server (Players have left) Detect at Match Start +1-2minutes reset Bot Level to Default.

^ That should allow for the next player who enters to adjust (through gameplay) the bots levels..

in fact what we really need is a secondary mod setup with an array of some sort linked to players IP/Alias/HWID (ACE) which accurately tracks Players
in game Levels (0-7) This system would of course fluctuate with the players Skill and Bots Should start perhaps at Player SkillLevel-2 then advance from there to Play skillLevel+1 , unless already at 7 then sit there.

Anyways Great concept and I hope someone considers further development of this mod.

Cheers.
 
MrLoathsomeDate: Saturday, 08-Jun-2013, 4:51 AM | Message # 12
Lieutenant colonel
Group: Moderators
Messages: 150
Awards: 0
Reputation: 0
Status: Offline
If you look close at the source, you will it adjusts the Skill level a bit after each qualifying kill.

One of the default variables will allow optional adjustments for Bot vs Bot encounters.

As it is, the calculated skill will roll over from one game to the next, and only gets reset when
the server is restarted.


Moo

 
Forum » Map Packs, Mods & Mutators » Mutators » The UT AutoAdjust Bot Skills Thread
Page 1 of 11
Search:

Copyright MyCorp © 2017
Powered by uCoz