Code center > Suggestions

What should vegs not be allowed to do?

(1/4) > >>

EricL:
I can make some significant performance improvements to the system if we restrict what veggies are allowed to do.  For example, if we say veggies can't see, that would be huge.   I can save the cycles used for vision (which are quite expensive and highly influenced by clumping) and populatuing the refvars for all veggies.  I know most veggies don't have genes to see, but it doens't matter, the program doesn't know this.  The way it's architected, things like eye values and refvars get calculated whether the bot uses them or not.  If I could assume - rather, if I could enforce that veggies can't see, I could avoid this almsot always unessessary work and speed up the whole program.  Sims with lots of veggies would see a marked perfromance improvement since whole sections of the code would not need to execute for a significant percentage of the bots.

There are other possibilites.  We might decide that veggies can't move on their own, or can't initiate tie formation, or can't shoot anything but waste and poison or are immune to virus and venom.  The more we restrict, the more I can speed things up.

Now, before we get crazy, we should think about how much we want to allow/enable complex evolved or designed veggies.  I can imagine large vine forests of tie connected veggies.  I can imagine venus fly traps.  I can image veggies wanting to move into position to form complex structures like leaves and branches (though perhaps we coudl decide to restrict them to doing so only via tie length and torque operations and not via .up, .dn. etc.).  

We should also not forget about viruses, etc.  Do we want veggies to be able to catch animal viruses? If so, and we restrict some things like vision or movement, then certain viruses won't work even if veggies can catch them....

Anyway, I'm interested in input.   At one end of the spectrum, if we really restrict veggies, then sims with many many thousands of veggies might start to become very feasable and fast since veggiess would be so cheap w.r.t. cycles.  I can imagine lady bug bots eating their way and burrowing through a sim jammed packed with tens of thousands of tiny veggies... But it might also make veggies pretty simplisitc and unable to evolve or be designed to do much of interest.  We are at the other end of the spectrum currently - veggies can do everything other bots can do and more (more because they can get nrg direct from the sun and get magically repopulated by the system).

So, what do people want?  Let me know.

Anonomous Guest Person:
I personally want to blur the lines between veggies and nonveggies.

How I want it to work is... well basically veggies'll be able to create a new substance that'll gather nrg for them.

I'd like this new substance to add to mass, and it'd basically be used instead of the bot's Body as far as gathering nrg would be concerned.

We could call it photo!

Er, but anyway... this new substance would basically be an alternative Body for plants. Preferably, death checks that occur when Body reaches 0 will be changed so that only when the bot has 0 Body and Photo will it die.

And of course the current system can be changed so that plants get a small amount of nrg put into Photo automatically, and plants would start with 1000 photo instead of 1000 body.

The benefit of Photo or Body would decrease if the bot doesn't have a pure amount of either, though by what amount I'm unsure... possibly the amount could be multiplied by the percent... for example if you have 1000 Photo and 1000 Body, it'd be closer to like having 500 of each, and thus would be 1/4th as cost efficient then specializing. I think we should be pretty cruel to bots who like to be jack of all trades like that, else they could too easily become superbots and basically pwn everything.

Of course, this also means pure plants would SUCK at combat that relies on body for effectiveness, which would balance out certain things, especially bots that transcend their flat limitations by reproducing through viruses.

But that's all just my off-topic oppinion, perhaps I should make a new topic for it all!

Anyway back to on-topic... isn't there a currently used system which checks to see if the bot is using any of it's eyes at all, and if not then it simply doesn't calculate that information? If not I say implement that. It'll be a very small bit more memory taxing, but if done in a nice, complicated boolean bitwise level type way it wouldn't cost that much... just ten boolean variables: one for each eye, and one to see if anything's being used. Of course, ref variables will be counted into eye5.

And if anyone complains about blind bots incapable of having their sight being read by other bots, we could just say that the presence or lack of .eye# sysvars are a flat way of determining whether the bot actually HAS eyes or not.

Numsgil:
At one point there was a check to see if a bot ever tried to read from any of the eyes.  If it didn't, the eyes weren't turned on.

I removed it at one point when I redesigned the vision code, but it should be back in now.  If it's not, that's a problem.  The C++ code has it, that would be a good source to see how it works.  Basically you just need to update it in the DNA parsing if any of the eyes are ever read from.

Realistically I agree with AGP, the line between veggy and bot needs to be vaguer, not more enforced.  Restricting veggies outright is a step in the wrong direction.

EricL:
It took me a while to find it, but the current code does have a check to see if a genome has any eye sysvars.  If it doesn't, then some of the expensive stuff is bypassed.  But if a veggie mutates to have an single eye statement, then all the same work is done even if no code uses it.

There are probably some similar perf impovements I can make where I assess the genome and don't do some stuff if the genome doesn't have the code to do it.  Such changes are neutral w.r.t. veggy/non veggie philosophy.  Won't be as good as if we could restrict veggy capabilities, but will be some perf improvements, maybe.

I need to do some further thinking about veggy philosophy.  On the one hand I agree with both of you.  On the other, there is a lot of work being done today in the code that isn't necessary in most sims.....  Hmmmm.  I'll muse on it.

Numsgil:
We could add an idleness check.  If a bot doesn't reference an eye in X many cycles, the eyes turn off again.

I'm mostly interested in the idea I've had of a veggy "mask".  A bot would tie to a veggy and have the veggy perform all its actions, including seeing, feeding, moving, etc. while it looks in the opposite direction and protects the backside.  Most bots it would hunt wouldn't be prepared for a predatory veggy.

So long as veggies can have various skills "switched on" I'm okay if they "atrophy" over time.

Navigation

[0] Message Index

[#] Next page

Go to full version