Hello everyone...
OK, I'm planning on making a DB fork. It's a little ambitious, but then again, so is the whole DB project.
My #1 concern is speed and simulation size. I'm thinking you're more likely to evolve complex behavior if you run a large sim for a long time, maybe 100 megacycles or more, as opposed to making a more complex sim but running it for only a megacycle. I don't think 10 cps for a large sim is an ideal goal. So, I'm thinking of continuing DB 2.5. Here's the plan:
1: Finish the DB 2.5 Cpp port, then add features such as shadows, improved multibot/sexrepro design, self-modifying code, maybe size changing, etc...
(3D graphics and other potentially time-consuming, difficult-to-implement features aren't necessary)
2: Find out how to take advantage of multiple cores/multiple computers, such as utilizing a beowulf cluster, maybe even use GPGPUs one day (there are versions of Cpp for GPGPU programming)
3: Finally, get the finished DB program to run in an extremely fast OS, such as MenuetOS or DSL.
My goal is 500-1,000 cps for a large sim. Using a Beowulf cluster running DB2.5 in a very lightweight OS, this should be possible, right?
My ultimate goal, though, is to make a cluster running a stripped-down OS which itself only runs DB, making it a DB-centric "supercomputer".
Here are my concerns...
1: What problems does DB 2.5 still have? How hard will it be to finish it?
2: How difficult would it be to implement these new features?
3: How difficult would it be to make it multicore/multithread/multicomputer compatible?
4: How much of a speedup can I expect?
5: Do you think it's worth it? Can I expect more interesting evolution in this program than in DB3?
Right now, I'm under the impression this won't be too difficult. DB2 already can spread organisms from sim to sim. DB2.5 is half-done. Thus, a preliminary version of DB2.44 in CPP with organism sharing will be easy to implement, right?
Thanks for your help!!!