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!
Sign up and introduce yourself. ADMIN knows your ASL.
If you're new, read around a bit before you post: the odds are we've already covered your suggestion.
We are working with a relatively new theme, so visual bugs are being addressed.
ADMIN reminds you that the Devblog is REQUIRED reading.
Currently: The Microbe stage environment is taking shape.
Log in
Username:
Password:
Log in automatically: 
:: I forgot my password
READ BEFORE POSTING
FAQs Wiki OE CC Thrive
Search
 
 

Display results as :
 
Rechercher Advanced Search
Statistics
We have 915 registered users
The newest registered user is Earth AD 2754

Our users have posted a total of 23904 messages in 1129 subjects
Who is online?
In total there are 6 users online :: 1 Registered, 0 Hidden and 5 Guests

Naevius

Most users ever online was 443 on Sun Mar 17, 2013 4:41 pm
Updated Research Web
Wed May 08, 2013 5:20 pm by NickTheNick
Okay guys, here is my first Devblog to fulfill my responsibility as Strategy Team lead.

Finally I have procured some work to show for my efforts in conceptualizing the Strategy Mode. The Research Web is a pivotal component of post-sapience gameplay, as it is what drives your species forwards from the Awakening stage to their final steps into Ascension. Through a graphing program, I have managed …

[ Full reading ]
Comments: 9
Keywords
music cell concept Devblog underwater prototype video game editor date tree microbe stage research progress organism planet space biomes auto Thrive evolution tech spore Gameplay creature
Latest topics
» Squad Editor Finalization
by NickTheNick Today at 1:54 am

» Eukaryote Ecosystem Prototype Concept
by WilliamstheJohn Today at 12:41 am

» Forum Mod Discussion
by NickTheNick Yesterday at 10:19 pm

» What's up?
by NickTheNick Yesterday at 9:55 pm

» Art Team: We Need You!
by Aiosian_Doctor_Xenox Yesterday at 8:44 pm

» Miscellaneous Bugs And Questions That Don't Deserve Their Own Thread Thread
by Aiosian_Doctor_Xenox Yesterday at 5:34 pm

» Concept Art Thread
by Aiosian_Doctor_Xenox Yesterday at 5:29 pm

» Biome List
by pentomid Yesterday at 3:53 pm

» Bilinguals wanted! Quiero personas bilingües! Je veux bilingues!
by Anagennesarcus Yesterday at 2:50 pm

» Aware Stage Combat
by Tritium Yesterday at 2:48 pm

» [Microbe] Implementing compound and agent clouds
by Tritium Yesterday at 1:15 pm

» Building Microbe Stage
by Nimbal Yesterday at 11:31 am

» Function Part Discussion
by Daniferrito Yesterday at 10:42 am

» Microbe Models/Images/Textures
by ~sciocont Yesterday at 10:02 am

» Revamping the Forum
by NickTheNick Yesterday at 12:15 am

» Idea: Local Multiplayer
by NickTheNick Yesterday at 12:11 am

» My Introduction
by NickTheNick Yesterday at 12:08 am

» Implementing Underwater Civilizations
by ~sciocont Mon Jun 17, 2013 2:32 pm

» Greetings!
by Thriving Cheese Mon Jun 17, 2013 10:48 am

» Concept Race
by EnergyKnife Sun Jun 16, 2013 9:39 pm

Share | .
 

 How Auto-Evo Will Work

View previous topic View next topic Go down 
AuthorMessage
roadkillguy
Experienced


Posts: 534
Reputation: 16
Join date: 2010-08-25
Age: 19
Location: Rhode Island

PostSubject: How Auto-Evo Will Work   Sun Jan 30, 2011 11:23 am

I'm pretty sure this is what we have so far. It combines elements of darwinianism as well as elements from Lamarckianism to create a changing environment within given boundaries.

~NICHES~

Auto-Evo will be based on biomes divided up into niches. Each niche will be a scripted class that contains it's dependency (I.E. What it eats or lives in), it's primary food source, the current organism filling that niche, the current population of that niche, a function that decides how well a creature fits that niche, and a function that decides the new population based on it's dependencies.

A dependency will usually be another niche. In the future, niches may be able to handle multiple dependencies, but for now they're only dependent on one. It could look something like this:

Code:
Niche * m_dependency;

It's c++ because I'm not sure what the scripting language is.


The primary food source will often be the same thing as it's dependency. It's here for the population deciding function.

Code:
Niche * m_primaryFoodSource;

I'm not sure if it should be a Niche or an Organism, but both will serve the same purpose.


The organism variable, is the current organism living in that niche.
Code:
Organism * m_currentOrganism;



Finally, the population variable is an integer representing how many of this species live in this niche.
Code:
int m_currentPopulation;



When we skip generations, we'll need a way to calculate the new population. This function can take into account the primary food source and dependency, or whatever it needs based on the niche, as well as how many years have passed.
Code:
int calculateNewPopulation(int _years)
{
    //DO STUFF HERE
    return m_dependency->m_currentPopulation/2;
}



When we need to calculate how well a creature fits, we'll use this function. It's probably the most important part of auto-evo and will require much tweaking. It returns a float from 0 to 1 that represents how well the creature fits.
Code:
float calculateFitness(Organism * _organism)
{
    float returnVal;
    if(_organism->canClimb)
    {
        returnVal += .5;
    }
    return returnVal;
}



If every niche follows this pattern, we can create an entire alien ecosystem very easily. It opens up the doors for creativity, while at the same time limiting organisms into their niches.


~BIOMES~


Basically, a biome is a collection of niches. It contains a list of dependencies for the niches to be fulfilled adequately, and the list of niches themselves.

When a biome is told to go to the next generation, it calculates the new population of all the niches by going up the food tree. We have to go from bottom to top due to the fact that populations depend on eachother.

Biomes will be spread around the planet using ecosystem brushes, and will vary from planet to planet based on sunlight level, climate, etc.


~NPC's~


During the course of the game, there will be other creatures besides the player's creature. These creatures will be randomly deviated every generation, and then compared with their current niche (See above). They will be kicked out or go extinct if they don't fit any other niches.

Once we can calculate fitness, auto evo with npc's is much easier.



~PUTTING IT ALL TOGETHER~


At the end of each generation, we need to randomly modify the NPC's and change the player's species based on what they choose. This would take into account the number of years skipped in between generations as well.

After the species change, we calculate how well all the species fit in with their niches. We then handle extinction, niche swapping, and possibly biome switching here. Creating new biomes will also be handled here, as we now have a bunch of random species to choose from that have the possibility of filling niches.

Now that we know the species in each niche, we calculate their populations from the base up.

The game then happily starts the next generation.




Assuming you read all of that, you may have noticed some holes. Here's some questions that still need to be answered.

Should an npc evolve to fill it's niche better? If so, when would it go extinct?
Will the player's creature be able to kick another species out during simulation?
Will the player be able to destroy a niche completely during simulation?
What happens when two creatures try to move into the same niche at the same time?
Could a biome be switched? If so, how?
How do we keep populations from remaining the same every generation? I.E. where do we introduce random deviations in population?


If you've thought of anything else that needs to be changed or added, please comment.


Last edited by roadkillguy on Thu Feb 03, 2011 8:45 pm; edited 6 times in total
Back to top Go down
View user profile
~sciocont
Overall Team Lead


Posts: 3276
Reputation: 102
Join date: 2010-07-06

PostSubject: Re: How Auto-Evo Will Work   Sun Jan 30, 2011 12:12 pm

This is really a good thread, and it will probably be stickied eventually. The code sieems quite simple and straightforward, though I'm not a coder, so I cant say too much about it.

However:

-I don't think we reached a consensus on Player evolution yet, so you shoudl probably leave that blank for now.

-Add in that Biomes will be determined/populated by ecosystem brushes (see PPG thread for details on those)

-Can you write code for the NPC mutation process I wrote?
Quote:
What if we could cut down on thenumber of mutations and the variables in the environment? Say each time a creature reproduces that you don't see, it produces three types of offspring that directly tweak one variable- one stays the same, one lowers the variable, one heightens the variable, and the computer randomly chooses between the three which one will survive? We could even cycle what type of variable is tweaked in between generations. This way, each species will have one variable change every generation, unless the computer decides to "split" a generation so that more species could evolve. That would only rely on code for determining
A:which sections of share code can be modified (which doesn't even have to work very well, really)
B:dice roll (which one will survive)
C: cycles of modification and splitting

I know it's still pretty complex due to the sheer number of creatures, but we could also cycle what's getting evolved. We could retire a species from evolution for a while, then make it go through a rapid series of generations with mutations, simulating punctuated equilibrium.


-I'm not sure what's meant by "parts" since in the OE, there really aren't "parts".


Questions at the bottom:

What happens when a creature doesn't fit it's niche?
-Most likely, it will be given a mutation. with that mutation, It can either
--evolve to better fit its own niche
--evolve to fit a different niche

--regress backint othe last role that fit its niche. Alligators and sharks haven't changed much for hundreds of millions of years because they are almost perfectly adapted to their niches.

Should an npc evolve to be better within it's niche? If so, when would it go extinct?
-"better"? do you mean to fit its niche better? If mutations are basically random, then we can't stop it from doing so.

Will the player's creature be able to kick another species out during simulation?
-Tough question.

Will the player be able to destroy a niche completely during simulation?
-Again, difficult
What happens when two creatures try to move into the same niche at the same time?
- I believe we went over this on the last thread.
Quote:
If two species try to inhabit the same niche, we could easily handle it arbitrarily, but again, that would really just push one out of the niche. If a species can adapt for another niche, it will survive.

We can simply do a diceroll, and one gets pushed out, then we return to the processes I mentioned in the first question.
Could a biome be switched? If so, how?
Yes, Biomes shoudl definitely be able to change. This probably would apply more to the planet as a whole and its systems. Again, I'd say an arbitrary mechanic decides when a biome starts to change into another.

_________________
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
roadkillguy
Experienced


Posts: 534
Reputation: 16
Join date: 2010-08-25
Age: 19
Location: Rhode Island

PostSubject: Re: How Auto-Evo Will Work   Sun Jan 30, 2011 12:31 pm

NPC randomization is tricky.

I'm afraid that randomizing NPC's too much will cause them to fall out of their niche and go extinct. In evolution, animals tend to evolve to fit their niche, and that is why they still exist today.

Also, the code you specified doesn't exactly work in c++. Variable variables are easier to do in javascript, because you can get the variable by a string.

For example:
Code:
this["var1"] += 1;


Would work.

A randomization function that takes into account an amount (say a float) would be easier to hard code into the engine.

Code:
Organism animal1;
animal1.randomize(.1)


This would go through and randomize it, but until we have an actual creature class I can't do anything.
Back to top Go down
View user profile
~sciocont
Overall Team Lead


Posts: 3276
Reputation: 102
Join date: 2010-07-06

PostSubject: Re: How Auto-Evo Will Work   Sun Jan 30, 2011 12:44 pm

All right.

_________________
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
roadkillguy
Experienced


Posts: 534
Reputation: 16
Join date: 2010-08-25
Age: 19
Location: Rhode Island

PostSubject: Re: How Auto-Evo Will Work   Sun Jan 30, 2011 7:32 pm

I just had a thought.

The populations will all be calculated from the producer's energy source. There need to be other ways to change the populations, otherwise the organisms' populations will be the same EVERY generation.

How could we include simulation population into the population calculation algorithms?
Back to top Go down
View user profile
~sciocont
Overall Team Lead


Posts: 3276
Reputation: 102
Join date: 2010-07-06

PostSubject: Re: How Auto-Evo Will Work   Sun Jan 30, 2011 8:21 pm

roadkillguy wrote:
I just had a thought.

The populations will all be calculated from the producer's energy source. There need to be other ways to change the populations, otherwise the organisms' populations will be the same EVERY generation.

How could we include simulation population into the population calculation algorithms?

First off, the levels of energy in trophic levls are very far apart.
Energy Transfer
Ecological Efficiency
Basically, this means that only about 10% of the energy from a lower level can possibly get to the level that's above the level directly above it. So the gap between trophic levels would be about 80%, I would guess. This means that the lowest level, autotrophs needs to contain 5x more organisms than the second level, which needs to contain 5x more organisms than the third level, etc. The max number of trophic levels in a stable environment is 5 or 6.

Now, we can probably handle fluctuation through an arbitrary mechanic, but it would have to build from the ground up. The bottom level's fluctuation would determine the possible fluctuations of the level above it, ans so on up the chain.

_________________
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
roadkillguy
Experienced


Posts: 534
Reputation: 16
Join date: 2010-08-25
Age: 19
Location: Rhode Island

PostSubject: Re: How Auto-Evo Will Work   Sun Jan 30, 2011 10:12 pm

So basically a random number in the calculatePopulation() function equation?

I would think people would want more things included.

Come to think of it that makes sense. Oh well. Very Happy
Back to top Go down
View user profile
Tenebrarum
Society Team Lead


Posts: 1179
Reputation: 29
Join date: 2010-10-01
Age: 19
Location: ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn

PostSubject: Re: How Auto-Evo Will Work   Mon Jan 31, 2011 4:25 pm

roadkillguy wrote:
I would think people would want more things included.

Evolution is on of the simplest aspects of reality that there exists. It's incredibly self explanitory. Complexity is found in sentience.
Back to top Go down
View user profile
~sciocont
Overall Team Lead


Posts: 3276
Reputation: 102
Join date: 2010-07-06

PostSubject: Re: How Auto-Evo Will Work   Mon Jan 31, 2011 4:29 pm

Tenebrarum wrote:
roadkillguy wrote:
I would think people would want more things included.

Evolution is on of the simplest aspects of reality that there exists. It's incredibly self explanitory. Complexity is found in sentience.

It's an extremely simple concept, altough how it actually happens gets quite complex sometimes. However, we want to keep it as simple as possible, so we go with the simplest effective way.

_________________
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
DawnTyrantEo



Posts: 4
Reputation: 0
Join date: 2013-04-02

PostSubject: Re: How Auto-Evo Will Work   Tue Apr 02, 2013 12:59 pm

FFFFFFFFFFFFFFFFFFFF- I just made an extremely long post, and then accidentally refreshed the page, losing it. The gist of it, however, was:

Each organism has an amount, formed by using size multiplied by population. This forms the biomass.

The biomass must take enough food from other sources to reduce it to 0. All food source intakes can be increased by a margin of 5%, if you can't find enough food from another source.

Fitness is lost if your final score is above or below 0 (no one prospers from over-eating!).

If your fitness is too low, your species dies out.

These amounts (trying to get your score as close to a set number as possible) can be applied to other things as well. Polar environments could be trying to get a score of 0 for temperature, while scorching places could require 500.

Specialisation can either move fitness directly (in the case of non-competitive things, like temperature fitness) or (like with food) help you hold onto a resource better so you don't lose fitness from having competition. Each generation of species can have populations within them that have different requirements.

For example, a population of shrew is trying to get 10% of food from small underwater organisms and 90% from small land organisms, but is actually eating 15% of underwater organisms and is losing fitness by getting 85% of small land organisms, meaning the computer decides for it to specialise in getting small underwater organisms. Another place has 10% hot and 90% cold, meaning the shrew needs a score of 20 in temperature, while is trying to get 50.

In the next generation, it changes so that the first shrew is trying to get a score of 15% underwater organisms and 85% land organisms, and the second one is trying to get a score of 20.

Something like this would mean the computer dumps disadvantageous parts, while hoards advantageous parts.
Back to top Go down
View user profile
untrustedlife
Learner


Posts: 190
Reputation: 13
Join date: 2013-03-26
Location: [Classified]

PostSubject: Re: How Auto-Evo Will Work   Tue Apr 02, 2013 7:08 pm

DawnTyrantEo wrote:
A-lot of text

You can be banned for posting on posts as old as this, we have had this planned out for years (It is called necroing) read the forum rules. Evil or Very Mad

Can someone lock this?


Last edited by untrustedlife on Tue Apr 02, 2013 7:10 pm; edited 1 time in total (Reason for editing : Ask for someone to lock the post)
Back to top Go down
View user profile
~sciocont
Overall Team Lead


Posts: 3276
Reputation: 102
Join date: 2010-07-06

PostSubject: Re: How Auto-Evo Will Work   Tue Apr 02, 2013 7:11 pm

untrustedlife wrote:
DawnTyrantEo wrote:
A-lot of text

You can be banned for posting on posts as old as this, we have had this planned out for years (It is called necroing) read the forum rules. Evil or Very Mad

Can someone lock this?

He won't be banned, it's just not a generally favorable idea. If I didn't want anyone to ever post on this, I would have locked it.

_________________
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
Learner


Posts: 190
Reputation: 13
Join date: 2013-03-26
Location: [Classified]

PostSubject: Re: How Auto-Evo Will Work   Tue Apr 02, 2013 7:12 pm

~sciocont wrote:
untrustedlife wrote:
DawnTyrantEo wrote:
A-lot of text

You can be banned for posting on posts as old as this, we have had this planned out for years (It is called necroing) read the forum rules. Evil or Very Mad

Can someone lock this?

He won't be banned, it's just not a generally favorable idea. If I didn't want anyone to ever post on this, I would have locked it.


Oh, ok sorry /: (I'm only trying to help enforce things, i feel like an idiot now Embarassed )
Back to top Go down
View user profile
DawnTyrantEo



Posts: 4
Reputation: 0
Join date: 2013-04-02

PostSubject: Re: How Auto-Evo Will Work   Wed Apr 03, 2013 3:36 am

Well that was an inactive forum then.

I just moved onto this topic after reading the other one, which had someone posting in it on that day. Guess someone had necro'd that other one as well.

Dun worry, necros get annoying anyway. In one of my first forums, I think I sometimes looked at topics from the back, and just necro'd EVERYTHING....
Back to top Go down
View user profile
 

How Auto-Evo Will Work

View previous topic View next topic Back to top 
Page 1 of 1

 Similar topics

-
» Auto Patcher for eXtremeWLBot
» Ghost Auto Ban Bot v1 + ChatBox
» WPEPRO - WpeSpy.dll Auto Name Changer
» Tibia Auto Alternative made ​​by Fan
» Grand Theft Auto: San Andreas [PC-Crack]

Permissions in this forum:You cannot reply to topics in this forum
Thrive Game Development :: Development :: Programming :: Auto-Evo-