forgive me if everyone already knows this :), I typed this out before I read enough of the posts, but I like it so im going to leave it.
I think really generally about things, and state machine, behaviour tree, scoring program, they all do the same thing, they are a commander, you do them all slightly different ways I guess.
Even an adaptive self programming robot has a state machine or something like it, controlling his global will, so they are cool, just they handle the actual way to achieve the broader goal, and the low level implementation is left variable for it to work out the exact way to win given the circumstance. Thats what im into at the moment.
The state machine you have to write has to include every minute detail of implementation, but a cool way to do it, is to leave the actual low level code to a call from the main supervisor, like so:
MAIN SUPERVISOR -> if(happy) walk to blue light, if(sad) walk to green light
SECONDARY LEVEL -> find position of thing walking to, send to movement code.
MOVEMENT CODE -> deal with obstacles, move legs over tough terrain, and get to the position.
Breaking it up into modules makes a really hard job easier, especially if you worked for NASA, making some automonous planet rover.
A self programming bot isnt really necessary, a manually coded one works fine, and uses a much smaller processor, but as im into ai hardcore, its a more worthwhile goal to me.