Bots and Simulations > Bot Tavern
Advanced Multibot Project
Tj3:
Okay. If you want to work on it, we should first decide on things that apply to the entire MB(variables, etc.). Then we can make the DNA for different cells seperately, and combine them at the end.
By the way, isn't there a limit on ties? Like 3 or 4 per bot?
bacillus:
Whoa, so much to address:
Concerning tie motion, it's yet another thing that will be fixed in DB3 - the way I understand it, bots that are tied will be linked surface-to-surface, so they can't really stretch. However, it means turning will affect the entire organism, so would give realistic motion. As a result, turning will require exerting a torque rather than setting an angle (this makes aiming a bit of a pain, but having to develop muscles to flex seems like a good thing.)
I don't really have time to work on projects this year, and I also don't have anywhere to 'playtest' the code, so I'll mostly be dropping handy hints. I tried to make it obvious how the structure works, but if you have doubts, feel free to ask and I'll try my best to explain them.
Oh yeah, and no tie limits, but make sure to give your ties good IDs so the bots can easily find them...
Houshalter:
I don't like the idea of abandoning ties. I think you should just drop the things that are supposed to balance them but end up making it a pain like nrg distribution, tie angles, etc. Ties should be easy to do and be completely open to different strategies so its open to evolution. Don't make it more complicated, even if it is more like real life.
Also, for the bot were making, we need to set a few things in reserve. We need to create a way for a bot to control what it does on the first cycle. We need to set one variable aside that will control which specialized genes activate on each type of cell, some genes might go to multiple cells. My idea was to have a snake like bot that would spawn long tentacles on either side of it that would grow over time when there was nrg and grab food when they saw it. When they grew long enough, or collected enough veggies they would become body cells themselves and spawn more tentacles, like a tree growing branches that grow more branches. Eventually it would grow big enough that some of the branches would "break off" from the larger bot and become a seprate bot entirely. I already have the tentacle cell mostly done, but it still needs genes for feeding and for growing/branching-off.
ashton15:
If we want to have movement cells surely an easy way to stop them breaking would be
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']cond
*.multi 0 !=
*.celltype 5 =
*.tielen 80 >
start
75 .tielen store
stop
where 5 is a movement cell. And also could .tmemval be used in conjunction with .tmemloc to syncronise timers for directed movement and also use 0 .setaim store to help with co-ordination, so the robot rather than turning and twisting out of control moves up and down, left and right
bacillus:
--- Quote from: Houshalter ---Also, for the bot were making, we need to set a few things in reserve. We need to create a way for a bot to control what it does on the first cycle. We need to set one variable aside that will control which specialized genes activate on each type of cell, some genes might go to multiple cells. My idea was to have a snake like bot that would spawn long tentacles on either side of it that would grow over time when there was nrg and grab food when they saw it. When they grew long enough, or collected enough veggies they would become body cells themselves and spawn more tentacles, like a tree growing branches that grow more branches. Eventually it would grow big enough that some of the branches would "break off" from the larger bot and become a seperate bot entirely. I already have the tentacle cell mostly done, but it still needs genes for feeding and for growing/branching-off.
--- End quote ---
I think the best way to do it would be this:
- the tentacles can read from the base 'spine' and use .tmemloc to pass on limited info, but the spine will only read from the brain. In other words, the ten I/O ports are used for head-to-spine and spine-to tentacle information, and .tmemloc has to be used as an eleventh 'reverse port'.
- the head gives off a signal, which is passed up the spine, increasing every time a cell recieves it, and once it hits the tail, it's bounced back without incrementation. That way, each spinal cell knows roughly its position in the organism and the size of the organism, which can then be transmitted to the tentacles to determine size eg. the larger the organism, the larger the tentacles, and tentacles shouldn't form too far in front so it doesn't interfere with vision etc.
- The tail cell has to spawn the new tail before becoming a part of the spine - this is marginally more difficult than the standard head reproduction, but solves the problem of functional head-cell issues.
The best way for ties not to break is to use .stifftie and coordinate motion with velocity limits.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version