Downloads

Downloads:

Windows-compatible only!

LATEST CHANGE LOG:

Version 0.07.2 changes:

AGENTS:

! Converted jump method to a new, more realistic version: Now, the Jump output sets a vertical velocity, which is added to the height every tick, and decreases according to GRAVITY_ACCELERATION. This makes agents appear to jump towards the camera!~ Encumberment has been changed from a simple true/false to a counter: each “level” applies the ENCUMBERED_MOVE_MULT, so after 3 levels, agents can hardly move.~ Converted eyes from a pair of lists with direction and FOV to a list of objects. This is only a back-end change and does not affect anything~ Converted ears from a trio of lists (direction, high, and low sound) to a list of objects, like eyes.~ Changed Boost exhaustion to only apply to wheel usage, so other outputs are no longer penalized from Boost* Improved agent wheel calculation so that WHEEL_SPEED now correctly scales up the output result after the angular function, instead of before* Fixed a bug where sexual agents would reproduce with every valid father within range, causing duplicate birth events, and colliding newborns* Fixed a bug where, when reproducing, the mirror eyes were being enforced on the MOTHER instead of the child as intended. This potentially led to issues from eyes not actually being symmetrical, to shorter life spans of agents because their eyes would change when they reproduced (yikes)* Tweaked Seed features by ensuring they are being reset when appropriate and decreased the BRAINSEEDHALFTOLERANCE setting to 3

WORLD & CONFIG:

+ New Feature: Lifepath! With a GUI option turned on, the selected agent will trace its movement on the world with a cyan curve, with frequent updating and slowly turning to black at the start to indicate which direction the agent drove in. * Only records the selected agent’s path. If the agent decays after death, or if you or autoselect picks another agent, or you toggle selection of the selected agent, the lifepath will be cleared and can NOT be recovered. Also does nothing if you select a dead agent. * Even records while in fast mode! Since it records only the selected agent, performance impact is low when turned on. * Meant to be used both as a debug feature, and a utility to witness how agents are navigating and surviving the world over time!+ Added Island chains and Lakes: when generating terrain, a brief period is spent checking the land/water ratio, and new sources of water or land is generated to try and push the final amount towards the desired Ocean Gen Ratio. The result is some neat island chains and uneven terrain that forms in 1-2 spots and provides lots of beach surface area, making new habitat for Amphibians! These chains sometimes extend onto land and make it very convincing for active plate tectonics (which sadly remains out of reach for the current terrain implementation)+ Added a new, secret terrain feature… Can you figure out what it is?+ Added ENCUMBERED_MOVE_MULT config: this is the mult applied for every level of encumberment.+ Added ISLANDNESS config: in tandem with SPAWN_LAKES, determines the percentage of the world which is turned into islands/lakes.+ Added FEATURES_TO_SPAWN config. It controls the number of secret terrain features generated.~ Increased the ratio of meat food dropped by non-fresh-killed agents to 75%. The bonus from killing another agent is thus smaller (still 100%)* Fixed a bug where the config value for OCEANPERCENT would always override the GUI value. Now, it’s only used once when launching.

SIMULATION, GRAPHICS, & AUDIO:

+ Added new Autoselect modes: + Best Aquatic, Amphibian, and Terrestrial: Follows the agent with the Lung trait closest to the relevant terrain Elevation + Fastest: Follows the agent moving the fastest (including Boost mult). Tends to re-select often + Sexiest: Follows the agent with the highest Sexual Projection. It will tend to select males if there are any + Most Generous: Follows the agent with the highest Give output (not amount given, just brain output) + Highest Kinrange: Follow the agent with the largest kin range. * All modes can be activated by “shift”+[top row number key] or via the UI. Note that “Shift”+”9” does not currently have a function * Note that Relative autoselect mode has been moved to just below Manual, meaning also that the number keys have been shifted (“1” activates Relative, “2” = Oldest, “3” = Best Gen, etc, up to “9” which now activates Fastest)+ Added a Metabolism Profile view, with a key for the colors, pointer for selected agent’s metabolism, and vertical bars for Health and Repcounter scaled up to represent the ratio of intake expected to be divided between them. Additionally, a line showing the current MIN_HEALTH_INTAKE_RATIO config value is drawn as well~ Adjusted Metabolism color scheme: black (0, priority health) -> red -> yellow -> white (0.5, balanced) -> cyan -> azure (1, priority repcounter)* Fixed a bug where kinrange was part of the calculation for autoselecting new relatives (larger kinrange translated to better chances). It now correctly only checks if the agent is within kinrange, and then lets the difference in the species ID punish the selection chances* Fixed a bug where the best relative selected message was not updating beyond “youngling”, “cousin”, or “elder” even if the agent selected actually was a “daughter”, “sibling”, or “mother”, respectively.* Improved visibility of the “Mountain” terrain type when viewing Elevation layer mode

LOADING & SAVING:
+ We now save and load the “Encumbered” factor of agents to improve save fidelity

~ jump refactor does not load anything from old saves, since the system is totally different. Agents WILL behave differently regarding jump!

Version 0.07.1 changes:

  • reformatted the cell vision to be like agent vision; it sees only the max value of all cell layer colors, not the additive between layers (so, before, the fact that fruit and plant both += green eyesight meant green was brighter than red, and could have been brighter than our max allowed AMBIENT_LIGHT

  • Corrected an order of operations issue with agents not taking hazard damage when exposed to hazard while boosting, which was not exactly intended to also unintentionally gave boosting agents unnaturally long life.

  • fixed a bug where tiny agent's extra eyes were not getting set to the daylight value as expected in some scenarios

  • fixed a bug with the relationship message for relative autoselect, and removed kinrange as a beneficial factor in calculation, providing more accurate selections.

  • reduced meta mutation rates

  • balanced some brain mutations

  • adjusted metabolism coloring again. Now is: black (0, priority health) -> red -> yellow -> white (0.5, balanced) -> cyan -> azure (1, priority repcounter)


January 2022

Evagents v0.07: The Catastrophic Update!

Main Feature: The Connection-Positive Brain (CPBrain for short).

- Brain boxes no longer have 5 forced connections each!

* Instead, the boxes only store values (and apply bias, global weight, and dampening). Connections have been moved to a new array that is processed, made of conns: a structure with a source id, target id, weight, and type.

* This was done to break apart the importance of boxes (memory) versus conns (processing). This new conns list is also heavily modifiable, meaning agents can be as simple or as complex as needed to survive!

* Additionally, processing time and power is saved by “trimming” the connection list of all connections that do not lead to an output or to another box which has already been marked as leading to an output. These connections are lost and will not be reproduced.

* Also, brains no longer need first INPUT_SIZE boxes set to the inputs; each conn can have either +/- source id’s, where negative values correspond to input id (from Input list in settings.h) negated and minus 1. (In other words, conns can reference Inputs directly now)

+ Added BRAINCONNS config setting, allowing control of the init number of attempted connections. Default is 300 for now.

- Decreased default BRAIN_SIZE from 160 to 70+[number of Outputs], currently 70+20= 90.

* It is hoped that this can lead to simpler agents which do not need to simulate all ~160*5 connections between every box

* This renders old saves incompatible. No effort is going to be made to allow upgrading. It is technically possible; make 5 identical connections for each box when loading an old saved agent; however, I think it may be more valuable to start over and see what happens now with the new system

* Brand new mutations for these new connections and brain boxes. A complete list will be posted on the wiki.

* Brains are very mutable now. Boxes are still rigid in number but that will soon change as now it is possible to add or remove connections. Box deletion requires a method of going through the conns and checking if the sid and/or tid > deleted box id, shifting all IDs -1, and then removing the box. Box addition needs a way to keep the box around when added (perhaps a direct conn from it to an output is also created)

* Large brain size costs energy via new settings value, EXHAUSTION_MULT_PER_CONN. Every 100 connections will increase energy use by 2 units, by default. This should increase brain efficiency over time as agents evolve to avoid energy loss. (as a reminder, every fully 1.0 output is a unit of energy, and the agents previously regenerated 7 energy units every tick. Now they regenerate 12, that’s +5, or 250 free connections)

~ Additionally swapped out the expensive sigmoid function with a cheaper one. Got double frames at 1500 agents ( 10fps to 20fps, but still )

+ Added setting for initial agents to have mirror connections formed: currently an additional BRAINCONNS*0.1 connections are made, all with weights negative of another conn, but with the same target box, helping form a comparison node early.

~ Other brain tweaks include increasing range of connection weights (std dev = 6), eliminating memory connections (will evaluate re-adding somehow later) and lower mutation chances on most brain features to improve child survival and mutation chance/rate values.

AGENTS & BRAINS:

! Added Repcounter brain input. This was long overdue. It inputs 0 when repcounter is reset at maxrepcounter, up to 1 when ready to reproduce.

! Added back in cell eyesight! This time it’s configurable, and saved with both config and world saves. Allows agents to “see” world cells.

+ Meat appears red; plant appears green, fruit appears yellow (red and green), hazard appears purple (red and blue), and water appears blue

+ The values are added together, using much of the same logic as eye_see_agent, but with an AMBIENT_LIGHT_PERCENT multiplier (also config)

+ Agents have a “eye_see_cell_mod” trait again, is saved and loaded

* If disabled, processing should not be impacted, and eyes will see the normal background brightness from pre-v0.07

* These eyesight values are still compared to eye_see_agent values, so it’s possible for agents to “hide in the foliage” (or waste… or what have ya)

! Split Mutation Chance and Size each into two: one set effects the Brain mutations, the other effects the “Gene” or trait mutations. For now, they share meta-mutation chance and sizes, but have different initial values (agent brains were way more sensitive, so I turned down the Brain rates)

+ Eyes have received a mirroring feature: half of the eyes are now mirror copies of the other half, meaning their angle is reflected over the forward axis of agents and copy the FOV of the other eye. Tiny agents still get a single pair, with the remaining 3rd eye being independent. This behavior can be controlled by 2 new config options: SPAWN_MIRROR_EYES & PRESERVE_MIRROR_EYES.

+ Doubled the number of ear input sensors from 2 to 4. They can be sensitive to different ranges of course, but half of them are automatically locked to the same position of the other half at spawn.

* This came with many changes to allow variable NUMEARS as controlled in settings.h. Programmers, feel free to play around

+ SPECIESID_RANGE constant now independently sets the range of the Species IDs of new spawned agents. Note: mutations can still go above or below this. It is currently hardcoded still.

+ Introduced “kinrange” agent trait:

+ Init agents get a LARGE value assigned (1/10*SPECIESID_RANGE)

+ Mutation size multiplied by value, so this value changes more the further away from zero it is

~ Agents outside of the agent’s speciesID +/- kinrange cannot be targets of either Generosity or Sexual Reproduction

* This trait serves to open up sexual reproduction sooner/easier, and make death by generosity more rare/easier for the agents to overcome, while still allowing generosity.

* Can be overridden in config settings to a specific value, but by default allows agents to mutate and inherit different values

+ Added an eye mirror copy mutation: like the eye copy mutation, but this one sets the direction to the agent’s reflected side. Can also copy FoV

+ Added new type of mutation: Sensory failure. Rarely (but still based on Gene Mutation Chance), agents will have a random number between 1 and 2+[Gene Mutation Size]*50 divide a sense multiplier, resulting in possibly debilitating mutations, like agents going blind, deaf, etc.

~ Eyesight multipliers (composite from light, trait, distance, and FOV) are now capped, so eyes won’t see white-wash from agents that aren’t white

~ All senses mults mutations are now taken from abs(), so there should be no negative sensitivity to stimuli. (whoops)

~ Reduced default REPCOUNTER_MAX and REP_PER_BABY to encourage more reproduction

~ Increased WHEEL_SPEED default to 0.5 from 0.3

~ Reduced spike raise speed by 60%, and made it so that agents < TENDERAGE cannot bite

~ Changed the tone that agent wheels make sound from .25 to .125, so agent ears will, by default, spawn unable to hear them more often

~ Agent Temperature Discomfort (local_temp – temp_pref) no longer is squared, and also smoothly changes over time. This is in tandem with Climate (See World & Simulation). Also is recalculated at a rate inversely proportional to radius, so large agents will lose or gain heat slower

~ Shallow Aquatics and amphibians that jump now get a buff: they will take their preferred lung value for the land value when they jump in water that is too deep for them, up to a max of the Beach elevation (terrestrials also benefit but not as much)

~ Agent grab now changes their angle by a ratio of the other’s radius/their own radius, so large agents will find it hard to leverage off small agents, but they sure can yeet them!

~ Boosting now prevents intake, like Jumping, and has the multiplier for energy only applied to exhaustion from outputs, not brain conns

~ Jumping now gives a slight boost to movement speed, configurable, but it is overridden if the agent is boosting.

~ Agent generosity once again takes the comparison of agents’ health into account, this time in the form of “agents can only give a max of half the difference in their health”, so they should rarely, if ever, kill themselves from being generous. They still can if Give==1, the max possible, or if you disable a new config, AGENTS_DONT_OVERDONATE.

~ Adjusted the No Oxygen mechanic so that at AGENTS_MIN_NOTCLOSED agents, the healthloss is 0, and it ramps up from there

~ Added exhaustion value to healthloss (“natural causes” section) to inspire turnover. Multiplied by new HEALTHLOSS_EXHAUSTION setting, this will now be the dominant cause of death of new spawned agents.

~ Made the mutation size of sexprojectbias much larger, to try and promote sexual reproduction

~ Ear and eye inheritance has been changed to a per-whole-eye/ear basis (before, children would pick one parent to inherit all eye or ear traits for a given parameter, leading to very bad mixing of incompatible traits). This is a lead up to a future where we’ll have eye (and maybe ear) objects.

~ Improved the placement of children around a reproducing agent: they will now 100% of the time spawn in a “fan” shape “behind” the agent (opposite their spike and jaws).

* Fixed a major bug with agent’s sight taking incorrect values for target angles before comparing to the FOV

* Fixed a major bug with blood sense flipping on/off at certain agent angles.

* A mathematical glitch allowed agents to eat when moving at high speed if they had a small but non-zero exhaustion. Now they should never eat when going fast, no matter their energy level.

* Fixed a bug where jumping agents would get angle-locked in an “over-rotated” state due to order of operations.

* Fixed a bug with collision damage that would kill one agent but leave another completely unscathed.

* Also fixed collision damage being multiplied by 2 unexpectedly. Increased DAMAGE_COLLIDE default to maintain previous results

- Removed the artificial mutation chance additive from the last update (META_MUTCHANCE_ADD). The reason mutation rates approached 0 was because the environment was too stable. We’ve now changed that, so this band-aid has been removed

- Removed the global Mutation Multiplier from affecting agent mutation Sizes, so they now only affect Chances, as advertised

- Removed seed box (and conn) values from effecting the mutation chances. If a box lasts longer, it should be by merit of its ability to keep the agent alive, not a feedback loop where long-lived boxes get to be even longer-lived.

WORLD & SIMULATION:

! Increased world dimensions by 50%, giving agents over twice the livable area than before. Should increase diversity in agents.

! To counteract FPS loss due to the above change, we are now calculating all cells at a reduced, patterned tickrate.

+ Added a constant, CELL_TICK_RATE, that controls this rate. From testing, it seems a value of 4 is best; 1 = every cell, every tick, 2 = every other cell, every other tick, & 4 = every 4th cell, every 4 ticks, sliding left-to-right. A value of 5+ had weird issues occur with light and diminishing returns

* Of course, to maintain simulation fidelity, all cell increase/decay amounts are multiplied by this value. Does not affect agent deposition/intake

* For those interested in simulation profiling, a value of 0 is allowed, and it disables ALL cell processing.

* The setting is NOT available in the config, only settings.h

! Global Climate added:

+ Several times per epoch (every 5 days, but more dramatically at the start of a new epoch), a pair of new world variables are rolled:

+ CLIMATEBIAS: this variable pushes the whole world’s temperature towards this value. It is randn(itself) and capped. Has GUI input/display field.

+ CLIMATEMULT: this variable controls the intensity of the extremes, where 0= complete uniform temperature = CLIMATEBIAS everywhere and 1= poles and equator always extreme (no matter the bias setting). This value is always abs(randn(itself)), and capped. Has GUI field.

+ Temperature affects plant growth and decay: Hadean and Arctic environments first reduce the growth chance, down to 0; then increase the decay rate, up to 1.5* the natural decay rate, as the local temp gets into range, killing off the local flora. See CLIMATE_AFFECT_FLORA in config

~ Temperature calculations take these variables into account, and agents are now penalized more harshly for bad temperature

* A random initial climate condition will be generated with each new world. Alerts and status displays will update users on unique situations.

* The combination of the two variables allows for many varied and changing climates that agents will have to struggle against!

* When the CLIMATEBIAS is <0.3, we have an “Ice Age”, and if it’s >0.7, we have a “Hadean Climate.” If the CLIMATEMULT is >0.7, the climate is considered “Extreme” with both temp extremes likely represented in the world.

~ Droughts, now part of the climate system, and have more interesting dynamics:

+ The Drought Mod gets recalculated more often, randn every 50 days (1 epoch)

+ Every 10 days, it is averaged toward a random float between 0 and 1, with a large weight to itself.

+ Finally, every 5 days, if it is outside the min/max values for drought, it gets averaged toward 1, with a small weight.

* This should result in droughts starting, then getting worse before they get better, and overgrowth events will be shorter and less impactful

~ As a result, raised the DROUGHT_STDDEV to 0.3 (from 0.15)

+ Converted one Ocean spawn tile to a Shallows tile at world spawn, hopefully balancing all worlds’ ability to allow aquatic -> terrestrial branches

+ Added new death cause: labeled as “Killed by Mutations? TooYoung”, this cause is only used if the agent dies before age of TENDERAGE (a day) and is not a world spawn. The purpose of this is to hopefully catch deaths that happen because a baby agent received mutations that hurt its survival chances. It seems to increase in periods of higher mutation rate, so it should be somewhat accurate, but can’t be guaranteed.

~ REPORTS_PER_EPOCH have been changed to 500 from 200. FRAMES_PER_DAY and FRAMES_PER_EPOCH have been *2, meaning longer days and longer epochs, and more data saved to history reports per unit time.

~ Report.txt now captures the following:

+ the random agent’s sexproject value (the sum of its output plus its bias, in range [0,2], with 0-0.5 being asexual, 0.5-1: female, and 1-2: male.)

+ the random agent’s kinrange value (see Agents & Brains above)

+ the random agent’s brain connection count (live connections)

+ the lowest and highest absolute temperature (NOT re-scaled via temperature calibration, see Graphics & Audio below)

~ Added back the random agent’s Mutation Chance and Size after it got removed at some point.

~ Split the causes of death from spikes versus bites finally. Effects both in-game visualization of damage sources and report.txt

~ Improved the selected agent stat report to the terminal, specifically by adding formatting and the sensor mults, including clock frequencies.

~ Refactored code to improve performance and organization

- Removed starting population of 100 agents. It’s now directly AGENTS_MIN_NOTCLOSED like before. Most of the starting pop dies anyway.

- Disabled autosaving while in demo mode

* Fixed a major bug (included in version 0.06.2): Agents were taking - sometimes severe - damage when at world borders due to their radii overlapping it and intake taking from non-existent cells. Their intake locations are now locked inside the world.

* Fixed a bug where if user commanded the selected agent to reproduce, the action would sometimes kill the agent and the children when it should not have, and would fail to be alerted in the world

* Fixed a bug where, if 3 agents were near each other, but 2 were not near each other (in other words a chain of agents), then one of the 2 might not actually be considered “near”. This would cause weird interactions with some agents eventually overlapping and dramatically colliding

* Fixed a minor bug where collision damage was being incorrectly posted as generosity damage, both in sim and in reports

* Fixed a bug where agent temperatures and exhaustion values were not calculated in prefire iterations when loading a save, resulting in some loss of save fidelity as agents would get a buff

* Fixed a bug where Agents spawned due to population < AGENTS_MIN_NOTCLOSED would get an incorrect lung assignment for their terrain

* Fixed a bug where pressing “0” to select a random agent when none were alive would lead to a program freeze.

* Fixed a bug with OVERHEAL_REPFILL config being saved to config as an integer when it’s supposed to be a float

* Fixed a minor bug with DEBUG when loading a save, where every single agent (mostly the dead ones) would draw a dpos vector to (0,0) in world coordinates. The fix is all loaded agents load the same value for both pos and dpos.

GRAPHICS & AUDIO:

! Changed the population history graph:

~ The graph has been greatly enlarged and stretches off to the left-side of the screen much further than before

~ The graph data now scrolls from the right side to the left over time, covering exactly 1 epoch’s-worth of data, even if the config value FRAMES_PER_EPOCH is changed (if increased, data will be compacted)

+ Added horizontal guidelines marking every 100 agents that scales with the max total population value in the last epoch. Number of dead may not remain contained within this range, but it’s a large improvement and the main population graph will largely remain in the bottom

+ Added vertical guidelines that mark each day & epoch that scroll with the data.

- Removed setting for RECORD_SIZE, as the world records displayed now go by REPORTS_PER_EPOCH

+ Added 3 new music tracks: “endlessmotion” via bensound.com, “msfxp6-198-stretched-piano-1” by erokia via freesound.org, and “cd-yang-001” by kevp888 via freesound.org.

+ Added a new sound when the Relative Autoselect mode successfully finds a new target, to alert the user

+ Added 2 different, very vicious sounds for agents successfully biting another. There is no sound for agents biting the open air (or water)

+ Added a “purr” sound when an agent is receiving health from another’s generosity.

+ Added Strength agent visual: agents that are weak will appear dull-pink, strong agents will be lavender, and agents that are not-weak are grey

+ Added Mutability agent visuals: agents will be colored such that, roughly, more red indicates higher mutation chance, and more blue indicates higher mutation size. White indicates ridiculously high values of either, and black indicates they are both 0. This has been done for both Brain and Gene Mutability

+ Added Generation agent visual: agents will be black if they’re gen 0, cyan if they’re the highest, otherwise various shades of brown-tan

+ Added a “Hide Generation Zero” UI option. When active, it simply hides all random spawns in the world. Useful if a population is low or starting

+ Added “j” as a keyboard hotkey for toggling the “Hide Dead” option.

+ Added a UI option for allowing sounds to play. Sounds still pause if we are in fast mode

+ Added a UI option for Demo mode, which still starts enabled on the first run of the sim but then disables itself for subsequent runs.

+ On the Loaded / seLected Agent Display (internal name change):

+ added a color swath showing the gene coloration of the agent next to the entry for Chamovid-ness

+ added the number of brain connections, listed as “Conns”

+ shows both the Gene and the Brain mutation rate and size traits

~ changed the metabolism display to show if it benefits Health (+H), Children reproduction (+C), or is Balanced (B)

~ moved the death report

+ Added a “thermometer” render: a strip on the right side of the world indicates the temp at all latitudes. Stays even if the temp layer is turned off

+ Added a rendering on the brain Profile types for dead boxes (that is, boxes with no conns ever leading to an output): no colored box and a red “x”

+ Finished off the labeling of all Inputs and Outputs on the brail Profiles: random gray “?” for random input, cyan “$” for stimulant

+ Added the exhaustion/energy meter to the right of agents when zoomed in, measures the same way as the Selected Agent Display

+ Events that say “Selected Agent…” when something happens to the selected agent now only will show when tips are enabled.

+ Also added several new ones for agents colliding, being generous, jumping, fathering agents (rare) and other situations that happen to them.

+ Added “Epoch ##” event messages to better delineate passage of time on the event list

+ Using arrow keys to move now disables follow mode if it was enabled.

~ Temperature everywhere it is shown is now reported as a value between 0 and 100 instead of 0 to 1. This does not affect anything with simulation. Temperatures are further classified in this manner: 100-80=Hadean, 80-60=Tropical, 60-40= Temperate, 40-20= Cool, and 20-0= Arctic

~ The color visual for discomfort now shows if the agent is too cold vs too hot! Goes: azure -> blue -> dark purple -> black (full discomfort possible). Too hot goes: yellow -> orange -> red -> black. Agents at exactly 0 discomfort are green now instead of cyan

~ Events that happen once per epoch (population change notifications, climate changes, etc) have been overhauled:

~ Population change events now look at the min and max total population in the last epoch’s-worth of time, and it is recorded if it fell or rose.

~ Drought changes now logged as “Drought/Overgrowth Start/End”, as now it’s possible to change during an epoch

~ Tweaked the Rep Counter agent visual so that male agents (those that can only be targets of sex reproduction and cannot be “mothers”) blink red when they are ready to reproduce with a female agent. Also adjusted so that all agents display dimly their current sexual mode, and start blinking around repcounter < 4 instead of 2.

~ Changed the color visual for metabolism again: now is red (0, max health) -> orange -> yellow -> white (0.5) -> cyan -> blue -> black (1, max rep)

~ All eye “whiskers” are now always colorized by the color levels seen, as if Eyesight “Profile” is always on

~ Eyes visuals have received an upgrade: whites of the eyes are shown, and will be bigger if the agent’s eye_see_cell is greater than eye_see_agent

~ Jumping agents are now rendered larger, and with a thicker outline, instead of just with a yellow outline, which was removed

~ The time set until next song is now correctly using # of seconds, instead of ticks

~ Implemented a simple “skip song” feature via toggling the “Play Music?” GUI option off and then back on. Also serves to force a track to play soon

~ Agent ears have improved colors: Ear 1 will be green, 2 will be red, 3 will be blue, 4 will be white, and all others will be grey. This applies to the ears themselves and the sound profile when that view is active, and the ear input text labels when brain input profile is active.

* It should be noted that since ears are mirrored and co-positional, one “ear” will appear red-ish green, the other light blue

* This will change if you increase the settings.h value for NUMEARS.

~ Moved drawing eye FOV’s from being a debug feature to an Eyesight Profile view feature.

~ Changed several visuals that rendered solid behind transparent agents so that they are also transparent at their centers (indicator, give, etc)

~ Enabled using x-axis mouse movement with middle mouse button held to change scale, as well as y-axis. Also improved scale changes to appear linear (we scale up the magnitude of the scale change as we zoom in, leading to more consistent behavior)

- Removed sexual/asexual center alpha rendering from all agents when viewing any agent mode other than RGB

- Removed herbivore, carnivore, frugivore counts from the window header. The graph updates frequently enough to not need this anymore.

- Pressing ‘m’ no longer disables Demo Mode automatically

* The world viewer now refreshes at least every 5 in-game days even during fast mode (it’s not a bug, it’s a feature!…)

* Fixed a bug where sexual (both male and female) agents that were ready to reproduce would not blink

CONFIGURATION FILE ENTRIES:

! Renamed all of the plant food, fruit, meat, and hazard configs, mostly adding “_” between words, and renaming “FOOD” to “PLANT”

+ BRAINCONNS: number of connections new spawned brains are attempted to be created with. Unlike BRAINBOXES, can be changed while running

+ CLIMATEMULT_AVERAGE: sets the desired CLIMATEMULT the simulation should pull towards. 0.5 by default

+ CLIMATE_INTENSITY: controls the standard deviations of the CLIMATEBIAS and CLIMATEMULT’s randn rolls.

+ PLANT_TENACITY: the minimum value of plant that will multiply the amount of food taken by herbivores. Set to 1 to disable plant tenacity

+ MEAT_NON_FRESHKILL_MULT: multiplier for when the agent's death was not due to an attack. 0.75 by default, version 0.06 had val=0.5

+ AMBIENT_LIGHT_PERCENT: amount of light provided to tiny agent eyes and a multiplier for seeing cell layers, if enabled

+ AGENTS_SEE_CELLS: enables agents seeing nearby cells

+ AGENTS_DONT_OVERDONATE: prevents agents from over-donating health by limiting the amount they can donate to the difference in relative health. Disable this to revert to v0.07 behavior.

+ BITE_DISTANCE: distance (away from agent radius) that bite will have an effect.

+ HEALTHLOSS_EXHAUSTION: new healthloss mult for exhaustion^2, to improve agent turnover when exhausted agents are spawned

+ SPAWN_MIRROR_EYES & PRESERVE_MIRROR_EYES: true/false flags that control if agent eyes are mirrored for new spawns and reproduced agents, respectively. Both set to true by default, set both to false for old behavior.

+ JUMP_MOVE_BONUS_MULT, the movement multiplier for agents that are jumping

~ Many value names have been changed by adding “_” or providing a full word where before it was abbreviated and unclear. Most notably:

~ DIST has been changed to MAX_SENSORY_DISTANCE (ah, what a relic…)

~ TOOCLOSE has been renamed to BUMP_DAMAGE_OVERLAP

~ GRAVITYACCEL has been renamed to GRAVITY_ACCELERATION

~ STOMACH_EFF has been renamed to STOMACH_EFFICIENCY

~ OVERRIDE_KINRANGE: option to override and set all agent’s kinrange to this value. Set to -1 to disable, which it is by default. Replaces MAXDEVIATION and changes function in the code

~ DEFAULT_MUTCHANCE and DEFAULT_MUTSIZE have been expanded to both _BRAIN and _GENE types

~ EXHAUSTION_MULT has been replaced with EXHAUSTION_MULT_PER_OUTPUT and EXHAUSTION_MULT_PER_CONN.

LOADING & SAVING:

Old saves: “FATALLY INCOMPATIBLE”, due to brain changes. Also impacting old saves: world size change, input expansions (ears and repcounter) fixes to agent intake speed multipliers, and changes to mutation rates and repcounter maximum.

+ New CPBrain type is fully saved and loaded, including markers for “dead” boxes and variable conn & box counts. One step closer to variable brains (we’re basically there already!)

+ Saves now have the render scale saved. Not sure why it wasn’t before…

~ Updated saving/loading terminal output messaging

~ Enforced standard file extensions throughout the saving & loading process

* Fixed a major bug where, if you loaded a saved world (report history thus not present in report.txt), let the sim run at least one report and then saved back to the file (copying any new report.txt to the save’s), and further let the sim run a bit more and tried to save a second time, it would fail to recognize the continued save, and overwrite the saved report history with the data between loading the save and the last save to file, erasing any data from before the save was loaded. Now, the report.txt is cleared any time the save system finds a saved report to continue, so you can feel free to save again and again! And if you suddenly find your report.txt is clear after a save, now you know why.

* Fixed a bug where loading a world with enough agents, generation count, or other achievement properties would trigger those achievements and display them upon world load


Also, for completeness, below is the table for the Wiki pages to help you get started.