Author Topic: 2.42.4 Changes  (Read 2631 times)

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
2.42.4 Changes
« on: May 04, 2006, 12:20:45 PM »
This topic is just a place for me to keep track of the changes I make from one version to another, in this case from 2.42.3 to 2.42.4. It is not the complete list of stuff in the next drop, just the stuff I have completed to date. I will edit this post as I complete changes and start a new topic for each new release.

1) Addressed the overflow issue with loading saved sim files which contain bots with mutation details strings whose lengths total exceed 2^15 bytes.  Details of the problem and the fix can be found here.  In breif, older corrupted files should now load in 2.42.4, but only the most recent 2^15 bytes worth of mutation detail strings will be loaded and the values of the few per-bot properties which follow the mutation details in the bot file format will be defaulted.  In some cases these default values may result in unexpected sim behaviour.  Sims saved in 2.42.4 are formatted such that older versions can load them (the mutation details will be lost for bots with mutation details >2^15 bytes and a few bot properties will be random as above).  Of course, if loaded with 2.42.4 or above, sim files saved with 2.42.4 or above will include all mutation details no matter what the length.
2) Backed out #8 in 2.42.3.  Multi should not be set until a tie hardens per PY here.
3) Added console-based gene activations ala 2.37.6.  Now, when the single cycle button or the play button is pressed in any open console window or on the main dialog, gene activations are displayed in the console window for each bot with an open console window.  IGene actications are not displayed during normal execution or when the cycle or play button is pressed from the main MDI window, even if there are open console windows.  See this topic for more information.
4) BEHAVIOUR CHANGE.  Fixed the problem with trefvars only persisting for a single cycle.  Now, as described in #10 here, the trefvars will populate automatically when a tie is created (only for the bot creating it) and they will continue to be updated in subsequent cycles until either the tie is deleted or a value is written into .readtie.
5) Changed the Coeffecient of Kinetic friction calculations to operate directly on a bot's velocity rather than creating an Impulse restitution vector.  The restsitution vector is used for all sorts of forces opposing the velocity of the bot including repulsion forces from the field boundaries and internet gates.  Where kinetic dynamic friction is always a function of a bot's velocity, these other forces are sometimes not, so the force vector was overloaded. This could cause strange problems such as bots being propelled by friction.  Note that for kinetic friction to work, there must be some Z axis gravity.
6) Added length checks to tie setlen and fixlen.  Now, tie lengths longer than 1000 are equaivalent to 1000 and negative tie lengths are equivalent to their absolute value.  
7) Bot properties such as mass were being coverted to an Integer before being displayed in the bot properties dialog, which made it difficult to debug low mass bots for example.  Now their native Single values are displayed.
8) Reworked the UI for the default viscosity and friction settings on the Physics portion of the options dialog.  Changed the bottons to radio buttons and added a new "Custom" choice.  Added a new parameter to the SimOpts and TmpOpts structure to help with UI initialiazation.  Insured this roundtrips through sim ann settings files appropriatly.
9) Fixed the bug with impossibly long ties, sometimes tied to nothing being displayed occasionally.  It was something stupid I did in 2.42.3.  I don't want to talk about it.
10) Added some code to TieHooke and Maketie to stiffen ties after 20 cycles.  Except for the birth tie, ties will stiffen after 20 cycles at which time the bot will become a multibot and sysvars such as fixang and fixlen will work.  This seems to have been the key to making such bots as inchworm work properly.  Note that mutlibot sysvars will fail to work on ties younger than 20 cycles even if the bot has multibot status.
11) Reworked the UI for the costs section of the options dialog to match the new Physics radio button UI.  Makes it easier to set 0 costs or F1 costs.  Insured everything round trips through sim and settings files correctly.
12) Added a new 'Save Sim Without Mutations' menu option on the File menu.  This saves the simulation without mutation detail strings, dramatically reducing the size.
13) Exposed the coeffeficient of elasticity which governs the degree to which bots bouce off each other in colissions.  The control is a slider which generates values from -1 (bots are ghosts and essentially pass through one another without interacting) to +1 (bots are marbles which bounce off each other hard in a totally elastic collision).  Values in between will exhibit different levels of spongyness with the mass of a bot having much to do with its behaviour during collisions.
« Last Edit: May 09, 2006, 01:12:58 AM by EricL »
Many beers....