1. Re: artificial life program
- Posted by John McAdam <john.mcadam at MAIL.TELEPAC.PT> Jun 24, 2000
- 397 views
- Last edited Jun 25, 2000
------ =_NextPart_000_01BFDE2A.DE4C5380 >John, > It's not quite finished, ill send u my new v5.0Beta Version, and the >updates i added to version 4! It's nice to finaly talk to someone in the >alife area AND euphoria... quite refreshing indeed. > Ok, the green blob is 1 creature. You press r, right? and the blob >streaches around? The mother is the only 1 able to reporoduce or even >execute behavioral cmds... daughters are sterile... that's the prob... maybe >u can point out my prob... anyway take a look.... While I take a look at it, here is what I've been working on. It is a long way from being publishable, since I haven't worried about other people using the program yet, the interface is pretty crappy. Anyway (if it even runs on another machine than mine), it should: 1. Create a random landscape by melting a bunch of elipses several times, then creating (rather stupidly) some roads that connect some villages. My idea is that this artificial life world will become the backdrop for an adventure game. I thought it was a cool idea to be able to walk around and interact with the artificial life creatures. But that will be someday in the future. Anyway, the dark blue is deep water, light blue is rivers, light green is grass, dark green is forrest, yellow green is poisonous weeds, black is roads and brown is walls or mountains. One of the first things I want to study in your program is how you get such nice maps. 2. Put some "rabbits" on the map and let them live. Each of them has a different artificial intelligence, some are too dumb to live, but some will figure it out and eat and breed. They will have offspring that are all a little different. Some will be better at surviving than others. For now they are all "rabbits" even though of different colors - easier to see the family populations. Some of the daughters are sterile, but others breed like . . . . . . rabbits 3. At this point you can only use esc to quit or w to see the info window. 4. In the info window there is a small global map. Under it is the local map - around animal number one. Animal number one is usually the oldest, but not always. Under the local map is the critters internal map. It represents how the critter feels about what it sees. There is a table to the right, but also under the global map, of the animal's feelings about each color (thing) that it sees. You can edit the like-table using the L key. Under the internal map is the state of the critters desires for food, sex, and sleep. When hunger or tiredness get to zero, then animal dies. Under the desires are the action potentials, how the animal will behave. He/she/it can eat, mate (if another critter is close by - but this rarely happens. Need to work on this part), sleep or move. Then at the bottom are 4 memory buffers for the AI to use. You can change these using the m key. In the middle column at the top is a list of the AI commands. You can do brain surgery using the a key. The look and smeer commands are different than the others - The look command accumulates values (relating what it sees in the local map to its like-table) in the internal map. ie, if it looks twice, the values will be double. The smeer command averages the values in the internal map and adds them to the internal map. The whole vision system gave me quit a bit of trouble, but seems to be working well, and is under genetic control so it can evolve too. Under this is a list of key commands. In addition to the commands already mentioned are s - toggle single step mode - use this to take one step at a time using the space key and f - fast mode - doesn't update the info window every step. Don't try to use any of these keys when not in the info window or the program will crash. (It crashes quite often anyways for unknown reasons.) Oh, yes, there is the p key to save a population. If you want to load the saved population you have to go to near the end of the code and comment out makenewpopulation(), and uncomment getpopulation(). I already said the interface was crappy. In the third column there is personal data about the critter - first and last name, age, and maximum number of offspring. This is a genetic value and so can change from one generation to the next. Offspring maintain the last name but get random first names. I tried to make them pronouncable but some are pretty odd. Then there are quit a few parameters and consequences. If you want to play with them, they are near the beginning of the code. The only ones I ever fuss with are the growth rate and food value of grass. Forrest has only half the food value of grass. Then at the bottom are some statistics: number of new individuals created (gives an idea of population robustness); the total number of living creatures; and the age of the eldest creature. Let me know if you think the program has any merrit. I program for a hobby to amuse myself and the kiddies. Let me know if you can even get it to run. JOHN ------ =_NextPart_000_01BFDE2A.DE4C5380