Bots and Simulations > Bot Tavern
Overall league thoughts
Moonfisher:
Currently the best bot is Saber... not a MB or anything but definately more compex than fruitflies...
But F1 is just the league with no rules, so ofcourse exploit behavior aplied by small vermin will often shine untill the exploits get fixed.
And complex organisms are rarely the dominant species in nature, some people even theorize that we're actualy nothing more than an advanced container for viruses and bacteria, that we exist only because they exist and thrive within us. At the very least we know that viruses and bacteria that kill the host don't stay around long, but the flue comes around every year a litle different and we actualy have a gland that holds a bacteria wich helps us digest... the large majority of diseases are surpisingly harmless to us considering what they could be doing, because they need us and it would seem that natural selection favors organisms that are less likely to kill their host or change into something that does.
But the efficiently league could promote more interesting behavior... or league with more fluid resistance, making volontary movement slow and expensive forcing the use of ties for movement.
If you can't use venom or mem shots or ties, then attacking from several angles won't be a grat advantage. Usualy the whole point of attacking from different angles is that atleast one of your bots will inject it's venom or use it's other dirty trick to rendering the oponent harmless. But if you can't use dirty tricks all you have is firepower and suddely larger organisms who can share energy and resources can be much stronger. You can transfer shell to the bot who is getting attacked, then transfer any surplus back when the fight is over. And in an environment with very litle food the bots that hamster and breed their food can easily outstarve a simpler species.
My sugestions for the setup would be something like this :
- No agressive use of ties. That means no tieing to enemies or alge, no tie attacks, no tie defences. If you use .sharenrg and such then you need to have a condition that makes sure you're tied to one of your own.
- No memmory shots of any kind.
- No use of venom.
- No viruses.
- No sexrepro. (Although the lack of mem shots should prevent raping anyway)
- Very large field, possibly without toroidal borders and with some shapes in there (Could be cool if we had some coustom maps, maybe with designated spawn points, both for bots and the initial veggies)
- Low veggy cap.
- Medium fluid resistance.
- F1 costs, possibly a litle more expensive, like set a 1.5-2 multiplier or something like that. And maybe cut the code execution costs completely.
I think these setting should encourage more interesting behavior. Especialy the big field with few alge.
Worker antbots can just push the alge if they need to gather them.
And ofcourse a very strong clever simple species can beat and complex species, but a complex species wich is clever and well made should dominate all the simple species I think.
And I think the NN league using mutations will be the easiest one to get going, for the other league we should make a setup showing how to implement BP in DB... I think there might be a clever way of doing it, but it's a litle tricky, so I think most people won't participate in that league unless the realy hardcore part of it can be copy pasted from somewhere.
I may try to set something up... but... not sure when if I do... finaly starting a new job on monday so there's agoing to be less free time for DB.
jknilinux:
Okay, so maybe an IB league with your rules, and a mut/non-mut NN league. Sounds good!
I'm for it.
P.S I can't make the BackProp code, considering I haven't even been able to learn DBCode yet.
Moonfisher:
I think the main issue here will be that the laguage doesn't allow loops... for good reasons...
So either each cyle could be treated as a loop, but then it would just take too long to adjust weights for evey action...
The other option is to copy the code for each loop you need, but this depends on the size of the network...
Generaly it's a pain to manage... I think you can set it up so you just have the exact same code to copy paste, but it's still a bit of a pain to have to do...
I'll try to figure something out when I have some spare time and feel like a chalenge... but not making any promises.
Moonfisher:
This is my idea for looping through the weights, got no idea how to handle PB yet, haven't looked at it so far, but hoping I can do something similar...
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']'Example, just on using the weights, no BP yet :
' 3 inputs, 3 hiden neurons, 1 hidden layer, 2 outputs
'Not sure I got it right either, but something like this is what I had in mind to handle loops...
'this would be the core, then people push in the in values and use the out values as they see fit, either directly in a sysvar or as a condition for a gene or whatever.
'And then ofcourse it needs PB
'either way this should make it easyler to loop through all the weights by copy pasting...
'I'll add coments and all that once I figure out how to implement BP and know if it actualy works
def init 110
def h1wit 111
def h1it 112
def outwit 113
def outit 114
def in 120
def h1w 125 '9 first are in weights last 6 (outw) are out weights
def outw 135
def h1 150
def out 160
start
'Input
.in *.init add * .h1w *.h1wit add * mult .h1 *.h1it * add .h1 *.h1it add store
.init inc
.h1wit inc
.in *.init add * .h1w *.h1wit add * mult .h1 *.h1it * add .h1 *.h1it add store
.init inc
.h1wit inc
.in *.init add * .h1w *.h1wit add * mult .h1 *.h1it * add .h1 *.h1it add store
0 .init store
.h1wit inc
.h1it inc
.in *.init add * .h1w *.h1wit add * mult .h1 *.h1it * add .h1 *.h1it add store
.init inc
.h1wit inc
.in *.init add * .h1w *.h1wit add * mult .h1 *.h1it * add .h1 *.h1it add store
.init inc
.h1wit inc
.in *.init add * .h1w *.h1wit add * mult .h1 *.h1it * add .h1 *.h1it add store
0 .init store
.h1wit inc
.h1it inc
.in *.init add * .h1w *.h1wit add * mult .h1 *.h1it * add .h1 *.h1it add store
.init inc
.h1wit inc
.in *.init add * .h1w *.h1wit add * mult .h1 *.h1it * add .h1 *.h1it add store
.init inc
.h1wit inc
.in *.init add * .h1w *.h1wit add * mult .h1 *.h1it * add .h1 *.h1it add store
'Output
0 .h1it store
.h1wit inc
.h1 *.h1it add * .outw *.outwit add * mult .out *.outit * add .out *.outit add store
.h1it inc
.outwit inc
.h1 *.h1it add * .outw *.outwit add * mult .out *.outit * add .out *.outit add store
.h1it inc
.outwit inc
.h1 *.h1it add * .outw *.outwit add * mult .out *.outit * add .out *.outit add store
0 .h1it store
.outwit inc
.outit inc
.h1 *.h1it add * .outw *.outwit add * mult .out *.outit * add .out *.outit add store
.h1it inc
.outwit inc
.h1 *.h1it add * .outw *.outwit add * mult .out *.outit * add .out *.outit add store
.h1it inc
.outwit inc
.h1 *.h1it add * .outw *.outwit add * mult .out *.outit * add .out *.outit add store
stop
jknilinux:
Thanks Moonfisher!
So, does anyone else besides me, Bacillus, and Moonfisher want a NN/ant/IB league? Because the way were going, even if a MB/IBB does have some advantage, I don't think we'll see an antbot in the top ten for a Looong time.
Anyway, I guess I could be wrong, but I've just never seen an IBB in F1. Maybe someone else has.
EDIT:
I also think even Abyaly would agree that a NNbot would do miserably in F1. So at least maybe a NNbot league?
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version