Author Topic: League Settings  (Read 13178 times)

Offline Light

  • Bot Destroyer
  • ***
  • Posts: 245
    • View Profile
League Settings
« on: December 04, 2006, 06:57:55 PM »
Jez's high level of work recently (and persistant nagging about leagues not working  ) has inspired me to try and work through all the settings. It would be good to have a few days for any discussion before setting them in stone.

Settings for Leagues

Species
   Number of individuals = 5
   Starting energy    = 3000
   Mutations       = All Disabled

General
Width Control
Field size      = 1 (9237 X 6928)
Random Numbers
Enable user seed   = No
Wrap Around
Toroidal      = Yes
Top/down wrap   = Yes
Left/right wrap   = Yes
   Waste
      Threshold = 0 / very big (whatever disables it)
   Misc Controls
      Disable Ties       = No
      Nrg shots no decay   = No
      Fix bot radii      = No
   Corpse Mode  
      Enable         = No
   Population Control
      Pond mode      = No
      Maximum number of veggies      = 25
      Repopulation threshold      = 10
      Veggies per repopulation event   = 10
      Repopulation cooldown period   = 1
      Veggy Energy            = 40 - Veggy per cycle
      Energy Management         = No
      Veg body/Nrg distribution      = 50

Physics and Costs
Big Blue Screen Acts Like = Solid - Metal
Movement Efficiency = Biological
Brownian Movement   = Animal
Vertical Gravity   = None
Max Velocity      = 180 (Fast)
Collision      = 1 (Marbles)
Costs                              = F1 Default
Energy Exchanged on Hit = Proportional – 100%
« Last Edit: December 04, 2006, 07:01:30 PM by Light »

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
League Settings
« Reply #1 on: December 04, 2006, 10:11:36 PM »
As of 2.42.9i, selecting F1 Contest conditions on the league dialog now forces the settings as Light indicates.  Here's the code:


If TmpOpts.F1 = True Then
   
    'Zero out all Costs
    For t = 1 To 70
      TmpOpts.Costs(t) = 0
    Next t
   
    'Now set the ones that matter
    TmpOpts.Costs(SHOTCOST) = 2
    TmpOpts.Costs(COSTSTORE) = 0.04
    TmpOpts.Costs(CONDCOST) = 0.004
    TmpOpts.Costs(MOVECOST) = 0.05
    TmpOpts.Costs(TIECOST) = 2
    TmpOpts.Costs(SHOTCOST) = 2
    TmpOpts.Costs(VENOMCOST) = 1
    TmpOpts.Costs(POISONCOST) = 1
    TmpOpts.Costs(SLIMECOST) = 1
    TmpOpts.Costs(SHELLCOST) = 1
    TmpOpts.Costs(COSTMULTIPLIER) = 1
    TmpOpts.DynamicCosts = False
   
    TmpOpts.CorpseEnabled = False    ' No Corpses
    TmpOpts.DayNight = False         ' Sun never sets
    TmpOpts.FieldWidth = 9237
    TmpOpts.FieldHeight = 6928
    TmpOpts.FieldSize = 1
    TmpOpts.MaxEnergy = 40           ' Veggy nrg per cycle
    TmpOpts.MaxPopulation = 25       ' Veggy max population
    TmpOpts.MinVegs = 10
    TmpOpts.Pondmode = False
    TmpOpts.PhysBrown = 0         ' Animal Motion
    TmpOpts.Toroidal = True
   
    TmpOpts.BadWastelevel = -1          ' No Waste Threshold
   
    ' Nobody fixed
    For t = 0 To TmpOpts.SpeciesNum - 1
      TmpOpts.Specie(t).Fixed = False
    Next t
    TmpOpts.FixedBotRadii = False
    TmpOpts.NoShotDecay = False
    TmpOpts.DisableTies = False
    TmpOpts.RepopAmount = 10
    TmpOpts.RepopCooldown = 1
    TmpOpts.MaxVelocity = 180
    TmpOpts.VegFeedingMethod = 0       ' Straight nrg /cycle feeding method
    TmpOpts.VegFeedingToBody = 0.5     ' 50/50 nrg/body veggy feeding ratio
    TmpOpts.SunUp = False              ' Turn off bringing the sun up due to a threshold
    TmpOpts.SunDown = False            ' Turn off setting the sun due to a threshold
    TmpOpts.CoefficientElasticity = 1  ' Marbles
    TmpOpts.Ygravity = 0
       
    ' Surface Friction - Metal Option
    TmpOpts.Zgravity = 2
    TmpOpts.CoefficientStatic = 0.6
    TmpOpts.CoefficientKinetic = 0.4
   
    'No Fluid Resistance
    TmpOpts.Viscosity = 0#
    TmpOpts.Density = 0#
           
    DispSettings
  End If
« Last Edit: December 04, 2006, 10:13:51 PM by EricL »
Many beers....

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
League Settings
« Reply #2 on: December 05, 2006, 04:44:36 AM »
Jeez Eric,

Do you have a nitro button installed on you somewhere? Just over 3 hrs!  

Thanks for trolling through all the settings Light, I shall grab Eric's handy little buddy drop in a while and try the running the previous losers with these settings. So long as most of the bots still work using these settings it'll be fine.

I think my physics and cost settings were different to what you've suggested and hopefully that was what was causing the problems.
« Last Edit: December 05, 2006, 04:45:14 AM by Jez »
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
League Settings
« Reply #3 on: December 05, 2006, 06:01:16 AM »
Ok, that looked a bit strange, partly 'cause bots and veg can change size now also it looked like some of the bots had real problems traveling (previous top speed was about 40 I think) unless they were barged by another, faster, bot in which case they seemed to scoot across the screen. Sometimes the bots crawl inside a veg and then explode into babies.
It didn't do much good for the previous loser bots. (I tested the first five or six again)

Putting myself out on a limb here; the common them seems to be that tie bots generally cope and shot bots generally can't get food. Even if they sit by a veg shooting it they go 'pop' after a short while. In fact I think all the bots that survived the first league tests I ran were tie bots.

Can anyone suggest a shot bot that works for them under F1 conditions using the latest buddy drop? That way I'll have a point of reference.

I'd be happy with those settings if everyone else is.
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
League Settings
« Reply #4 on: December 05, 2006, 09:20:42 AM »
Go to the costs page.  There should be a setting about what shots return.  Select proportional, and set it to 100 instead of 0.

For some reason, it keeps defaulting to 0.  0 is bad, as you've found out.

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
League Settings
« Reply #5 on: December 05, 2006, 12:35:30 PM »
Mine was set at 'fixed' and 0  

Also running a shot bot with F1 conditions for a while to see how it coped when that was changed showed two things;

1. They mutated

2. The marble physics put shot bots at a disadvantage, I think the collision elasticity needs to be softer. Maybe a 1/3rd of what it is.

Thanks Nums for working out what was causing me problems.
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline Light

  • Bot Destroyer
  • ***
  • Posts: 245
    • View Profile
League Settings
« Reply #6 on: December 05, 2006, 02:05:03 PM »
Im not sure that its the marble physics that are the problem, I think its the fact that with max velocity at 180 bots are travellling a lot faster than they did in previous versions, where a bot might be lucky to reach 40. Maxvel used to be governed by the size of the bot but now seems to be governed by the program, im not sure. With the added velocity its harder to hit moving bots.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
League Settings
« Reply #7 on: December 05, 2006, 02:35:16 PM »
Max vel is set in/by the program.  It is the same for all bots and independent of their size.  If friction and fluid resistance is low, bots can obtain the maximum velocity through continued acceleration.  The cost charged for accelerating is scaled by the acceleration request amount (accelerating more in a cycle costs more) but is not currently a function of bot mass (though the degree to which a bot is slowed by friction and/or fluid resistance is - larger/heavier bots are slowed more).  It probably should be.
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
League Settings
« Reply #8 on: December 05, 2006, 02:38:59 PM »
In the end making bots' sysvars kinematic probably makes more sense than making them dynamic.  That is, bot sysvars should code for actions, not effort.

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
League Settings
« Reply #9 on: December 05, 2006, 02:43:52 PM »
I'm not sure it's the max vel, I like the idea of giving them a much larger range of speed and anyway a lot of recent bots (mine anyway) use *.maxvel? to set their speed. The problem I saw was that when bots hit a veg with 'marble' collisions, the veg sped away at the same speed. A tie bot doesn't have that problem because it ties to the veg and minimises the escape velocity of the veg.

Certainly when I set the collisions to ~1/3rd the shot bot I was testing managed to survive a little better. With 'marble' collisions you are pretty much forcing the shot bots to have a 'non collision' routine.

Although tie bots are F1 and shot bots F2 it would be nice to see the F1 league shared between them, tie bots shouldn't have a distinct advantage over the F2 bots. (I am F2 biased though )
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
League Settings
« Reply #10 on: December 05, 2006, 03:26:50 PM »
Quote from: Jez
The problem I saw was that when bots hit a veg with 'marble' collisions, the veg sped away at the same speed. A tie bot doesn't have that problem because it ties to the veg and minimises the escape velocity of the veg.
Right now the league code forces the veg to be unfixed.  I could change that to be fixed or make it under the control of the user....

Also happy to change the coeffecient of elasticity so collisions are less elastic.  Whatever people want.
Many beers....

Offline Light

  • Bot Destroyer
  • ***
  • Posts: 245
    • View Profile
League Settings
« Reply #11 on: December 05, 2006, 03:26:56 PM »
I think it depends on the bot, newer bots tend to have something like *.eye5 50 > .... *.refvelup .up store to stop them ramming veg, Excalibur + Ymir do this off the top of my head. Older bots didn't really slow down quickly when approaching vegs, which was okay in 2.37 when they might make 30 max, but now they go much faster its causing problems. Im happy for collisions to change if you want, to try and balance things.

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
League Settings
« Reply #12 on: December 05, 2006, 04:15:56 PM »
Quote from: EricL
Right now the league code forces the veg to be unfixed.  I could change that to be fixed or make it under the control of the user....

Also happy to change the coeffecient of elasticity so collisions are less elastic.  Whatever people want.

Having fixed veg is not a good idea, we want the league settings to imitate the original setting for the leagues as best as they can.
I'd appreciate the collision elasticity to be severly reduced though, min 1/3 orf what it is or less. Also fixing the 'energy exchanged 0' to 'proportional 100%' plus checking that mutations are defaulted to off.

Part of the problem is that we shouldn't punish older bots for not having a collision routine because it didn't used to be needed, it should be an advantage not a necessity.
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
League Settings
« Reply #13 on: December 05, 2006, 04:30:02 PM »
Quote from: Jez
I'd appreciate the collision elasticity to be severly reduced though, min 1/3 orf what it is or less. Also fixing the 'energy exchanged 0' to 'proportional 100%' plus checking that mutations are defaulted to off.

2.42.9j will be as you say.
Many beers....

Offline Light

  • Bot Destroyer
  • ***
  • Posts: 245
    • View Profile
League Settings
« Reply #14 on: December 05, 2006, 05:54:21 PM »
I think old bots suffer from not using refvelup + refveldx, they go flying a long see an object, turn to face it and their momentum carries them straight past it. Not a lot you can do except maybe increase friction, but even then I dont think it helps that much