Revolutionary-Games / Thrive

The main repository for the development of the evolution game Thrive.
https://revolutionarygamesstudio.com/
Other
2.77k stars 495 forks source link

Improve and extend microbe AI #190

Closed jjonj closed 5 years ago

jjonj commented 10 years ago

Features that the new AI should be able to handle:

More ideas are welcomed

NickTheNick-zz commented 10 years ago

I think what you said sums it up quite well. Some important traits I can think of that a microbe can exhibit varying behaviours in are:

ghost commented 10 years ago

The levels of danger and such could be handled using variables (0 to 100?). If the danger level is low enough, it will ignore or attack. If the danger level is too high, it will flee. The threshold could be different for different species and in the case of a predator could also relate to the need of compounds (if the need is high, it will take a higher risk).

Searching for compounds could be done with a scanner function, but I'm not really sure how to code it. This could be done by having the function scan in a small radius from the microbe, and identifying all the compounds (heat, light, microbes?) within the radius. The microbe could then go to the closest concentration of the compound that the microbe needs most at that moment. Note:The radius shouldn't be too big, it would get unrealistic from a certain size on (also depending on the size of the microbe?).

How much it prefers to stay near members of its species could be handled by having 2 variables. Distance and type: distance: the distance between members of the species and type defines if it will stay near, neutral or will stay away. Distance isn't used when type is neutral. Distance means the furthest away a microbe will go away from its species when type is near. Distance means the closest a microbe will come to a member of its species when type is away. The microbe will ignore members of its species when type is neutral.

This is how I imagine the things that Nick stated will work.

Moopli commented 10 years ago

Some thoughts:

Now to get in the nitty-gritty: for a risk-reward system to work, we need actual things to remember the risk/reward of. I suggest we use compounds for that -- since, if they're what we're using for environmental communication, they're the only option (and a good one too).

Whew, longer than I expected.

jjonj commented 10 years ago

Good notes, but would you suggest delaying this until we have compound clouds then?

Also I wrote some stuff regarding my experiments with OpenVDB to you on skype

Moopli commented 10 years ago

Mostly -- some basic framework could be figured out right now. The AI will likely no matter what need a few iterations to complete, from what I can tell; so having one (more, since what we currently have counts too kinda) iteration done before compound clouds wouldn't be too silly.

Untrustedlife commented 5 years ago

Ai has been improved and extended.