Author Topic: Slim Evo Mach 1.3  (Read 3466 times)

Offline rsucoop

  • Bot Destroyer
  • ***
  • Posts: 166
    • View Profile
Slim Evo Mach 1.3
« on: January 31, 2008, 11:39:17 PM »
Code: [Select]
'Slime Evo Mach 2.0; The Communicator: Designed from the same principle as the Slim Evo, and still

'implements the same feeder formulas as the 'previous version.
'One great improvement is the introduction of armor, secondary weapons genes, and a finall kill all

'gene for when all goes wrong. The eye 'genes have been reduced to just three gene.

'Initialize Genes
cond
*.robage 0 =
*.eye5 50 <
start
1 .tie store
stop

'Identification Genes

cond
*.robage 0 =
start
5 rnd 110 store
*110 .out1 store
*.dnalen .out2 store
*40 1 add 40 store
'40 - Parental Override Value
stop

'Phase 2 of Child (aka 21 activator)

cond
*.robage 21 =
start
1 *40 sub 40 store
*40 .out3 store
1 .deltie store
stop

cond
*.robage 21 > and
*140 0 =
*.nrg 4000 >
*.body 500 >
*.numties 0 >
*.pleas *.numties >
*.eyef 0 > and
*.refeye 0 =
start
45 *.aim sub .setaim store
40 .repro store
90 *.aim add .setaim store
stop

'Store away 10% of Nrg if 9% pleasure recieved

cond
*.nrg *.pain add 2 div 1 %=
*.body 800 <
start
*.nrg 10 div .strbody store
stop

'Maintain a body of 900

cond
*.nrg 1000 >
*.body 800 <
start
*.nrg *.body div .strbody store
stop

'Eyef Rotator

cond
*140 0 =
*.eye5 *.eye1 >
*.eye5 *.eye2 >
*.eye5 *.eye3 >
*.eye5 *.eye4 >
*.eye5 *.eye6 >
*.eye5 *.eye7 >
*.eye5 *.eye8 >
*.eye5 *.eye9 >
start
0 .focuseye store
stop

cond
*140 0 =
*.eye4 *.eye1 >
*.eye4 *.eye2 >
*.eye4 *.eye3 >
*.eye4 *.eye5 >
*.eye4 *.eye6 >
*.eye4 *.eye7 >
*.eye4 *.eye8 >
*.eye4 *.eye9 >
*.refeye 0 !=
strt
-1  .focuseye store
stop

cond
*140 0 =
*.eye3 *.eye4 >
*.eye3 *.eye1 >
*.eye3 *.eye2 >
*.eye3 *.eye6 >
*.eye3 *.eye7 >
*.eye3 *.eye8 >
*.eye3 *.eye9 >
start
-2 .focuseye store
stop

cond
*140 0 =
*.eye2 *.eye1 >
*.eye2 *.eye6 >
*.eye2 *.eye7 >
*.eye2 *.eye8 >
*.eye2 *.eye9 >
*.eye2 *.eye4 >
*.eye2 *.eye3 >
*.eye2 *.eye5 >
*.refeye 0 !=
start
-3 .focuseye store
stop

cond
*140 0 =
*.eye1 *.eye6 >
*.eye1 *.eye7 >
*.eye1 *.eye8 >
*.eye1 *.eye9 >
*.eye1 *.eye2 >
*.eye1 *.eye3 >
*.eye1 *.eye4 >
*.refeye 0 !=
start
-4 .focuseye store
stop

cond
*140 0 =
*.eye6 *.eye7 >
*.eye6 *.eye8 >
*.eye6 *.eye9 >
*.eye6 *.eye5 >
*.eye6 *.eye3 >
*.eye6 *.eye4 >
*.eye6 *.eye2 >
*.eye6 *.eye1 >
*.refeye 0 !=
start
1 .focuseye store
stop

cond
*140 0 =
*.eye7 *.eye8 >
*.eye7 *.eye9 >
*.eye7 *.eye6 >
*.eye7 *.eye5 >
*.eye7 *.eye4 >
*.eye7 *.eye3 >
*.eye7 *.eye2 >
*.eye7 *.eye1 >
*.refeye 0 !=
start
2 .focuseye store
stop

cond
*140 0 =
*.eye8 *.eye9 >
*.eye8 *.eye2 >
*.eye8 *.eye3 >
*.eye8 *.eye4 >
*.eye8 *.eye5 >
*.eye8 *.eye6 >
*.eye8 *.eye7 >
*.eye8 *.eye1 >
*.refeye 0 !=
start
3 .focuseye store
stop

cond
*140 0 =
*.eye9 *.eye5 >
*.eye9 *.eye8 >
*.eye9 *.eye1 >
*.eye9 *.eye4 >
*.refeye 0 !=
start
4 .focuseye store
stop


'Tie to Algea

cond
*140 0 =
*.eyef 50 >
*.refeye 0 =
*.numties 6 <
start
300 rnd 20 add .tie store
0 *40 store
75 *.aim add .setaim store
stop

'shoot enemies

cond
*140 0 =
*.eyef 55 >
*.refeye *.myeye !=
*.refeye 0 !=
*.in1 *.out1 !=
start
*.refveldx 3 mult .aimshoot store
*.nrg 4 div .shootval store
-1 .shoot store
stop

'respond to shot hits.

cond
*.shflav 0 !=
*.shflav -2 !=
start
1256 *.shang sub .aimshoot store
16 .shootval store
-6 .shoot store
0 .shflav store
stop

'remeber birth place

def xbirth 54
def ybirth 55
def return 56

cond
*.robage 0 =
start
*.xpos .xbirth store
*.ypos .ybirth store
stop

cond
*.pain 200 > or
*.nrg 400 %<
*.xpos *.xbirth !=
*.ypos *.ybirth !=
start
*.recalls abs 25 mult rnd 0 = and
*.xfood *.yfood angle .setaim store
*.return inc
stop

'Read Ties

cond
*140 0 =
*.numties 0 >
*150 *.numties <
*.multi 0 >
149 1 =
start
*150 .tienum store
*150 .readtie store
*150 1 add 150 store
0 149 store
stop

cond
*.readtie *150 =
start
15 .memloc store
*.memval 76 store
454 .memloc store
*.memval 71 store
463 .memloc store
*.memval 72 store
466 .memloc store
*.memval 70 store
505 .memloc store
*.memval 73 store
*.sharenrg .tmemloc store
50 .tmemval store
stop

cond
*140 0 =
*170 *.trefnrg 1 sub<
*.nrg 9000 <
*.body 800 <
*.trefeye 0 =
*.numties 0 >
*.waste 0 >
*.multi 0 >
*.trefnrg 1000 >
*.pain 0 >
start
*150 .tienum store
*.out3 1000 div *.out3 315 div add *.pain 2 mult add .tieval store
.nrg .tieloc store
1 .sharewaste store
stop

'Make veggie fire at enemy bot

cond
*73 40 >
*.trefnrg 100 >
start
.refxpos .memloc store
*.memval 74 store
.refypos .memloc store
*.memval 75 store
*74 *75 angle 76 store
19 .tmemloc store
*76 .tmemval store
cond
*.eyef *73 >
start
.vel .tmemloc store
23 .tmemval store
.trefvel .tmemloc store
*.vel .tmemval store
cond
*.eyef *73 <
start
.vel .memloc store
*.memval .vel store
*76 .setaim store
stop

'Make veggie tie to other veggies

cond
*.numties 0 > and
*.trefeye 0 = and
*70 1 <
*72 *.trefeye = or
*466 1 >
start
'fire tie
330 .tmemloc store
100 rnd 10 add .tmemval store
stop

cond
*72 0 =
start
'share energy
476 .tmemloc store
*830 .tmemval store
stop

'cause veggie to eat enemies

cond
*.numties 0 > and
*.trefeye 0 = and
*70 1 <
*72 *.trefeye != and
*72 *.myeye !=
140 0 =
start
'locate energy info in enemy bot
476 .tmemloc store
*.sharenrg .temval store
1 140 store
stop

cond
*140 1 =
start
475 .tmemloc store
*.trefnrg .tmemval store
0 140 store
stop

'set the paramaters for the veggie, ie distance and angle

cond
*.numties 0 > and
*.trefeye 0 = and
*.tielen 40 != or
*.tieang 230 !=
start
40 .fixlen store
0 *.tienum add .fixang store
40 .stifftie store
stop

'move forward

cond
*.vel *.maxvel <
*.eyef *73 >
start
*.maxvel *.vel sub .up store
stop

'rotate to object

cond
*.eyef 0 >
*.eyef 80 <
*.refeye *.myeye !=
start
*.refxpos *.refypos angle .setaim store
stop

'sever bad ties

cond
*.trefeye *.myeye %!=
*.trefeye 0 !=
*.numties 0 >
*.pain 0 >
*.nrg 10000 <
start
*.tiepres .tienum store
*.nrg .tieval store
310 .tieloc store
stop

cond
*.numties 0 >
*.trefeye *.myeye !=
*.trefeye 0 !=
start
*.tiepres *.tienum store
*.trefaim *.aim sub .setaim store
*.tiepres .deltie store
*990 dec
stop

cond
*.nrg 14000 <
*.tiepres *51 !=
*.numties 0 >
*.trefeye *.myeye !=
start
*.tiepres .tienum store
400 .tieval store
.tieval .tieloc store
99 .sharenrg store
1 *.sharewaste add .sharewaste store
stop

cond
*.nrg 14000 <
*.multi 0 >
*.numties 0 >
*.trefeye 0 = or
*.trefeye *.meye =
start
50 .sharenrg store
50 .sharewaste store
stop

cond
*.tielen 100 <
*.multi 0 >
*.trefeye *.myeye %=
*.trefage *.robage > and
*.eyef *73 >
start
100 .fixlen store
45 *.refaim add .fixang store
stop

cond
*.multi 0 >
*.trefeye 0 =
*.stifftie 0 =
start
40 .stifftie store
stop

'feed from body when hungry

cond
*.nrg 4000 <
*.body 200 >
*.pain 0 >
start
*.body *.pain div .fdbody store
stop

cond
*70 0 >
*149 0 !=
start
0 149 store
stop
end

The above bot collects veggies, and uses there memory to tie to more bots and create a super powerful bot. The next version will introduce a highly powerful multi bot coordinated shot at groups of enemies.

*Update: The body is set to store away energy more often, the conditions for birth are as follows, there must be some veggies present and good energy to make new life. The robot always remembers its birthplace and tries to go to it in times of crises. Current Simulation shows the bot growing to 600 and not being able to locate the best.
« Last Edit: February 02, 2008, 10:45:07 PM by rsucoop »

Offline Moonfisher

  • Bot Overlord
  • ****
  • Posts: 592
    • View Profile
Slim Evo Mach 1.3
« Reply #1 on: February 02, 2008, 04:56:43 PM »
I'm not 100% sure, but I don't think you can push several values into a memmory location in the same cycle.
I'm refering to some of the actions when trying to controll the alge, it's hard to do several things through the tie, you need to adjust the aim in one cycle, then shoot in the next cycle and your aim will be slightly off then. You could ofcourse try to adjust the aim accordingly, or you could have 2 or more bots cooperating to controll the alge. (I'm already playing around with that idea, but I doubt I will have much time for bots in the near future)

Also alge have no eye comands... so their refeye is 0... sometimes the bots just seems to ignore alge next to it, this could be the cause...
I'm also a litle curious about mem location 140 which you seem to wish to be 0, I haven't checked if this is a reserved memmory location, but if it isn't then that condition doesn't realy do anything (You never change that memmory location)... only use would be if you wanted to shut down those genes at some point....

It also seems to leave the alge behind, not sure if this is intentional... but you could use 40 .stifftie to get a better connection to the alge and drag it with you...
(Takes 20 cycles for a tie to harden I think).

Anyway, keep working on it, I want to see bots that realy put the alge to good use, I was trying to the alge to help my seeds fight in my first/only bot (Ebola) but kinda gave up on it cause I didn't understand how things worked well enough to get it working.
I might try to fix up Ebola at some point once there are some more new bots around and I have time for it... but if you could build a good system for it in the meantime I can just steal it  

I guess I'm saying I realy like the idea, but theres still a lot of bugs in there... it has problems just staying alive under F1 conditions (Running 2.43z).
But don't give up on the idea, alge have great potential to be used as a "buddy".

Offline rsucoop

  • Bot Destroyer
  • ***
  • Posts: 166
    • View Profile
Slim Evo Mach 1.3
« Reply #2 on: February 02, 2008, 05:15:54 PM »
Quote from: Moonfisher
I'm not 100% sure, but I don't think you can push several values into a memmory location in the same cycle.
I'm refering to some of the actions when trying to controll the alge, it's hard to do several things through the tie, you need to adjust the aim in one cycle, then shoot in the next cycle and your aim will be slightly off then. You could ofcourse try to adjust the aim accordingly, or you could have 2 or more bots cooperating to controll the alge. (I'm already playing around with that idea, but I doubt I will have much time for bots in the near future)

Also alge have no eye comands... so their refeye is 0... sometimes the bots just seems to ignore alge next to it, this could be the cause...
I'm also a litle curious about mem location 140 which you seem to wish to be 0, I haven't checked if this is a reserved memmory location, but if it isn't then that condition doesn't realy do anything (You never change that memmory location)... only use would be if you wanted to shut down those genes at some point....

It also seems to leave the alge behind, not sure if this is intentional... but you could use 40 .stifftie to get a better connection to the alge and drag it with you...
(Takes 20 cycles for a tie to harden I think).

Anyway, keep working on it, I want to see bots that realy put the alge to good use, I was trying to the alge to help my seeds fight in my first/only bot (Ebola) but kinda gave up on it cause I didn't understand how things worked well enough to get it working.
I might try to fix up Ebola at some point once there are some more new bots around and I have time for it... but if you could build a good system for it in the meantime I can just steal it  

I guess I'm saying I realy like the idea, but theres still a lot of bugs in there... it has problems just staying alive under F1 conditions (Running 2.43z).
But don't give up on the idea, alge have great potential to be used as a "buddy".

The first run I made with it, just having the tie genes and one movement gene, it did some wierd things, mostly the veggies were in fact tie shooting. But now the more I run it the more difficult it is to produce those effects. Mostly the 140 is for mutation purposes.

The next idea would be using a timer to cycle through each tie command. But like you mentioned, the aim would be off so those two (shoot and aim) must override all other commands (1 more variable). Then the tie commands for the veg. And finally a check for enemies. But at any point the bot will ahev major holes. So the next idea would be turning one baby bot to face the parent, and read the parent's out signals as to guess what needs to be checked in the veg bot. But that leaves a volnurable spot in the bots attack/defenses.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Slim Evo Mach 1.3
« Reply #3 on: February 02, 2008, 09:42:13 PM »
I also had the same concept way back when, but never got around to trying it because of the limitations of communicating through a tie.  Each cycle you could do one command through the tie, and then have it take effect the following cycle.  So getting any sort of viable version going is going to be extremely hard.

Offline rsucoop

  • Bot Destroyer
  • ***
  • Posts: 166
    • View Profile
Slim Evo Mach 1.3
« Reply #4 on: February 02, 2008, 10:05:11 PM »
Quote from: Numsgil
I also had the same concept way back when, but never got around to trying it because of the limitations of communicating through a tie.  Each cycle you could do one command through the tie, and then have it take effect the following cycle.  So getting any sort of viable version going is going to be extremely hard.

perhaps a secondary style of ties would be in order, maybe a conspecs tie, which can do transfers at a faster rate and can be read simultaneously while the regular tie function goes.

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Moderator
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Re: Slim Evo Mach 1.3
« Reply #5 on: May 02, 2014, 12:41:20 PM »
Very sad, bot does 'nothing' in current version, going to untagged.