Welcome To Darwinbots > Newbie

Darwinbots replacement/clone

<< < (4/11) > >>

Numsgil:

--- Quote from: Pascal666 ---
--- Quote from: Sammeh ---What kind of FPS are you getting at say, a population of 1000 bots?
What kind of FPS would you get in DB2 with the same pop?
--- End quote ---
I am running 200 bots at about 240 cycles per second, while in darwinbots I am running only 50 bots to reach this speed.

--- End quote ---

I know Eric did a lot of work to make it faster for large( r) numbers of bots.  If you jack it up to 1000, what sort of speed do you get?  Unless you've done some broadphase work it should go way, way down since you're doing some O(n^2) work (so you're doing 25 times as much work at 1000 bots as at 200 bots.  Which means I'd guess you're getting 1 cyc/sec at 1000 bots, where DB2 might get 2 or 3).

Not that what you have isn't impressive, just saying that how many bots you can run at 240 cyc/sec might not be the best metric for comparison.

Also, I should be able to set up SVN this weekend.  If you like, I can set you up with a SVN repo for your code.  Or failing that, you should set up a google code project or a sourceforge project.

Pascal666:

--- Quote from: Numsgil ---
--- Quote from: Pascal666 ---
--- Quote from: Sammeh ---What kind of FPS are you getting at say, a population of 1000 bots?
What kind of FPS would you get in DB2 with the same pop?
--- End quote ---
I am running 200 bots at about 240 cycles per second, while in darwinbots I am running only 50 bots to reach this speed.

--- End quote ---

I know Eric did a lot of work to make it faster for large( r) numbers of bots.  If you jack it up to 1000, what sort of speed do you get?  Unless you've done some broadphase work it should go way, way down since you're doing some O(n^2) work (so you're doing 25 times as much work at 1000 bots as at 200 bots.  Which means I'd guess you're getting 1 cyc/sec at 1000 bots, where DB2 might get 2 or 3).

Not that what you have isn't impressive, just saying that how many bots you can run at 240 cyc/sec might not be the best metric for comparison.

Also, I should be able to set up SVN this weekend.  If you like, I can set you up with a SVN repo for your code.  Or failing that, you should set up a google code project or a sourceforge project.

--- End quote ---
In AEvolution I get 10 cycles per second at 1000 eye carrying bots, and in darwinbots I get 2 cycles per second with simple algae bots. So the comparison is about the same.
But you could get even a bigger advantage if you run multiple environment/simulations, 2 simulations of 500 bots run at 20 cps/40 total.

These are the main performance checks, which probably could also be applied to darwinbots.
- Colission checks(the 200 stands for the maximum mass which is 100, 100 + 100 = 200...)
For i = Entity + 1 To GLO_TOTALENTITIES ' It doesnt check indexes below him, because they have already checked for colission.
If Entities(i).X - .X > 200 Or .X - Entities(i).X > 200 Or Entities(i).Y - .Y > 200 Or .Y - Entities(i).Y > 200 Then GoTo nextEntity
- Also resizing the index of GLO_TOTALENTITIES to the last highest index of dead entities in main loop.
- And reproduce/repopulation uses the lowest last dead index if there is one.
- DNA gene caching, store the locations of every gene which allows skipping genes faster once the condition is false.

Next week I will create a souceforge project.

peterb:
i think your using vb6 drawing routines (based on the patern fill), these are slow, you might take a look at opengl slimDX or directX.
The fasted method might even be to not draw circles, but XOR bitmap of circles (having a few bitmap sizes in cash doesnt take much memory, or simply stretch)
Faster drawing methods will improve the speed even more.

But i dont think it works for me, not much happens when i load it.
Still i hope your code is more transparent i have given up trying to understand the original code, to much hidden variables for me to keep track off.

If your program is good structured and clear to read.
Then that would be promising.

If possible i would request more memory slots per cell, so we might later introduce real neural networks, and add some extra bot DNA math for that (sigmoid summAll etc, summWeighted).
A multibot editor (to create bots without defining complexly their shape trough DNA) would be nice too.

ashton15:
Yeah i'm having problems with too few memory locations but i've worked out I can store multiple values in one location through a system like binary for instance so 1,1,0 might equal 6 or 2,1,0 with 3 bieng the highest posible value I'd have 63 (0*3 + 1*9 + 2*27) bit too complicated for my liking... also having a small bot circle allows an extra 22 memory locations using every memloc and out sysvar though it's not that practical as it just converts one memory location into another type that in most situations is less useful about twenty-five thousandish should be adequate to create a multi-cellular DB with human intelligence... and maybhe 400 out and in sysvars... is a neural net the same thing as having a web of what varibles every other varible alters? because that's the kinda thing I'm trying to make... I want a bot that can understand that shootval is log2 and changing it affects how far or how powerful a shot is and then that links to a formula somewhere that knows how much it should decrease shootval by because it knows that's what it has to do in order to hit an enemy and thus get energy... it doesn't just do things without thinking... that's the main problem I have with darwinbots. anyways I tried it and made this though it doesn't apear to work

condition
   readmybmem1 1 =
gene
   3 moveforwards
endgene

condition
   sight 999 <
   sight 1 >=
   samespecies 0 =
gene
   refvelocity + 3 moveforwards
   refangle setangle
endgene

condition
   mymass - bondmass 1 >
gene
   sharebmass
endgene

condition
   mymass bondmass >
   myenergy - bondenergy 250 >=
gene
   250 sharebenergy
endgene

condition
   sight 50 >
gene
   1 eat
endgene

condition
   totalbonds 0 =
   samespecies 0 =
gene
   1 writebmem1
   growbond
endgene

condition
   readmybmem1 0 =
   totalbonds 1 =
   myenergy 500 >
gene
   growbond
endgene

condition
   readmybmem1 0 =
   totalbonds 2 =
   myenergy 1500 >
gene
   growbond
endgene

condition
   myenergy 5000 >
gene
   reproduce
endgene

Ammeh:
looking at the DNA for your bots, it seems they're similar to DB's bots. Could you maybe replace the dna commands to be compatible with DB code?  

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version