Behavior Editor

With the last update addition of appearance, the behavior tab is now the only editor function which remains unimplemented. Although the main idea surrounding this aspect revolves around editing already implemented behavior values which determine characteristics such as how aggressive/skittish a cell is, I argue that this editor could also have an even more interesting/engaging gameplay feature.

Although it’s undeniably cool to be able to engage with these parameters, I think that if the behavior tab is limited to be just that, its utility is hampered. The thing about editing parameters is that it only effects the AI members of your own species, meaning that as far as a casual is concerned, it has no direct effect on their own cell and thus there is little motivation for the player to mess with the parameters. Of course, in order to force a player to pay attention to the behavior editor, it could be made so that the editing of values could have drastic effects on your population/auto-evo stats; however, if such emphasis is placed on these parameters, then how would the game calculate a player’s specie’s success without ultimately shifting their specie’s fate away from their own gameplay and into the hands of the simulation itself? While auto-evo should definitely have a say over your creature’s success, it would be pretty unfair if, despite the success of your own individual, a small difference in the behavior stat from what is optimal decimates your population. Now, later in the more “animal” stages, I can definitely see how factors such as aggressiveness and sociality can influence how your individual interacts with other individuals; at this point however, editing factors such as aggression can only take the game so far.

So although I do believe it would be cool if this was an aspect of behavior, because of its limited application, I think another feature should be attached to the editor.

I was recently playing UFC 3, and a certain mechanic appealed to me. There’s a game mode included in which you can essentially take control of a rising superstar in the league from beginning to end. In this game mode, there is a “perk” system of some sort which strengthens a certain attribute. If your fighter likes to kick, for example, there are several perks which helps with kicks; one of them may reduce the stamina cost of kicks, while another might increase the damage of a kick, and another might make it easier to use a specific hard to use kick, such as spin kicks and jumping kicks. At the same time, there are also other pretty useful perks which a fighter would really like to have; faster punches, stronger health, faster movement in general. The only problem is that at a given moment, you are only allowed five different perks, so you must weigh your options and choose what you think suits your playstyle the best. With this system, I believe a complex and multi-faceted aspect of real UFC/fighting is represented pretty well. In the real UFC, although each individual is decently skilled in many attributes, the fighters who end up becoming champions are not necessarily championship-material because they are better in all aspects of their fighting than their opponents; rather, they have a certain specialized skill in one of the many aspects of mixed martial arts which is so refined and powerful, that other opponents which may be better than the fighter overall are overwhelmed by the effectiveness of this skill before they can employ their own. For example, Khabib Nurmagomedov, a currently undefeated champion, is so good at taking his opponent to the ground and beating them there, that no fighter can take advantage of Khabib’s deficiency in pure stand up boxing/fighting; the champion simply takes them to the ground and demolishes them there.

In a way, this can be seen as his behavior: a ground-and-pound wrestler who avoids stand up fighting. If you wish to emulate this behavior in the game UFC 3, you could get perks which amplify that aspect of your game; then, the player will naturally be motivated to act in a way which takes advantage of this trait, as it’s overall just more effective.

I believe that this is the philosophy which Thrive should take when it comes to the Behavior editor. While editing a behavior parameter is undoubtedly cool for refining your species, it is not enough to either make the player feel motivated to change parameters or make the player’s edits feel impactful on them. If Thrive utilizes a perk system which either amplifies a certain aspect of their cell or grants them a cool but simple new ability, however, the player will naturally feel that editing their behavior does in fact change the way their game plays, as they would have an intrinsic motivation to adopt that behavior since it directly benefits their own cell to do so.


In my head, the best way perks could be utilized in a way that represents real evolution is in a system very similar to that of UFC; pick and choose from a variety of many perks which may or may not help you to fill up a few slots. Special care has to be taken to ensure that a perk is not necessarily better than another. Rather, it should simply amplify a certain aspect of your cell in a way that may be extremely powerful in a specific situation or useless and even damaging in another.

With this, I have a few perks in mind.

Apoptosis : Unlocks a function which can allow you to kill another cell of your own species in order to give you its compounds in the microbe stage at the cost of a hit to your population/auto-evo stats. Disappears after a certain part of the multicellular stage, as apoptosis can then be a result of cutting off compound/nutrient supply to a cell. Another key, which could be F, could launch the signal which would kill the other cell.

Ferrumphilic : Increases the efficiency of Iron-related organelles (could be represented through organelle upgrades, so not too sure about it; effect can stack up).

Luminent : Increases the range and brightness of bioluminescent organelles (could instead be done through simply upgrading a bio-luminescent organelle, so I’m not too sure about this one; effect can stack up).

Caulobacter (https://www.nature.com/news/2006/060410/full/news060410-1.html): At the expense of glucose, expels a substance which slows down cells nearby (functions similar to oxy-toxy; could be somewhat easy to implement once toxins function like compounds).

Geo-electric (http://www.bbc.com/earth/story/20160613-there-are-microbes-that-eat-and-poo-nothing-but-electricity): Iron compound increases the efficiency of mitochondria.

Quorum Sensing: When in the presence of another cell of your own species, glucose consumption slows down by 4/5ths; effect scales as a population in a patch increases, up to an extent of 3/4ths.

I now wish to open up discussion to the forums in general. Do you see any design flaws with a system such as this? Any more ideas for potential perks? If you do have an idea, try to base it off of real observed behaviors in cells today; once you identify a cool adaptation, try to think of a potential way to implement this adaptation within the game in a way that is least difficult to implement.

4 Likes

I mean, that is the plan. Auto-evo will at some point affect the player species, and require the player to set good behaviours on the AI members of their species, otherwise auto-evo will reduce the player’s population a lot.

Some numbers I’ve used before: the player species’ population could be affected 80% by player actions and by 20% by auto-evo, which places more emphasis on the player swimming around as a cell. Other way around could be used if more emphasis is to be given to very careful and strategic use of the editor.

I think that this is more like organelle upgrades than behaviours. Behaviours should only be about behaviour and not about boosts to organelles. So the only actual behaviours you propose are apoptosis and quorum sensing.
I like the idea of quorum sensing as that’s a real thing that clumped together cells use to make them living close-by more efficient.

5 Likes
But why having behaviour? Cells don’t have a brain. The only behaviour you can get is the one that depends on organelles.

Cells exhibit quite impressive behaviours for not having brains. First thing I found about cells using receptors to affect their behaviour based on their surroundings:

3 Likes
Well, hormones can change their behaviour, but my point was that their behaviour would immensely depend on their morphology (e.g. front pilus would make them more agressive).

I’m pretty sure hormones are message transmitters between cells within an organism. Single celled organisms obviously wouldn’t have that.

But why is that needed? What if the player wants to add 12 piluses and make their species just protect itself (low aggression value)?

Not necessarily. For example, a behavior as unique as quorum sensing doesn’t necessarily have a distinct morphological adaptation to make it possible as far as I’m aware, cells just have evolved a unique and sustainable response to signals.

Do you think this would be engaging for the player, however? It is a cool addition of course, and I do see how it could be made to be an essential component of how the player adapts their organism, but I feel that:

a.) There are various complex behaviors which are rather difficult to implement through simple edits of behavior
b.) The behavior tab could have more interesting mechanisms attached to it that make it engaging

I do agree with you in saying that a lot of the things I proposed could basically be represented through organelle upgrades; but for a cool feature such as quorum sensing, I don’t really see how organelle upgrades/behavior editing as is could represent them. This is why I created a concept which used a perk system; it’s just difficult to represent some behaviors, so I believe it would be cool if the player had a chance to choose a certain behavior. I also feel like such a feature could be utilized in the more advanced stages.

I precised it as a front pilus, meaning it’s intended for attack. It charges towards cells…

But I guess it would mainly be for AIs.

As for hormones, they are agents. Most agents ideas were about the behaviour. Proteins can be agents and hormones are proteins. I concluded that agents could be hormones.

The plan is to anyway have the organelles you select affect how well your species does in auto-evo. Behaviour values are just one extra thing to tweak. We need to design a really good report as well as tool tips to let the player know how the choices they are making affect their population.

I don’t necessarily see complex behaviours as necessary. The AI uses the behaviour values to control all the NPC cells, it makes sense that the player could tweak these values for their species as the player’s goal is to act as an intelligent designer trying to beat evolution.

To fully integrate complex behaviours for cells, they should also affect the population numbers generated by auto-evo, otherwise the AI species won’t use them (as it will be just random that they gain some behaviours, if it doesn’t affect their population).

If you want to have defensive piluses, you also need one at the front, otherwise predator cells will poke you through the hole you left…

2 Likes

I mean, if there is only one pilus…

Oh screw it, it’d be too difficult to implement anyway.

Nevermind.

i really like this idea. the behavior tabs’ planned function from what I’ve seen of it has always struck me as as a bit odd (in a good way) the concept of having the success of your species dictated on how you adapt its behavior alongside the individual success of your player controlled character is really cool. and i think your idea has some merit. and i also think it has a few issues.

your ideas will definitely make the behavior tab a more engaging thing to interact with. having your choices effect not only effect your species population and your game play i think should definitely be added. however it shouldn’t just become a vague upgrade slot perk tech tree. having it upgrade the efficiency of certain organelles feels out of place for the behavior tab. the only ‘behavior perk’ you brought up that i really do like was apoposis. mainly because it has positives and negatives. rather than just positives like increasing the efficiency of certain organelles. the perks you gain from changing your species behavior should also be balanced out with negatives.

For example; cannibalism in your cells species would

Positives:
give you a new food source
increase inttraspecific competition (possibly lets you use more mp? not sure on this one)

negatives:
hurt your species auto-evo stats
allow your cell to be predated upon by other members of your species.

you could possibly set it so that our species only partakes in cannibalism when food is scarce?


in summary i agree with what you’ve presented. i think the behavior tab should become more engaging. i just think how this is done should be thought about carefully.

2 Likes

Oh yeah, definitely.

There are certain behaviors in the real world which would be really cool to include in Thrive which, if implemented in an interesting way, would seriously increase the flexibility and replay-ability of the microbe stage.

I think the biggest thing this idea would need to sort out however is figuring out if there are enough behaviors which can’t be simulated by already existing concepts, such as organelle upgrades, which warrant the inclusion of an extensive behavior perk system. A lot of unique behaviors in microbes today are simply a result of species adapting to use an nontraditional source of energy; for example, caulobacterial and geo-electrical “behavior” could simply be simulated by a toxin upgrade for the former and a mitochondrial upgrade for the latter.

I also think a behavior “perk” system would be essential for certain complex multicellular/aware behaviors, such as migration, hibernation, etc; the question is figuring out how to implement it.

So I guess the best way to approach this topic is simply starting a forum thread which asks posters which real-life behaviors in cells intrigues them and figuring out a way to represent each of these in a game. From there, if the topic generates enough buzz and legitimate concepts, we can then go back to talking about a perk system. I’ll start the behavior suggestion thread soon.

1 Like

Now that the behavior tab has been effectively implemented into Thrive and we have an understanding of the basic concept, I think this discussion can become more fruitful.

Currently in the behavior editor, established parameters help dictate the way AI cells react to the environment; how far they are willing to track prey, how fearful they are of predators, etc. This serves an obvious and basic function that is well-founded in the natural world, allowing both the AI and the player’s species to have their own personality.

I still think that having some sort of perk system focused on behavior could be of benefit to replayability and the fun-factor of Thrive. Once again, certain complex behaviors we see in life are a bit out of the scope of simply finetuning a few sliders and hoping for the best. I previously mentioned quorum sensing as an example of said behavior, but looking down further into the future stages of Thrive, that much is still apparent. How can things like migration, hibernation, and breeding patterns be dictated without giving a “preset” for the game to work with?

One concern besides a complexifying of the game which can be avoided if a better idea pops up is whether or not enough behaviors can be present to justify the inclusion of a perk system. In my mind, there would essentially be a slot (or multiple) in the behavior tab that a player or species can fill with a unique behavior. In the more complex stages, such as late multicellular or aware, I think that this system or a similar one is unavoidable; for the microbe stage, I have a few more questions. Also, as was a problem with previous suggestions in this topic, some behavior is simply a result of morphology; for example, specific types of predation are influenced by morphology and thus parts which falls under part upgrades. And furthermore, some behaviors could be covered with signaling. Perhaps quorum sensing can be a function of signaling, where you press a button that sends out a ping activating a behavior/effect.

At the end of the day, I think it’s clear that Thrive can benefit from the inclusion of more complex behaviors not easily defined through sliders, and at the end of the day, there will need to be a way to implement these behaviors. But the question is how. And while my mind drifts to a “perk” system of sorts, if it can be done in a more simple way (through part upgrades or signals or whatever else), then it should be done in a more simple way to streamline Thrive.

That being said, I think the best approach is to find unique cell behaviors that have yet to be implemented and find ways those can be represented in Thrive. If we find that the majority of these behaviors can be implemented through simple ways, then I think they should exist within established concepts. If not, then I think a very good case should be made for the addition of another system, such as game-like behavior “perks”. Here are a few ideas that come to mind immediately, and I implore others to either bring up cool cell behaviors they want to see or propose mechanics for said cool cell behaviors.


Dormancy - In difficult conditions, cells will enter a stage of low-activity which allows persistence through otherwise unsurvivable conditions.

  • Mechanic: The player/AI is allowed to select one (or more?) patches (in the case of a player, has to be a patch not currently playing in) to “freeze” population from the effects of compound availability and environmental factors like pressure or temperature, etc., significantly slowing down the dwindling of the species population from these pressures in auto-evo. However, predation still impacts your number, and population gain is significantly diminished. OR instead of selecting a specific patch, an effect is applied to auto-evo numbers which reduces the effect of environmental factors on a species population in patches that are unfavorable to the species, but positive gains in population are still significantly reduced and predation still has an impact.
  • Tradeoffs: More of a passive trait. Although you significantly reduce the rate at which your population dwindles which allows your species a sort of “safe haven”, you lose the benefits of a growing population and still suffer some loses. Also, you lose out on other helpful and active perks.
  • Implementation: This is one of those behaviors that I can’t really see being implemented well without a sort of perk system. But maybe it can be an upgrade to the membrane?

Quorum Sensing - Cells will alter behavior in response to the number of other cells in its species within a patch, allowing an efficient management of energy.

  • Mechanic: When in the presence of other cells of its own species, cells withness an increased ATP production efficiency, which scales depending on the population in a patch and the number of cells in immediate vicinity to an amount up to 25% of reduced consumption.
  • Trade-off: When not close to another member of species, consumption goes up by 10%. Also, time needed to reproduce increases.
    *Implementation: I can see this implemented through signaling, where an upgrade to signals activates a swarm and creates those benefits.
2 Likes

I believe that for an unique behavior a system of trigger and response would be better:

For example, there would be a list of triggers that would be like population amount, amount of cells nearby, glucose production, atp production, the detection of a compound cloud, when the condiction of a trigger is activated, there would then be the response which can be something like a a change in metabolism, swimming towards/away etc.

3 Likes

Pretty sure that was discussed on the dev forums way back.
Found at least this:

1 Like

I think it would be usefull to have a behaviour setting that allows you to choose when your species is the most active now that there is a daylight cycle.

I think for a start it could be composed of 3 checkboxes:

  • The first one would be the ‘always active’ box, this will be on by default and when it’s choosen the AI will just act like it does currently.

  • The second one would be the ‘Active during the day’ box, which would be aviable only in patches with a daylight cycle. When choosen the AI will be active only when there is a light level higher than 0, and during 0 light level it would just not move like it currently does when it doesnt have ATP.

  • The third one would be the ‘Active during the night’ box, like the second one this one would be aviable only in patches with a daylight cycle. When choosen the AI will move around and be active only when the light level is 0, when the light lever is higher than 0 it wouldn’t move.

1 Like

What if in later stages we can create a neuron set with positive and negative notes, and more complex brains mean more nodes.

2 Likes

There are two reasons why there shouldn’t be an editor tab.

The first is that if behavior can be simplified enough to show in a tab

tab

then that simplicity is unable to represent some of the complex tactics that the player or another species could have discovered. Take the helicopter build of 0.5.6 for example.

A lot of cilia can be added to a cell and rotation can be used to move the spikes, instead of moving the whole body forward. The aggressiveness slider doesn’t consider how the attack happens, so it might think that it can’t be done when it can be. If aware stage ends up being like spore (attacks such as bite, charge, spit), then the aggressiveness slider doesn’t consider at which order they are used either.

But if we don’t try to simplify the behavior into an editor tab and let the AI do anything it wants to do, then some great behaviors can evolve. For example in aware stage, you can meet a pack of velociraptors that do a spit attack followed by a feigned retreat and a double envelopment.

And I admit that I want to see an AI finding a way to break the game’s physics engine*

It is possible to try to come up with every possible behavior and represent it in a behavior editor, but that would take the time and effort of the developers which could have been used in developing other parts of the game and also the resulting tab would be overly complicated and the majority of the players wouldn’t use that.

The second reason is the mismatch between the behavior of the one cell the player controls and the millions of other cells in the players species. Ask yourself this question:

Why are we even playing this game?

The purpose of the game, as hhyyrylainen said, is to play as an intelligent designer and beat evolution. But if we could already say that primium thrivium is responsive and opportunistic, the time we spend outside of the editor becomes useless. Everything about the species is already defined. We could just play the observation mode instead, and see how our species is doing. That could work, but it would be more like The Bibbites or The Sapling, it wouldn’t be Thrive.

The game should observe how the player plays, and copy that style to the other members of the players species.

Otherwise, we run into a problem. Auto evo needs to find out how successful the players species is, and the success depends on the behavior, but we have two different behaviors. The behavior of the player, and the behavior the player assigns to the species.

Which behavior is used to measure the player’s species’s success? There is an attempt of reconciling these two ways.

But why keep having two different behaviors for the same species and try to average them out? Behavior may not be a big priority like the design of the organisms body, but a body is nothing without behavior, you can add as many spikes as you want but it is useless if you can’t hit a target. The average of the successes of two different behaviors is the success of a behavior that doesn’t exist. It is a known exploit that you can lower the resource seeking of your species so that they won’t deplete the compound clouds on your screen, which should be only beneficial to one cell but it still ends up helping the players species.

Here is a bug that results from the attempt of reconciliation

Never dipping below the population of 50 suggests that the real population should be way higher, but the player is unable to use the behavior editor as good as s/he plays.

It is evident in the case of the helicopter build how big the mismatch can be

You might be asking, but how can a behavior be inferred from the way the player plays? To that I would say, evolution. An evolutionary algorithm is used by other species to find the perfect behavior for their environment and an evolutionary algorythm is used to find the behavior that is most likely to make the same movements and actions as the player. It doesn’t try to survive, it survives only if the player survives in the same situations. And with that, the mismatch dissapears.

I don’t think the player should be able to enter the editor after surviving for one generation. There are many exceptions to that measure of success, with one generation you can’t evolve childcare, have r/k selection, experience both the good and the bad times of a Lotka–Volterra cycle [1]and have multigenerational migrations later in the aware stage.

I think we should only be able to enter the editor when the AI completely understands how we play, and if that behavior makes our species survive. (If the species is badly designed, then no behavior can result in survival)

The accusations of being lamarckian

You can skip to the next chapter for the algorithm

Oliveriver said

I don’t agree with the interpretation that the gameplay determining the behavior is similar to events in life determining genetics, that it is a necessary evil or a “maybe we can do that” evil. A new behavior can appear in one generation (for a species with a brain) but I don’t mean that either.

We change the species in the editor and the other species change by themselves but the game stops every 100 million years and test if those changes are good, otherwise there wouldn’t be selection. When we exit the editor, the cells are supposed to already have a behavior. But that behavior is being tested right now, it wasn’t tested in the previous 100 million years, just like how the physical changes weren’t tested.

The behavior could have been designed in the editor too, but I’ve stated my dislike for its coexistence with a gameplay that isn’t an observation mode.

Here is my own interpretation. The gameplay is an editor too. In the normal editor, we design the species and during the gameplay we design its behavior. And instead of saying that I am aggressive towards everyone, I am able to specify the strategies I use against every species I prey on.

  • Cell design/physical evolution=> tries to increase traits (speed, dps, etc)
  • Gameplay/behavioral evolution=> tries to survive

When I first enter the game, the neural networks aren’t trained but when I am exiting, I fully designed my creature and only then the behavior represents the behavior of my species at that time during its evolution.

I just noticed that since the evolution of other species in the planet already happens in the background, the training of neural networks would require an additional computational power. It might necessitate wait screens. I came up with a solution for that but it can’t be done right now.

Since evolution only happens in the first 3 stages, if people play Thrive online, the people in cell stage can simulate the evolution in their games in the computers of the people playing society stage. That way, every stage would be just a little slow instead of crashes in cell stage and a super smooth space stage.

Storing and changing behavior

I don’t know whether Thrive uses logic gates, finite state machines or neural networks for its AI’s. I don’t know about programming other than python, I just watched a few videos in youtube about neural networks. I will use this section to give a suggestion as to how behavior mutations can happen. I know that Thim wanted to get behavior from the players playstyle but he later gave up, so you can use this for inspiration if it is a good proposal.

This is how I think neural networks work

Inputs: The distance to another cell, the angle to that cell, the distance and angle to the compound cloud, time passed since birth, the amount of light, hunger level, health, signaling agents, etc.

Outputs: The direction the cell decides to go, the speed it wants to go, where the oxytoxy or mucilage is thrown, whether the cell divides or waits or enters dormancy, signaling agents, etc.

equation

Ignore the fact that the weight matrix should have been on the left of the input matrix.

The neural network takes a bunch of inputs, does a vector multiplication with the weights, adds the biases and gives us the outputs. Multiplying and adding happens a few times and after each time an activation function is applied*

The matrixes in the middle part represent the behavior. For any input, the same arithmetic operations are made and an output is obtained. If the middle part changes, the behavior style changes.

How to approximate the behavior of the player? Let’s say that the player goes towards the ammonia cloud when the cell is low on ammonia. Take a behavior, make a few copies of it and randomly change some numbers in all of them except one. Give all of them the same inputs and look at their outputs. Take the one that did something closest to moving towards the ammonia cloud, delete the others, mutate the survivor, and look at the outputs of the second generation. Repeat this until the behavior obtained is similar enough to the players behavior.

The first matrixes we start with can be full of random numbers, it would be good enough eventually, but it would likely start from a non random behavior, I will come to that later. Comparing the output of the behavior to the players behavior requires a reward function. The movements can be compared by looking at how similar the numbers for speed and direction are. For comparing something like shooting oxytoxy, the directions can be compared the same way, and the output for deciding to shoot would be number too, shooting happens if the number becomes larger than a value. Getting that number above the threshold close to the time when the player would have pressed the shooting button could be rewarded.

The other AI’s would be evolved not to copy something, but to survive in an environment where other species and the player’s species exists.

Isn’t that what already happens in Thrive?
Mutating the values of the six sliders is similar to mutating the numbers in the behavior matrixes. And every combination of those sliders make sense, unlike the matrixes, where random numbers would truly result in random behaviors, or spinning in circles as the creator said*. But sliders, as I said, are restrictive. Take a look at the peaceful/aggressive slider for example.

peace

It isn’t possible for the behavior of “not chasing down prey over long distances but being likely to fight predators when attacked” to evolve, even if it was very useful. Not restricting behavior to certain categories, although harder to accomplish in some ways, would enrich the Thrive experience, at least for me it very much would.

Behavior modes

A large enough neural network can have very complex behaviors, it can hunt, graze and plan for the future at the same time. But it should be broken down to several different smaller neural networks, which neural network is controlling the cell right now depending on the environmental conditions.

The reason is given in the developer forums

It is because going towards a compound cloud shouldn’t be the one of the considerations of a cell that is being chased by a predator. They then go on to suggest 6 different behavior modes*, but I think just two is enough.

  1. Fight or flight mode: This mode is activated whenever you either see your prey or your predator.

  2. Grazing mode: This mode is active whenever the fight or flight mode is off.

I have a second reason why there should be different behavior modes. A species needs to have a different fight/flight response to different predators/preys. But the species are changing. Consider the following scenario. Species A preys on species B. Later, species A speciates into species C and D.

Species B knows nothing about species C and D. But it knows how species A behaved. So it should copy the fight or flight behavior it had for the species A and use it for species C and D. And it should start tweaking that matrix into the matrixes for C and D.

Every species should have a different fight/flight mode for every species they interact with because the number and types of such species can change and I don’t think a single AI can handle that. These don’t have to be very different. They can have a general behavior for “escape from predator” and only modify it slightly for each predator. Alternatively, only different types of predators may receive different fight/flight modes. For example, a mouse may escape from a snake by climbing a tree and from an eagle by digging down. How to find if two predators are different enough? At first, the same matrix can be trained to survive against all predators. If it is observed that training on one predator lowers the success against another one, then that means that it is time to have two different matrixes.

If two species don’t have a predator prey relationship, they can be in grazing mode when next to each other. In cases of cannibalism, a species can enter fight/flight mode if it sees the a member of the same species.

Size

Lets look at the amount of data that would be stored for the behaviors in a thrive game. Here is the calculation for another behavior system

It seems like the early developers wanted to have a thousand species. I will go with a smaller number, like 30, for a single patch. I don’t know how many numbers a neural network would need to store, I will assume that it is 1000. Not every species preys on one another[2], so n^2 fight or flight modes aren’t needed. Based on this picture which may or may not be realistic[3]

main-qimg-352a872a1e2309eb9728f7f7256bdcbd-lq

Lets say that a species has three fight or flight behaviors on average, and a grazing behavior. So the result is 1000 x 30 x 4 or 120 kilobytes. If we instead say that there are 60 species, each with 10 behaviors and 10.000 numbers per neural network, the number becomes 6 megabytes, closer to the estimate for the other behavior system.

Another change is that the behaviors don’t just change if two species fights on screen. Their fights are simulated in the background. But mini simulations aren’t as costly as normal simulation.

What to train on and what to train for

The auto evo needs a few data. In nickthenick’s auto evo algorythm, which I haven’t read all of, the cells are approximated as moving randomly and just like the collisions of molecules, they come into close contact and then separate. Each encounter is either a successful or an unsuccessful hunt for the predator (if those two species have a predator prey relationship)

The field of vision is greater in aware stage than the cell stage. I want to focus on how the results of the encounters are found.

For that, mini simulations can be used. In rainworld, all the creatures are still simulated when they are off screen but they aren’t rendered so they don’t use too much computing power. I am not saying a very larger area should be simulated, I am saying that only the events of importance should be simulated, which are the encounters.

How much every species bumps into one another is calculated from the formula. How much hp, glucose, mucilage etc. they have before the encounters (the average) are also calculated. Then all of these events are simulated. Based on these simulation results, how much hp(or they may die), glucose, mucilage they have after the encounters are found and they are fed back to the formula.

Each simulation is done from the point of view of one species[4]. Its behavior is mutated into multiple versions and a few simulations are run at the same time. The behavior in the simulation with the most favorable result is kept and the other behaviors are deleted. In the next set of simulations, the other species will have mutations and try to find a defense to the behavior the other species evolved[5]

Which encounters should be simulated more often? The more common ones? Not really. Two species can have friendly relations but what matters to a species’ survival is the deadly encounters.

For every species, the simulations should be run proportional to how badly they are effected. For example, a species may be able to escape a predator every time, but it might run out of mucilage and be unable to hunt its own prey on average, and starve. That species would try to survive with more mucilage from its encounters with its predator, and some hp loss would be tolerable. Its predator wouldn’t be simulated often to evolve counter behaviors because it can’t catch the mucilage species anyway and it isn’t a major food source for it. But if the mucilage species starts dying, things can change.

What they need to improve in order to survive can be found in one of the formulas in nickthenick’s autoevo algorithm. And for example, a species may try to decrease its fatalities by reducing the encounters, with a mutation in the grazing mode, in later stages.

A species that is unable to increase its survival rate with a change in behavior can be declared extinct. It happens if other species’s are more successful in filling the niches it could have filled, or if there is an ecosystem collapse due to an extinction event.

The events happening in the screen of the player could also be the considered mini simulations. It was suggested that those should be the only things changing how different species interact with each other, but I don’t think it would be enough to properly simulate extinction.

The player’s species is trained on the player’s behaviors, not the other species (the other species are trained to some extent on the player’s behaviors but more so on the player’s modeled behavior in the background).

When to train

The neural networks are constantly trained in the background. When it becomes apparent when a species wouldn’t go extinct, its normal evolution for the next generation can also start.

The player’s species is recorded when an encounter with another species happens. Recordings can also be made during normal gameplay for the grazing mode. The recordings for encounters are used to train the neural network to get a modeled behavior of the player. The encounters don’t have to happen often, but the same recordings are constantly used for training.

The case of multiple opponents

hhyrylainen said

It is hard if one tries to write conditional statements for every case, but an AI can be trained in all situations if it can get training data for them.

First of all, let’s look at a case of more than two species fighting each other. I will get to the player later.

Species A: Has slime jets
Species B: A more bulky build
Species C: Prey

Species C has two different behaviors. When it sees species A coming at it, it moves sideways. When Species B approaches it, it moves directly away from it. What would it do if both of them approach it?

I think it should only interact with the one closest to it and ignore the one far away. Because if it has, lets say 3 predators, and try to develop a behavior to defend against every combination of them, it would need 7 behaviors, not 3, which takes a lot more computation and time to train.

But the priority should be on the predator that would reach it first, not necessarily the one that is closest. So it normally runs away from B, but once A shoots its slime, it would reach C first if C was not moving, so C switches to the behavior for defending against A and ignores B for the moment. But maybe B is on the right side, so C should move to the left to avoid A, not to the right. So maybe it should see the location of B, just not know the details that it is B.

The inputs for the fight or flight mode against a species

  • A: main enemy
  • B: any enemy that isn’t the same species as the main enemy
  • C: the prey
  • O: an object like an iron chunk or a herbivore cell
  • CL: a mucilage or poison cloud (no need to know about compound clouds in fight/flight mode)

1: The direction of A

2: The distance of A divided by the speed towards C

3: The direction of the second A

4: The distance of A2 divided by its speed towards C (the time value in 4 is more than 2)
(there can be more A’s, I am just skipping)

5: The direction of B

6: The distance of B divided by the speed towards C (6 is more than 2, otherwise the behavior for B would be activated)

7: The direction of B2

8: The distance of B2 divided by the speed towards C (8 is more than 6)

9-16: The speed and directions of O’s and CL’s

Maybe a instead of finding the time it takes to reach the C, the input should be one over time, that way if there are less than the maximum number of predators/objects, the value entered can be zero, which means that it is infinitely far away. The number multiplying with the next number in the matrix would be zero. But that still leaves out the direction. Maybe radial coordinates weren’t a good idea. I thought that the players could more upwards rather than downwards in cell stage, have preferences like that, but it would be unnecessary to tech that to its species, so every cell in the species could have a random number added to its radial coordinates so that it would average out. Also the direction towards the prey doesn’t make sense outside of radial coordinates. Anyway.

These are the inputs the cells receive, and they evolve their behavior. If it turns out that the majority of the fatalities are caused when 4 of the predator species with mucilage and spikes attacks, than those encounters are simulated more and the species tries to develop a counter behavior.

Multiple species attacking doesn’t get its own simulation, the training in single species attacks are used in such cases.

But yes, two species can have a symbiosis in behavior, such as the humans and dolphins that hunt fishes together or the coyotes and badgers. In those cases, I think it can be like spore, the symbiosis being recognized by the game, the team members shown in the right part of the screen if player is the one doing that. Their preys would develop a counter behavior against both of them, but that doesn’t increase the number of behaviors the prey needs, it is decreased by one, unless the predators hunt by themselves too.

What about the player’s species? When a player is attacking a prey or being attacked by a predator (when its fight or flight mode would have been active), the event is recorded and added to the databank. The players behavior matrix tries to recreate the things the player does and evolves. The recorded event could be an encounter with 2 of the predators of a certain species, or with any number of them. But the other species are asked to evolve against their deadliest encounters, while the encounters of the player are random, can this be changed? I will get to this later. The recordings can be deleted after the same type of recordings are recorded multiple times, so if the player starts playing in a different way his/er species changes the behavior too after some time.

Not starting from scratch

The training doesn’t have to start with random matrixes. There can be pre trained neural networks. A developer can run the game in their computers before every update, and see the different behaviors that appeared, a predator, a prey, a tank build, chemosynthesiser, etc. The most common of these can be copied and added to every thrive game, similar to how planets will be pre generated.

When two species interact for the first time in a mini simulation, they can try out all the behaviors that are added to the game and choose the one that is useful to them the most. After that, they can slowly tweak those behaviors and make it perfect for the particular environment they are in.

Choosing a preexisting behavior can be done after that too. Lets say that I am a new player who doesn’t know how to play the game well, and a species hunts me. I then stop the game and look at the thrive wiki, and see that oxytoxy was intended for shooting. So I start the shoot at my predator and start to kill it before it reaches me. In this case, the predator doesn’t have to slowly change the hunting behavior into the running away behavior. It can chose a preexisting prey behavior and start surviving.

The other species can also choose the player’s modeled behavior, or any other species’s behavior. Player’s behaviors would exist in the species that speciated from him/er.

The species should try other behaviors every so often while they are evolving their behaviors.

You might be asking, how is it different than just having sliders? They were premade behaviors too, without the final little tweakings. But there is another fundamental difference. The behaviors in the sliders had to be designed by the developers, but these behaviors appeared in games without preexisting behaviors and don’t carry any mistakes or generalizations that a human programmer would make. But they may stuck in local maximums instead.

We report the glitches to the community forums. I don’t know if the game can automatically send reports. That can exist for behaviors. If a new behavior appears on a Thrive player’s game that is very dissimilar to the preexisting behaviors (either the players behavior or something the AI discovered) it can be reported and it would be added to the next update so that it takes less time to create that behavior. And if it was using a glitch, the glitch can be removed. They would also help to model the players behavior faster.

After evolving, the species can keep their previous behaviors towards each other and build onto them, or switch to any other behavior at any point.


  1. dying at a time when the population should be decreasing isn’t that bad, but the information of how that happens may be useful to the auto evo ↩︎

  2. things like parasitism, filter feeding and herbivory don’t require a fight or flight mode ↩︎

  3. google image result for “realistic food web” ↩︎

  4. I don’t know how both of them could try to maximize their success at the same time ↩︎

  5. by evolved I refer to the way the new behavior is created in the game. in the game’s lore, the behavior should have been appeared long before, alongside the bodily mutations, not while the bodies are constant ↩︎

An environment that isn’t random

Learning to copy what the human does can be made faster if the human can be asked to evaluate how good the copy has become so far, which happens in reward modelling*. But how do we ask the player if the copy is good?

The purpose isn’t to copy the human perfectly. If the modeled behavior of the player accidentally starts to play better than the player (or player starts playing worse over time), I say let the more successful AI remain.

When the player survives an encounter with some amount of glucose, health, etc, the modeled behavior would try to do the same thing. When it does a similar thing, the success would be similar. It can then be put into a different condition (different starting conditions, the number of the enemies are the same but they approach from a different direction) and expected to have a similar success in that case as well.

There are multiple recordings of the player, so the AI is trying to have an “average behavior” of all of them.

Try to have a personality that does the same thing as the player in each case and stop when you are 90% as good as the player in each case. This removes (or reduces) the luck factor, if I was able to play the game good due to luck, the AI learning from me wouldn’t be able to replicate my success and I would be asked to repeat what I just did.

There should be two reasons for a player to repeat an encounter.

The first is that the player uses a weird tactic or a glitch and the AI has a hard time to replicate. The player is asked to do the same thing again until the AI can finally get it.

The second is that the player is badly effected every time that encounter happens. The player is asked to learn not to die next time, because the auto evo has noticed that if the player can’t do that, s/he should go extinct. This means that you see that deadly predator more often than you would in a random environment, but if you are able to change your grazing methods and the number of deaths decrease despite the same fatality in each encounter, the auto evo can let you go and you would start to see it at random intervals or maybe even less because now other things have been prioritized.

So how can the player be forced to see that deadly predator more often than chance? By increasing how much it exists in the environment? Possible, but there is a more direct way.

The player sees a rectangular region but an area 9 times larger than it is simulated*, so there are 8 more rectangles around it. So if the game needs to know more about what would the player do when encountering 3 of the oxytoxy species at the same time, then 3 of that species is spawned in every one of those 8 rectangles. Once the player starts seeing any 3 of them, the rest despawns.

And it is impossible for the player to feel that s/he didn’t deserved to go extinct, because s/he experiences the very reason the auto evo thinks that makes him/er go extinct.

Things not to do

I suggested what I think should be done. Now I will tell what I think shouldn’t be done

  1. Don’t assign the player’s behavior to player’s species and then let the player change it

harchrisdytian said

That doesn’t remove the mismatch between the player’s behavior and the species’s behavior. It just makes removing the mismatch optional, and I think it should only be doable if you use cheats. And it assumes sliders. The numbers in a neural network wouldn’t make sense to a human.

  1. Don’t measure success with organelles

This is a rather old idea

A cell can learn to run away from another cell without knowing that it has spikes. Trying to predict how dangerous or tasty a cell would be based on its constituent parts would be way more complicated than remembering the previous encounters with that species. Also, a spike is only dangerous if it can hit you, increasing the fear towards every species with a spike would result in suboptimal behaviors.

The idea could be used if there were a thousand species (or variation inside the species) each with a spike, but a single hex is placed differently. But even then, you can use the same behavior for similar species.

  1. Don’t make behavior cost mutation points

Since I asked behavior to not be designed in an editor, it doesn’t make sense for it to require mp’s

Conclusion

To sum it up, I have 20 suggestions.

  1. Remove the editor tab

  2. The players should design their species’s behavior by playing in a certain way

  3. Don’t define the behavior with slides, make it possible for any behavior to appear using neural networks and evolutionary algorithms

  4. Use evolutionary algorithms to copy the player’s behavior

  5. Don’t make the player enter the editor after one generation. At least have a few generations. If you neglect your child, in the next generation you are neglected.

  6. Have two behavior modes, grazing mode and fight or flight mode

  7. The same fight or flight mode can be used by a species against multiple similar other species

  8. Use nickthenick’s autoevo algorithm

  9. Use mini simulations to determine the outcome of predator prey encounters

  10. Simulate an encounter more if it could lead to the extinction of a species, and wait for it to develop a behavior that makes it survive. Auto evo should decide which species goes extinct.

  11. Activate the fight or flight mode for the predator or the prey that is closest. Predator can have a priority over the prey.

  12. If two species cooperate, treat them like a single species when making the mini simulations

  13. Only give the necessary inputs to the behavior modes

  14. Add pre trained neural networks to the games

  15. Let every species switch to any other species’s behavior, the player’s behavior or one of the pre trained behaviors if that behavior suits it more than its current behavior

  16. Collect the behaviors that took long to evolve from the games of different players and add them to the game in the next update

  17. Keep making the simulations in the background, making the species better at survival and the player’s species copied better. When the player’s model becomes similar to the way the player plays, either declare the player extinct or let the player enter the editor again.

  18. Give a chance to the player to play better and not go extinct by making him/her replay in the situations that killed him/her

  19. If the auto evo needs to know how would the player survive in a particular environment, change the player’s environment to that environment

  20. Spawn cells around the player to make encounters happen

Behaviour isn’t the problem in all cases. Sometimes the player’s species is just so badly designed it can’t survive competition for resources.