Added a system that enables assigning an energy cost to performed actions, neural net nodes, and connections, which are then deducted from a starting energy pool. This enables adding various interesting evolutionary pressures, such as tradeoff between "brain size" and movement, or between "violent" and "pacifist" approaches.
Cost of actions is divided into three categories: movement actions, kill action, and others. Could be extended to more categories, or even separate setting for each action, but that seemed excessive.
I was unsure if individuals that run out of energy should die, or just be paralyzed because they are unable to perform any actions or run their neural net. Right now it's the latter, since it makes observing the energy consumption easier in the videos. Maybe it could be a separate parameter - feedback welcome.
I also included some reporting around neural net size and energy consumption, to enable graphing changes in "brain size". These parts could be easily left out of the PR if they are not a good fit for upstream.
Further ideas that can be built on top of this:
energy sensory neuron so that decisions can be made based on available energy
some kind of energy source (food) - would enable simulations where agents are competing for resources (other than space)
Added a system that enables assigning an energy cost to performed actions, neural net nodes, and connections, which are then deducted from a starting energy pool. This enables adding various interesting evolutionary pressures, such as tradeoff between "brain size" and movement, or between "violent" and "pacifist" approaches.
Cost of actions is divided into three categories: movement actions, kill action, and others. Could be extended to more categories, or even separate setting for each action, but that seemed excessive.
I was unsure if individuals that run out of energy should die, or just be paralyzed because they are unable to perform any actions or run their neural net. Right now it's the latter, since it makes observing the energy consumption easier in the videos. Maybe it could be a separate parameter - feedback welcome.
I also included some reporting around neural net size and energy consumption, to enable graphing changes in "brain size". These parts could be easily left out of the PR if they are not a good fit for upstream.
Further ideas that can be built on top of this: