How can you measure how well the actual system works for evo and combat sims? So how can you say that it works "just as well"? And, what do you mean with "the nd system is really interesting for evo sims"?
What I mean is that currently, I have just as much fun writing bots as running evo sims. I can run evo sims in any program, but DB allows me to really put my programming skills to the test and make some killer robots.
The ND system is more interesting from an evo sim standpoint. Writing bots in it becomes more difficult because you can't be sure how it's going to act. If you see it not do X, you don't know if it's not doing it because the DNA isn't working or just dumb luck. You quickly become frustrated and give up.
I don't think either system is better or worse for evo sims. Bots will adapt given enough time to any settings. As long as they can survive at all. I don't think ND adds anything to evolution that can't be added in other, more backward compatible ways.
Sorry, but I'm tired of discussions. I simply think that DB is loosing day by day what made of it an interesting program, and there's no way to convince you of this.
Perhaps it's losing what made it interesting to
you, but it becomes ever more interesting to me as time goes on. Do you realize that this is the longest I've ever worked on a single project? 6 months. That's incredible for me. So it must hold some allure to me.
I'm sure most other people would agree with me on this. There hasn't been a stable release yet that I find less appealing than the version before. The moment (multiple I suppose) people pine for an older version is the moment we know we've moved in the wrong direction.
At some point you have to accept that you're idea is either wrong or unpopular, which amounts to the same thing in a collaborative effort. Not every idea I've had has been good or popular, and it's only been through half a dozen people telling me so that I've come to realize when this is the case.
The only idea I've refused to give up on is chromosomes and sexual reproduction. For months now I've hammered away at the problem. If you check some old threads, you'll see how my idea has matured as people have continually said "no, and here's why".
Take the criticisms of your idea and fix them. Re examine the original goals and see where a different system can work. As programmers we understand that there's no such thing as a perfect solution. Hammer away again and again at the problem until a solution is found.
What you see as elegant I see as different. While it solves many problems, it creates many new ones. If you can find ways to fix the ultimate unfairness (each gene in the simulation needs to execute as often as all other genes), the idea would then be 'elegant'. Add to that backwards compatibility, and the idea would be brilliant. It would make me cry tears of joy.
Just seems to me chaotic to leave to the user's choice something which is so low-level as the way dnas are executed. It's always a problem of elegance.
This particular slider doesn't dictate
how the DNA is executed, but the magnitude of a particular effect. It would be one thing if the slider was between reverse polish notation and Polish notation. Then it really would be stupid. This slider is more for the discrepancy between recessive and dominant genes, which is something that the user has every right to play with. I can imagine many interesting experiments that can be performed using different settings.
Might even be a worthwhile paper. The Effects of Gene Dominance on Adaptive Systems. Might be there's no difference. Might be it makes adaption harder. Might be it makes it easier. I don't know anyone's really played around with it to find out.
I think you shouldn't introduce rules specifically to obtain one result, like in this case. Similarities between biology and simulation are welcome, but I don't like ad hoc solutions.
Speaking of ideas no one likes... This one I've been pushing since before we moved boards. No one likes any idea I can come up with for establishing dominance or recession. I've tried hash functions, arbitrary rules, just about anything I can think of. Notice I keep trying new ideas. Eventually someone will like one of my ideas, or I'll think of something else that allows this as a natural consequence (the golden idea). You just have to keep plunking away until something works that people like.
This is a silly idea of complexity. Complexity arises from few, simple rules combined together in unpredictable ways.
True, but the simpler the rule set, the less complex it is. The real world has so many interconnected rules operating on each other. Most of them don't appear to be related at all (Unified Field Theory aside). Imagine if DB had people who dedicated themselves to combat techniques, or multibot creation, or chasing behavior. When you can get all of DB in your head at once it's too simple. This isn't a game, you don't have to understand all the rules to play.
As PY said, as long as the interface is relatively simple, as long as new systems follow the interfacing patterns of older systems, each and every new element makes the program ever more complex, adds newer and newer shades of grey to a still rather black and white program.
I agree that many systems in DB are adhoc. Viruses are quite an arbitrary add-on. But the core of Darwinbots is very simple, and has remained so. While it would take several hours to explain all of DB to a newbie, it would take only a few minutes to explain everything necessary to either create a bot or run an evo sim.
As long as that base, the absolute minimum, remains fairly clean, even ad hoc addons fit well into the mesh.
If I had designed viruses, likely I would have coupled it with a sexual reproduction system, and gene transferance like between bacteria. But each programmer has a different way of solving a problem, and especially in a free projet like this, time is a factor. I'm pleased enough with viruses as they stand. There's more that can be done in this area, but it's not a bad system at all, and it's simple enough to get working (.mkvirus, .vshoot, .vtimer)
I also agree that reproducing should take more time, but I'm not sure how well such a suggestion would be recieved, so I hold my tongue. It's a minor point that I don't feel is hurting either evolution or leagues, but does upset subtle implications within the program. Much better to concentrate on specific criticisms of the program that are widely held. The big problems that need to be tackled:
1. Speciation isn't possible
2. It's hard to create a predator/prey cycle without veggy population limits or repopulating veggies, both of which are very artificial.
3. Sexual Reproduction isn't possible and/or doesn't work (what we have, no, isn't really sexual reproduction, but a kind of bastard child of sexual and asexual reproduction).
4. The program takes too long to evolve bots for the impatient (simulation speed)
5. And, if you believe what Botsareus keeps going on and on and on and on about, "mutations don't work!!!!1111".
These four (5) problems are where I spend most of my time. Everything else is candy.
Notice when I first tried tackling the removal of the linearity between genes, it was done with the intent of allowing diploid organisms to develop and sexually reproduce with real life rules. Ie: problem 3.
Because you have to offer some degree of certainty at the low levels of the simulation. And you must have the courage to make some choices. Otherwise everybody will be playing a different game.
On some points yes, but constants should always be user defined, except where they're important for speed optimizations (maxspeed makes collision detection bearable).
What the program does can be arbitrary, but to what extent it does whatever it does needs to be user defined. And, of course, good defaults help users make sense of it all.