What's New?

Evagents v0.06 (beta)

Released 2021-03-01

Sights, Sounds, & Simulation Update:

+ Major new feature: AUDIO in Evagents:

+ All agents making sound now literally do so! Tiny agents "chirp", larger agents "purr". The sound is phased to correspond to agents' tone value. High tone means higher, more frequent sound

+ Agent stabs sound more brutal than ever before!

+ Reproduction events are celebrated, with a “pop” for asexual, and a “smooch” for sexual!

+ Agents that died now make a final gasp for life!

+ MUSIC! For now, sourced from FreeSound.org. Credits to Andrewkn, ERH, Erokia, Evanjones4, Kjartan-abel, Newagesoup, and psovod!

* The program even tries to remember what songs were played recently (last 5), and play new ones if possible!

* The music selection is limited to 9 hard-coded-via-filename tracks. You can change them, but I plan to later allow playing of any music file in the folder.

* Music can be turned off with a GUI toggle. PLANNED: there will eventually be a volume slider too.

* PLANNED: Environmental sounds based on terrain you're near! UI sounds for that extra user experience!

* Uses the irrKlang library, which is included

∆ Known Bug: Music doesn’t stop playing when the world is paused. This will be fixed later when we develop a Control class to take load off of GLView and World

AGENTS & BRAINS:

! Brain box Seed values now help prevent mutations to their box by decreasing the chance of mutations. After much vigorous discussion about how impossible it is for agents to find a brain structure that works due to mutations breaking things more often than building them, we settled on a strategy using the already-utilized seed data.

~ At 100 generations (seed value), mutation chances are *0.5. At 200, it’s *0.333, etc.

* An “old” brain box will be less likely to mutate. This does not eliminate the possibility of mutation, but if something’s successful, don’t mutate it, right?!

* Brain mutation chances have been balanced as a result

* Reminder: Weights (normal and global), biases, and dampening changes do NOT reset the seed value.

+ New mutation: Connection wither: a random connection's weight is set to exactly 0, more likely if the weight is already close to 0. The mutation cannot occur to connections with a weight >= 1

* It is both a birth mutation and a live mutation, with a high frequency on live agents

! Change-sensitive connection type is now 10* more sensitive than before.

* This was needed due to them not activating very frequently, including for the jump output

* This probably officially breaks all old saves alone. Don’t expect any surviving species in any old save to persist well.

! Memory connection type now takes the connection weight into account, allowing agents finer brain control with these connection types.

* The math is now “Val*Weight > 0.5?” If so, the connection drops all subsequent calculation and keeps old output

! Changed Intake mechanics significantly!:

~ Intake (& hazard output & lung check) is now calculated from a cell under a new random spot under the agent EVERY TICK!

~ The std dev= radius / 3 (capped by radius), so it is more likely to be at the center than anywhere else, but it will almost never be the exact center anymore.

* This gives direct selection pressure for radius size: too big and you can't precisely know where your food's coming from; too small and you miss out on nearby cells which may have more food.

* We decided on this approach instead of a mutable "mouth" angle because this makes the agents more like real cells, and we wanted more than one location to be possible but didn't want to choose a number that would be arbitrary. This is a good compromise we think.

! Changed eyesight mechanics significantly!:

~ distance is squared before being inverted, allowing a better vision quality in the mid ranges, and sharper DIST falloff, instead of the other way around.

~ eye inputs return the max RGB values of other agents, rather than sum of all. This serves to distinguish lots of agents from one bright one. Dim agents can now "hide" from others if another, brighter 3-rd agent is nearby

* The hope is to inspire better use of vision by disambiguating dim agents from far away and edge-of-FOV agents

~ Speaking of FOV, the radius of seen agents now matters in FOV calculations; large agents will no longer appear as point objects!

~ Tiny agent's number of eyes is now set to exactly half the current full number (6, so they get 3 eyes)

* See below for more graphical changes related to eyes and other senses

! Spike mechanics changed significantly!:

~ velocity of agents is now tracked, and that info is used in the calculation of if an agent is being spiked

* This allows agents to "spike themselves" on others if they're careless (or use it as a defense on their back!)

* Velocity not currently used anywhere else (except for boost blur calculation), but this opens up some exciting potentials!

~ agent distance from the spike is now correctly calculated rather than assumed, meaning more accuracy is needed for a successful spiking, especially against small agents.

* The full requirements to being spiked:

*The target must be alive

*The target must not be in a jump

*The target must be within or at the distance of the wielder's spike length + the target's radius

*The target's radius must be larger than the orthogonal distance to the wielder's spike (spike inside body)

*The wielder's velocity minus the target's velocity must be positive and greater than a default value (currently 0.2)

*the damage the target takes is now scaled off of this velocity difference rather than absolute wheel speed

* These changes improve realism of the action of spike attacks, specifically that injury is usually caused by relative velocity, and provide further dichotomy with sizes and attack types.

! Movement and exhaustion overhaul:

+ Boost now has a (configurable) effect on exhaustion: while active, it multiplies the outputSum of the outputs, draining energy. Further, exhaustion no longer effects the boost toggle. Otherwise agents would become very jittery.

~ Exhaustion has been changed to apply directly to the final wheel values, instead of just the outputs

* This means actually slower exhausted agents, instead of "locked at current speed" agents, which was unrealistic

~ Reduced max Agent Speed. These changes combined means agents REALLY have to choose their movements

- Exhaustion no longer applies to Sexual Projection. Currently, Sex Projection is a place-holder for both the will and the capability.

- Agents can no longer boost if encumbered.

+ Added a saved “parentid” tag to agents: For the sole purpose currently of improving Relatives Autoselect mode to pick direct relatives to a deceased agent, this may have more applications later.

~ Major Grab changes:

+ The grabbing agent's rotation gets pushed toward their grab target, proportional to the output, with a limited rate of change, aligning the grabber with their prey.

~ Increased default Grab Strength greatly and decreased the random grab chance to 30%/tick

* These changes make worms possible and overall greater complexity of grabbing agents. Also, agents can use leverage now!

~ Changed blood sense to return the max value of blood detected ahead, rather than sum, like eyesight.

* It should be noted that the only senses not handled this way now are hearing and smell

~ Speaking of blood, dead agents carcasses are handled differently now. Instead of a raw counter after death, agent bodies will stay in world until the meat under them has dropped <0.25, allowing carnivores better tracking for high-meat sources

* As a result, the meat decay rate has been increased again

* Also, the carcasscounter of agents has been dramatically shortened, from 3000 to 400 ticks.

~ Mutation changes for both reproduction mutations and live mutations:

+ Mutation Chance now has a constant added value for every mutation, in settings.h, called META_MUTCHANCE_ADD. This shifts the bell curve of the possible mutation chance values away from 0, which was statistically attractive. We want it to be determined by evolution, not statistics. Think of this as background radiation

~ Increased initial spawn's Mutation Size and Chance, as well as the META mutation values

~ Live mutations now mutate anywhere between 1 and 5 brain boxes at a time (was just always one box before… one… box.)

~ Live mutations now also always mutate weight on the target box, so weight changes for connections are more frequent

~ Agent Smell is now multiplied by 0.1 because it’s still tied to the agent’s “smell_mod” for the other cell smell senses.

* May later break up all smell senses to have their own multipliers

~ Lowered default TOOCLOSE value as it was very rare for collision damage to be applied

~ Increased default max Generosity health transfer rate

~ Reduced default Asexual Rep health penalty as it was strongly preferring supra-tiny agents (tiny agents very close to being large)

~ Increased max possible Waste Rate to a tickrate of once per 200 ticks (up from 50) and made it a configurable value.

~ Allowed brain seeds better range regarding selection chances during sexual reproduction. Before, a difference of 1 generation would translate to a roughly 50% decrease in chance the box would be picked. 50% reduction now requires a difference of 5 in brain seeds, meaning crossover reproductions should be more interesting (when they start happening again…)

~ Some tweaks and optimizations to the brain code, and better comments in the source

~ Fixed bug where tiny agents still had two ears but skipped listening to agent vocals (only listened to wheels)

~ Fixed bug with smell cell senses not being calculated at all

- Removed minimum multiplier from TENDERAGE collision damage. Agents age 0 will take no collision damage

- Removed lower bound of 0.01 on brain box Dampening Factors (kp). It’s now capping the absolute value, so most of the time it should fall near 1, and sometimes can get very close to 0, but rarely equal. Random gen agents also now start with a kp closer to 1 for most of their boxes

WORLD & SIMULATION:

! Inverted temperature range so that a temperature of 1 is “hot” and 0 is “cold”, and ensured standardized temperature calculation by using the same formula.

* This comes as we prepare to introduce climate change, but also serves to make temperature a little more logical

~ Loading saves older than version 0.06 is technically supported by inverting all agents’ Temp Preferences, and is the reason we skipped version 0.05

+ _DEBUG environment (in Visual C++ project) now locks the same random seed for all random generation. This is to refine feature impact analysis. Unfortunately, this was added late in the development cycle, so we aren’t benefiting from any insights this update, but the idea is to improve balancing over time and between feature implementations.

* It should be noted that locking the random seed does NOT guarantee simulation fidelity after initial world generation; the issue is being investigated

+ Terrain Improvements:

+ Added Shallow Water: height/lung value of 0.2, replaces some patches of water, otherwise acts exactly like water

~ Terrain is now "rolled"! At generation, cycles of smoothing occur to improve appearance and "sloping"

* Happens between mountains, hills, and plains, or deep ocean and shallow, but not beyond beaches (beaches DO smooth with shallow ocean)

* “Continental shelves” are now technically a new biome!

~ Beaches now count as "water" tiles for smelling purposes, because beaches smell like water irl imho.

~ Encumberment changes: Terrain differences of over +/- 0.3 now encumber

* Beaches were not encumbering any ranges before, so now most aquatics will have a hard time on all land types, and agents suited for the mountains will have a hard time with sand.

* Shallows encumber most terrestrials, but not amphibians or any aquatics. Likewise, a shallows-adapted creature can crawl around on sand.

* Mountains do encumber plains-loving creatures now, so you have to be specially adapted to high altitudes to be able to survive

~ Hill and Steppe swapped: Hill is now value of 0.7 and Steppe is 0.8. Hill is the 2nd most common terrain type after Plains with default settings

+ An in-game setting for Percent Ocean to generate new worlds with has been exposed in the UI (was a config setting only)

+ Added a "Demo" mode: for epoch=0, report data will not be saved (and any current report.txt will not be over-written), unless demo mode is disabled. It can be disabled several ways: Pressing 'm' for fast mode, Loading or saving the world, Starting a new world, Setting NO_DEMO in the config file (which is done by default when a new settings file is generated), or just letting the sim proceed to Epoch 1 (data from epoch 0 is therefore lost)

+ New configs and default config value changes:

+ NO_DEMO: as mentioned above. This is set to 1 by default whenever a new config is saved. A value of 0 allows demo mode to activate (until epoch 1, or otherwise deactivated), but it does not force the mode to stay on (change behavior?)

+ MOONLIGHTMULT: is also saved per world. Is the min light value & multiplier if MOONLIT is true

* Can be set to 1, and if so, the world is set to a special "always Daylight" mode, which is correctly rendered

+ INITMEAT and INITMEATDENSITY: users can now specify init meat...

+ INITHAZARD and INITHAZARDDENSITY: as well as init hazard! As expected, INIT[resourcetype] overrides INIT[resourcetype]DENSITY.

+ HAZARDEVENT_MULT: Multiplies damage taken by hazard when there is a hazard event present. Default 4.0

+ BOOSTEXHAUSTMULT: Multiplies the exhaustion caused by the sum of the outputs. Default 4.0, set to 1 to disable

+ CORPSE_FRAMES and CORPSE_MEAT_MIN: After the meat value on the cell under dead agents goes below the MEAT_MIN, a counter starts and when it gets to CORPSE_FRAMES the agent is “decayed” and gets removed from the world. Note, changing CORPSE_FRAMES immediately applies to all dead agents

+ MAXWASTEFREQ: Is the max period that agents can hold waste. Default is 200 ticks.

~ BOOSTSIZEMULT: reduced to 2.0 from 3.0.

~ HEALTHLOSS_BOOSTMULT: reduced to 2.0. Boost's main penalty by default is energy now

~ Several world variables have been renamed, in an effort to improve accuracy & readability. In most cases the config file names are still backward-compatible

~ Fixed some bugs with INIT[resourcetype] values loaded from config causing freezes or being inaccurate

+ New autoselection modes: Best Carnivore, Frugivore, and Herbivore. Was planning to make these part of a more in-depth "extremophile" selection mode, but for now I'm just making this return the best (redd: highest value) for each stomach type, generation > 0 (it's meant to be used with already existent species)

+ Report.txt now includes the random agent’s temperature preference. Note: this was not made to be “top gen” style reporting, as I figure not much can be gleaned from that information. Rather, since it is random agent, this should give at least a sense of stratifications due to temp over time.

~ Drought & Overgrowth changes:

+ Droughts are harsher: they now decrease fruit random spawning by its multiple. Overgrowth does NOT have any benefit.

~ Overgrowth max raised from 1.3 to 1.5. Alert threshold +/- range increased from .15 to .2

~ When the value has passed min or max, instead of snapping back somewhere around 1, it instead is averaged toward 1.0

*a Drought mult of 0.5 will be weighted-averaged to ~0.667, and a mult of 1.5 -> ~1.333

~ The Std Dev of changes has therefore been increased to 0.15 from 0.08

~ Increased the proportion of the “day” versus the “night” very slightly. Feels a little more balanced

~ Mutation multiplier events now also multiply the Mutation Rate and Chance of agents when the live mutate event is triggered

~ Mutation multiplier events are now 25% likely, instead of 50% (if MUTEVENT_MAX of 0 or negative numbers used, this still applies to multiples other than 1)

~ User control is no longer set “on” if “W,A,S,D” pressed while there is no agent selected. Those keys will still turn it on if an agent is selected first

~ Debug mode now only shows spike and grab effective zones when the agent is currently trying to do those things

~ Corrected some text in the config file (ie, we now do report what settings we're tweaking, and spelting correctiness)

~ Tweaked the Relative autoselection methods, and included stomach, lung, and temperature preference differences, as well as new ParentID tag that agents now have (points back to the “mother’s” ID in cases of sexual reproduction)

~ Tweaked the default INITFOOD and INITFRUIT values to better match the simulation's current homeostasis point.

~ Min number of Agents increased to 50. This will slow down the max speed of simulation but it should get species started sooner

~ Made some mostly-hidden changes with some debug features. Notably, D/S/P/I/O/H/C/A/tick will no longer plague the output window on the release version, but are retained in the debug version of the VC++ project. Details of what these meant can be found on the wiki

~ Continued code cleanup, in 90% of cases the changes are not major enough to note. Except death cause strings. F those things.

GRAPHICS & CONTROL:

+ UI IS HERE!!! New in-window UI Elements that make intuitive sense with mouse operations (you can click them, click and click & drag are blocked from triggering on world, etc) have been introduced!

* All in-house, not using any external library or system (will someday upgrade away from GLUI hopefully)

~ the Selected Agent Display has already been upgraded to a UI Element, and has received a couple upgrades:

+ Follow agent button: bottom-left of the display, toggles Follow Agent

+ Damages visual mode toggle: if activated, a pie-chart of the damage the selected agent has received is rendered instead of the agent ghost. Later I may add hover-over popup functionality.

+ Intake visual mode toggle: if activated, a pie-chart for the amount (in CELL quantities) of each food type the agent has eaten is rendered.

~ Balance and borders have been improved, as well as settings to control placement in the settings.h file

* Later, as this system gets more developed, the location of the display may be “pin-able” and users can move UI elements wherever they like!

+ Layer rendering is now a multi-option menu! (Based on user feedback!)

* Want to see the land and plant layers without light? Need to see where the temperature zones overlap with terrain features? You can do all this and more with this new system!

- Substituted Reality!, layer is now all of them selected at once (technically we didn’t have the temp layer but who's counting!)

+ Added fruit when viewing multiple layers: appear as tiny clusters on each cell. I can highly recommend trying to play as a Frugivore now!

+ Added a “Toggle All” button to GUI: Simply alternates between showing all layers and not (see new ‘k’ and ‘l’ keys behavior below)

~ also tweaked the meat display; they are now diamond-shaped, and have a more solid center

~ 'k' and 'l' key presses behaves in a more complicated way: Imagine a number between 0 and the number of layers*3:

~ If the number is 0, all layers are selected; this is the old Reality! mode, and is one of two main toggle states.

~ If the number is between 1 and num_layers, the behavior is as before, where pressing 'k' or 'l' cycles to previous or next layer, one at a time.

~ If the number is between num_layers and num_layers*2, then it "deselects" layers one at a time as you press 'l', and "reselects" them as you press 'k'.

~ If the number is exactly num_layers*2, all layers are deselected; this is like the old "off" mode, and is one of two main toggle states.

~ If the number is between num_layers*2 and num_layers*3, then it "reselects" and "deselects" in reverse of above, before looping back and showing all layers again

+ 'o' key now sets the layer to Reality!, selecting all layers again automatically, similar to pressing the new “Toggle All” button once or twice

* This is really hard to describe with text, so here’s a gif: https://www.reddit.com/r/Evagents/comments/kogup2/new_behavior_of_the_k_and_l_keys_in_evagents/

~ Popups now display more layer details in a compact fashion, as long as at least one layer is selected but not all of them

+ Introduced display Culling. Users will experience dramatic FPS improvements when zoomed in or when there are many agents or cells they cannot actually see. This was needed due to the extreme processing needs of the new fruit rendering, but is overall very helpful and amazing at saving CPU cycles.

* Both cells and agents are culled if they are out of sight. This should not affect simulation fidelity in any way

+ Rendering fully supports gradients & MSAA (antialiasing). Technically it always did, I just learned how to actually use them... As a result, the following have received graphical reworks:

~ WATER GLISTENS NOW! Sorry, I'll try to contain my excitement. This is toggleable if you are REALLY not as excited...

~ Agents which reproduce via asexual reproduction are transparent in their centers. Sexual agents are solid, and male-function-only agents are darker in their centers. This visual change happens gradually if the agent is hermaphroditic.

~ Notification toasts have a darker bottom, distinguishing them (potentially later I’ll allow "larger messages" which format this correctly)

+ The Selected Agent Display is stylized with some fancy gradient transparency, and since it is a UI Element, it has been given a stylized bevel border!

+ Agent ID now has a special colored graphic (the color is the species ID color)

~ Energy, health, and repcounter in the selected agent display, and in the world, each agent’s health and repcounter bars

~ When an agent with Grab active and is attached, a pulsing line is drawn from the target's location to the agent

~ Debug spike zone, grab zone, and generosity range have also gotten makeovers and have been calibrated to realistic zones

~ Indicator splashes, ears, eye lines, and more all re-stylized!

+ Added "Sanitize World" option in right-click menu. It simply deletes all agents, but leaves world otherwise unchanged

+ Added GLUI window spinner of the current epoch's Drought/Overgrowth Multiplier. User can check what it is, or specify a custom multiplier value

*This has some repercussions if set to crazy numbers (try >40!), and it gets adjusted automatically at the start of every Epoch, so use wisely

+ Added GLUI window spinner of the Ocean Percentage Target for terrain generation. As noted in config, this value is approximate and may not be accurate. However, setting the value to 0 or 1 has the expected results of complete ocean or land worlds. Has no effect if changed for a world which is already running.

*A possible planned feature for much later may be to generate a map of terrain with elevations in steps of 0.01, or even 0.001, and then handle water differently so that the water level can be changed on the fly. This would make ocean level a possible evolution driver, but for now we’re content with the terrain generation.

+ Added Rep Counter agent visualization mode: agents with unfilled repcounter are dark; as they fill, they start to blink; cyan & blue for sexual reproduction, cyan & green for asexual, and, once able to reproduce, they rapidly blink white.

+ You can now hide all dead agents with a GUI option

+ When Relative Autoselect mode is active, now it reports what kind of relative: mother, daughter, cousin, elder, youngling, or distant cousin!

~ Some major input changes:

~ Tab now toggles off selection, and resets it to manual.

~ Pause is now controlled with 'spacebar'.

~ User Brain Input is now 'e', since I was finding it not useful enough to keep on 'spacebar'.

~ Improved Selected Agent manual control, specifically making 'w' and 's' act harder to make agent drive straight and corrected a bug with this function

- removed "esc" key as an exit condition. It now just pauses like “spacebar”.

- turned off the 'm' key feature of dismissing events. It was bothersome, and I mean really, the 'n' key is right there...

+ Debug mode (while in _DEBUG environment) now tries to render the individual triangles of polygons (would you believe me that this was invented due to a bug with antialiasing? On second thought of course you would… some of my best features are bugs!)

~ Right-click menu has been re-organized and split into sub-menus. It may take some getting used to, but it is way better.

~ The "Instant Details" text in the top left have received an overhaul: it's a stacking list now! Also, new color changes, literally! Paused status and Closed world status are easier to identify, and many new stats have been added:

* Now indicates Mutation Rate events, Drought/Overgrowth events, user control active, and more!

* The text lines enabled by debug are now better organized and show more accurate info

~ Increased Event Viewer notification toast timer to 350 ticks (was 300), and it is now paused with the world

~ Many minor QOL changes to drawing code:

+ If the Event Viewer has more events than what's shown, a flashing arrow below them indicates there are more notifications

+ If the world is paused, a flashing graphic above the Event Viewer indicates this

+ Little eye graphics have been added, their size determined by eye_see_agent_mod. Agents are cute now! They even blink!!!

+ Agents with a blood_mod value >0.25 have a "blood sensing patch" rendered, its size proportional to blood_mod

~ Ear sizes are scaled by hear_mod. My, what big ears you have! Ear colors have been set to the real agent color.

~ Text is easier to read with a drop shadow in many cases

~ Agent stats in the world, many debug features, and other things now rendered before/below agents instead of being mixed between agents and overlapping some agents completely, including giving-receiving, indicator splashes, etc

~ Smoother agent and UI circles at close magnifications. This is achieved via new variable-resolution circle methods

* Zoom in, I dare you!

~ Agent drawn sizes when zoomed really far out are now standardized no matter the zoom, making it easier to see overviews

~ Improved some color choices, including amphibian RGB balance to improve graph contrasts

~ Boost blurs have been changed to use actual velocity of agents, and are typically more visible than before. They also don't render in the center if the agent has a transparent center (you can still see visual artifacts... need to fix)

~ Made the main window show the current Ticks Per Second, or ”TPS”, when in fast mode, instead of saying “FPS”, which was perhaps confusing since no frames are rendered when in fast mode. “FPS” is shown again when fast mode is disabled

~ Fixed a bug where world coordinates were not properly clamped within range for the hover popup, causing a crash

~ Fixed a bug with using the autoselection radio buttons or the number keys to select an agent not selecting an agent if used first when sim starts (as opposed to manually selecting an agent first)

- Ensured only one ear is rendered for tiny agents, as the second isn’t processed

- Completely removed indicator tags. They were nice while they lasted, but I found them increasingly unhelpful

LOADING & SAVING:

!!!OLD SAVES: Rated as "NOT COMPATIBLE, MAJOR BEHAVIOR CHANGES" due to brain, eyesight, intake, boost, and settings changes

* In this rating system, there are four layers:

* FLAWLESSLY COMPATIBLE: no changes expected with loading previous version worlds

* COMPATIBLE, WITH CONFIG CHANGES: you need to change some config values back to maintain behavior

* NOT COMPATIBLE, MAJOR BEHAVIOR CHANGES: there are major, irreversible changes to the code from before

* FATALLY INCOMPATIBLE: if you try to load an old save, and we didn't disable the load, gods help you.

+ FINALLY added ability to load agents from file! The process is clunky for now so bear with me

* Pressing “Load Agent” in the GLUI window will prompt the user to enter file name (like with world saves)

* Entering a valid saved agent file name and pressing Load will pull the agent (if valid) into memory, and change the text of the button to “UNLOAD Agent”. Most notably, the Selected Agent Display changes into the Loaded Agent Display (or LAD), which is visually green and shows a copy of the loaded agent in the viewer.

* Clicking with left mouse button anywhere in the world will now place an exact copy (without stats and details like angle and age) of the loaded agent

* The sim will continue in this mode until “UNLOAD Agent” is pressed. There will be much more work on making this behave more expectedly later.

* Note: while it is technically possible to load agents from world saves, I would rather recommend you load such saves first, then select and save agents in-game

+ Added some new logic to loading saves if a simulation is already in progress, to help user know if they saved yet

* We can highly recommend saving in-game now, as there are a couple of neat surprises!

+ Loading and Saving can now be cancelled in the UI, instead of users having to guess if they can safely input a blank field or risk pressing the window close button... (hint: you couldn't!)

+ New agent saved variables: "carcasscount” and “parentid”

~ Enabled autosaves by default

~ The in-game data chart now starts at the right position for saves when loading, re-aligning Epochs with the start of the graph

~ Fixed some bugs with saving and loading, including some missing or incorrect button functions on a couple UI and autosaves

~ Also fixed a bug where if the user was controlling an agent and then loaded, if the same agent ID happened to exist, then it would select and drive an agent on the loaded world

~ Fixed a major bug with loading configs where line lengths were too long and the buffer overflowed, leading to many values not adjusting

~ Fixed a potential game-crashing bug when the user changed the BRAINSIZE config variable, in certain scenarios.

~ Fixed a bug with config loading where if the user specified INITFOOD or INITFRUIT it would still use the DENSITYs instead. Now it correctly overrides any density settings input, as stated in the config file

~ Version numbers are now taken into account when loading agents. This was needed because of the Temperature Inversion, and is also why we are on version 0.06 instead of 0.05

OTHER CHANGES:

~ Switched to using RTF format for Version History (this document!)

~ View class is gone. Rendering is completely handled by GLView now (which may be split later into Control and GLView). This was needed to allow visual culling.

~ GitHub only: improved organization by using FOLDERS!

~ New Wiki! https://sites.google.com/view/evagentsproject/wiki

~ New Reddit! https://www.reddit.com/r/Evagents/