Eboruushion: "evolution" sim

Show off your games, demos and other (playable) creations.
Post Reply
weakman54
Prole
Posts: 7
Joined: Wed Mar 06, 2013 10:33 pm

Eboruushion: "evolution" sim

Post by weakman54 »

Eboruushion
A simulator of "evolution" =D

What I want to do with this are entities that move around a grid and alter their own source code by mating (so the children will have similar, but changed source from the parents). I'm not entirely sure how I'm going to do this, so I decided to open a post here to get some suggestions on my code =)
Eboruushion.love
Eboruushion source
(4.53 KiB) Downloaded 275 times
Currently I'm working on optimizing the collision detection, but I'm not entirely sure I'm doing it right :P

Any and all suggestions are welcome, so is constructive critisim :D.
Last edited by weakman54 on Thu Mar 07, 2013 5:29 pm, edited 1 time in total.
User avatar
substitute541
Party member
Posts: 484
Joined: Fri Aug 24, 2012 9:04 am
Location: Southern Leyte, Visayas, Philippines
Contact:

Re: Eboruushion: "evolution" sim

Post by substitute541 »

Rather than editing the source code, why don't you add a couple of "genetic functions" like food preference, top speed, leg size, etc., and let the parents change the arguments when you create an offspring? I think it's a lot easier.
Currently designing themes for WordPress.

Sometimes lurks around the forum.
User avatar
pakoskyfrog
Citizen
Posts: 62
Joined: Mon Feb 04, 2013 12:54 pm
Location: France

Re: Eboruushion: "evolution" sim

Post by pakoskyfrog »

Hellö !

It reminds me of "genetic algorithms". In a few words there are a method to find the fittest element. However it is not an optimized search method, it is very powerful to explore parameters.

It works like this :
* You have a collection of parameters that can change in value from one individual to an other.
(individual1 = {height=1.8, speed=7, appetite=42, intelligence=52})
(individual2 = {height=1.7, speed=6, appetite=33, intelligence=71})
* You make a method to generate a first pool of parents. Then a method to make 2 children out of 2 parents, by interchanging the values (you cut in half and give child1 the first part of the dad and the second of the mom, and the other way around for child 2)
(child1 = {height=1.8, speed=7, appetite=33, intelligence=71})
(child2 = {height=1.7, speed=6, appetite=42, intelligence=52})
* And don't forget to chose one parameter and slightly variate it, it's the mutation factor.
(child1 = {height=1.8, speed=7, appetite=31.7, intelligence=71})
(child2 = {height=1.73, speed=6, appetite=42, intelligence=52})
* Then you build a function to determine how good one individual is in his environment. This is up to you and what you want to intend to, it could be, for living things, that they adapt themselves to rude environments, like coldness, dryness, high intelligence, etc...
* And then from your pool of parents and child, you chose the top-half to be be the next generation parents, because they are the fittest to their particular environment.

This is powerful because you keep tracks of evolution, you explore with the mutations and you make your individuals to adapt for where they are. And, each individual is just a list of parameters (and are easy to handle) ! ^^

Here is a biiig article on wikipedia ^^
http://en.wikipedia.org/wiki/Genetic_algorithm
User avatar
substitute541
Party member
Posts: 484
Joined: Fri Aug 24, 2012 9:04 am
Location: Southern Leyte, Visayas, Philippines
Contact:

Re: Eboruushion: "evolution" sim

Post by substitute541 »

The mutation factor pakoskyfrog is saying depends on what environment it is in. For example, if it's in a desert, it's appetite must be low and it's "water capacity" must be high. The height also must be relatively low to conserve energy. If it's in a grassland, it's speed must be high to avoid predators, it's appetite must also be high to keep running. In a forest, it's height must be low to blend in, it's colors must match the background, it's appetite must be a bit high, an... alright you probably get the point now.
Currently designing themes for WordPress.

Sometimes lurks around the forum.
weakman54
Prole
Posts: 7
Joined: Wed Mar 06, 2013 10:33 pm

Re: Eboruushion: "evolution" sim

Post by weakman54 »

Woah, that was some fast responses :ultrahappy:

Well, I thought about using parameters, just like you have suggested, and that's what I'm going to start with (since they are needed anyways), but I also want this to be as general and random as I can make it, meaning that the ultimate goal is that the offspring are combinations of the parents offspring with the sourcecode altered/added to/removed from, so that there's a chance that more and more intelligent behaviour will emerge (yes, it's ambitious I know :megagrin: but I'm really interested in self improving code and the AI theories that comes with it).

This is mainly, however, just an experiment that I use to learn more about programming, algorithms, optimizing and making graphics on the screen. So, if it doesn't go as far as I want it, that does not matter much :P¨'

substitute541 wrote:The mutation factor pakoskyfrog is saying depends on what environment it is in. For example, if it's in a desert, it's appetite must be low and it's "water capacity" must be high. The height also must be relatively low to conserve energy. If it's in a grassland, it's speed must be high to avoid predators, it's appetite must also be high to keep running. In a forest, it's height must be low to blend in, it's colors must match the background, it's appetite must be a bit high, an... alright you probably get the point now.
Yeah, I get what you're saying, BUT, These are the aspects that I want to emerge naturally by the "survival of the fittest". So maybe the ones that are really fast were the ones that could run away from predators and reproduce, and then their children evolved similarly, until that perticular "race" was very fast.


Also, environments wont be in the simulation for some time, and then they will be simple ones like: "Everything moves slower here" or "You will lose energy slower here" and such. Though, if i get good suggestions about how to implement them, I'm all ears :)

PPS :rofl: :
I was inspired by this book (didn't read it, though I will probably do that later, when school isn't oppressing me ^^ )
http://natureofcode.com/

I'm also going to keep the flat view I have at the moment, with a tilebased system, since that is much simpler and easier for me to think about.
Another note on the "Experimental" thought i had earlier: I will probably sit down much later and get some proper design done for this system and rewrite most if not all of it in a better way. Now I'm tired of all this typing :death:, I'm going to bed :nyu:
User avatar
monsieur_h
Citizen
Posts: 65
Joined: Tue Oct 30, 2012 4:43 pm

Re: Eboruushion: "evolution" sim

Post by monsieur_h »

Very interesting idea, But you should consider uploading you .love file on the forum itself. Waiting 60seconds on bayfile to download a 4kb zip is annoying.
weakman54
Prole
Posts: 7
Joined: Wed Mar 06, 2013 10:33 pm

Re: Eboruushion: "evolution" sim

Post by weakman54 »

monsieur_h wrote:Very interesting idea, But you should consider uploading you .love file on the forum itself. Waiting 60seconds on bayfile to download a 4kb zip is annoying.
I just found out how to do it I think, will update the main post :).
Eboruushion.love
Hope this is right :)
(4.53 KiB) Downloaded 327 times
Yup that's how it works :D
User avatar
Djent
Prole
Posts: 27
Joined: Sun Jan 20, 2013 3:22 pm
Location: Rhode Island

Re: Eboruushion: "evolution" sim

Post by Djent »

Looking at your simulator finally gave me the motivation to make my own evolutionary sim. Your's seems to only produce dots who eat each other. Want to show us what's going on behind the scenes?

If you're interested, here's my evolution sim. It's not complete enough for me to make my own thread, but you know.
Attachments
Evolutionary33 -functional enough.love
(3.23 KiB) Downloaded 198 times
weakman54
Prole
Posts: 7
Joined: Wed Mar 06, 2013 10:33 pm

Re: Eboruushion: "evolution" sim

Post by weakman54 »

Djent wrote:Looking at your simulator finally gave me the motivation to make my own evolutionary sim. Your's seems to only produce dots who eat each other. Want to show us what's going on behind the scenes?

If you're interested, here's my evolution sim. It's not complete enough for me to make my own thread, but you know.
Just open it with an archive program? I'm not entirely sure what you mean by your question :rofl:

My code atm is pretty messy i think, since I didn't do any design beforehand, just started programming. Also, I'm not very experienced in programming overall, so my code is confusing even to me :crazy:
Post Reply

Who is online

Users browsing this forum: Google [Bot] and 19 guests