Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Moonfisher

Pages: 1 ... 37 38 [39] 40
571
Bot Tavern / Deadliest Virus -ever-
« on: February 24, 2008, 01:22:34 PM »
I would say the best base for a virus would be :

cond
*.key *.keyvalue !=
start
50 .repro store
*.thisgene .mkvirus store
31999 .vshoot store
stop

This will primarily target the alge, and make it hard to find food unless you're prepared for it.
I'm using something similar in Ebola if you want to see it in action.
From that point you can always add more but it will also take more time to charge.

The second virus in Pacifist actualy hides it's presence while it's deleting genes and taking over, and initialy it didn't kill the victim, but the league fights where taking ages so I made it more lethal. (The fights can still take a long time though, but not nearly as long as they did initialy. Personaly I just use the auto win button when I can see the other bot no longer has a chance)
The downside is the time it takes to charge the virus, which is also why the first virus is a lot shorter.
The purpose of the viruses in pacifist isn't to be used as a weapon though.

In the end I don't think you can make a perfect virus, it all depends on how you plan to use it.

572
Short bots / Pacifist (5G) (Moonfisher) 19-02-08
« on: February 23, 2008, 12:39:49 PM »
Lol, it just hit me... it's only 4 genes... not 5....
I was thinking of isolating the tie comands in a seperate gene, but then I read the rest of that post about storing in mem loc 0 and figured there was no point since there are no costs involved unless the command is executed...
Guess it's too late to change the name now...
I guess I'll have to make a version 0.02 and either label it 4G or add a gene
Won't have time for it for a while, and I may aswell wait for someone to beat it before making any hanges... if it ain't broke...
I'd rather play around trying to make an alge for IM then... although it seems like alge are realy overpowered, the only downside is the max to the pop count which inhibits evolution, but shrinking violet seems to manage just fine...
Still seems like whatever I'm doing with IM sin't working right, tryed deleting the pop files manualy and stuff like that.... still just got the exact same files back...
Everything is just standing still in there... sais there are 16 sims, but the only changes I can see are from my own species count or the one on computers on the same network as me... got no clue whats wrong at this point....

573
Bot Challenges / Challenge #5: Eusociality
« on: February 23, 2008, 09:27:54 AM »
I don't know if this would count... but I have a bot (Pacifist) which never feeds by itself, it just lies around as a seed and spreads a virus which forces the alge to move around and feed it.... I know the alge isn't exactly the same species, and they're not exactly herding the alge.... but they are distributing tasks (Just to other species).

Anyway according to wiki the terme includes taking care of the young, and I realy doubt any of the bots out there take special care of other bots with a low robage, so tecnicaly none of the current bots are displaying true eusociality...

But since we're talking about cells and not insects I guess you can't realy take the meaning of the word literaly, since insects lay eggs and cells just split...
I guess you could always reproduce small babyes and feed them till they reach a certain age or energy level... but I can't think of a good purpose for it (Other than watching it and finding it interesting).

Or maybe I can.... I guess you could let the elder generation fetch alge and place them in the middle og small nests of "babies".
The babies would be tied together with short stiff ties on the inside and longer ties on the outside....
This would allow the parents to place alge in the gaps on the outside, the nest would then bring the alge to the center and feed on it's energy and body without killing it.
If anything hostile enters the gaps the babies should be able to defend themselves, either by tieing at the same time (To make people loose track of incoming ties) or just various shots and venoms, either way if enemyes enter the gaps they'll be surounded.
On the outside there could be parrents patrolling, and the nest could possibly spray out random memmory shots if we have the energy for it (To make enemyes turn or take off backwards or sideways or such).
And if using memmory shot is ineffective or too costly you could always sacrifice a baby by draining it's energy and turning it into a decoy (Prefferably drawing the enemy towards the parents), although I'm having doubts about that strategy...

Either way you would have small clusters of babies that will keep making new babies and growing adults to hunt food.

You could ofcourse always split up parrents further, to have hunters, defenders, harvesters, colonizers (Turns into babies once it's attached to an alge) , scavengers (If bodyes are enabled) asf...
And ofcourse you could use energy shots or ties to feed the babies, but I would only use certain parrent types for that.
So harvesters would only "refill" their tank to go look for more alge, while hunters would kill the alge and feed babies with energy shots when they meet them.
And oddly enough only the babies (And colonizers) would make babies and the grownups would be sterile, this way if certain parent behaviors are proving to be inefective their numbers would be low but they would never completely die out.

If you seperate the code between babies and parents well and try to ensure that the babie behavior doesn't mutate too much then different parrent types could evolve from this while having a "steady" base.

Also make sure the conspec is good and steady, best I can think of so far would be what I sugested for the whole cross species recognition idea :

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']cond
*.eyef 0 !=
start
*.body *.nrg add *.aim sub .out1 store
stop

cond
*.eyef 0 !=
*.refbody *.refnrg add *.refaim sub *.in1 !=
start
'Kill
stop

I would probably add *.totalmyspecies to the equation unless I plan to use viruses that take over other species or alliances or something.
Now the conspec would have to be deeply embeded in certain actions (Like shooting) to make sure evolution doesn't favor canibalism too much.
But no matter what the conspec probably wouldn't last, best I can think of would be to keep the algorith as short as possible, like *.totalmyspecies *.nrg add, to make it less likely to mutate, and then have a lot of genes that stear agressive parrents away from other bots or lock the shoot values and stuff like that.
Again this would not last forever not even if every single gene was dependant on the conspec, so another way to try to keep the conspec from completely breaking down would be to make them very dependant on eachother, let them cry for help, hunt in flocks, and stuff like that. This way if a bot kills it's own flock it will be easy prey for other bots.

You could also try to implement a signature....
So you would have your conspec ID on out1, your communication of state on out2 (states like, being attacked, hunting, being attacked by canibal, transmitting a canibal ID, transmitting enemy coordinates, transmitting nest coordinates, asf), enemy coordinates (Or other additional info, such as a canibals fixed ID) on out3 and out4, and that would just leave space for a fixed ID value on out5.
This way if a bot gets atttacked by a canibal it would comunicate his fixed ID to the others allowing them to indetify the threat among them....
The real trick would be to seperate canibals from bots that are just louzy shots...

And yeah I know this isn't exactly cost effective, since you see something every second you would be comunicating constantly. So you would spend 0.2 energy per cycle just on comunication whenever you see anything, however if what you see isn't friendly then you would be spending 2.0 per shot and 2.0 per tie, and probably lots of energy on mutated genes that  aren't mutualy exclusive, storing different values into the same locations, or just wasting energy on usless comands.
So all in all I don't realy think 0.2 nrg per cycle is a disaster if it will help your bot evolve as a flock....


I guess I kinda got a litle off track with all this, but I'll be starting to work on my thesis soon, so I doubt I will have any time for DB till I'm done.  (I hope too see some mean F1 bots tearing Ebola and Pacifist to pieces when I get back, so I have a new challenge, I mean whats the point of building a league bot if noones gonna try and beat it).

But in the meantime I guess I wanted to air some ideas for all the people running Evo sims and IM out there, since I won't have time to play with them for a while I might have the luxury of seing them in other bots.

574
Internet Mode Commentary / The State of the Simulation
« on: February 21, 2008, 10:28:54 AM »
I still can't get internet mode to work...
I switch on the F1 internet mode flag, then the log sais it's deleting the old pop files, then once the first countdown is over I get the graph.
But after that... nothing happens, the only values on the graph to change are the ones for bots that I'm running myself.

I wanted to see if Pacifist could handle the 25K internet challenge, but if I never send out my bots I don't see how that would happen.
Tryed just making a max size environment with 300 alge, but everything just froze up completely around 9K while the bot was still just getting started...
I suspect that my bot may have problems spreading through teleporters (Since they're always small and average 0-250 nrg while hibernating below 100).
I guess you could do all sorts of stuff, like disable hibernation below a certain myspecies count, or save up energy above a certain myspecies count, but it seems "unethical" to try to adjust the bot to be well suited for teleportation...
I'm hoping the infected alge minimalis would be able to clear the way, or atleast survive so it can feed incoming pacifists...

Either way it doesn't matter if I can't get internet mode to work...

Would be cool if someone would try out Pacifist on internet mode and tell me if it has a chance...

575
Bot Tavern / Universal Species Recog Gene Protocol (F1 conditions)
« on: February 20, 2008, 05:50:04 PM »
I'm not sure if I got the point here, maybe mutations are too destructive to maintain what I have in mind...
Either way, if you just need a universal conspec, why not just do this :

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']cond
*.eyef 0 !=
start
*.body *.nrg add *.aim sub .out1 store
stop

cond
*.eyef 0 !=
*.refbody *.refnrg add *.refaim sub *.in1 !=
start
'Kill
stop

You could do the same using .memloc/.memval ofcourse...

And as always someone could just copy the exact same values and algorith that you're using.

If you're not going for cross species you could just add *.totalmyspecies to the equation to make sure people can't duplicate it.
If I'm completely missing the point here, then this could at the very least be usefull for short bots.
I can't think of a way to fool this method, unless someone can think of a way I'll probably use it if I decide to keep working on Pacifist.

576
Short bots / Pacifist (5G) (Moonfisher) 19-02-08
« on: February 19, 2008, 11:43:37 AM »
Quote from: rsucoop
40 824 *.nrg 100 sub sqr dup div mult store

perhaps use soemthing involving pain to trigger it at different nrg levels.

Initialy it did create more shell, but I kinda like to keep it as simple as possible. Also at the time I thought storing into mem loc 0 had costs, should have read the entire post, apparently they did add costs to storing in mem loc 0 and then removed them again.... (I only read the first part )
So theoreticaly there are no limits to the length your code can have with no costs.
But I kinda felt like that would be cheating...

577
Tips and Tricks / Hibernation
« on: February 19, 2008, 04:57:15 AM »
You call that a hibernater?
THIS is a hibernater : [a href=\'index.php?showtopic=2547\']Pacifist[/a]
It should also work even if they put costs back on stores in adress 0

578
Short bots / Pacifist (5G) (Moonfisher) 19-02-08
« on: February 19, 2008, 03:50:04 AM »
By the way, I haven't been able to get internet mode to work propperly, so if you run it in internet mode I would love to hear the results.
I also read something about F1 internet mode somewhere, I would love to hear how it does in there aswell.

Remember to disable mutations.

579
Short bots / Pacifist (5G) (Moonfisher) 19-02-08
« on: February 19, 2008, 03:40:33 AM »
Heres my second bot, no stolen code this time.
It hasn't been fine tuned for either F1 or internet mode, it should work well in both.
You can adjust the nrg level to a higher value like 150 if you want to see it break 1000 units under F1 conditions.
This is what I call the rough tweek, theres room for a lot of improvement and finetuning, but this will have to do for now.
It's actualy overkill, some earlier versions where tecnicaly more effective and more true to the concept of being a pacifist, but some fights would last forever.
I guess it's a short bot, but it should do well in the F1 league aswell (If you have the patience for it).
I was originaly building it for internet mode, and I guess you could even call it an interesting behavior bot on some level.

But in the end I'm just labeling it (5G) and then you can run it in whatever leagues/internetmode you like.

It hibernates below 100 energy, and it won't make a big difference if storing into mem loc 0 has costs or not.

It's realy simple, but it works.

If you're having problems with it, make sure that none of the lines have been split up the wrong way (Missing spaces and such)

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']
Code: [Select]
'Pacifist v0.01
'Why can't we all just get along ?

 cond
 *.robage 2 <
 start
 124 .eye1width store
 490 .eye1dir store
 124 .eye2width store
 210 .eye2dir store
 124 .eye3width store
 402 .eye3dir store
 124 .eye4width store
 125 .eye4dir store
 124 .eye6width store
 979 .eye6dir store
 124 .eye7width store
 1170 .eye7dir store
 124 .eye8width store
 893 .eye8dir store
 124 .eye5width store
 1220 .eye9width store
 680 rnd .setaim store
 20 .sx store
 7 .vloc store
 -2 .venval store
 40 824 *.nrg 100 sub sqr dup div mult store
 40 822 *.nrg 100 sub sqr dup div mult store
 *.tiepres .deltie store
 43 754 store
 stop

 cond
 *.nrg 100 >
 *.shflav 0 !=
 or
 *.numties 0 >
 or
 start
 *.robage 9 mod 4 sub *.eyef 0 sub dup div 1 sub abs *.refbody 7 sub -1 mult sqr dup div add sgn *.vtimer 25 sub sqr dup div mult mult *.refxpos *.refypos angle *.eyef 0 sub sqr dup div *.refbody 10 sub sqr dup div mult *.aim *.refxpos *.refypos angle sub abs 1 sub sqr dup div mult *.vtimer 25 sub sqr dup div mult mult add *.tieang - *.aim add *.numties 0 sub sqr dup div *.vtimer 25 sub -1 mult sqr dup div mult *.trefeye 0 sub dup div 1 sub abs mult mult add 511 *.eyef 0 sub dup div 1 sub abs *.refbody 10 sub -1 mult sqr dup div add sgn *.vtimer 25 sub sqr dup div mult mult 19 *.eyef 0 sub sqr dup div *.refbody 10 sub sqr dup div mult *.aim *.refxpos *.refypos angle sub abs 1 sub sqr dup div mult *.vtimer 25 sub sqr dup div mult mult add 19 *.numties 0 sub sqr dup div *.vtimer 25 sub -1 mult sqr dup div mult *.trefeye 0 sub dup div 1 sub abs mult mult add store
 7 *.vtimer 25 sub sqr dup div *.numties 0 sub dup div 1 sub abs add sgn *.venom 5 sub sqr dup div mult *.eye9 20 sub sqr dup div *.focuseye 4 sub dup div 1 sub abs *.focuseye 0 sub dup div 1 sub abs add sgn mult mult *.refbody 7 sub sqr dup div mult *.refeye 0 sub dup div mult mult dec
 7 *.vtimer 25 sub sqr dup div *.numties 0 sub dup div 1 sub abs add sgn *.venom 5 sub sqr dup div mult *.eye9 20 sub sqr dup div *.focuseye 4 sub dup div 1 sub abs *.focuseye 0 sub dup div 1 sub abs add sgn mult mult *.refbody 7 sub sqr dup div mult *.refeye 0 sub dup div mult mult dec
 7 *.vtimer 25 sub sqr dup div *.numties 0 sub dup div 1 sub abs add sgn *.venom 5 sub sqr dup div mult *.eye9 20 sub sqr dup div *.focuseye 4 sub dup div 1 sub abs *.focuseye 0 sub dup div 1 sub abs add sgn mult mult *.refbody 7 sub sqr dup div mult *.refeye 0 sub dup div mult mult dec
 *.tiepres *751 1 sub dup div 1 sub abs *.trefbody 5 sub -1 mult sqr dup div add sgn *.nrg 1500 sub sqr dup div add sgn *.body 5 sub sqr dup div add sgn mult 99 *751 0 sub dup div 1 sub abs *.trefbody 5 sub sqr dup div mult *.nrg 1500 sub -1 mult sqr dup div mult *.body 5 sub -1 mult sqr dup div mult mult add 467 *751 1 sub dup div 1 sub abs *.trefbody 5 sub -1 mult sqr dup div add sgn *.nrg 1500 sub sqr dup div add sgn *.body 5 sub sqr dup div add sgn mult 830 *751 0 sub dup div 1 sub abs *.trefbody 5 sub sqr dup div mult *.nrg 1500 sub -1 mult sqr dup div mult *.body 5 sub -1 mult sqr dup div mult mult add store
 751 *751 sgn mult dec
 50 *.nrg 500 sub sqr dup div *.robage 3100 sub -1 mult sqr dup div mult mult 99 *.robage 3100 sub sqr dup div mult add 300 *.nrg 500 sub sqr dup div *.robage 3100 sub sqr dup div add sgn mult 511 *.robage 3000 sub -1 mult sqr dup div *.nrg 400 sub -1 mult sqr dup div mult *.eyef 0 sub sqr dup div mult *.refbody 10 sub sqr dup div mult *.aim *.refxpos *.refypos angle sub abs 1 sub sqr dup div mult *.vtimer 25 sub sqr dup div mult mult add store
 1 *.body 4 sub -1 mult sqr dup div *.body 4 sub dup div 1 sub abs add sgn *.body 2 sub sqr dup div mult *.nrg 500 sub -1 mult sqr dup div mult mult 30 *.body 21 sub -1 mult sqr dup div *.body 21 sub dup div 1 sub abs add sgn *.body 4 sub sqr dup div mult mult add 200 *.body 21 sub sqr dup div mult add 10 *.nrg 600 sub sqr dup div *.body 4 sub -1 mult sqr dup div mult *.robage 3100 sub sqr dup div add sgn mult add 312 *.body 4 sub -1 mult sqr dup div *.body 4 sub dup div 1 sub abs add sgn *.body 2 sub sqr dup div mult *.nrg 500 sub -1 mult sqr dup div mult mult 312 *.body 21 sub -1 mult sqr dup div *.body 21 sub dup div 1 sub abs add sgn *.body 4 sub sqr dup div mult mult add 312 *.body 21 sub sqr dup div mult add 313 *.nrg 600 sub sqr dup div *.body 4 sub -1 mult sqr dup div mult *.robage 3100 sub sqr dup div add sgn mult add store
 751 *.nrg 500 sub sqr dup div mult inc
 *.nrg 50 div *.vtimer 1 sub dup div 1 sub abs *.numties 0 sub dup div 1 sub abs mult mult *.nrg 10 div 10 floor *.vtimer 1 sub dup div 1 sub abs *.numties 0 sub sqr dup div mult *.trefeye 0 sub dup div 1 sub abs mult mult add *.genes 1 sub *.vtimer 0 sub dup div 1 sub abs *.totalmyspecies 60 sub -1 mult sqr dup div mult mult add *.genes *.vtimer 0 sub dup div 1 sub abs *.totalmyspecies 59 sub sqr dup div mult mult add *.tiepres *.deltie *.tiepres sub dup div *.vtimer 1 sub sqr dup div mult mult add 338 *.vtimer 1 sub dup div 1 sub abs *.numties 0 sub dup div 1 sub abs mult mult 338 *.vtimer 1 sub dup div 1 sub abs *.numties 0 sub sqr dup div mult *.trefeye 0 sub dup div 1 sub abs mult mult add 335 *.vtimer 0 sub dup div 1 sub abs mult add 455 *.deltie *.tiepres sub dup div *.vtimer 1 sub sqr dup div mult mult add store
 42 *.eyef 0 sub sqr dup div *.refbody 7 sub sqr dup div mult *.aim *.refxpos *.refypos angle sub abs 100 sub -1 mult sqr dup div mult *.numties 0 sub dup div 1 sub abs mult *.robage 20 sub sqr dup div mult mult 40 *751 0 sub dup div 1 sub abs *.numties 0 sub dup div mult mult add 330 *.eyef 0 sub sqr dup div *.refbody 7 sub sqr dup div mult *.aim *.refxpos *.refypos angle sub abs 100 sub -1 mult sqr dup div mult *.numties 0 sub dup div 1 sub abs mult *.robage 20 sub sqr dup div mult mult 331 *751 0 sub dup div 1 sub abs *.numties 0 sub dup div mult mult add store
 1 *.trefeye 0 sub dup div 1 sub abs *.vtimer 25 sub -1 mult sqr dup div mult *.numties 0 sub sqr dup div mult mult 100 *.trefeye 0 sub dup div 1 sub abs *.vtimer 25 sub sqr dup div mult *.numties 0 sub sqr dup div mult mult add 500 *.trefeye 0 sub dup div *.numties 0 sub sqr dup div mult mult add 469 *.numties 0 sub sqr dup div mult store
 453 *.robage 3 mod 0 sub dup div 1 sub abs *.tiepres 42 sub dup div add sgn *.vtimer 25 sub sqr dup div mult mult 822 *.robage 3 mod 1 sub dup div 1 sub abs *.tiepres 42 sub dup div 1 sub abs mult *.vtimer 25 sub sqr dup div mult mult add 300 *.robage 3 mod 2 sub dup div 1 sub abs *.tiepres 42 sub dup div 1 sub abs mult *.vtimer 25 sub sqr dup div mult mult add 216 *.vtimer 25 sub -1 mult sqr dup div mult add .tieloc store
 1000 *.robage 3 mod 0 sub dup div 1 sub abs *.tiepres 42 sub dup div add sgn *.vtimer 25 sub sqr dup div mult mult 50 *.robage 3 mod 1 sub dup div 1 sub abs *.tiepres 42 sub dup div 1 sub abs mult *.vtimer 25 sub sqr dup div mult mult add 0 *.robage 3 mod 2 sub dup div 1 sub abs *.tiepres 42 sub dup div 1 sub abs mult *.vtimer 25 sub sqr dup div mult mult add 1 *.vtimer 25 sub -1 mult sqr dup div mult add .tieval store
 80 rnd 20 floor *.robage 7 sub sqr dup div *.vtimer 25 sub sqr dup div mult *.shflav 0 sub dup div 1 sub abs mult *.totalmyspecies 400 sub -1 mult sqr dup div mult *.robage 8 sub sqr dup div mult *.nrg 100 sub sqr dup div mult *.eyef 0 sub sqr dup div mult *.refbody 5 sub -1 mult sqr dup div mult *.refxpos *.xpos sub *.refypos *.ypos sub pyth 100 sub -1 mult sqr dup div mult *.refvelscalar 1 sub -1 mult sqr dup div mult *.velscalar 1 sub -1 mult sqr dup div mult mult 80 rnd 20 floor *.shflav -1 sub dup div 1 sub abs *.shflav -3 sub dup div 1 sub abs add sgn *.shflav -6 sub dup div 1 sub abs add sgn *.robage 7 sub sqr dup div mult *.vtimer 25 sub sqr dup div mult mult add *.tielen 30 div 5 floor *.robage 7 sub sqr dup div *.numties 0 sub sqr dup div mult *.robage 20 sub sqr dup div mult *.vtimer 25 sub -1 mult sqr dup div mult *.trefeye 0 sub dup div 1 sub abs mult mult add 50 *.robage 7 sub -1 mult sqr dup div *.numties 0 sub dup div 1 sub abs mult mult add 4 *.robage 7 sub sqr dup div *.vtimer 25 sub sqr dup div mult *.shflav 0 sub dup div 1 sub abs mult *.totalmyspecies 400 sub -1 mult sqr dup div mult *.robage 8 sub sqr dup div mult *.nrg 100 sub sqr dup div mult *.eyef 0 sub sqr dup div mult *.refbody 5 sub -1 mult sqr dup div mult *.refxpos *.xpos sub *.refypos *.ypos sub pyth 100 sub -1 mult sqr dup div mult *.refvelscalar 1 sub -1 mult sqr dup div mult *.velscalar 1 sub -1 mult sqr dup div mult mult 4 *.shflav -1 sub dup div 1 sub abs *.shflav -3 sub dup div 1 sub abs add sgn *.shflav -6 sub dup div 1 sub abs add sgn *.robage 7 sub sqr dup div mult *.vtimer 25 sub sqr dup div mult mult add 1 *.robage 7 sub sqr dup div *.numties 0 sub sqr dup div mult *.robage 20 sub sqr dup div mult *.vtimer 25 sub -1 mult sqr dup div mult *.trefeye 0 sub dup div 1 sub abs mult mult add 1 *.robage 7 sub -1 mult sqr dup div *.numties 0 sub dup div 1 sub abs mult mult add store
 80 rnd 20 floor *.robage 7 sub sqr dup div *.vtimer 25 sub sqr dup div mult *.shflav 0 sub dup div 1 sub abs mult *.totalmyspecies 400 sub -1 mult sqr dup div mult *.robage 8 sub sqr dup div mult *.nrg 100 sub sqr dup div mult *.eyef 0 sub sqr dup div mult *.refbody 5 sub -1 mult sqr dup div mult *.refxpos *.xpos sub *.refypos *.ypos sub pyth 100 sub -1 mult sqr dup div mult *.refvelscalar 1 sub -1 mult sqr dup div mult *.velscalar 1 sub -1 mult sqr dup div mult mult 80 rnd 20 floor *.shflav -1 sub dup div 1 sub abs *.shflav -3 sub dup div 1 sub abs add sgn *.shflav -6 sub dup div 1 sub abs add sgn *.robage 7 sub sqr dup div mult *.vtimer 25 sub sqr dup div mult mult add *.veldx *.robage 7 sub sqr dup div *.numties 0 sub sqr dup div mult *.robage 20 sub sqr dup div mult *.vtimer 25 sub -1 mult sqr dup div mult *.trefeye 0 sub dup div 1 sub abs mult mult add 2 *.robage 7 sub sqr dup div *.vtimer 25 sub sqr dup div mult *.shflav 0 sub dup div 1 sub abs mult *.totalmyspecies 400 sub -1 mult sqr dup div mult *.robage 8 sub sqr dup div mult *.nrg 100 sub sqr dup div mult *.eyef 0 sub sqr dup div mult *.refbody 5 sub -1 mult sqr dup div mult *.refxpos *.xpos sub *.refypos *.ypos sub pyth 100 sub -1 mult sqr dup div mult *.refvelscalar 1 sub -1 mult sqr dup div mult *.velscalar 1 sub -1 mult sqr dup div mult mult 2 *.shflav -1 sub dup div 1 sub abs *.shflav -3 sub dup div 1 sub abs add sgn *.shflav -6 sub dup div 1 sub abs add sgn *.robage 7 sub sqr dup div mult *.vtimer 25 sub sqr dup div mult mult add 3 *.robage 7 sub sqr dup div *.numties 0 sub sqr dup div mult *.robage 20 sub sqr dup div mult *.vtimer 25 sub -1 mult sqr dup div mult *.trefeye 0 sub dup div 1 sub abs mult mult add store
 202 *.shflav 0 sub sqr dup div mult dec
 202 *.shflav 0 sub -1 mult sqr dup div mult inc
 .fixpos dec
 stop

 cond
 *754 43 !=
 start
 .genes dec
 *.tiepres 467 *.trefbody 5 sub sqr dup div mult store
 50 .repro store
 35 .aimright store
 22 .tie store
 50 .sharenrg store
 *.mkvirus .delgene store
 1 .vshoot store
 7 .ploc store
 7 .mkpoison store
 stop

 cond
 *754 43 !=
 start
 .genes dec
 *.thisgene *.genes sgn add .mkvirus store
 *.genes 777 *777 1 sub -1 mult sqr dup div mult store
 *777 .genes store
 *.thisgene 1 sub *.thisgene 1 sub sgn mult *.thisgene 1 add *.thisgene 1 sub sgn 1 sub -1 mult mult add .delgene store
 *.nrg 30 div .vshoot store
 -6 7 *.eyef 1 sub sgn 0 floor mult *.refbody 7 sub sgn 0 floor mult store
 *.refxpos *.refypos angle - *.aim add .aimshoot store
 50 .repro store
 7 .dx store
 1220 .eye5width store
 7 .ploc store
 7 .mkpoison store
 20 .mkslime store
 3 .mkshell store
 *.tiepres 467 *.trefbody 5 sub sqr dup div mult store
 22 330 *.refbody 7 sub - sgn 0 floor 3000 *.refage sub sgn 0 floor mult *.refshoot 0 sub dup div 1 sub abs mult mult store
 50 .sharenrg store
 .fixpos dec
 .strbody inc
 stop

580
Untagged bots / Slim Evo Mach 1.3
« 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".

581
Multi-Bots / Slim Evo
« on: January 28, 2008, 02:10:53 PM »
First of all, I like the bot, we have a lot of ideas in comon.
It doesn't realy seem to do much to oponents though, it survives against some but doesn't realy kill them. (Not the ones I tryed anyway).
Not sure if it's designed for a specific environment or another version. (I'm running 2.43z)
It just seems like the viruses are taking a long time to load up and have any real effect.
One other important factor could be that you wrote .shootaim instead of .aimshoot  
But it's fun to watch them tie to enemies and just share nrg with them, and I'm also a fan of the general concept of leeching from alge without killing them.


Theres one more thing about the code :

Quote from: rsucoop
[code]
'Eye Commands
cond
*140 0 =
*.refeye *.myeye !=
*.eye5 *.eye1 >
*.eye5 *.eye2 >
*.eye5 *.eye3 >
*.eye5 *.eye4 >
*.eye5 *.eye6 >
*.eye5 *.eye7 >
*.eye5 *.eye8 >
*.eye5 *.eye9 >
start
*.eye5 .out2 store
*.aim .setaim store
stop

cond
*140 0 =
*.refeye *.myeye !=
*.eye4 *.eye1 >
*.eye4 *.eye2 >
*.eye4 *.eye3 >
*.eye4 *.eye5 >
*.eye4 *.eye6 >
*.eye4 *.eye7 >
*.eye4 *.eye8 >
*.eye4 *.eye9 >
*.refeye 0 !=
strt
*.refxpos *.refypos angle .setaim store
stop

cond
*140 0 =
*.refeye *.myeye !=
*.refeye 0 !=
*.eye3 *.eye4 >
*.eye3 *.eye1 >
*.eye3 *.eye2 >
*.eye3 *.eye6 >
*.eye3 *.eye7 >
*.eye3 *.eye8 >
*.eye3 *.eye9 >
start
*.refxpos *.refypos angle .setaim store
stop
.
.
.

Appart from the "strt" in the second gene...
It seems like they all do just about the same thing. I don't remember seeing .focuseye getting changed anywhere. (-4 is eye1, 0 is eye5, 4 is eye9, asf asf)
It just kinda defeats the purpose since your ref values all come from eye5 anyway.
You could make coustom turns, like some other bots such as Bubbles.
Or you could just replace all the eye genes with :

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

By using eyef you can also change the eyefocus and the gene will still work.

Hope it helps, I look forward to trying the next version.

582
Newbie / So many questions.
« on: January 24, 2008, 04:59:36 PM »
Ok, it looks like the angle and ref positions works, I just didn't negate the stack before adding my aim I guess...
Still dunno how I managed to get Aura to miss... works fine now... maybe somethings wrong with my memmory (the one in my head that is).

I'm guessing the answer to Q10 is either the same as for Q8 or difficult to explain.

Concerning the operations on memmory locations, it looks like it's something different which is affecting Aura, seems like it's first repro thing depended on sight, and it looks like changing your eyewidth now also reduces it's range, which I guess is only fair, but which also kinda sucks since now I have to rethink the eyes on the bot I'm working on, and that was about the only part I was done with

I'm assuming there are no plans to put costs on math opperations in the leagues then
I'm realy hopping you'll tell me if people are concidering this, since I'd be wasting a lot of time if the leagues suddenly adjust costs to weed out the heavy 1G bots.

And thank you for all the help

583
Newbie / So many questions.
« on: January 22, 2008, 01:47:00 PM »
Thank you.

I'll take a look at the bug report section and post something for B1, but I'm pretty sure somethings wrong here, any bot that uses refvalues to target their enemies seems to have this problem. I figured maybe the center had been moved and the bot wasn't updated, but it doesn't seem like the error in their aim has a stable offset and the aim seems to work fine in certain directions. I'll figure out the details and post a bug report.

B4 : Yeah I guess I didn't explain that very well
What I ment was :
50 .repro *.nrg 1000 sub sgn mult store
Just seems to reproduce no matter how low your energy drops.
I figured maybe somehow I was ending up with the absolute value, but it works if I only opeate on the input value :
50 *.nrg 1000 sub sgn mult .repro store

Maybe the memmory locations are unsigned now ? Or maybe you need to specify the memmory location with a number ? Other than that I have no clue... maybe I'm wrong about this, but it just seems like all the single gene bots fall appart in 2.43z ...


I hope I'm not scaring anyone off with the long list of questions, I'm not counting on anyone answering everything at once

584
Newbie / So many questions.
« on: January 21, 2008, 05:12:14 PM »
Hey, I've only finished one bot so far (Ebola) which is just a frankenstein monster of large chunks of code I stole and pieced together with some extra stuff.
I'm working on new concepts from scratch now, but it seems like theres a lot of bugs in the latest versions (DB 2.43y and 2.43z).

It ocurs to me there's a lot here, so I'll add numbers.

Got a lot of questions, but first the bugs (If it's not just me screwing up) :
B1- Either the ref values or the angle operator is bugged. Seems like negative values or combinations of negative and positive values cause some sort of bug. Or something like that anyway.
B2- trefbody didn't work in DB 2.43y, not sure about 2.43z. (It's not useless, I realy needed it in my last (only) bot)
B3- delgene didn't work in DB 2.43y, but I think it got fixed in 2.43z
B4- performing operations on the memmory location no longer seems to work in 2.43z (Worked in 2.43y).
B5- when I run simulations it doesn't seem to take propper advantage of all the processors, although you would think lots of small processes would be idea to distibute... not sure if theres anything I can do to improve performance.


Now the questions :

Q1- I never see anyone using certain operators, so I'm wondering if they work at all. I'm refering to operators like ++ and | and ^ and such. I tryed .variable++ but that didn't seem to work, maybe it should be seperated by a space, but I'm generaly confused about this.

Q2- I'm also wondering if ~= and %= works, it sais they're depercated in the description. (Also sais they're not usefull, but I disagree  )

Q3- How does negation work ? I see examples where people use -1 mult, but from the description it would seem like this is the same as just writing - .

Q4- This brings me to my general confusion about the stack.
Q4.1#- When I write -1 mult, from what I can read I negate the value in the stack and muliply it by 1... Or would that be - 1 mult ?
Q4.2#- It sais I can have 20 values in the stack at one time, but as I understand it, if I write :
a b add c d add mult
Then I only have 3 values in the stack at one time, I have a+b in one "slot" and c and d in the 2 others, when peeking (When performing the last add before mult). Or do I actualy load all 4 values into the stack before performing any operations ?
If I understand correctly then :
a b c d mult mult mult
Would load 4 values into the stack before multiplying them, whereas :
a b mult c mult d mult
Wouldn't load more than 2 values into the stack at the same time.
Q4.3#- Just to verify if what I think is right :
When I write :
a b c d mult mult mult
The when I hit the first mult I take the 2 top values from the stack and add them together, these would then be c and d (since it's a stack) and the result would then be placed at the top of the stack, making the next 2 values b and c*d ... right ?

Q5- I noticed a lot of energy can be saved by "compiling" you code to eliminate conditions, is this intentional because natural evolution should be capable of optimizing the code, or should I be expecting costs on operators in the leagues ?

Q6- How many store comands can be excuted in one cycle ? And what actions can be performed at the same time ? Can I turn, accelerate, reproduce, comunicate through a tie, while making a new tie and shooting waste ? It just seems like eveything starts to fall appart when the dna gets too long. Is there a max nr of genes ? Max DNA length ?

Q7- If I write 50 .repro store and then 0 .repro store, will I reproduce ? Does the last or first value overide the other one ? I'm guessing the last value removes any previous ones and the first value is "destroyed" (So it won't intefere with anything).

Q8- When are memmory shots and tie comands executed ? I would guess it's at the end of the dna execution  ? And what about ties, same thing ?

Q9- When I tie to something, do I have to wait for the next cycle before I can interact with the tie, or does it appear right away ?

Q10- Can you perform several actions through a tie at the same time ? It seems like I can share energy while performing another action on the tie, like storing a value in a memmory location or trying to feed. But what if 2 bots are performing an action on the tie between them at the same time, can one bot share energy while the other one is comunicating back ? And if not then which one has the priority ?

As you can tell I'm confused about a lot

Also a sugestion, if you guy's don't want to mess around with the angle operator, you could just make cos, sin, tan, atan, atan2, asf...  available as operators
Would be nice for creating advanced aim functions

585
F1 bots / Ebola (F1Vir) (Moonfisher) - 10.01.08
« on: January 13, 2008, 12:38:55 PM »
Nice to hear its a valid bot  And don't worry I'm building the next one from scratch.
And if others want to be credited in the name they're welcome.
I was mostly just trying things out to get a feel for it.
And the reson they don't kill the alge is simply to get as much from it as possible since the virus is making it hard to find food. (They only tie feed on alge)

Pages: 1 ... 37 38 [39] 40