Author Topic: League Problems  (Read 26861 times)

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
League Problems
« on: November 30, 2006, 10:09:13 AM »
Deleted bots from text file and put irish guys bot in first place, the idea being to run all the other bots, in alphabetical order, against it to create new league positions.

Problem being that each time I try to run a new sim with a new bot to enter into the league I get the message "Challenger and defender are same bot do you want to continue?" and when I go back to new sim the bot I tried to add has been replaced by two copies of Irish guys bot.
« Last Edit: December 11, 2006, 11:04:27 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 EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
League Problems
« Reply #1 on: November 30, 2006, 10:24:00 AM »
Part of my problem is that I have never run leagues and there is no documentation as to how to do so so I'm kind of learning how they work  - ui.e. what is suppose to happen - by reverse engineering the code.

Could I ask you to post your leagues file?  I don't think I need the bots.  Thanks.
Many beers....

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
League Problems
« Reply #2 on: November 30, 2006, 01:54:02 PM »
The text file? that has one bot in it atm so I don't think that'd do, I'll post the old Fl text file that I had instead. You need the darwinbotsII/leagues folder and in that should be the 'F1leaguetable.text' file and an 'F1league' folder with all bots you want to run in the league.

If you don't have the code for a particular bot for the F1 league just remove its name from the .text file.

It's not the most bug free system ever invented for DB, things like a bak? file in the leagues folder have to be manually deleted if they appear or the leagues won't work for instance.

If you feel it would be easier rewriting the code for leagues instead of reverse engineering it then don't let me stop you

I also don't know what I've done to get Irish guys bot to keep reappearing in every rerun I've tried so far, doesn't matter which league I try!

F1leaguetable.text file;


#F1
1 - Blue on Blue
3 - UNA 3.0
4 - The One
5 - DIN
6 - Destinatus Preliator
7 - Dominator Invincibalis
8 - Carnatus Orbis
9 - Kyushu
10- Darth Shimazu
11- Spanish Conquistador
12- Animal Supremus
13- Callidus
14- DIN 2
15- Duplo Simpleboticus
16- HDV4
17- James 4
18- Devincio Eversor
19- D Scarab 3
20- Devincio Dominator
21- Queen Julianna
22- Scratch DJ
23- Vector 1.0
24- Umbra Draconis
25- Anon Terrifica
26- Hunter 2.13
27- Shimazu
28- EMPTY
29- EMPTY
30- EMPTY
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 Problems
« Reply #3 on: November 30, 2006, 03:39:26 PM »
Leagues were really the first major improvement I made in Darwinbots.  About 90% of the functionality is really easy.  The last 10% was made from special cases that quickly got out of control.

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
League Problems
« Reply #4 on: November 30, 2006, 03:49:21 PM »
Oh don't get me wrong, it's a great idea and I was really chuffed you implemented it. It's just one of those things, when it goes well it's brilliant and when, like today, the only bot you can get to enter any league is irish guys then it can be a tinsy winsy little bit annoying

It's still miles ahead of the old days when bots had to be competed against each other one at a time to get the league results!!
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 shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
League Problems
« Reply #5 on: November 30, 2006, 03:57:24 PM »
I never ran leagues, as I am more interested in evo-sims, but looking at them right now I am a bit confused as to how one would run them.  It is not clear from UI.

Maybe this sounds stupid and the functionality may already be there, but here are my expectations (as a newbie in this thing) on how leagues should be presented:
To begin with I'd like two options:
1. to enter a bot into an existing league
2. to create my own league

To enter a bot into an existing league I would like to just load up a single file that would setup all the conditions for the league (including the veggie genome).  There also should be some kind of table that would show all the bots in the league (or at least top 10) in the order of their current standing.  The file should probably have the genomes of all these bots as well, because I don't want to go hunting for each genome on the forums and then place it into the appropriate folder.  It would be nice if the program could D/L the most recent league file from the web-site.  Then I would want to load my own bot and just click "Test this bot against this league" button.  The whole thing should be on a single menu and may even be guided in a series of dialog boxes.

To create a new league the experience should be very similar, except that it would ask to add the bots I want to test.  And again this should be on a separate page with all the bots getting listed as I am adding them.  Maybe even have a separate dialog boxes to ask to set up conditions for the league (with an option to "use current").
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
League Problems
« Reply #6 on: November 30, 2006, 05:26:10 PM »
It doesn't sound stupid Shvarz, the functionality is there but it's a little obtuse when it comes to usability.

To set the league up, copying that list I posted earlier would set the F1 league table, then entering a new bot into the league is actually quite easy. Needing all the bots that you want to use listed into a seperate darwinbotsII/leagues/F1league folder does slow things down a bit sometimes though. (doesn't need new bots you want to enter just all the old bots in the existing league table AFAIK)

It's much easier to use the existing common league boxes rather than setting up a whole new league.

An improved user interface could make things a lot easier.
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 Problems
« Reply #7 on: November 30, 2006, 05:53:50 PM »
Jez, I've found and fixed your 'challenger and defender are the same' bug.

With few exceptions, my goal for 2.43 is to have leagues working as they were originally designed.  We can make improvements and design changes subsequently.

The exceptions include pulling bot DNA files from the robots directory if not found in the appropriate league folder and some various other fit and finish work.
Many beers....

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
League Problems
« Reply #8 on: November 30, 2006, 06:25:12 PM »
Sweet! And so quick!! You deserve your group rating with added chocolate chip cookies!!!

I have no problem with leagues working 'as they were originally designed' everything else is a pipe dream and probably not as important as some of the other changes you have been working on.

It must be difficult sometimes, being bombarded with the numerous requests for improvements and bug fixes, I am always grateful for people, more skilled than I, taking the time to implement them.
« Last Edit: November 30, 2006, 06:28:01 PM 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 Griz

  • Bot Overlord
  • ****
  • Posts: 608
    • View Profile
League Problems
« Reply #9 on: December 12, 2006, 06:45:08 PM »
moved from Ravine thread

Jez:
Quote
I haven't tested to see if it will still write league table from scratch, I think you may have to have one bot in table to start but not tested yet. When I've finished updating league and bestiary I should have time to write better guide.

Mention that max rounds for league in suggestions part of forum, it's not a bad idea, I've just got a match up to 488 rounds with almost no difference between bots. Would make it easier for people who want to do shorter league runs. The other way to do it is keep hitting the win button. sleep.gif
I've got leagues working now ...
well ... sort of.

in challenge mode ...
once the matches are finished ...
ie, my challeng bot having defeated the 3 current
league members, it didn't end but started again ...
my challenge bot once again being the challenger ...
even tho ranked #1.
and I'm not sure why when I go to edit species ...
I find my challenger and Blank there.

also ...
doesn't seem the F! conditions resets all parameters ...
I haven't had time to experiment with loading in
different parameters or sims first and seeing for sure
but things like veggie population seems to persist ...
wasn't veg pop supposed to be limited to 40?
well ... I'll have to experiment as I find time.
in the mean time ...
I plan to ensure all the parameters are set to what
they should be for F1 ...
and then save those settings ...
loading them in before running leagues.
that should work, eh?

would rreally like to specify the max number of cycles
that a round should be allowed to go before ending ...
should the bots prove to be too close for one or the
other to completely 'take out' the other ...
or should there remain one persistant bot ...
even when the other may have a population 200 times
greater.
after all, if we are looking to create a multi-organism evosim ...
shouldn't we be looking for bots that have an ability to co-exist
with other bots ...
even to have a simbiotic relationship with others ...
rather than having to eliminate every one to be considered
a viable species?

anyway ...
if it's that close, why not pick the one with the highest
population and move on.
same goes for number of rounds ...
whatever the user specifies should be it ...
rather than auto-extending the match because a
statistically correct decision can't be made.
again , if it's that close, pick one. move on.
and yes, if I am present, I can always use the Instawin ...
but it would be nice to be able to set this thing up ...
and then let it run on it's own without having to constantly
monitor what's happening [or not-happening] ...
and have to then interfere.

will continue to play around ...
and try to make note of any bugs or whatever
I run across.

thanks to eric and to jez as well for giving some
attention to the leagues ...
makes an interesting testing ground ...
and if one uses parameters of their own ...
rather than the F1 settings ...
using gravity or whatever  ...
can test many different skills/abilities of bots.

ta ta
不知
~griz~
[/color]
   "The selection of Random Numbers is too important to be left to Chance"
The Mooj  a friend to all humanity
[/color]

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
League Problems
« Reply #10 on: December 12, 2006, 07:28:45 PM »
Quote from: Griz
moved from Ravine thread
I've got leagues working now ...
well ... sort of.

Cool, we're getting somewhere then!

Quote
in challenge mode ...
once the matches are finished ...
ie, my challeng bot having defeated the 3 current
league members, it didn't end but started again ...
my challenge bot once again being the challenger ...
even tho ranked #1.
and I'm not sure why when I go to edit species ...
I find my challenger and Blank there.

There was a bit of a problem with that before, are you using the latest buddy drop 2.42.n? Shouldn't be an issue now but if it still is I'll see if I can repeat problem.

Quote
also ...
doesn't seem the F! conditions resets all parameters ...
I haven't had time to experiment with loading in
different parameters or sims first and seeing for sure
but things like veggie population seems to persist ...
wasn't veg pop supposed to be limited to 40?
well ... I'll have to experiment as I find time.
in the mean time ...
I plan to ensure all the parameters are set to what
they should be for F1 ...
and then save those settings ...
loading them in before running leagues.
that should work, eh?

Eric's done lots of work in the last few buddy drops to get all the F1 settings fixed. Veg population should start at 10 but there has never been a max veg limit AFAIK in leagues if the bots are really bad at eating veg! If you find any settings that aren't defaulted when you tick F1 box then please say. It would be best if all the settings are defaulted when F1 is ticked so people aren't playing the leagues under different settings without realising it.

Quote
would rreally like to specify the max number of cycles
that a round should be allowed to go before ending ...
should the bots prove to be too close for one or the
other to completely 'take out' the other ...
or should there remain one persistant bot ...
even when the other may have a population 200 times
greater.
after all, if we are looking to create a multi-organism evosim ...
shouldn't we be looking for bots that have an ability to co-exist
with other bots ...
even to have a simbiotic relationship with others ...
rather than having to eliminate every one to be considered
a viable species?

Put your ideas in the suggestion part of the forum, I'm sure Eric will consider it. It would certainly be easier for people who want to run quick leagues and aren't interested in waiting all day for the results. The F1, F2 etc leagues were created as combat leagues rather than symbot leagues, the issue of having two competitive bots surviving together for a long period of time, especially with mutations on, is something I know Num's would be interested in but deserves a league of it's own, if anyone ever manages to do it! Same with symbiosis really, especially with mutations on.

Quote
anyway ...
if it's that close, why not pick the one with the highest
population and move on.
same goes for number of rounds ...
whatever the user specifies should be it ...
rather than auto-extending the match because a
statistically correct decision can't be made.
again , if it's that close, pick one. move on.
and yes, if I am present, I can always use the Instawin ...
but it would be nice to be able to set this thing up ...
and then let it run on it's own without having to constantly
monitor what's happening [or not-happening] ...
and have to then interfere.

Option to specify max amount of rounds/cycles is not a bad idea, the idea of using statistical analysis of the results was to provide accurate information. It used to be the best of five rounds and using two very similar bots you would keep getting different results.  

Quote
will continue to play around ...
and try to make note of any bugs or whatever
I run across.

Cool, some of them are old bugs caused by user error that aren't going to get fixed right now, although Eric has already softened many of them, it's good to have another pair of eyes looking out for them though.

Quote
thanks to eric and to jez as well for giving some
attention to the leagues ...
makes an interesting testing ground ...
and if one uses parameters of their own ...
rather than the F1 settings ...
using gravity or whatever  ...
can test many different skills/abilities of bots.

Thanks, I've always loved direct and competitive comparisons of bots, not what Carlo designed DB for I know but nevermind!
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 Problems
« Reply #11 on: December 12, 2006, 07:40:30 PM »
The code will prompt the user if they want it to create a new league file if none exists.

Max veggies is set to 25 in F1 mode.  This means however that it is possible for up to 49 veggies to exist in a sim, depending upon the reproduction code of the veggy used (they all reproduce during the cycle when the population falls to 24).

In any non-F1 sim, if you want to insure the population of veggies never exceeds the limit, use a veggy without a reproduction gene or disable reproduction or disable DNA execution for the veggy used.  Perhaps I should allow this in F1 mode as well?

Loading a sim with certain settings and then running leagues using F1 settings will only work for those settings which are not overridden in F1 mode.  The latest F1 override code is below.  The user-defined sim settings will of course be used in leagues which do not use F1 contest conditions.

I will add max cycles / Max rounds to my list of future work items.  These will be post 2.43 however.

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 = 10000          ' Pretty high Waste Threshold
   
    For t = 0 To TmpOpts.SpeciesNum - 1
      TmpOpts.Specie(t).Fixed = False                 'Nobody is fixed
      TmpOpts.Specie(t).Mutables.Mutations = False    'Nobody can mutate
      TmpOpts.Specie(t).CantSee = False
      TmpOpts.Specie(t).DisableDNA = False
      TmpOpts.Specie(t).CantReproduce = False
      TmpOpts.Specie(t).DisableMovementSysvars = False
    Next t
   
    TmpOpts.Specie(0).Veg = True         'Force the first entry to be a veggy
    TmpOpts.Specie(0).qty = 10           ' Do this so that eye fudge works
   
    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 = 0    ' Collisions are soft.
    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#
   
    'Shot Energy Physics
    TmpOpts.EnergyProp = 1        ' 100% normal shot nrg
    TmpOpts.EnergyExType = True   ' Use Proportional shot nrg exchange method
   
    DispSettings
  End If
Many beers....

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
League Problems
« Reply #12 on: December 12, 2006, 07:56:32 PM »
Quote from: EricL
Max veggies is set to 25 in F1 mode.
I didn't know that, I guess I should have noticed though.    
I have no idea why it was done like that.

Quote
In any non-F1 sim, if you want to insure the population of veggies never exceeds the limit, use a veggy without a reproduction gene or disable reproduction or disable DNA execution for the veggy used.  Perhaps I should allow this in F1 mode as well?

The idea of setting the F1 settings as defaults was to make sure everybody always ran the official competitive leagues the same way without needing to know anything about the settings. If you can think of a way to do this then why not. Perhaps a 'change F1 settings' button or something. I thought we could change league settings by unticking the use F1 conditions but perhaps this isn't always clear enough.
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 Problems
« Reply #13 on: December 12, 2006, 08:20:17 PM »
I guess what I was really asking is "Do you (as the main guy taking the lead on leauges at the moment) want me to allow people to be able to disable reproduction or disable DNA execution for the veggy in a league using F1 conditions or do you think this is too large a variable to let people muck with and therefor I should force it one way or the other in F1 mode?"  Right now, the user cannot elect to disable these things.  They are forced enabled.

I might suggest we force it the other way.  That is, that no matter what veggy is used, it's DNA is disabled and it can't reproduce.  This would maximise consistency in that no matter what bot they choose for a veg, it's functionality (or lack there of) would be the same every time I.e. nothing.
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
League Problems
« Reply #14 on: December 13, 2006, 12:32:38 AM »
Alga minimalis is the standard veg for use in leagues, so I would just load its DNA into the program and have the program automatically use it, regardless of what the user tries to do in a league match.