Contents of the READ.ME file

EVOLUTION Version 1.3

The program EVOLVE.EXE will run on any IBM-PC family of computers equipped with a graphics card (works best on EGA/VGA). When you are entering data, please enter only integers. If you enter a number out of range, you will be asked to re-enter the number. If you have a graphics card that supports multiple pages (EGA, Hercules, VGA except VGAhi, and IBM8514), if you press any key other than ESCape, 'S', or 'L', while the program is executing, you will be able to view the statistics for the current session and the individual bugs. 'S' will save the current food and bug status to the current drive and directory, 'L' will recall the previous save under the same name. ESCape key will exit the program.

THE EVOLUTION OF EVOLUTION:

Version 1.0 -- Bare bones. Just enough to view the process of evolution in a single environment. Original release.

Version 1.2 -- Fixed several bugs in Version 1.1 such as adding prompt #15 which was in the 1.1 docs but never implemented. Also fixed problem of crashing when the number of bugs exceeded 127. Never released.

You will first be asked if you wish to load data. Enter 'Y' if you have a saved session on the current drive and directory and then enter the filename when asked. If you do not load previous- ly saved data from disk, enter the data in the following order:

1. The initial number of bugs on the screen. (10) 2. Do you wish to have a portion of the universe which has a plot of extra bacteria-rich ground? If you answer 'N', then prompts #6,7,8 will be skipped. 3. The number of bugs which is the dividing point between increasing placement of food and decreasing placement of food. The amount of food placed on screen is inversely proportional to the number of bugs on screen. (10) 4. The food multiplier value. If you entered 10 for number 2 above and there are 10 bugs on screen, the replenish amount is 1 which will be multiplied by the value entered here to determine the actual amount of food to place. (6) 5. The replenish rate. This determines how often food is placed on to the screen. (10)

6. Size of one side of extra fertile ground. (50) 7. Replenish rate of extra fertile ground. This determined how often food is replenished. (4) 8. Replenish probability. Each time the fertile ground is replenished, each individual spot is checked against this number to determine if food should be placed or not. (20) 9. If all the bugs die out for some reason, you can either start all over or use the current settings. 10. If you answered No to the above, then you enter how many new bugs to place on the screen when the bugs die out. (10) 11. The maximum energy level for a normal bug. A normal bug cannot store more energy than this number. Food eaten beyond this will be discarded. (1500) 12. Bloat death energy level. A bug may have a defective gene which will allow it to eat beyond the normal limit as de- fined by #11. If the stored energy is greater than the limit given here, the bug will die from over-eating. (2500) 13. Fission age. A bug is mature and able to reproduce when it reaches this age. (800) 14. Fission energy. A bug must have this much stored energy for it to reproduce. (1000) 15. Food energy value. Each food unit is worth this many energy points. (40) 16. If you enter 'N', then size, speed, and bloat genes will not be activated. 17. Filename to save this data and environment under. This is the filename used when you press 'S' or 'L' while the pro- gram is running.

The allowed input ranges are given after each prompt. The number in parentheses following the descriptions above are typical values.

The first six numbers of the genes are the probability of that bug turning in a certain direction. The first number is proba- bility for going straight ahead. Second is for turning right, then hard right, reverse, hard left, left. The seventh number is the bug size, eighth is the bug speed, and the ninth is the bloat gene. Bug size can range from 0 (one pixel) to 3 (7x7 pixels). The tendency is for larger bugs to become slower. The speed gene can range from -1 (no movement, therefore dies) to 4 (move every 2^4 = 16 moves). The bloat gene comes into effect when the value is greater than 2. This gene also has the tendency to increase in number as the bug becomes larger but unlike the speed gene, if the bug decreases in size, this one has only a small probability of decreasing in value.

You can find values you like by experimenting. On a faster machine, you can increase the value of #2, and on a slower ma- chine, decrease it. The value for #2 basically controls the saturation point -- the higher the saturation point, the slower the program runs when near the saturation point.

One thing which may be fascinating is using small values for #13 and 14 (less than 50 for both).

This program is FreeWare. In other words, I own the rights to the program, but you are given the right to distribute it freely to anyone as long as you don't receive payment for it and you distribute it unaltered in any way. If you find this program to be fascinating, interesting, found a bug, etc. (or find this program to be downright awful), drop me a note at:

GEnie mail address: M.KUBO1

or

Mark Kubo P.O. Box 945 Angwin, CA 94508

Registration is not required but donations (in the area of $10 - $30, but any amount you feel this program is worth is welcome) are appreciated. If you are using this program is any way other than for personal entertainment, I would appreciate registration and details of the use.

Hope you find the program as fascinating as I've found it to be.

Disclaimer: The author disclaims all warranties, expressed or implied. In no event shall the author be liable for any loss of profit or any other commercial damage, including but not limited to special, incidental, consequential or other damages.

Program algorithm based on descriptions given in Scientific American, May 1989. In no way does this program duplicate the code of "Simulated Evolution" sold by Life Science Associates. In fact, I've never even seen the program except for the screen displays given in the article.