Thinking about AI

@Seregon

Nice points, interesting to read.

  1. Mode Switching vs Continuous Response:

I disagree with you that continuous response is more biological. Consider two bucks fighting to be alpha male. The correct actions here are either

A) Risk injury by fighting by trying to get the reward of becoming the alpha OR

B) Don’t fight, cower when the alpha comes near.

There is no middle ground, there is no “half-fight” where there is any merit in fighting but not putting 100% of your effort into it. It’s the same with shoals. Either maintain the shoal OR book it. There’s no point in swimming loosely around each other, that is a bad strategy. Or even with hunting. Either commit to lunging on the buffalo as a lion, knowing that if it gets a good swipe of it’s horns on you you will be badly gored OR stay clear. There is no benefit in half committing to these situations, they are fundamentally different modes of behaviour.

I agree in general with continuous > if statements but here I think it makes no sense.

  1. AI <-> CPA relationship:

This is a complex issue in itself, as I have been beginning with in the other thread with WhoDat the problems we face are

I) How can you compute the flow of compounds between species from information gained from their “blueprint” (number and arrangement of organelles). But moreover

II) How can you tell which of two species is stronger from the blueprint? If Auto-Evo generates two species should A hunt B or B hunt A? Should every species mutually hunt each other?

I think one of the advantages of the latest system I have proposed is that every species is making a guess at it’s own strength. This could then be fed into the CPA system when it comes to predation and from it we could derive the relationships (predator-prey or mutual avoidance etc).

However I would be happy with a system that could go from blueprint -> fight strength directly. That would be fine and we need something like that to make the non-player CPA simulations work at all.

  1. “If we do that, then can we simplify the in game AI to the same degree?”

The problem here is again one of relationships. You should behave very differently around something which is hunting you as opposed to something you are hunting. We could go super simple and say “these dudes always hunt and these dudes always run away” but then what happens when Auto-Evo makes changes? Does the “flavour” of the microbe change and if so how? We might end up with predators who are super weak in the swimming around but the CPA system thinks they are really efficient so makes lots of them and we could get drift that way.

We might end up with a super weak species always swimming into the jaws of a strong one.

IMO the main problem here is this,

knowing some info about yourself and another microbe predict the outcome of a fight between you (including what if you try different strategies).

If you can do that then you can dynamically assign who is a predator and who is prey and that can change in different situations. I really think the memory system originally opposed by The Creator which I have been using solves a lot of problems. It lets you derive, from actual fight data, how strong the microbes are in relation to each other. Once you know that you are pretty much home and dry. You can give them 3-5 behaviours and have them switch on and off as needed.

The reason this is hard for us is we want to procedurally generate all the species. Usually in games the designers know what species there’ll be and how strong they are but we won’t have that info.

Thanks for making the effort to read the thread, it’s appreciated.

@TheCreator

  1. Yeah the outcomes of the fights would come naturally from the player playing the game. So while swimming around it would find an A fighting a B and, even if it just swam away, the result of that encounter could be recorded in A and B’s memory banks.

  2. How it relates to the population dynamics is a difficult question.

Re filling up the memory banks one of the advantages of this system is the memory banks don’t need to be full for the system to generate reasonable behaviour. Sometimes when you see stuff it comes and attacks you, sometimes it swims away and sometimes it is indifferent to you. What’s important is that the ai’s repsonse gets better over time. So at first weak creatures might rush you and strong ones might flee. However after you have been playing for a while the weak ones flee and the strong ones hunt you and it has learnt. Moreover if you get better at playing the game the ai will adjust to this and more species will flee from you because the expect they will lose whereas before they expected they would win. Which sounds nice.

  1. Yeah I dig what you are saying about assigning a value per organelle. Basically we need to say “this microbe was X good when it went in and Y good when it came out so it’s outcome is X - Y” if the other guy did worse then it’s a win, if the other guy did better then it’s a loss.

I agree that Pyrrhic victories (where you only just beat something) are important to record. I think later we can try and record more info, like if they killed a member of your swarm, or what terrain you were fighting in etc.