Difference between revisions of "MB Construction"

From WikiManual
Jump to: navigation, search
Line 103: Line 103:
  
 
Other feeding methods can also be introduced allowing it to tiefeed and sharefeed. Sharefeeding presents difficulties though since the bot will occasionally take nrg from it's companion.
 
Other feeding methods can also be introduced allowing it to tiefeed and sharefeed. Sharefeeding presents difficulties though since the bot will occasionally take nrg from it's companion.
 +
 +
[[Category:Tutorial]]

Revision as of 04:49, 1 August 2007

Below is a slightly modified form of TierMBt2. It represents a basic form of a multibot and has several unique features that make it easier to work with. Has both linear and triangular forms.

cond
*.robage 0 =
start
.tie inc
.numties .memloc store
stop

The tie inc allows it to setup it's initial tie, typically tieing itself to it's parent. Next it stores the location of numties into memloc, this allows it to easily determine the number of ties other bots have. Multi works similar, but doesn't record unhardened ties.

cond
start
.out1 inc
stop

This gene continually increases out1. Other bots can check this against refage to see if the bot's age does in fact match. This has become one of the more common techniques lately, so caution is advised using this in leagues. Feel free to improve upon it.

cond
*.nrg 3000 >
*.body 100 <
start
100 *.body sub .strbody store
stop

Keeps body levels around 100, only activates when the bot has enough nrg.

cond
*.nrg 3000 >
*.body 100 >
start
50 .repro store
stop

Ahh, reproduction the beginnings of life.

cond
*.in1 *.refage =
*.numties 2 <
*.memval 2 <
start
.tie inc
stop

Any time the bot and the bot it's looking at have less than two ties, a new tie is formed. This helps with bots seperated from the main multibot either by natural tie stretching, accidental tie removal, or it's partner dieing.

cond
*.in1 *.refage !=
*.eye5 45 >
*.multi 1 =
start
-1 .shoot store
stop

Feeding gene, currently bot only feeds when it ties have hardened. Can remove last condition for better results, but may violate MB league rules.

cond
*.in1 *.refage =
*.eye5 0 >
start
314 rnd *.aim add .setaim store store
stop
cond
*.eye5 0 =
start
314 rnd *.aim add .setaim store
stop

Random search genes using setaim. This is one of the most useful commands since it allows individual bots to look around themselves. Using aimdx or aimsx will turn the entire multibot, making co-ordinated motion difficult without specifically designating a single "head" for the entire multibot.

cond
*.in1 *.refage !=
*.eye5 0 >
start
*.refxpos *.refypos angle .setaim store
stop

Hunting gene allows bot to exactly focus on it's prey.

cond
*.eye5 0 >
*.in1 *.refage !=
start
*.maxvel *.vel sub 2 div .up store
stop

Acceleration controls, bot accelerates whenever it sees prey.

cond
*.numties 2 >
start
.deltie inc
stop

This causes the bot to delete ties when it has more than two. This helps to keep the structure of the mb from getting out of control.

end

TierMBt2 still has its share of problems, primarily in terms of bots having differing opinions of which direction to take. Some solutions might be to designate specific head bot. The simplest method would be to set readtie and then use trefage to determine the current eldest bot and use it as the "head".

It also lacks any defenses at the moment, but that's easily remedied with using shell to block most shots or venom to do a sneaky counter attack. Slime would create serious problems for it, but could be used if the bot is not expected to need to tie to family again.

Other feeding methods can also be introduced allowing it to tiefeed and sharefeed. Sharefeeding presents difficulties though since the bot will occasionally take nrg from it's companion.