As far as I can tell, conditions are almost always deletrious to an evobot. Take this simple gene, for example:
cond
*.nrg 500 >
start
50 .repro store
stop
There's 6 commands in there, not counting the cond, start, and stop. If any of them in the conditions section is changed, the bot will probably die very quickly. For instance:
*.nrg 500 <
Well, we've now got a bot that suicides if it's hungry. Not particularly smart, unless it's a veggie.
*.robage 500 >
This one will go cancer after a few hundred cycles. Not particularly bright of a bot to do, is it?
*.tmemloc 500 >
Something like this will pretty much make the bot sterile, as in an evolved enviroment, how often are you going to see tmemloc and tmemval be used?
Not only are conditions remarkably fragile, but no matter whether they work or not, they charge the bot energy (at least under most configurations). That essentially means, that unless every condition is really important, it's gonna get dropped fairly fast. Essentially, evo-bots are encouraged to kill off complex decision making and just run around randomly and shoot.
We really need a way of encouraging conditional logic. I suspect that removing or lessening the costs to check conditions under default/F1 settings would aid this (as well as make conditionless bots less uber, hoorah!). I've even toyed around with the idea of using negative costs to encourage conditions, movement, and things like that.