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 is 1 user online :: 0 Registered, 0 Hidden and 1 Guest :: 1 Bot 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
» 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
» A new round of Forum Revamps! by Oliveriver Wed May 20, 2015 11:32 am
|
|
| NPC Auto-Evo Thread | |
|
+20NickTheNick Zetal GamerXA tklarenb Dr_Chillgood GhengopelALPHA Redstar guitar999111 Seregon Tenebrarum Commander Keen ADMIN GalvinNerth US_of_Alaska roadkillguy Mysterious_Calligrapher AIs-null The Uteen Pezzalis ~sciocont 24 posters | |
Author | Message |
---|
Commander Keen Industrial Team Lead
Posts : 1123 Reputation : 36 Join date : 2010-07-23 Location : Czech Republic (not that anyone would know where it is...)
| Subject: Re: NPC Auto-Evo Thread Thu Jun 30, 2011 4:48 am | |
| More infuriating than ridiculous, but still. | |
| | | roadkillguy Experienced
Posts : 528 Reputation : 17 Join date : 2010-08-25 Age : 31 Location : Rhode Island
| Subject: Re: NPC Auto-Evo Thread Thu Jun 30, 2011 11:35 am | |
| Sure, why not. As we speak I'm writing a function that basically takes an organism, and places it in the appropriate niche. - Code:
-
Niche * Biome::checkOrganism(Organism * _organism) { for(int i = 0;i < m_nicheNum;i ++) //THIS MEANS GO THROUGH ALL THE NICHES { Niche * niche = m_nicheList[i]; //IGNORE THIS //NOW WHAT? } } Now what? We need some sort of unfitness score that tells us how unfit our current organism is for the current niche. We would then place the organism in the niche with the smallest unfit score. This is back to bashinerox's question: fitness = ? Basically, what exactly ARE the properties the niches describe, and HOW will we compare them to an organism?
Last edited by roadkillguy on Thu Jun 30, 2011 4:18 pm; edited 3 times in total | |
| | | ~sciocont Overall Team Lead
Posts : 3406 Reputation : 138 Join date : 2010-07-06
| Subject: Re: NPC Auto-Evo Thread Thu Jun 30, 2011 4:11 pm | |
| The problem with more than one mutation at once means that situations get very complex very fast. Adding in two mutations per generation could result in some extreme conflicts. What if the frog and the snake evolve at the same time? NOW, the chance for an arms race becomes much higher. | |
| | | roadkillguy Experienced
Posts : 528 Reputation : 17 Join date : 2010-08-25 Age : 31 Location : Rhode Island
| Subject: Re: NPC Auto-Evo Thread Thu Jun 30, 2011 4:14 pm | |
| What is your definition of an arms race? | |
| | | ~sciocont Overall Team Lead
Posts : 3406 Reputation : 138 Join date : 2010-07-06
| Subject: Re: NPC Auto-Evo Thread Thu Jun 30, 2011 6:43 pm | |
| - roadkillguy wrote:
- What is your definition of an arms race?
A long chain of evolution by only two or three species who all react to one another's mutations, shutting out progress for others. | |
| | | Tenebrarum Society Team Lead
Posts : 1179 Reputation : 32 Join date : 2010-10-01 Age : 31 Location : ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn
| Subject: Re: NPC Auto-Evo Thread Thu Jun 30, 2011 7:21 pm | |
| Solution to arms race: Arbitrarily stop it.
Guys, we are making the code here. We have control over this stuff. Just set it up so that if two or three organisms are getting all the mutations, just decrease the likelyhood of them getting the mutations next time round, to zero if nessicary.
Admitidly, this would presumably hurt their population, but they can always move.
And besides, we're just saying "mutations," not "adaptations." There's no garuntee that any mutation will be beneficial. Some may even be detrimental.
That brings up another problem: we still haven't descided how we're going to descide what works and what doesn't in terms of mutations outside of either lamarkian "pre-program EVERYTHING" or Darwinian "simulate EVERYTHING." | |
| | | roadkillguy Experienced
Posts : 528 Reputation : 17 Join date : 2010-08-25 Age : 31 Location : Rhode Island
| Subject: Re: NPC Auto-Evo Thread Thu Jun 30, 2011 8:03 pm | |
| So does this happen during a single generation? If do nothing was one of the random solutions, it would stop itself. It's just a matter of ending a recursive loop.
*ahem* fitness = ? | |
| | | Tenebrarum Society Team Lead
Posts : 1179 Reputation : 32 Join date : 2010-10-01 Age : 31 Location : ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn
| Subject: Re: NPC Auto-Evo Thread Thu Jun 30, 2011 8:13 pm | |
| - roadkillguy wrote:
- *ahem* fitness = ?
QF Belgiuming T We need to get on this guys. It's the only way to actually determine evolution. The way I see it, we need to run simulations. This is how all evolution sims work. There's no way around it. Now, we can do this in two ways I think. Either collect survival rates while the player is running around in-game, or run the numbers in the background at some point, without rendering the graphics/sounds. | |
| | | roadkillguy Experienced
Posts : 528 Reputation : 17 Join date : 2010-08-25 Age : 31 Location : Rhode Island
| Subject: Re: NPC Auto-Evo Thread Thu Jun 30, 2011 8:29 pm | |
| Apparently we've been building a bunch of preset biomes and their niches, and we can get organism data, so it's just a matter of comparison.
I just need to know what data we're comparing. I.E. Abilities such as walking, swimming, climbing or flying. (Or whatever else the niches can define)
| |
| | | ~sciocont Overall Team Lead
Posts : 3406 Reputation : 138 Join date : 2010-07-06
| Subject: Re: NPC Auto-Evo Thread Thu Jun 30, 2011 10:25 pm | |
| - roadkillguy wrote:
- Apparently we've been building a bunch of preset biomes and their niches, and we can get organism data, so it's just a matter of comparison.
I just need to know what data we're comparing. I.E. Abilities such as walking, swimming, climbing or flying. (Or whatever else the niches can define)
Ok, we can up the mutation count. It make things more complicated, but I guess not by too much, and you've shown there is a good reason to do so. You're completely right. We need to make a list of different traits that define niches. The way i think we should determine fitness is a simple system- if it works, we keep it. -As long as an org meets all of the requirements for its niche, it can stay there. -Specials like extra methods of movement, special abilities (poison, etc.) give it an advantage if its niche is challenged by another org -if an orgs niche is challenged, it is allowed a reaction mutation chance the same as any other org affected by another orgs mutation. | |
| | | roadkillguy Experienced
Posts : 528 Reputation : 17 Join date : 2010-08-25 Age : 31 Location : Rhode Island
| Subject: Re: NPC Auto-Evo Thread Thu Jun 30, 2011 10:38 pm | |
| So there should be a bonus attribute list, and a required attribute list.
We should make a list of possible attributes, and each niche needs to define a selection of those attributes as bonus or required. | |
| | | Mysterious_Calligrapher Biome Team Lead
Posts : 1034 Reputation : 26 Join date : 2010-11-26 Age : 32 Location : Earth, the solar system, the milky way...
| Subject: Re: NPC Auto-Evo Thread Fri Jul 01, 2011 11:09 am | |
| - roadkillguy wrote:
- So there should be a bonus attribute list, and a required attribute list.
We should make a list of possible attributes, and each niche needs to define a selection of those attributes as bonus or required. Been through that. Came up with the only way is to have a list of properties of an attribute, rather than required attributes per niche in a biome. Mostly because the first way is shorter. @ the current moment, we're working on simply gathering enough biomes to be able to cover all ranges of development, temperature/altitude and precipitation that the game can have. Meaning I haven't even started on niches yet. Figure out what we want to program, niche wise, and we'll toss the concept back and forth until something works. For now, I'm trying to figure out the minimum number of niches required for each sucession stage. (More can and will be attatched. So far, my min. requirements are Stage 1plant species min: 4 transient niches open min: 2 resident niches open herbivore min: 1 I still need to do some maths and toss this around until I figure out if this would work. I'm thinking that the [i]absolute[i] minimum number of plant and animal niches open per biome is going to have to be closer to 10 than seven in the end. | |
| | | roadkillguy Experienced
Posts : 528 Reputation : 17 Join date : 2010-08-25 Age : 31 Location : Rhode Island
| Subject: Re: NPC Auto-Evo Thread Fri Jul 01, 2011 1:08 pm | |
| This is what I have so far: - Code:
-
int main(int _argc, char ** _argv) { Biome * biome = new Biome(10, 10); //MAX 10 NICHES, MAX 10 MAX RESOURCES Niche * niche; niche = new Niche("Land Creature"); niche->addAttribute(ANIM_ATTRIB_CAN_WALK, true); //WALKING IS REQUIRED niche->addAttribute(ANIM_ATTRIB_CAN_SWIM, false); //SWIMMING IS A BONUS biome->addNiche(niche); niche2 = new Niche("Tree Dweller"); niche2->addAttribute(ANIM_ATTRIB_CAN_WALK, true); //WALKING IS REQUIRED niche2->addAttribute(ANIM_ATTRIB_CAN_CLIMB, true); //CLIMBING IS REQUIRED biome->addNiche(niche2); Organism * organism = new Organism("Walky"); organism->addAttribute(ANIM_ATTRIB_CAN_WALK); //CAN WALK biome->checkOrganism(organism); Organism * organism2 = new Organism("Amphibian"); organism2->addAttribute(ANIM_ATTRIB_CAN_WALK); //CAN WALK organism2->addAttribute(ANIM_ATTRIB_CAN_SWIM); //CAN SWIM biome->checkOrganism(organism2); Organism * organism3 = new Organism("Swimmy"); organism3->addAttribute(ANIM_ATTRIB_CAN_SWIM); //CAN SWIM biome->checkOrganism(organism3); delete biome; delete niche; delete niche2; delete organism; delete organism2; delete organism3; exit(0); } This is what it outputs: - Code:
-
Organism Walky (0x8f2c130) was added to niche Land Creature with a score of 0.5 Organism Amphibian (0x8f2c1b8) replaced organism Walky in niche Land Creature with a score of 0 Organism Walky (0x8f2c130) couldn't be added to any niche. Organism Swimmy (0x8f2c220) couldn't be added to any niche.
Thusly, because the niche Land Creature has a bonus attribute of swimming, Amphibian happened to be a better fit than Walky, who couldn't swim. (A lower score is better.) Walky is then checked again, and unfortunately cannot fit any more niches. Swimmy, not being able to walk nor climb, couldn't be added to any of this biome's niches. These attributes are very dynamic, I.E. they can be modified at any time, and the Niche Compare function will still compare them perfectly. It doesn't compare food types yet, so that's what I'll work on next. | |
| | | Mysterious_Calligrapher Biome Team Lead
Posts : 1034 Reputation : 26 Join date : 2010-11-26 Age : 32 Location : Earth, the solar system, the milky way...
| Subject: Re: NPC Auto-Evo Thread Fri Jul 01, 2011 1:50 pm | |
| What I understood of that, I loved, Roadkill. | |
| | | ~sciocont Overall Team Lead
Posts : 3406 Reputation : 138 Join date : 2010-07-06
| Subject: Re: NPC Auto-Evo Thread Fri Jul 01, 2011 4:28 pm | |
| I am liking this a lot. So, we're all clear on how this is going to work now? All we have to do is map out the niches for each biome, including all of their required attributes, then roadkill has the code for placement. | |
| | | roadkillguy Experienced
Posts : 528 Reputation : 17 Join date : 2010-08-25 Age : 31 Location : Rhode Island
| Subject: Re: NPC Auto-Evo Thread Fri Jul 01, 2011 6:41 pm | |
| - ~sciocont wrote:
- I am liking this a lot. So, we're all clear on how this is going to work now? All we have to do is map out the niches for each biome, including all of their required attributes, then roadkill has the code for placement.
Precisely. The code will add, replace, and remove organisms to make the best fit. Be sure to include a list of possible resources into each biome. (Rocks, streams, etc) | |
| | | ~sciocont Overall Team Lead
Posts : 3406 Reputation : 138 Join date : 2010-07-06
| Subject: Re: NPC Auto-Evo Thread Fri Jul 01, 2011 7:07 pm | |
| - roadkillguy wrote:
- ~sciocont wrote:
- I am liking this a lot. So, we're all clear on how this is going to work now? All we have to do is map out the niches for each biome, including all of their required attributes, then roadkill has the code for placement.
Precisely. The code will add, replace, and remove organisms to make the best fit. Be sure to include a list of possible resources into each biome. (Rocks, streams, etc) Ok, I'll do a mock-up of a mini biome. | |
| | | roadkillguy Experienced
Posts : 528 Reputation : 17 Join date : 2010-08-25 Age : 31 Location : Rhode Island
| Subject: Re: NPC Auto-Evo Thread Sat Jul 02, 2011 12:27 am | |
| Also, we may need to make a global (universal, in this case) compound list, depending on if we want that. (I believe that's the key to balancing any given biome, if it's done right) That way, plants wont just magically spawn unless the Biome contains the resources in the dirt and water, and a carnivore wont be able to move in without meat. The stage is then set for Mysterious Calligrapher's Biome Levels.
We may be able to get away with it for now, but it may become an issue in the future. | |
| | | The Uteen Sandbox Team Lead
Posts : 1476 Reputation : 70 Join date : 2010-07-06 Age : 28 Location : England, Virgo Supercluster
| Subject: Re: NPC Auto-Evo Thread Sat Jul 02, 2011 9:45 am | |
| I like the code for the niches, but while is is good for determining niches it looks as though we are going to get a load of organisms with a score of 0, or very close, and they'll just stay there. I know this isn't the code's fault, but how is this avoided? (If it needs to be, it seems to) | |
| | | roadkillguy Experienced
Posts : 528 Reputation : 17 Join date : 2010-08-25 Age : 31 Location : Rhode Island
| Subject: Re: NPC Auto-Evo Thread Sat Jul 02, 2011 12:44 pm | |
| More attributes, and food sources taken into account. Compounds would help too. The more we define a niche, the more the score can vary.
I've also made a discovery. While writing food comparison into the organism score function, I found that Niches needed to be able to depend on eachother. Niches also need to be able to depend on a resource, such as the ground (Plants eat dirt). Niches, inadvertently, are thus resources, specifically organisms, for their eating ability.
Niches = Organisms + required attributes + current organism (Which is kind of obvious, but I didn't intend for a Niche to be a derivative of class organism)
Often when coding lots of classes, logic will begin to sort itself out. (It's amazing, really) Just thought I'd share that.
Also, there seems to be an order to things. A herbivore will not be added until grass is there (he wont pass the niche test), so effectively the computer is telling us that grass comes before herbivores, and the evolution system works out great. I'll post more code when it's working. (Something's up) | |
| | | Mysterious_Calligrapher Biome Team Lead
Posts : 1034 Reputation : 26 Join date : 2010-11-26 Age : 32 Location : Earth, the solar system, the milky way...
| Subject: Re: NPC Auto-Evo Thread Sat Jul 02, 2011 5:39 pm | |
| ... I think you just read my science brain and translated it into codespeak. And I put up the first bare-bones biome system - Highly Arid, water resources pretty much negligible. Resources will be added to it later, but right now it's just a series of empty deserts. It's here, if anyone would like a look. Hopefully it's inteligible. (second post down.) | |
| | | ~sciocont Overall Team Lead
Posts : 3406 Reputation : 138 Join date : 2010-07-06
| Subject: Re: NPC Auto-Evo Thread Sun Jul 03, 2011 10:46 am | |
| - roadkillguy wrote:
- More attributes, and food sources taken into account. Compounds would help too. The more we define a niche, the more the score can vary.
I've also made a discovery. While writing food comparison into the organism score function, I found that Niches needed to be able to depend on eachother. Niches also need to be able to depend on a resource, such as the ground (Plants eat dirt). Niches, inadvertently, are thus resources, specifically organisms, for their eating ability.
Niches = Organisms + required attributes + current organism (Which is kind of obvious, but I didn't intend for a Niche to be a derivative of class organism)
Often when coding lots of classes, logic will begin to sort itself out. (It's amazing, really) Just thought I'd share that.
Also, there seems to be an order to things. A herbivore will not be added until grass is there (he wont pass the niche test), so effectively the computer is telling us that grass comes before herbivores, and the evolution system works out great. I'll post more code when it's working. (Something's up) That's brilliant! Everything is going well, I see. Yesterday I drew up a biome food web for us. It's a bit complicated even though it only has 17 species. However, It made me realize a few things. 1- We may need more attributes to define a niche so far I can only come up with size diet and movement type. I don't want our niches to become to exact, because that will stifle interesting evolution, but I don't want the definitions to be too simple. 2- The food web is sort of arbitrary... I really just put in random connections between the levels for what feeds on what. I know this is probably the only way to do it, but it still irks me. 3- We need to decide how many species max can be in a biome. The biome I created had 17, and I though of it as a plains type biome by the descriptions of the creatures. Plains would probably be a low stage 2 biome, so a high stage 3 (tropical rain forest) would have a lot more. Maybe 50 species? I've set up a new thread to deal with this. | |
| | | roadkillguy Experienced
Posts : 528 Reputation : 17 Join date : 2010-08-25 Age : 31 Location : Rhode Island
| Subject: Re: NPC Auto-Evo Thread Sun Jul 03, 2011 1:30 pm | |
| - sciocont wrote:
- 2- The food web is sort of arbitrary... I really just put in random connections between the levels for what feeds on what. I know this is probably the only way to do it, but it still irks me.
I don't think that matters. Some niche definitions might be a little too vague or too specific, but that's where we can fine tune the game. Some definitions of niches should also be required (I.E. you have to specify some minimum attributes for each niche) I would say: -Name -Size -Mass (I proposed that in the other thread so maybe not) -Breathable Atmosphere (Plants too?) -At least one other niche/resource to eat. (Maybe Atmosphere should play into this; I'm not sure how) | |
| | | ~sciocont Overall Team Lead
Posts : 3406 Reputation : 138 Join date : 2010-07-06
| Subject: Re: NPC Auto-Evo Thread Sun Jul 03, 2011 6:50 pm | |
| - roadkillguy wrote:
- sciocont wrote:
- 2- The food web is sort of arbitrary... I really just put in random connections between the levels for what feeds on what. I know this is probably the only way to do it, but it still irks me.
I don't think that matters. Some niche definitions might be a little too vague or too specific, but that's where we can fine tune the game.
Some definitions of niches should also be required (I.E. you have to specify some minimum attributes for each niche)
I would say: -Name -Size -Mass (I proposed that in the other thread so maybe not) -Breathable Atmosphere (Plants too?) -At least one other niche/resource to eat. (Maybe Atmosphere should play into this; I'm not sure how) What do you mean by minimum attributes? The definition for each niche is already the minimum required attributes. Decomposers and detrtitvores will not need anything to eat on the food chain, so they wiill play mostly the same role as autotrophs. | |
| | | roadkillguy Experienced
Posts : 528 Reputation : 17 Join date : 2010-08-25 Age : 31 Location : Rhode Island
| Subject: Re: NPC Auto-Evo Thread Mon Jul 04, 2011 12:36 am | |
| As in, whoever writes the niche could choose to specify more or less about the organism, but should have at least certain parameters. | |
| | | Sponsored content
| Subject: Re: NPC Auto-Evo Thread | |
| |
| | | | NPC Auto-Evo Thread | |
|
Similar topics | |
|
| Permissions in this forum: | You cannot reply to topics in this forum
| |
| |
| |