Thrive Game Development

Development of the evolution game Thrive.
 
HomeHome  PortalPortal  CalendarCalendar  FAQFAQ  SearchSearch  MemberlistMemberlist  UsergroupsUsergroups  RegisterRegister  Log inLog in  
Welcome new and returning members!
If you're new, read around a bit before you post: the odds are we've already covered your suggestion.
If you want to join the development team, sign up and tell us why.
ADMIN is pleased to note that this marquee has finally been updated.
ADMIN reminds you that the Devblog is REQUIRED reading.
Currently: The Microbe Stage GUI is under heavy development
Log in
Username:
Password:
Log in automatically: 
:: I forgot my password
Quick Links
Website
/r/thrive
GitHub
FAQs
Wiki
New Posts
Search
 
 

Display results as :
 
Rechercher Advanced Search
Statistics
We have 1675 registered users
The newest registered user is dejo123

Our users have posted a total of 30851 messages in 1411 subjects
Who is online?
In total there are 2 users online :: 0 Registered, 0 Hidden and 2 Guests

None

Most users ever online was 443 on Sun Mar 17, 2013 5:41 pm
Latest topics
» THIS FORUM IS NOW OBSOLETE
by NickTheNick Sat Sep 26, 2015 10:26 pm

» To all the people who come here looking for thrive.
by NickTheNick Sat Sep 26, 2015 10:22 pm

» Build Error Code::Blocks / CMake
by crovea Tue Jul 28, 2015 5:28 pm

» Hello! I can translate in japanese
by tjwhale Thu Jul 02, 2015 7:23 pm

» On Leave (Offline thread)
by NickTheNick Wed Jul 01, 2015 12:20 am

» Devblog #14: A Brave New Forum
by NickTheNick Mon Jun 29, 2015 4:49 am

» Application for Programmer
by crovea Fri Jun 26, 2015 11:14 am

» Re-Reapplication
by The Creator Thu Jun 25, 2015 10:57 pm

» Application (programming)
by crovea Tue Jun 23, 2015 8:00 am

» Achieving Sapience
by MitochondriaBox Sun Jun 21, 2015 7:03 pm

» Microbe Stage GDD
by tjwhale Sat Jun 20, 2015 3:44 pm

» Application for Programmer/ Theorist
by tjwhale Wed Jun 17, 2015 9:56 am

» Application for a 3D Modeler.
by Kaiju4u Wed Jun 10, 2015 11:16 am

» Translator to Serbian here
by Simeartherist Sun Jun 07, 2015 6:36 am

» Presentation
by Othithu Tue Jun 02, 2015 10:38 am

» Application of Sorts
by crovea Sun May 31, 2015 5:06 pm

» want to contribute
by Renzope Sun May 31, 2015 12:58 pm

» Music List Thread (Post New Themes Here)
by Oliveriver Thu May 28, 2015 1:06 pm

» Application: English-Spanish translator
by Renzope Tue May 26, 2015 1:53 pm

» Want to be promoter or project manager
by TheBudderBros Sun May 24, 2015 9:00 pm


Share | 
 

 Population dynamics

View previous topic View next topic Go down 
Go to page : Previous  1, 2, 3, 4  Next
AuthorMessage
scorpion268
Newcomer


Posts : 18
Reputation : -2
Join date : 2013-05-11
Location : Waco, Texas, us

PostSubject: Re: Population dynamics   Wed May 22, 2013 5:41 pm

i know this is an old thread, and my graph reading and variable understanding on much beyond simple statistical line graphs (i think that is what they are called) is a bit rusty, but i have a few things that i feel were overlooked.

1. carrying capacity does not just affect a single environment but the world as a whole because of migratory species and other factors. thus energy flow is dynamic and diffuses across the world as a species migrates and some die in the other environment and therefore there is a fourth factor playing in the environment, energy intake from other environments.

2. also as life becomes more complex, the time it takes to reach the said carrying capacity in an environment changes because the larger an organism is, the more energy it needs to take in, which in some environments it is countered by complex autotrophs, but in others, such as a desert, there are less nutrients available to larger organisms. this adds a fifth, complexity of organisms in the environment.

3. also, as life dies, depending on the complexity of the decomposers in the environment, there is a varying time between the point that the organism dies and the point that the energy is cycled back into the rest of the environment from the decomposers. a sixth factor

4. finally, outside factors play an even larger role because areas such as a volcanic plain will be richer in nutrients than a typical plain because volcanic ash will settle overtime and add new nutrients. seventh factor.
Back to top Go down
View user profile
Seregon
Regular


Posts : 263
Reputation : 37
Join date : 2011-08-10
Location : UK

PostSubject: Re: Population dynamics   Wed May 22, 2013 9:19 pm

Some good points scorpion, and it's probably about time this thread got revived, though I can't promise I'll do much work on it for atleast a little while longer...

1 - the models develops so far apply only to a single location, in game terms this could be a biome, or a subdivision of a biome. When fully implemented (and I will get to this in a future lesson), this location would be linked to other neighbouring locations, with some species able to migrate between them. To some extent, this will share the resources available to each location, between all locations, as you suggest. Depending on how much detail we go into, resources could also be moved between locations by other factors (especially ocean currents). Note that I mentioned I won't be having an explicit carrying capacity, but energy input into the system is effectively the same thing.

2 - I think your saying that the time taken to reach the carrying capacity depends on the energy available and the growth rate of the organism in question. If so, I think this is covered by r, the organism growth rate, which I did cover above. In most cases energy available won't have much impact on time to carrying capacity, only the size of that carrying capacity.

3 - Yes, energy/compounds from dead organisms will not be immediately available to reuse (except in the microbe stage). I had planned to deal with this by having an additional energy/compound pool (dead matter), which would be processed back into available matter by decomposers. Some organisms may also be able to process dead matter directly, depending on their digestive systems.

4 - Neighbouring locations with significantly different conditions will have a large impact on eachother. In your example, migration from the volcanic plain will bring a lot of energy onto the normal plain, making it far more fertile than it would be otherwise. With just two locations, and balanced migration, the effect is that both locations have conditions which are the average of the original conditions, but we will almost never encounter a system that simple.
Back to top Go down
View user profile
scorpion268
Newcomer


Posts : 18
Reputation : -2
Join date : 2013-05-11
Location : Waco, Texas, us

PostSubject: Re: Population dynamics   Thu May 23, 2013 8:20 am

no actually i factoring in that the larger or more aadvanced an organism is, it usually needs more energy to sustain its self, bringing its carrying capacity down. sorry i pretty well badly worded it the first time around

what about photosynthesis bringing in more energy over time? will the amount of energy available slowly increase over time?
Back to top Go down
View user profile
Seregon
Regular


Posts : 263
Reputation : 37
Join date : 2011-08-10
Location : UK

PostSubject: Re: Population dynamics   Thu May 23, 2013 9:45 am

This is why I don't want an explicit carrying capacity. Instead, the limit to a populations size is the amount of energy available to it; if a more complex organism requires more energy, then the same amount of available energy will only support a smaller population.

The total energy available to a system is relatively constant, coming in as light and heat from the sun (though chemo/thermosynthesis may open up other sources). This energy is inaccessible to most organisms, except photosynthesising plants and cyanobacteria. In a system with no photosynthesisers there will be little or no energy available, as the total level of photosynthesis increases, the amount of energy which is usable to other organisms increases (as there are more plants which they can eat).
Back to top Go down
View user profile
hypoxanthine
Newcomer


Posts : 25
Reputation : 0
Join date : 2013-05-21
Age : 21

PostSubject: Re: Population dynamics   Thu May 23, 2013 10:08 am

sorry if ive missed the point but i wouldve thought that if you simulate lots of organisms and enable natural selection through genetic material and competition, the general population dynamics curves emerge spontaneously e.g. if you have predators and prey, youll get predator-prey cycles whether you like it or not. how are you proposing to force a population of organisms to follow some equations? All that needs setting is a maximum number of organisms limit which when reached changes the general reproduction-controlling parameters such that an organism can only reproduce once another one has died, and then you might want to weight what each organism contributes to this count according to their energy requirements (e.g. their maximum health since energy and health seem roughly approximate in the game) so that, say, one large organism being killed would mean that two smaller organisms could be born. Everything else is decided by mutation rates. At reproduction, every organism has a mutrate variable or two that seeds a random number generator to decide whether to mutate an organisms genome (a set of variables which should decide an organisms appearance and the structure of their neural network). Why is there a need for this 'auto-evo'? you set up the basic conditions for evolution to happen and it happens! you dont need to randomly select an organism from the entire population to mutate, thats overcomplicating things massively. would you not just rather have an extra variable for each creature? one number? i hope your argument wouldnt be to do with processing because it really wouldnt affect anything at all considering the AI you'll need among everything else (be thankful for the gift of compiled languages!)


Last edited by hypoxanthine on Thu May 23, 2013 10:21 am; edited 1 time in total
Back to top Go down
View user profile
Seregon
Regular


Posts : 263
Reputation : 37
Join date : 2011-08-10
Location : UK

PostSubject: Re: Population dynamics   Thu May 23, 2013 10:17 am

Your right, but you are also missing the point. If all we wanted to do was simulate a small population of microbes in a petri dish, we could derive the population curves easily enough, just as you describe.

Whats being discussed here is how we would simulate populations *much* larger than we could feasibly do at the individual level. Agent based simulations get expensive quickly, especially if that's only a small component of what we're doing (rendering, AI, physics etc.), and would allow us to simulate perhaps a few hundred cells, or in later stages a few dozen animals and plants. The methods here would allow us to simulate whats happening to the populations which aren't immediately observable by the player, so that when the player moves into another area, those populations can be updated in a meaningful way (i.e.: not a clean procedural generation). The key is that the computational complexity scales with the number of species, not the number of individuals, so that we can simulate very large ecosystems in seperate biomes relatively easily.
Back to top Go down
View user profile
hypoxanthine
Newcomer


Posts : 25
Reputation : 0
Join date : 2013-05-21
Age : 21

PostSubject: Re: Population dynamics   Thu May 23, 2013 10:33 am

i was writing more in my post while you were reading it so you may want to go back and read it again.

but lets say, ok, we want to reduce the population on a planet to a few key variables along with a list of the species present along with their typical genomes, and then when i come back to it i can regenerate the entire planets ecosystem by throwing the information (along with the time thats passed since the last visit) into a few equations, and our task is to come up with these equations. i think thats the gist of it, correct me if im wrong. so why overcomplicate it? just use your logistic models to get a number for each species then scale them according to predator-prey and an overall carrying capacity. How are you planning on deciding how the species get distributed across the system? will there be a variable for each species which decides whether they get distributed uniformly, randomly or in clumps? stick them in their biomes? i havnt seen any pseudo-code being written so it isnt too clear.


as for evolution happening when you come back, i havnt seen anyone suggesting exactly how the genetic information will be stored for each species, what it will consist of, or even what the organisms will actually have? what AI will be used, which of its variables will be mutatable? how will the morphology and anatomy data be stored? how will this be mutatable? Before you talk about auto-evo, you need to talk about the organisms themselves because otherwise youre just vaguely speculating and its not really any help. if you knew all this, you could just say: right, when i come back, mutate every single species genome a number of times dependent on the time passed since last visit, and then simulate all the agents in fast-forward so that natural selection has a chance to do its work, and then show the player the results and continue from there as normal. agent-focused evolution for a single planet will not be computationally expensive at all (the fact you think it will suggests youre not really sure of how it will actually work). how many creatures are you really simulating for each planet? you really think something like the amount in real life? they didnt even manage that in spore! just make the planets small and give them, say, 50 organisms for each of 6 possible species living on a planet. any more than something similar to that and youre trying to outdo spore (cant remember the actual organism limit on spore but i remember that after it, if you tried to add another creature, another one would disappear). hint: you cant outdo 5 years of professional developer's (the best in their fields) work.
Back to top Go down
View user profile
Seregon
Regular


Posts : 263
Reputation : 37
Join date : 2011-08-10
Location : UK

PostSubject: Re: Population dynamics   Thu May 23, 2013 12:16 pm

I can't answer every point your raising, there are too many, and they're not all related.

hypoxanthine wrote:
i think thats the gist of it, correct me if im wrong. so why overcomplicate it? just use your logistic models to get a number for each species then scale them according to predator-prey and an overall carrying capacity.

That's the basic idea. The problem is deriving growth and mortality rates from our species geno/phenotype. If that was trivial, then we'd simply plug that in, but it's not. While we could make a very crude attempt, the resulting simulation would be incredibly bland, with many hugely different organisms behaving in almost identical ways at a population level.

hypoxanthine wrote:
how many creatures are you really simulating for each planet? you really think something like the amount in real life? they didnt even manage that in spore! just make the planets small and give them, say, 50 organisms for each of 6 possible species living on a planet. any more than something similar to that and youre trying to outdo spore

This is exactly what we are proposing, and exactly why agent based simulation won't do. That small size of spores ecosystem is one of the major points we want to improve upon. The space your playing in may not contain many more organisms or species, but the overall planet will.

hypoxanthine wrote:
hint: you cant outdo 5 years of professional developer's (the best in their fields) work.

No, we can't, which again brings me back to the point of all this. We cannot create an agent based simulation which is significantly more efficient than what spore had, what we can do is avoid the problem completely by not requiring a huge agent based simulation. I've written enough such simulations to know that the 300 or so creatures your saying a spore world contained would be pretty close to the limit of what an average computer of the time could run. With some clever programming (which we probably can't beat) they may have increased that a little.

Auto evo serves a similair purpose - we cannot afford to simulate darwinian evolution, so we make simplifying assumptions (explained elsewhere, I'll find a link if you need it):
- all individuals in a species are phenotypically identical. Sub-populations may vary slightly, and if the difference becomes signiciant they become a new species. What we don't do is track the genetics of every individual. We therefore do not 'mate' individuals to produce offspring.
- we assume natural selection. In other words, we assume that only benificial mutations will survive, and negative ones will not spread through the population.
What this means is that we don't need to run a genetic algorithm with hundreds of individuals, but instead run a much simpler hill climbing algorithm with dozens of species.

The details of what will be mutated, the genetic structure of the organisms, is a little irrelevant at this point. It certainly won't be as simple as 'predation rate' and 'mortality' mentioned in the examples. Beyond that, I don't see how what we're evolving will have that much effect on how we evolve it. There are some exceptions, but I don't think that's what your trying to get at?
Back to top Go down
View user profile
hypoxanthine
Newcomer


Posts : 25
Reputation : 0
Join date : 2013-05-21
Age : 21

PostSubject: Re: Population dynamics   Thu May 23, 2013 12:56 pm

Seregon wrote:
That's the basic idea. The problem is deriving growth and mortality rates from our species geno/phenotype. If that was trivial, then we'd simply plug that in, but it's not. While we could make a very crude attempt, the resulting simulation would be incredibly bland, with many hugely different organisms behaving in almost identical ways at a population level.

why not KISS and just give each species a [slightly randomized if you like] growth factor (r) based on its maximum health/energy? Why is it a problem?
ok thats fine that--wait a second:

Seregon wrote:
Auto evo serves a similair purpose - we cannot afford to simulate darwinian evolution, so we make simplifying assumptions (explained elsewhere, I'll find a link if you need it):
- all individuals in a species are phenotypically identical. Sub-populations may vary slightly, and if the difference becomes signiciant they become a new species.

and that isnt bland? ...hang on...

Seregon wrote:
all individuals in a species are phenotypically identical. Sub-populations may vary slightly,

struggling to get my head around this. if all species are phenotypically identical, how do subpopulations vary? but yes, i did say before that the data stored for each species should be the typical genome and its population count. what 'typical' might mean here is that you randomly select one creature and make that genome the archetype (taking an average is too much work). now i know that no known creature is distributed according to the cauchy distribution but i dont think it would matter too much.

Seregon wrote:
we assume natural selection. In other words, we assume that only benificial mutations will survive, and negative ones will not spread through the population.

so the rich get richer? thats not how evolution works, you know it, and it certainly doesnt take into account genetic drift which is one of the most important factors unless you have a very large population size, which we cant have (wait on!). You can't just say 'even though you can only see a few creatures from where you are now, this planet actually has hundreds of them whose population is controlled by these equations.' because your sample must reflect the actual planetary population size , at which point things start getting more and more complicated because you also have the question of distribution across the plant and biomes, and we should say to ourselves 'stop! is there an easier way to do this?'.

Seregon wrote:
What this means is that we don't need to run a genetic algorithm with hundreds of individuals, but instead run a much simpler hill climbing algorithm with dozens of species.

ok, sounds like a plan. ive seen GAs approximated using hill-climbers before (written a few myself...in cryptographical contexts but still...) but tell me how you propose to go about this. saying your going to use a hill-climber to evolve dozens of species doesnt tell me much. what type of hill-climbing are you using and why? what are you using as a measure of fitness and how will this be interpreted as a final genome? this is incredibly vague. please could you provide some pseudo-code, even if its not very detailed? ive noticed that nobody seems to give any such details on the forum, no wonder the programming is slow. they have to work out how to implement your ideas because you wont tell them how.


Seregon wrote:
The details of what will be mutated, the genetic structure of the organisms, is a little irrelevant at this point.

no it really is not. how can you talk about evolving something when you dont really know what that something will be? its useless. try to think about it from a programmers point of view for once. how do you actually code what youre saying? you dont even have the starting point of what youre meant to be running this algorithm on so how can you decide on what algorithm to use and what it should attempt to do? an organism's genome is going to have a lot of variables and youre trying to increase its overall fitness? how do you do that? and bear in mind that an organism doesnt just 'adapt to its environment' (dont be adaptationist - if you set it to increase its fitness for a specific biome, all your creatures will end up the same), it needs definite interspecific competition for evolution to occur (ok, i know, geographical isolation, etc. but whatever) so you cant decide fitness independently from the fitness of the other species. as i said, pseudo-code for your specific auto-evo hill-climber algorithm in your reply post please or you're BSing. youre running before you can walk (i will not relate this to the whole project...it is NOT related...NOT RELATED...). This part of the game could be tested stand alone right now if anyone had the time, and you divulged your secrets.








Back to top Go down
View user profile
scorpion268
Newcomer


Posts : 18
Reputation : -2
Join date : 2013-05-11
Location : Waco, Texas, us

PostSubject: Re: Population dynamics   Thu May 23, 2013 1:17 pm

If we were to take the entire world of the game and only take a chunk of the continent your species was on and fully process the biomes your species was in and the ones that were surrounding the ones that were surrounding the one you were in we could cut out a lot of processing time. Then if we used population pyramids with proportional populations like 15 prey per predator and have multiple species per level competing for dominance, then we could have a much more diverse world than before with the same processing requirements as before in my beliefs at least.
Back to top Go down
View user profile
Seregon
Regular


Posts : 263
Reputation : 37
Join date : 2011-08-10
Location : UK

PostSubject: Re: Population dynamics   Thu May 23, 2013 1:33 pm

Your not giving me much credit here, and yet I'm answering your points on the assumption that you know what your talking about.

hypoxanthine wrote:
This part of the game could be tested stand alone right now if anyone had the time, and you divulged your secrets.

If you believe I have secrets I'm not divulging, then either you think this system has more merit than your willing to admit, or I'm doing a very poor job of explaining myself.

Yes, there are details of this which reside only in my head, not becuase I'm trying to deprive anyone of them, but becuase they take a huge amount of time and effort to develop to a stage where they're presentable and usable by a coder. That means doing the math, writing prototypes, and tweaking them, to save others the effort. Thats time I really don't have to spare right now, though it definately is something I'll be working on as soon as I do.

To answer a few of your more reasonable points:
- All members of a population of a species (rather than the entire species) are phenotypically identical. Each seperate location which contains this species will have a seperate population. If these are significantly distinct a new species may form. If they are strongly linked by migration, they will tend towards the same genetics via crossbreeding.

- We don't track the genome, only the phenome, which is what makes the above assumptions plausible.

Quote :
so the rich get richer?
- Where did you get that idea? What this means is that the entire population will gain benificial mutations. Non-benificial mutations may arrise at the genetic level in a few individuals, but those individuals would be at a disadvantage and die out, so that the harmful gene will never spread to the population. At the phenotypic population level, these harmful mutations would never be seen, and so are ignored. The exception is where a mostly benificial mutation has some harmful side effects (e.g.: sickle cell), and these should be allowed by the system.

Quote :
pseudo-code for your specific auto-evo hill-climber algorithm in your reply post please or you're BSing/
- I really don't have the time to produce something like this on demand, and you have no right to demand it.

It would also help me explain this if I knew where you were comming from? Are you a programmer, biologist, ecologist, evolutionary scientist?

Also, please finish your post before posting, having what I'm replying to change while I'm writing a post is more than a little confusing.

@Scorpion - that's part of the idea, and largely what we're doing for the part of the planet observable by the player, this thread deals with what we do for the rest of the planet, rather than simply leaving it paused while the player isn't looking.
Back to top Go down
View user profile
hypoxanthine
Newcomer


Posts : 25
Reputation : 0
Join date : 2013-05-21
Age : 21

PostSubject: Re: Population dynamics   Thu May 23, 2013 2:15 pm

Seregon wrote:
Your not giving me much credit here, and yet I'm answering your points on the assumption that you know what your talking about.
i can see why youre saying this, i know im coming across as rude and im sorry about it, but seeing as how the thrive project has ignored reason in the past, its the only way that will do. just be clear that i dont mean to insult anyones intelligence.

Seregon wrote:
If you believe I have secrets I'm not divulging, then either you think this system has more merit than your willing to admit, or I'm doing a very poor job of explaining myself.
the second one.

excuse 1)
Seregon wrote:
Yes, there are details of this which reside only in my head, not becuase I'm trying to deprive anyone of them, but becuase they take a huge amount of time and effort to develop to a stage where they're presentable and usable by a coder. That means doing the math, writing prototypes, and tweaking them, to save others the effort. Thats time I really don't have to spare right now, though it definately is something I'll be working on as soon as I do.
fair enough, dont have the time. perfectly fine.

excuse 2 and 3)
Seregon wrote:
Quote :
pseudo-code for your specific auto-evo hill-climber algorithm in your reply post please or you're BSing/
- I really don't have the time to produce something like this on demand, and you have no right to demand it.

It would also help me explain this if I knew where you were comming from? Are you a programmer, biologist, ecologist, evolutionary scientist?

I read that all as 'It would take too long to explain. Who are you to tell me what to do you little upstart! Also, I would explain but you probably wont understand it' (ok thats being a little unfair ill admit, but the rough idea is in there). I'm a programmer and a biologist (ecology and evolution come under biology, no? im not a specialist but i do know my stuff) since you asked.

now you misunderstood my request for pseudo-code completely. Given that you said you had an algorithm for auto-evo, all i was asking is for you to reveal it to me. If you cannot reveal it to me, you do not already have an algorithm, which means that you were basically saying 'ohhh...well do it all with a hill-climber' (reminds me of procedural generation here) without having an idea as to how youll do it, which is very bad indeed. I'm not asking you to produce it on demand, because unless your'e BSing, you already have it and should be able to show it to me without any difficulty, unless of course, youve been discussing this for 2 years (i think?) and you havnt ever bothered to write a scrap of pseudo-code for it.

Seregon wrote:
Quote :
so the rich get richer?
- Where did you get that idea? What this means is that the entire population will gain benificial mutations. Non-benificial mutations may arrise at the genetic level in a few individuals, but those individuals would be at a disadvantage and die out, so that the harmful gene will never spread to the population. At the phenotypic population level, these harmful mutations would never be seen, and so are ignored. The exception is where a mostly benificial mutation has some harmful side effects (e.g.: sickle cell), and these should be allowed by the system.

you dont seem to have read the paragraph at all. im not going to repeat myself.



Seregon wrote:
All members of a population of a species (rather than the entire species) are phenotypically identical. Each seperate location which contains this species will have a seperate population. If these are significantly distinct a new species may form. If they are strongly linked by migration, they will tend towards the same genetics via crossbreeding.

ah that makes more sense, but sounds like youre overcomplicating again. why split each species into subpopulations? and you were just talking about processing problems too! having subpopulations would basically be the equivalent of having many more species on the planet and is, in general, a very bad idea which gives me reason to doubt the consistency of your ideas.

Seregon wrote:
We don't track the genome, only the phenome, which is what makes the above assumptions plausible.

em..the genome is the same thing as the phenome for the purposes of the game but it is generally called the genome in these sort of simulators, which brings me back to my point on how an organism's genome will be encoded and why you should be discussing it now before auto-evo. e.g. part of the genome may say something like 'this organism has weapon part number n at body coordinates (x,y,z)' or something similar, and I have no idea what you thought instead (the fact you didn't immediately see this really worries me, how could it be otherwise? this is why i think i havnt understood you correctly.). How the data is encoded strongly influences how you evolve it.
Back to top Go down
View user profile
scorpion268
Newcomer


Posts : 18
Reputation : -2
Join date : 2013-05-11
Location : Waco, Texas, us

PostSubject: Re: Population dynamics   Thu May 23, 2013 2:21 pm

Ok that makes a lot of sense along the species diversity level. Just to be sure I'm understanding this correctly, there will be more than six organisms per biome.
Back to top Go down
View user profile
Mysterious_Calligrapher
Biome Team Lead


Posts : 1034
Reputation : 26
Join date : 2010-11-26
Age : 24
Location : Earth, the solar system, the milky way...

PostSubject: Re: Population dynamics   Thu May 23, 2013 4:02 pm

Guys. No fighting on the thread. Hypo, that's not what Seregon said, putting words in his keyboard is a good way to come across as rude.

Hypo, I'd like you to re-read the first post in the thread, and the threads for auto-evo here and here. (The first one is more programming based, the second has some of the early explanations as to why we came up with auto evo.) They might help you to understand what Seregon isn't getting across to you.

As to why we need auto-evo, the simple explanation is that it's a pure numbers calculation that allows us to simulate extinctions, ecological niches, biomes, and single-species extinctions without hard-coding actions. We will just let the numbers run instead, saving a lot of processing time while still allowing us to run conditions for a lot of species at the same time.

As for the other points, we've got a policy around here of if you think we're not coding fast enough, you can code it yourself, faster. Somewhere deep in the belly of the biomes discussion we've got some food-chain mock-ups that take a look at how we're going to have to run population mechanics when resource availability and predation are both taken into account.

Since you said you were learning biology, just something from an earlier post:
hypoxanthine wrote:
All that needs setting is a maximum number of organisms limit which when reached changes the general reproduction-controlling parameters such that an organism can only reproduce once another one has died, and then you might want to weight what each organism contributes to this count according to their energy requirements (e.g. their maximum health since energy and health seem roughly approximate in the game) so that, say, one large organism being killed would mean that two smaller organisms could be born.

Not quite how it works, but you’re close. Populations generally enter a “boom and bust” cycle, where they overshoot their carrying capacity, die back in large numbers, then slowly build their population back up. This is one of the driving forces of evolution, because the boom allows for greater genetic diversity within the species, and the inevitable bust trims down the population to the point where even small adaptations are a great adaptational advantage. By allowing the population to boom past it's carrying capacity, we can automatically simulate a mini-extinction event, which opens up niches for other species to diversify.

The "maximum number of organisms," as written here, would be overly simplistic given trophic level energy flow and entropy. Essentially put, when producers (plants) use 1000 units of energy to build their mass, a much smaller amount is available to primary consumers, and an even smaller amount to secondary consumers.

In addition, some resources, both nutritional and otherwise, will not be available to all species, just ones with the appropriate adaptations, so instituting a collective, biome-wide carrying capacity would be nearly impossible if we still wanted to run said adaptations, which are currently being discussed in the organ editor thread. And we very much do want to be able to run said adaptations, and to simulate extinctions.

_________________
Environmental, Chemical and Linguistic Specialist.
If you speak or write any language that isn't English, we want you.
Now accepting biome donations here.

Please note that there is no currently scheduled time for panic.

Not actually ascended to another plane of existence.
Back to top Go down
View user profile
~sciocont
Overall Team Lead


Posts : 3406
Reputation : 138
Join date : 2010-07-06

PostSubject: Re: Population dynamics   Thu May 23, 2013 4:15 pm

Hypox, I believe at some point, you were prompted to read our evolution concept. If you haven't seen that page before, we've failed to initiate you properly int othe project.
The question of population dynamics exists to give information to the Census step in the evolution procedure. Questions of what mutations are beneficial and how information is stored are tangential to the actual determination of population sizes.
Some things that may not be clear to you:
-All evolution happens on a local, not planetary scale. The planet is split up into separate biomes, which are self-contained game spaces for evolution. We may include organisms that move in between biomes, but if it is too complex for us to handle, we won't include them.
-Populations of organisms are just numbers. If there are 100 bears in a biome, the game does not store 100 instances of the bear and populate the biome with them. The population level simply influences your chances of seeing that organism: once an organism model is outside of your perception, it is deleted and won't necessarily show up there again, unless it is a stationary organism like a plant or a nest of eggs, or the organism you saw is specifically tied to that area by its behavior, in which case you'll see it pretty much every time you're in the neighborhood.

Also, rather than grilling Seregon about his expertise when he has little time to respond (He's currenlty working on his PhD in theoretical ecology, so he's essentially the best person in the world for this job), why not make some of your own suggestions to the problems you see, since you claim to have some degree of expertise. I don't mean to say that you aren't qualified to discuss this, I believe you are, but I am wondering why you're focusing more on criticism than construction. I am certainly happy to see you interested in this rather technical area, I'd just like you to understand that Seregon and I do not mean any disrespect towards you and are confused as to why your tone has been rather unfriendly.

_________________
Remember our goals: simplicity, science, and playability. Keep them in mind always.
[OE]|[FAQ]|[Wiki]|[My Blog]
Back to top Go down
View user profile
hypoxanthine
Newcomer


Posts : 25
Reputation : 0
Join date : 2013-05-21
Age : 21

PostSubject: Re: Population dynamics   Thu May 23, 2013 4:51 pm

Mysterious_Calligrapher wrote:
Hypo, I'd like you to re-read the first post in the thread, and the threads for auto-evo here and here. (The first one is more programming based, the second has some of the early explanations as to why we came up with auto evo.) They might help you to understand what Seregon isn't getting across to you.

oh don't worry ive read those before. doesnt answer anything. it gives a framework and then doesnt address any of what ive asked about here, in fact its mainly about the process of fitting a creature to a biome.

Mysterious_Calligrapher wrote:
As to why we need auto-evo, the simple explanation is that it's a pure numbers calculation that allows us to simulate extinctions, ecological niches, biomes, and single-species extinctions without hard-coding actions. We will just let the numbers run instead, saving a lot of processing time while still allowing us to run conditions for a lot of species at the same time.
yesssss, i gathered that.

Mysterious_Calligrapher wrote:
As for the other points, we've got a policy around here of if you think we're not coding fast enough, you can code it yourself, faster.
not quite sure why youve said that. after my exams i will. said this. im not inciting anybody to do any coding. im inciting people to come up with pseudo-code, so that when they/you/i come to code it, we know what were meant to be coding.

Mysterious_Calligrapher wrote:
Since you said you were learning biology, just something from an earlier post:
, yeahhh, this whole paragraph very patronizing. Don't worry, I know how to model populations and I think everyone here knows about trophic levels and r-k selection. Like the first thing you ever learn in ecology when youre about 9. the reason for my simple suggestion was to keep it SIMPLE: a rudimentary carrying capacity type constraint which very roughly takes account of energy requirements. no need for anything else until youve actually got the thing up and running and then you can tune for accuracy. thats what should be happening. i see though that while we wait for progress there is nothing to do but discuss minutiae.


Mysterious_Calligrapher wrote:
Populations generally enter a “boom and bust” cycle, where they overshoot their carrying capacity, die back in large numbers, then slowly build their population back up.
generally what happens? not really, some creatures do and some don't. depends on the growth factor and obviously also on predators.


Mysterious_Calligrapher wrote:
In addition, some resources, both nutritional and otherwise, will not be available to all species, just ones with the appropriate adaptations, so instituting a collective, biome-wide carrying capacity would be nearly impossible if we still wanted to run said adaptations, which are currently being discussed in the organ editor thread. And we very much do want to be able to run said adaptations, and to simulate extinctions.
. see your point. if you must take this into account, why not calculate a carrying capacity for each species as auto-evo is being run? some threshold based on the parts the species has (which indirectly takes account of resources available to that species) or more effectively, have one carrying capacity for each biome and then multiply the one in question by some factor proportional to the area that the biome encompasses. if you use this, you can just model each species with a simple logistic function and then calculate K beforehand by looking up the base value for K for that biome in an array then multiplying it by the area of that biome. e.g. base value in ocean might be 4 creatures/m^2 and for desert, maybe 0.2 creatures/m^2 (im just saying some numbers dont shout at me). simple solution. tell me why you arent doing this.

~sciocont made a post while i was writing this so hello!

~sciocont wrote:
Populations of organisms are just numbers. If there are 100 bears in a biome, the game does not store 100 instances of the bear and populate the biome with them. The population level simply influences your chances of seeing that organism: once an organism model is outside of your perception, it is deleted and won't necessarily show up there again
clearly not read my previous posts. i understand this perfectly, but this sounds like you read my first post on this thread and left it at that.

~sciocont wrote:
you were prompted to read our evolution concept.
Of course Ive read that. Doesnt tell you anything that isnt obvious. I can sum it up in a sentence: randomly decide if there was a mutation for each species with probability scaled by proportions of species and trophic levels, then randomly mutate them. Of course, it doesnt say (as ive been saying) how you are going to mutate a creature. What are you actually changing in a mutation - how is the data encoded for the umpteenth time? It also doesnt say how you intend to scale the probability. theres no pseudo-code, just vague instructions.

~sciocont wrote:
confused as to why your tone has been rather unfriendly.
rants sound unfriendly. its in their nature.
Back to top Go down
View user profile
~sciocont
Overall Team Lead


Posts : 3406
Reputation : 138
Join date : 2010-07-06

PostSubject: Re: Population dynamics   Thu May 23, 2013 5:15 pm

I assumed you had read that, but I wanted to make absolutely sure. I've read your posts closely, but I like to make my own posts as succinct as possible, so I didn't go much further.
Why don't we have code? We haven't had coders working on this because it's of secondary importance to getting the game engine running, which is what our coders have been working on. Seregon has been working on real-world objectives and anyone else on the forum, with the now advantageous exception of yourself, has been underqualified to discuss the deeper questions you're asking, such as how we will store organism data. You won't find answers to some of your questions because you're the first one around here who's had the understanding to ask them in a meaningful way. It's not that the rest of us haven't thought of them: everyone here knows that we will have to have a fairly modular way to encode organisms, but no one who has the programming knowledge to provide meaningful answers has been working on the task.
I'm really glad you're interested in this, and I'd suggest you make your own concept of how population dynamics (or whatever else you're interested in solving (I'm well aware that you have been making suggestions throughout this thread, and many of them have been quite helpful)) so that we can make progress, rather than just squabble over details that often prove difficult to express coherently in this discussion format.

_________________
Remember our goals: simplicity, science, and playability. Keep them in mind always.
[OE]|[FAQ]|[Wiki]|[My Blog]
Back to top Go down
View user profile
Daniferrito
Experienced


Posts : 726
Reputation : 70
Join date : 2012-10-10
Age : 22
Location : Spain

PostSubject: Re: Population dynamics   Thu May 23, 2013 5:34 pm

Creatures will just be a conglomerate of organs. Internal organs, like digestive system, and external organs, like legs. They all affect their interaction with the environement. For example, better legs will make it able to run faster so it is easier to hunt, or not get hunted, and better digestive system will make it recieve more energy from anything it eats, so it has to eat less. This is just a broad view at organs, the organ design thread alredy linked is a better place to look at that.

That configuration of organs will be the genome.

Mutations will just be changes to the parameters of said organs, or geting rid of organs or adding new ones. To choose a mutation, just take a random part and modify one of its parameters (like for example make a leg longer). To test if such random mutation is beneficial or not, we will just do a series of very simplified simulations, like for example puting the creature and one of its predators (or prey) in a simplified environement, so we can test the outcome. With a bunch of those simulations, we can see the statistics of how many kills the creature archieves. From there, we go to the population formulas, and do a one-step calculation with the new data, and compare that to a similar one-step calculation with the older data. If the population growth is higher (the mutation made the population grow more), it is considered a good mutation, and it stays. If it is lower, it is a bad mutation, we reject it and do another random mutation.

The mutations not only makes species more likelly to score kills, or defend itself agains predators, but also affect the population formulas in different ways. To keep with the leg example, a longer leg will mean descendants are more costly to produce, and require more intake to keep alive. It also means they give more energy to predators when killed, but that wont show up until the next step of the evolution.

That goes for AI evolution. The player is just given the coice to modify its creature as he wants. As all the creatures evolve at once, we will be evolving AI creatures while the player is in edit mode, which gives us more processing power to work with, and as simulations are not made on screen, we can overclock them as much as the processor allows us to, and do them at parallel, allowing for a lot of that simple simulations being done.

To sum up, creature's genome will be their organs. To mutate them, we randomly modify some parameters and depending on what the populations formulas predict, we decide if they are good or not. We do all those calculations while the player is in the editor
Back to top Go down
View user profile
hypoxanthine
Newcomer


Posts : 25
Reputation : 0
Join date : 2013-05-21
Age : 21

PostSubject: Re: Population dynamics   Thu May 23, 2013 5:57 pm

top-notch answer, exactly the detail ive been wanting to know. some problems though:

biggest one:

Daniferrito wrote:
If the population growth is higher (the mutation made the population grow more), it is considered a good mutation, and it stays. If it is lower, it is a bad mutation, we reject it and do another random mutation.

the vast majority of mutations dont do anything in real life. most of those that do decrease fitness. for these reasons, that isnt in any way a realistic model, and exactly the kind of false evolution stereotype that propagates misunderstandings of how evolution takes place. i think we should definitely avoid this unless you want to miseducate people.

This is what I propose:

1) creature chosen for mutation by whatever method you like
2) random genome parameter selected to mutate
3) random increase or decrease of this parameter
4) depending on the genome parameter modified, increase or decrease one of the population parameters for the species (say were using Seregon's split-parameter version of Lotka-Volterra, if the speed of travel is increased by lengthening of legs, which youd test by doing just one quick simulation to measure running speed, then youd increase one of the parameters that make up the overall efficiency of predator-prey-encounter conversion to predator-individuals, like the probability of hunt success)
5) run population dynamics
6) land player on planet
7) probability of creature appearance based on number from population dynamics (in some way i havnt decided on, also based on area of biome and another pop. parameter of distribution)

where a creature has two sets of internal instructions: its individual genome (which should be its neural network structure as well as body by the way) and the species 'populome' - its set of population dynamics parameters. depending on where the players is, the game can then switch between agent-based evolution and auto-evo.

I really have to go now. will be back.

Back to top Go down
View user profile
~sciocont
Overall Team Lead


Posts : 3406
Reputation : 138
Join date : 2010-07-06

PostSubject: Re: Population dynamics   Thu May 23, 2013 6:04 pm

Thanks for the excellent post, hypox
Quote :
the vast majority of mutations dont do anything in real life. most of those that do decrease fitness. for these reasons, that isnt in any way a realistic model, and exactly the kind of false evolution stereotype that propagates misunderstandings of how evolution takes place. i think we should definitely avoid this unless you want to miseducate people.
We're well aware of this, but running evolution through evolving the population as a whole rather than mutating individuals is how we've been going because it's simpler. The vast majority of mutations do nothing because they don't change the phenotype- they occur either in Noncoding DNA or don't affect the protein they code for to a high degree. We're cutting out the molecular middlemen here and making sure every mutation we try is making some difference. Does that make sense?

I really wanted to stick to Darwinian processes as much as possible, but it's going to be computationally too expensive to run them. That's why I wrote the concept to exclude the individual and modify the population in the biome- it's the end result of natural selection. It's not a perfect system, but it doesn't have to be. We need creatures to appear like they're evolving through selection. Whether they do or not is of no importance to gameplay.

_________________
Remember our goals: simplicity, science, and playability. Keep them in mind always.
[OE]|[FAQ]|[Wiki]|[My Blog]
Back to top Go down
View user profile
untrustedlife
Regular


Posts : 252
Reputation : 19
Join date : 2013-03-26
Location : [Classified]

PostSubject: Re: Population dynamics   Thu May 23, 2013 10:40 pm

Hypo, you say you are a programmer so you should understand that this system will cause processing issues.
This is why auto-evo is the best choice right now.Note that all species will be evolving.

I have wrote evolution simulators before and once you get to a point it is just too hard for the computer to process. We want to keep the frame-rate high on this. (if possible).
It is better to loop through all species (each species as a whole) then it is to loop through every single member. (or in this case have a bunch of different creatures swapping genes at the same time)
Back to top Go down
View user profile
hypoxanthine
Newcomer


Posts : 25
Reputation : 0
Join date : 2013-05-21
Age : 21

PostSubject: Re: Population dynamics   Fri May 24, 2013 5:22 am

its clear that neither you nor ~sciocont read the rest of my post after that paragraph. i was not suggesting agent-based evo at all.
Back to top Go down
View user profile
Daniferrito
Experienced


Posts : 726
Reputation : 70
Join date : 2012-10-10
Age : 22
Location : Spain

PostSubject: Re: Population dynamics   Fri May 24, 2013 6:22 am

hypoxanthine wrote:
the vast majority of mutations dont do anything in real life.

Then we can ignore all of that mutations. If something has no observable consequences we can just get rid of it. If something can be abstracted without losing too much accuracy, we can just abstract it. For example, a car:

A car's motor just makes the wheels spin, which makes the car move forward if the wheels are in contact with the floor. Most simulations just abstract it to that level: if the car is in contact with the ground, accelerate it forward. The real reason for movement is that wheels are spinning. We could simulate to that level, where the motor makes the wheels spin, which in turn moves the car, but the end-result will be quite similar, in exchange of increased computing cost.

But the wheels are spining for a reason. The explosions inside the internal combustion engine are moving the pistons up and down, which through a set of mechanisms make the wheels spin. We could simulate that as well, but while the complexity of the simulation has gone up by a lot, we have barelly won anything in the end result. But why are the pistons moving? We would have to simulate particle physics to simulate how the increase of volume makes the pistons move. Why is the volume getting bigger? Now we have to simulate chemistry, then nuclear physics,...

At the end, we would have an hyperrealistic model of a car that absolutelly no computer can run, but the end result would be the same: press a key, the car moves forward. So we should just simplify it.

hypoxanthine wrote:
A long list of steps

I dont really get you there. Either you are sugesting mutating the whole specie, which would be the same of my post but without checking that the mutations actually make the species more fit, or you are sugesting mutating individuals/small populations groups and let the system do the "only the fittest survive" to trim down non beneficial evolutions.

In the first case, species wont evolve. As most of the possible mutations are bad (IRL, we will have to see how that works in the game) species will just evolve to stupid shapes. Maybe one lucky one will have mostly good mutations because of RNG, but thats it.

In the second case, you have a similar situation. Some creatures will evolve stupidly, while other "lucky" ones will make sense.

On both cases, you would need a quite big amount of cases in order for that lucky ones to be a substantial number, so we can have any kind of biodiversity. And we alredy agreed on that such a big amount of instances would be too much for the game.
Back to top Go down
View user profile
hypoxanthine
Newcomer


Posts : 25
Reputation : 0
Join date : 2013-05-21
Age : 21

PostSubject: Re: Population dynamics   Fri May 24, 2013 7:09 am

if you want to do it that way then, by that logic we should do it like this (which is kind of like yours but looking at it from the other side):

1) select rand species to mutate
2) select rand popdyn parameter and increase by small rand amount
3) each popdyn parameter change has a genomic interpretation. if you split the parameters up more, youll eventually get things like 'speed, stealth, etc.' so if you'd just increased the speed popdyn parameter for example, this would change the leg randomly, then run a simulation to determine if speed had increased and then hill-climb until it actually has. stealth? no simulation needed here probably - hill-climb to a set colour for the particular biome (simplistic i know). you can imagine what else there would be.

neither yours or this are too good in my opinion. imagine a predator mutates and is now much better at hunting. unless the great random mutates the prey in time, theres a significant danger of extinction. this usually happens IRL with invasive species and so on (notwithstanding sentients). the sudden spike in fitness would basically be equivalent to a new super predator arriving. i think we would have to actually run a simulation though to see how much of a problem this would be. a good fix for this might be to weight the probabilities of mutation for a species by its current population count (smaller population => greater selection pressures => mutants are selected for more strongly on an agent level => mutant allele frequency increases much more quickly on population level => so on population level, increase the mutation rate which by the suggested algorithms isnt really a mutation rate but the rate of fitness increase instead so it works here)

also, concerning your 'stick a predator with its prey and see how it does' simulation, how would you do that? if each predator has preferred prey, how is this preference decided for each predator? If you plan to stick your predator with any old prey, that will obviously be unreliable because it could be a really crappy prey which by chance hasnt evolved much, and in any case you wouldnt be taking into account environmental variables and scenarios. ok, so you now run many simulations each with random conditions and prey and take a rate of success and therefore fitness. is finding food all there is to fitness? nope, if the oceans are warming up a fat lot of good sharper teeth will do you if you arent changing something else to deal with it.
Back to top Go down
View user profile
~sciocont
Overall Team Lead


Posts : 3406
Reputation : 138
Join date : 2010-07-06

PostSubject: Re: Population dynamics   Fri May 24, 2013 10:15 am

It was never suggested that finding food was the only component of fitness, that was just the example given. We're not idiots.
Quote :
for example putting the creature and one of its predators (or prey) in a simplified environment

Quote :
how would you do that? if each predator has preferred prey, how is this preference decided for each predator? If you plan to stick your predator with any old prey, that will obviously be unreliable because it could be a really crappy prey which by chance hasnt evolved much,
In our food web model, an organism eats anythng that its digestive system can process, and anything it can get a hold of. So for any animal, we'd test a mutation against how well it can stay away from predators and how well it can get a hold of whatever it eats. An increase in escape from any predator (so long as it doesn't come with more serious negative increases) or the ability to obtain any food (again, barring a net negative) would count as a positive mutation. I realize that this is not specific, but it's not too hard to see that we could whittle down your ability to escape and ability to obtain food to a few key mutation areas (speed, comoflague, mass, sensory acuity, etc)
Quote :
2) select rand popdyn parameter and increase by small rand amount
3) each popdyn parameter change has a genomic interpretation.
This is certainly an interesting idea, and I think it solves the testing problem somewhat because popdyn changes can be charted to a list of possible parameter changes (such as speed, weight, etc) which can then be charted to possible mutations. In this way, instead of changing the form of an organism and figuring out the downstream effects, we change the properties of the organism and then mutate the form to reflect that. It gives us a lot more control over the form of the organism and thus an extra layer of insulation against the "ugly creatures" problem.

One interpretation of your popdyn parameter change is to simply boost the population (in the next generation) of the individual selected for mutation by some multiplier (5% or something, we can tinker with it based on the orgs population as a fraction of the community (biome) population) and then find a parameter change that might increase population by that amount. One problem I see with this is that, unless we have many different popdyn parameters for each species, mutations will be more or less arbitrary. Of course, if we're modeling every meaningful two-species interaction, then we need only add the multiplier to one of these parameters and then we have a more specific needed mutation.

I certainly do read your posts.

_________________
Remember our goals: simplicity, science, and playability. Keep them in mind always.
[OE]|[FAQ]|[Wiki]|[My Blog]
Back to top Go down
View user profile
Sponsored content




PostSubject: Re: Population dynamics   Today at 6:25 am

Back to top Go down
 
Population dynamics
View previous topic View next topic Back to top 
Page 2 of 4Go to page : Previous  1, 2, 3, 4  Next

Permissions in this forum:You cannot reply to topics in this forum
Thrive Game Development :: Development :: Design :: Evolution-
Jump to: