Thinking about AI

I spent some more time thinking about this. I was thinking that kind of what we want is for each creature to have a relationship with the other creatures on the screen and with it’s environment and then choose what to do based on that.

So if you are a microbe alone on the screen (which will never happen as the ai will only be around when the player is around but bear with me) you will decide if you like the concentration of compounds in the area. If you do you will hang around and if you don’t you will move off. That’s your relationship with the environment.

Then say another microbe comes on the screen. You want to be able to judge what sort of relationship to have with the other microbe. Do you want to flee from it, do you want to fight it, do you want to mate with it etc. How you decide that could be based solely on what it looks like (as you have no memory). You could see it has spikes -5 and agents -5 but looks tasty +3 and so you decide it’s an enemy and you should flee.

Maybe you see it and it’s got no spikes or agents and it can photosynthesize so you decide it’s something you might like the hang around so you decide to float around near it.

If multiple microbes are on the screen you make a relationship with each one and then decide which relationships are the most important to you. So maybe when a predator comes you all flee. Or maybe you like sticking together with your friends so much that even when predators come you still sit tightly together.

If you are a more complicated creature (like a deer for example) you could have more information. So memory gives you some information about past interaction with that creature. (That way when you improve your brain you could get genuine ai improvements). So if you get better eyes you get more info about something from far away. If you rely on smell you can know to leave an area if predators have been there recently etc.

The weights for different factors. (spikes is -3, remembering a kill is -20 etc) could evolve over time with the species.

And, more importantly, the relationships could be procedural too. So rather than us defining “flee” as a relationship it could be evolved by the organism itself. A bit similar to the blocks based behaviour idea on the fan forums.

So you are floating around and you see a microbe, you add up it’s component weights and decide to execute relationship X which causes you to move away from it as fast as you can while spitting out agent. You don’t know what happened. You just know that those inputs caused that behaviour in you.

The player could have access to their own species relationships and could edit them manually which would be quite cool. Other species would have theirs tested and evolved over time.

I don’t know if this allows too much room for stupid behaviour but we could test it and maybe petri-dish it for a while.

I think this system might be flexible enough to work all the way up until the society stage. A cheetah is basically making these relationship decisions with it’s environment and neighbours just like a microbe is.

I’m interested in feedback, what do you guys think?