Darwinbots Forum

Code center => Suggestions => Topic started by: Numsgil on March 29, 2008, 12:27:52 AM

Title: Leagues
Post by: Numsgil on March 29, 2008, 12:27:52 AM
Suggestions for leagues:

I'll try to list any others that come to mind.  The current league settings are mostly legacy, and I don't think they reflect a good proving ground for modern bots.
Title: Leagues
Post by: abyaly on March 29, 2008, 11:27:04 AM
>>  Costs are sort of weird right now, and encourage bots to be built that are simply gross, but still manage to game the system.  Like Guardian.  I'd like to see just costs from DNA length.  Something really modest like 1 nrg per 100 bps per cycle.  Get rid of costs for conditions and stores.  Stuff like Guardian is really a specialist league (conditionless).

Yes! The whole point of condition costs is to limit the benefit of more complexity. If it isn't limiting complexity, we need a new measure.


>> Also, I'd include a cost per body point, as a way of balancing small and numerous bots (which each get charged for DNA costs) and large behemoth bots.  1 nrg per 1000 body points, or something like that.  We should try to aim for a good balance between DNA costs (anti small bot) and body costs (anti big bot).

Whatever you do there, there will be a specific size of bot that optimizes these costs (for a specific dna length). I don't think this puts a very large disadvantage on small bots, as long as the dna cost is slightly more modest than 1 nrg per 100 bps. 1 per 500 or so would be more appropriate.


>>  Corpse mode enabled, with no decay.  Instantly killing veggies is fine, but the energy shouldn't just disappear.  Attrition shouldn't be that easy.

I don't like this idea. There is a difference between trying to eat something and trying to kill something. This adds a recognition element to the match: "I want to eat veggies. I want to kill enemies unless they aren't much danger, in which case I want to eat them." This gives more importance to what decisions a bot makes instead of letting it to the same thing in all cases: kill, then eat.


>> Drop the cost of slime way down, to, say, .01 as the default.  Leave shell costs alone.  Ideally a 1000 body bot should shoot a shot that costs the shooter the same or greater amount of nrg as it costs the defender to repair the damage to shell.

Right now:
27 shell lost from a 1000 robot's shot (costs 2 nrg to fire)
2.7 energy to replace the shell.
Assuming the shelled bot is shooting back, this still confers significant advantage to the shelled bot.

>> Tie formation cost to 100 nrg.
>> Shot formation cost to 20 nrg.

That's huge. Simple survival becomes a huge ordeal with those settings - I bet you most of the old bots won't be able to do it.

>> All bots that are entered in any league are automatically entered in the F1 league.  This rule hasn't been followed in the past, though it should be.
>> Rerun all the leagues by taking all eligible bots in the beastiary, in chronological order, and running them.  Rerun leagues every time there's a new version of the program.
>> Always use the newest version of the program to run leagues.  This means buddy drops.  If the standings change dramatically, that's a good indication of a bug to look for, so it's a good stress test of new versions anyway.  Also, this way, new bots using new features get in the league quicker.

Yes. Yes. Yes.
Title: Leagues
Post by: Numsgil on March 29, 2008, 02:47:33 PM
Quote from: abyaly
Whatever you do there, there will be a specific size of bot that optimizes these costs (for a specific dna length). I don't think this puts a very large disadvantage on small bots, as long as the dna cost is slightly more modest than 1 nrg per 100 bps. 1 per 500 or so would be more appropriate.

I'm thinking in these terms: suppose a 1000 body bot produces 100 children from itself.  Suddenly the amount of nrg that large bot represented costs 100 times as much to maintain.  I imagine that's not advantageous.

Quote
>>  Corpse mode enabled, with no decay.  Instantly killing veggies is fine, but the energy shouldn't just disappear.  Attrition shouldn't be that easy.
I don't like this idea. There is a difference between trying to eat something and trying to kill something. This adds a recognition element to the match: "I want to eat veggies. I want to kill enemies unless they aren't much danger, in which case I want to eat them." This gives more importance to what decisions a bot makes instead of letting it to the same thing in all cases: kill, then eat.

I can see your point.  Mostly this is important with the increased costs below, because bots will need more nrg.

Quote
>> Drop the cost of slime way down, to, say, .01 as the default.  Leave shell costs alone.  Ideally a 1000 body bot should shoot a shot that costs the shooter the same or greater amount of nrg as it costs the defender to repair the damage to shell.

Right now:
27 shell lost from a 1000 robot's shot (costs 2 nrg to fire)
2.7 energy to replace the shell.
Assuming the shelled bot is shooting back, this still confers significant advantage to the shelled bot.

In my mind last night I was imagining placing a disadvantage to attacking relative to defending, for various reasons.  But now I think maybe it's better to give the advantage to the attacker, to encourage more ruthless fighting.  So let's take this 2-3 relationship between cost of attacking and cost of defending as a base point.

Quote
>> Tie formation cost to 100 nrg.
>> Shot formation cost to 20 nrg.

That's huge. Simple survival becomes a huge ordeal with those settings - I bet you most of the old bots won't be able to do it.

Certainly the dumb ones won't.  I Flamma, etc.  Things like Dom Inv should be able to.  The idea here is to put more strategy in to when to shoot.  Forming ties to everything and shooting whenever something comes in range are both rather un-strategic.  I'd like to see bots weigh the benefits of moving closer to veggies when feeding to reduce unhit shots vs. time to move closer.  I guess we do some tests.  I do think that ties should cost significantly more to form than shots, since they're far more versatile and far more permanent.

-----  Stream of conciousness -----

The current shot vs. shell balance seems fairly good.  We should try to lock that relative relationship together.  The tie vs. slime is seriously bent towards ties.  Ties are cheap compared with slime, which has to be constantly maintained.  Likewise viruses are way overpowered against slime.  A bot has to spend a lot of nrg to maintain a slime shield to stop viruses.

The amount of damage a tie does to slime should be opened up as a sysvar, I think.  Same way powering up a shot works.  The base damage should likewise be related to the base damage a 1000 body bot can do to a slime covered.  Obviously, though, the tie damage isn't actually related to robot body.  That way big bots are better off with shots, and small bots with ties.

Finally, find the cost to produce the tie and the cost to produce the slime degraded by the tie.  Then factor in a healthy margin for the cost of maintaining that slime shield.  Virus effectiveness against slime likewise needs to be evaluated.
Title: Leagues
Post by: abyaly on March 30, 2008, 04:10:41 AM
Quote from: Numsgil
I'm thinking in these terms: suppose a 1000 body bot produces 100 children from itself.  Suddenly the amount of nrg that large bot represented costs 100 times as much to maintain.  I imagine that's not advantageous.
Suppose a single bot reproduces into N smaller bots.
The species DNA maintenance cost would increase by N-fold.
The species body maintenance cost would decrease depending on the scale the species uses to balance the nrg-to-body ratio. Since small bots tend to have this very low, we can assume close to 0.
The advantage this system creates peaks somewhere in the mid-sized bots, with the exact size depending on the body ratio and the dna len. I'm arguing that I would rather see just DNA cost implemented (although a small amount) rather than body cost and DNA cost. I think it's more straightforward and the change of advantage is more direct and predictable: less repro = less costs. Since you've claimed that small bots currently have the biggest advantage, this is the exact type of balance change we would want, anyway.




On the subject of balancing ties vs shots:
Since offensive ties are restricted to the F1 league, there is no reason to try to balance them against each other. F2 is the domain of shot bots.
Title: Leagues
Post by: Moonfisher on March 30, 2008, 09:37:23 AM
I like the idea of using DNA length to measure costs, but I don't think it's a good idea to mess too much with ties and shots.
You can boost your shots at a high cost, so if a bot wants to use 100 nrg shots and make sure they count it's still possible.
Also corpses would realy favor bots that use body shots. It just seems like all these changes would turn the leagues upside down, a thing like the shot and tie costs would probably cause all the strong bots to loose to bots that do almost nothing, because doing nothing is better than shooting and tieing.
Generaly agree that the changes shouldn't bee too radical, just take it one step at the time and see what works. 100 nrg cost to ties is not tweeking the value, it's 50 times the current cost...
Title: Leagues
Post by: Numsgil on March 30, 2008, 07:35:34 PM
Quote from: abyaly
Quote from: Numsgil
I'm thinking in these terms: suppose a 1000 body bot produces 100 children from itself.  Suddenly the amount of nrg that large bot represented costs 100 times as much to maintain.  I imagine that's not advantageous.
Suppose a single bot reproduces into N smaller bots.
The species DNA maintenance cost would increase by N-fold.
The species body maintenance cost would decrease depending on the scale the species uses to balance the nrg-to-body ratio. Since small bots tend to have this very low, we can assume close to 0.
The advantage this system creates peaks somewhere in the mid-sized bots, with the exact size depending on the body ratio and the dna len.

Exactly.  To go to an extreme (lots of small bots, or one huge bot) would have to be for strategic rather than cost minimizing reasons.

Quote
I'm arguing that I would rather see just DNA cost implemented (although a small amount) rather than body cost and DNA cost. I think it's more straightforward and the change of advantage is more direct and predictable: less repro = less costs. Since you've claimed that small bots currently have the biggest advantage, this is the exact type of balance change we would want, anyway.

I'm not married to the idea.  I just think it makes a good balance between large and small bots, without favouring either.

Quote
On the subject of balancing ties vs shots:
Since offensive ties are restricted to the F1 league, there is no reason to try to balance them against each other. F2 is the domain of shot bots.

I'm not saying we balance ties vs. shots.  Well, I would like to see something along those lines to help enforce the idea of small bots = tie bots and big bots = shot bots, but that's another issue.  Instead I'm saying I'd like to see ties and slime balanced against each other along the same lines as the balance between shots and shell.  Slime is severely underpowered in current versions, IMHO.
Title: Leagues
Post by: Numsgil on March 30, 2008, 07:41:19 PM
Quote from: Moonfisher
Also corpses would realy favor bots that use body shots.

There's nothing that says you can't use body shots and nrg shots in the same bot.  It would favor bots that don't indiscrimantly try to -1 shoot everything they see.

Quote
It just seems like all these changes would turn the leagues upside down,

Not necessarily a bad thing.  Some bots are extremely flexible.  I'm constantly amazed by Dom Inv by PY.  It's several years old (predates my joining certainly) and yet manages to remain viable after huge changes in the program.  Other bots are extremely fragile.  Helios used to rule the leagues until he was maimed by physics changes.  An ocassional dramatic change is a good thing, I think.

Quote
is amaz a thing like the shot and tie costs would probably cause all the strong bots to loose to bots that do almost nothing, because doing nothing is better than shooting and tieing.
Generaly agree that the changes shouldn't bee too radical, just take it one step at the time and see what works. 100 nrg cost to ties is not tweeking the value, it's 50 times the current cost...

We'd have to run some tests, certainly.  But I think most current bots would still manage.  Maybe some specialty bots like nanite detonators won't make it, but I think most of the core bots should still work fine.
Title: Leagues
Post by: Moonfisher on March 31, 2008, 03:58:10 AM
What I ment was that bots that indiscriminately use -6 shots would be favored, probably more than those who mix it up, -1 shots would be a bad thing to do to the alge and is most often a bad shot to use against normal bots.

And not saying we can't shake it up a litle, but if half the current bots fall out of the league I know I'll miss them, a lot of them use some cool tricks and behaviors, I like seing how so many different aproaches can work. I think it would be a shame to loose all this diversity. The radical changes to shot and tie values wouldn't promote interesting and original behavior, it would just completely kill off all tie feededs (Since when they come up against bots that break the ties they will spend all their energy in 2 seconds flat, then you would need 100 nrg costs on breaking a tie to make it fair).
And with 20 nrg per shot it seems like being small will be the same as being dead, generaly it just seems like people would just be forced into using a high shootval on all their shots, so why not just make that optional....
Multiply4 beats F2 and also beat F1 when it came out, just using some clever behavior and boosting shootval to 16.
So expensive shots are most definately worth the effort, but with the current solution it's optional, meaning that old bots will still work, but you can still make bots that fire far stronger shots more accurately and gain a great advantage from this. I just have to say I think the way it works now is better and more flexible, people can boost shots with 1000 nrg and only fire when they're sure they're going to hit and if the target is big enough and stuff like that.

I just think it's a shame if the league bots are in there by chance because of the latest changes, I don't mind bots falling out from changes, just not too many at the same time.
It would also be anoying to develop if the changes are too radical and too frequent... you never know what to plan for, so if you try to make something with a cool behavior it'll be out of the league after the next update... would be nice if complex bots atleast lasted long enough for some people to see them...
Title: Leagues
Post by: Moonfisher on March 31, 2008, 03:21:44 PM
I was thinking, if you want to promote heavy cost shots, then you could make shot boost exponential, so the more energy you spend the greater the gain will be.
Balance it somehow, maybe increase shell loss linearly or something... so 2 nrg shots would deal 3 more in base damage (And then increase that value slightly according to body size) and destroy 5% more shell than normal shots, a 20 nrg shot would deal 60 more damage and destroy 100% more shell, a 40 nrg shot would deal 400 more damage and destroy 200% more shell... and so on...
Ofcourse this is just an example, those values would need to be tweeked carefully before being released, but this would allow the current bots to survive while promoting high energy shots. The values proposed here are probably also too high, maybe more shell loss and less base damage, but you get the idea...

I still think ties shouldn't costs too much, ties are just overpowered, I don't think the solution is to increase tie costs.
I agree that counter leeching is overpowered, Locust is a good example, it's weak and simple but wins by counter leeching the alge to gain great numbers and then swarm the oponent. It's like there only one way to eat alge in F1 now. But you could just limit the amount of energy you can transfer through a tie to 100 or something. Would also be a good idea to limit the ways of killing through ties, seems like the tie should be used to incapacitate, not kill. Theres a lot of ways to kill a bot through a tie, so the best way to fight it is by having greater numbers using the same trick or having enough slime to keep anything off (If thats even possible).
Maybe if the value pushed by the tie acted like a 1 cycle venom and the effect was visible but you couldn't change the value affected. This would make it possible to create tie defence genes that alter other values to stay safe. Although I doubt it'll help, with info shots, venom or several ties you can still instant kill.
I think the easyest way would be to limit the values you can push into certain locations through a tie, or simply block access to all locations who can be used to kill the victim too fast. The last option is obviously the easyest, but I think it might be fun to try and balance some caps on several sysvars so you can weaken the oponent but not kill it with the tie alone.
Title: Leagues
Post by: Numsgil on April 01, 2008, 12:07:15 AM
Okay, I think we're on the right track here.  I think limiting ties to a 100 nrg transfer would be a good start.  Also make it totally independent of body.  I also think you're on the right track with the idea of a 1 cycle venom.  After DNA has been executed on all bots, have values pushed through the ties applied to the bot's memory, before any actions are taken based on what the bot's memory reads (and before the bot can properly respond to it).  Or we could have it take a full cycle like at present, and have the tie value get applied again during cycle 2.  Depends on people's thoughts.  I'd favor the first one.  Couple that with a large reduction in slime degredation (what is the current slime degredation rate, btw?  I used to know, and I tried looking on the wiki, but no luck :/) and you have a pretty balanced system I think.

I don't want to make shootval more effective, I think it works well being logarithmic.  We should also go through and find all the ways to 1 cycle instakills sometime and plug them.  The program is really designed around the idea that a dogfight between bots should take a few dozen cycles.  Helps model biology a bit better (I think).  Lots of really interesting strategies are worthless if it's easier to just kill your opponent outright.

-------

Another boost for enabling corpses: you could power up a -1 shot, kill your opponent quickly, and then spend time feeding on the body and gaining the most nrg from your opponent.
Title: Leagues
Post by: Moonfisher on April 01, 2008, 03:05:34 AM
Yeah it seems like it could be fun to have tie defence genes, as long as it doesn't get too starightforward and everyone have the same 5 genes, would be best if you need to compromize and not be able to have perfect tie defence. I mean sure you can set .shoot to 0 if your shootval is being set to 32000, but that's one fo those standard defence genes everyone would need, and in reality I don't think you should be able to kill a bot that easy. I think you can also do 2-3 cycle kills by feeding and storing body through a tie to deplete energy and other related concepts. I think one possible way to limit this would be to make all tie actions one way, if you can store body you can't feed on body, and you can only push positive values (Or negative, as long as you can only go one way)... same for shell and such.
This way you can make the oponent spend a lot of energy on something it doesn't realy need but you can't just deplete all energy making and removing the same stuff... anyway not sure exactly what is possible in this area, think we need abyaly to join in on this again, tell us what we need to secure against (Or we can always study Etch II, I know there are some mean ways of killing bots in there).
But I think this could actualy end up being some cool changes, try to get some good balance and get those loopholes fixed. I'm not sure how much ties should be limited, but I don't like the way you can kill off bots a litle too easy with ties.
Title: Leagues
Post by: abyaly on April 01, 2008, 03:45:23 AM
The only serious danger is .shootval.
No other sysvar can independently consume more than 100 nrg per cycle.
A bot with 1k body has an nrg transfer rate of 100.

Also, I like the way ties are implemented now; I have yet to see a convincing argument for changing them.

* I don't like the reasoning that led to the idea of ties being overpowered. I still think it's reasonable for an F2 bot to run the current F1 league (even though it shouldnt be--it IS F1 for a reason). If not an F2 bot, then a medium-to-large sized virus/tie bot for sure.
Title: Leagues
Post by: Moonfisher on April 01, 2008, 06:09:51 AM
The tie cap only seems to work when your bot is trying to drain energy, if it's pushing 1000 into the other bots tieval and fires -1 or -6 into it's tieloc then it seems like a bot with 1 body size can empty a large bot of energy in a few cycles... if you're an F2 bot you can break the ties, but the alge will still be vulnerable to this... look at Locust, it realy sucks but wins against most bots just from using counter leeching on the alge...
I'm not saying ties shouldn't be a mean weapon, just saying they seem overpowered, there should be benefits from using normal shots in F1 aswell I think. The tie should mostly be a way of incapacitating the oponent, if you want to drain a bot through the tie it should take some time, so you need to atleast use some venom or have another bot tied aswell to disable the oponents defences while draining it.
Dunno exactly what should be done... it just seems too easy to kill with ties... just don't want all new F1 bots to be small and have great numbers and kill only using ties and info shots, and I'm having a hard time thinking of anything that could possibly be more effective or any advantage that could be gained by adding more behaviors. Maybe it won't be a problem if people don't exploit it too much since obviously you don't HAVE to be nr 1, I just like seing F2 bots making good placements in F1, seems like that would be impossible from now on... Maybe I'm overdramatising or whatever it's called...
Title: Leagues
Post by: abyaly on April 01, 2008, 12:35:31 PM
Small bots have a vulnerability that noone is exploiting. They die in 1 hit. Guardian was able to kill the first version of etch by being very accurate with its shots and using omni-eye vision; the dinky bots would generally die before getting close enough to do anything.
Also, ties can be just as deadly for the one making the tie. They are very much a double edged sword. The exploit just needs to be counter-exploited. I don't see the point making a big deal of it just because nobody has designed a bot that does it yet. We don't have that many bot writers, so there isn't a huge influx of bots taking on the challenge.
Title: Leagues
Post by: Numsgil on April 01, 2008, 01:32:47 PM
I have two primary issues with ties:


We'll get richer simulations the more balanced the combat is.  The current settings aren't devine mandates.  Even the very idea of ties as weapons wasn't a direct design but more stumbled on by accident by PY.  Tie settings have literally been guess-and-don't-check for most of the time.
Title: Leagues
Post by: Moonfisher on April 02, 2008, 03:07:24 AM
Hmmm, well we should atleast fix shootval instant killing, but maybe ties aren't so overpowered...
Dunno just felt that a bot like Locust shouldn't even be able to get a league spot, it's only advantage is the way it eats alge (The swarming looks cool, but isn't realy usefull unless you heavily outnumber the oponent).
I'll just stay away from using that exploit from now on then, unless I have something able to beat EtchII. Working on that F2 rape bot anyway...
Still seems like there should be some handicap to ties when used as a weapon, shorter range on shots, or vision inhibitting, or something to balance them out a litle. Doesn't have to turn everything upside down, just a small handicap of some sort. And I still don't think it takes 30 cycles to drain an alge with counter leeching, seems like no more than 4 or 5 to me, that's a litle fast to drain 3000 nrg, maybe I'm just getting confused by the changes in sim speed during a combat...
Title: Leagues
Post by: abyaly on April 02, 2008, 09:20:36 AM
Shots can be aimed. Shots can be powered up. Shots don't have a potentially fatal vulnerability built into the feeding method.
It takes 9 cycles minimum (from tie initiation) to drain a bot the same size as you. Unpowered -1 shots can do it in 5 (from first impact). A -1 shot powered to 3x strength can do it in 1.



On the topic of slime vs ties. Try it, nums. Look at the amount of slime that has to be maintained in order to stop most ties and look at the energy upkeep it requires. I just now played around with it using the console and it seems very reasonable to me.
Title: Leagues
Post by: Moonfisher on April 02, 2008, 10:33:43 AM
Didn't know you could kill that fast with unpowered shots. Appart from that good point, shots don't have vulnerabilities (Provided the shootval thing is locked from venom ties and info shots), and they do have advatanges that ties don't... Maybe it's just because a lot of the bots in F1 are from a time where ties didn't work right, so the defences such...

Also I agree that slime is kinda expensive, but don't make it too cheap to maintain, if slime is too cheap then ties and viruses will end up being obsolete. Maybe have a low cap on how much slime you can make per cycle, so it's not too expensive to maintain but it can get worn down faster than you can restore it. I don't think slime is far away from a balanced cost, just a litle too expensive to be worth it.
Title: Leagues
Post by: abyaly on April 02, 2008, 10:44:45 AM
Some perspective: Making 2 slime per cycle will keep you at 100 slime. 100 slime costs 20 nrg. 2 slime costs 0.4 nrg. This is the same as 10 store commands. 100 cycles of this will cost 40 energy -- how much venom do some bots spend in 100 cycles?

In order to say "slime is expensive" and really mean it, you need to do it with full knowledge of how expensive it is.
Title: Leagues
Post by: Moonfisher on April 02, 2008, 02:29:30 PM
Heh, I'd love to, but where do I find this full knowledge of how things work ?
Do I have to test everything or can I find these details in the forum or wiki ?

Also it's hard to determine how expensive something is, since for that you need to determine it's value... how much nrg per cycle is 100 slime worth to a bot ?
Obviously helps a lot to know the details.
Title: Leagues
Post by: Numsgil on April 02, 2008, 02:43:21 PM
I'll try to do some quantitative tests after work today.  Maybe update the wiki while I'm at it.