Code center > Darwinbots Program Source Code
Chloroplasts
Peter:
Why is the metadata necessarily?
The mechanism that gives 'veggies' free nrg is not affected by the chloroplast system or is it?
Botsareus:
it is
Botsareus:
Hey Panda, I am going trough and adding your changes to the main code.
Panda:
--- Quote ---I think we should charge energy for ANY change in chloroplasts:
--- Code: ---I am thinking energy = energy - abs(old chloroplast value - new chloroplasts value ) / 4
--- End code ---
--- End quote ---
This is fine. :)
--- Quote ---I think we need a new sysvar called 'light' that will give the robot:
--- Code: ---light = Total robot area / Screen area * 32000
--- End code ---
So it knows when to start using less chloroplasts
--- End quote ---
I still disagree with this approach to it.
--- Quote ---
--- Quote ---Another problem, when the reproduction gene breaks, the energy feeding rate is high enough for most of them to survive.
--- End quote ---
I need to see this happen enough times before I figure out what to do with it.
--- End quote ---
Charging for chloroplasts and not having them as part of the DNA file and splitting them like we currently do is, from what I can see, the best way to do it.
--- Quote ---
--- Quote ---There won't be a cost if it's not daylight because it's written in that way. Unless there's not meant to be a cost overnight?
--- End quote ---
Plants simply go to sleep when its night time, they don't start messing with there chloroplast count, I think it should be ok. Especially if we need to add a cost for changing the amount of chloroplasts.
--- End quote ---
What I'm saying is, there is no upkeep cost for having chloroplasts during night.
--- Quote ---
--- Quote ---There's also a UI slider right now for feeding veggies that defaults to giving veggies 90% of the energy as nrg, and 10% of their nrg as the equivalent in body. You'll want to change that to be a slider between nrg and chloroplasts.
--- End quote ---
What if the robot has no chloroplasts? Now it will not get fed by body?
I also think we should mess with UI as little as possible, this one of the sliders I actually want to leave alone.
--- End quote ---
By shots do you mean? Otherwise they don't get fed by the simulation so of course they're not going to get any free body.
--- Quote ---
--- Quote ---It also means that the exponential growth of veggies is limited by the the time it takes to save up enough nrg to build more chloroplasts.
--- End quote ---
In my system robots do not lose chloroplasts, it is a static value.
--- End quote ---
I think he is saying that the cost for each chloroplast should increase so more nrg is needed for each chloroplast. I quite agree with this.
--- Quote ---
--- Quote ---I quite like the idea of this. It's a lot more work but it keeps the energy constant and competition up. It's quite a lot of work but I'm willing to do this.
--- End quote ---
We kinda ran out of control space in the options form :P
We can add another checkbox and do:
--- Code: ---1 / (total number of veggies) * incoming energy per cycle.
--- End code ---
I don't see a need for:
--- Code: ---veggy body / (total amount of body among all veggies) * incoming energy per cycle.
--- End code ---
because we have a way of giving every veggy X nrg for every 1000 body points it has, etc.
The only question(s) here is what will be the value for 'incoming energy per cycle' and where do we add a checkbox ?
edit:
On second thought, I am beginning to really dislike this approach, look at my last edit for this post.
--- End quote ---
This system is different because it keeps the incoming energy into the system constant (as long as there are veggies).
--- Quote ---
--- Quote ---
--- Quote ---When a bot divides, you split up its chloroplasts just like what happens with body right now.
--- End quote ---
I agree with this.
--- End quote ---
If chloroplasts are static this should not matter.
--- End quote ---
Why do they have to be static? I don't think this works in practice especially due to probelms already found in the simulation (such as the mass reproducing and surviving)
--- Quote ---
--- Quote ---Last, I wouldn't recommend trying to add new metadata to the DNA to represent chloroplasts. There are mechanisms in place already for nrg, body, venom, poison, shell, slime, etc., and there's no reason to have chloroplasts follow a different system. If you want to be able to save bots out in DNA form with the body, nrg, etc. set in the DNA, I think that's reasonable, but you should do that for all the substances, and it's an entirely different change from the chloroplasts. No need to conflate multiple features together.
--- End quote ---
Well, think about F1, now people will start loading in robots with like 32000 energy, slime, venum etc. That is giving the user way more power then they should have.
With chloroplasts it is a little different, I think the user should have control over this, it tells the system if he is designing a plant or not.
--- End quote ---
But couldn't you argue that if you wanted to develop a certain other type of robot then the metadata should be there for you to do that. Why are veggies any more important.
--- Quote ---
edit:
--- Quote ---In cases where you need a strict is veggy/is not veggy flag, like the per-veggy feeding method I mentioned earlier, you can simply check if they have any chloroplasts.
--- End quote ---
You just figured out a way for your own idea to fail. What if a robot(s) has very little chloroplasts? Now there is less and less energy avaialble in the system.
I understand your logic Numsgil, but I still think we should hard code the vegy distinction into the MetaData.
I am also envisioning an option box if you want to reset the robots that are veg to spawn with a default 16000 chloroplasts.
I am also envisioning a simulation where you load vegs with 16000 chloroplasts and non-vegs with the same amount and DNA to see if they can evolve to hunt.
Bottom line is,
I envision two tests for this system:
Test 1.) Can non-repopulating plants learn to eat?
Test 2.) Can eating robots become plants and completely replace repopulating robots with there own mutated versions?
Both of the above are very useful to me for evolving eco systems.
I envision a way to evolve the most effective self sustaining eco system and even distributed over internet mode with everyone running there own settings. My approach will involve extracting DNA and restarting the simulation, check out 'Botsareus's vision' on the wiki. Well it is more like a reality now, not just a vision. I just have to re-implement it.
--- End quote ---
I don't know why the old system that we had (with a few modifications to allow for an F1 mode that works) doesn't work like this? I thought it was a perfectly good system (and I knew others agreed with me).
Botsareus:
--- Quote ---I don't know why the old system that we had (with a few modifications to allow for an F1 mode that works) doesn't work like this? I thought it was a perfectly good system (and I knew others agreed with me).
--- End quote ---
I am just adding what I worked on for a good 2 years, it will be optional.
I need a way to generate DNA files that actually work, I figured out a way.
--- Quote ---not having them as part of the DNA file
--- End quote ---
I have spent 2 years how to make a robots DNA file reflect what the robot is currently doing when extracted from a simulation. I want to include chlroplasts as part of the DNA for two reasons:
1.) It will save exactly what the robot is doing
2.) I can have an entire working eco-system as DNA files.
This is getting stupid, I am acting like Botsareus from 6 years ago where I am just repeating myself and no one is comprehending anything I am saying. Can I just code this stuff in in peace plz?
--- Quote ---What I'm saying is, there is no upkeep cost for having chloroplasts during night.
--- End quote ---
True.
There is also no upkeep cost for pond mode on the bottom of the pond.
This is all by design.
--- Quote ---By shots do you mean? Otherwise they don't get fed by the simulation so of course they're not going to get any free body.
--- End quote ---
I want robots to be able to add to there body from the sun the way they do now artificially. I want to leave that slider alone. Let it be the way it is.
--- Quote ---his system is different because it keeps the incoming energy into the system constant (as long as there are veggies).
--- End quote ---
What will be our constant? How will it work with:
--- Code: --- Select Case SimOpts.VegFeedingMethod
Case 0 'per veg
Energy = tok * (1 - SimOpts.VegFeedingToBody)
body = (tok * SimOpts.VegFeedingToBody) / 10
Case 1 'per kilobody
Energy = tok * (1 - SimOpts.VegFeedingToBody) * rob(t).body / 1000
body = (tok * (SimOpts.VegFeedingToBody) * rob(t).body / 1000) / 10
Case 2 'quadratically based on body. Close to type 0 near 1000 body points, but quickly diverges at about 5K body points
tok = tok * ((rob(t).body ^ 2 * Constant) + (1 - Constant * 1000 * 1000))
Energy = tok * (1 - SimOpts.VegFeedingToBody)
body = (tok * SimOpts.VegFeedingToBody) / 10
End Select
rob(t).nrg = rob(t).nrg + Energy
rob(t).body = rob(t).body + body
--- End code ---
--- Quote ---Why do they have to be static? I don't think this works in practice especially due to probelms already found in the simulation (such as the mass reproducing and surviving)
--- End quote ---
I have to research further, let me grind trough your code and see what is going on for myself.
--- Quote ---But couldn't you argue that if you wanted to develop a certain other type of robot then the metadata should be there for you to do that. Why are veggies any more important.
--- End quote ---
I think it is not fear for people to be able to set some of these values, it makes the current league unusable and I have no base to test my robots on.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version