Author Topic: Internet mode  (Read 4061 times)

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Internet mode
« on: September 23, 2007, 10:38:10 AM »
At the moment invisible teleporters scoop up unsuspecting bots and zap them to wherever the teleporter leads. Bots don't choose to go through the teleporter, and don't have any time to prepare for what might be waiting for them on the other side.

Should bots be able to see or sense the teleporter?

I imagine bots building up on energy, body, shell and poison etc. and then heading off into sims unknown. Or a pack of bots tieing together and entering the teleporter voluntarily as a group.

When bots teleport into sims they get randomly placed on the field. Should there be an "in" teleporter, or should bots coming back from other sims come back out of the single teleporter?

How about a pack of bots forming a 'bridgehead' around the teleporter and waiting for further reinforcements before launching an attack on the sim.

Should there be some sort of system for bots to affect where they end up when they make a journey through the teleporter? Or a way to find the 'home sim' when in another sim?
(although with the current system that would be impossible, right?)

Any other ideas?

@ Eric - what are your plans for internet mode?
« Last Edit: September 23, 2007, 10:39:46 AM by Elite »

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
Internet mode
« Reply #1 on: September 23, 2007, 10:56:53 AM »
Quote from: Elite
At the moment invisible teleporters scoop up unsuspecting bots and zap them to wherever the teleporter leads. Bots don't choose to go through the teleporter, and don't have any time to prepare for what might be waiting for them on the other side.

Should bots be able to see or sense the teleporter?

I imagine bots building up on energy, body, shell and poison etc. and then heading off into sims unknown. Or a pack of bots tieing together and entering the teleporter voluntarily as a group.

A bot smart enought to pack itself with body and  shell, just before something like it, got to see that one.

Quote
When bots teleport into sims they get randomly placed on the field. Should there be an "in" teleporter, or should bots coming back from other sims come back out of the single teleporter?

How about a pack of bots forming a 'bridgehead' around the teleporter and waiting for further reinforcements before launching an attack on the sim.

Attacking the sim, this could just cut off diversity, you can have serious have a problem when there are 20 or 30 preditors at desame time attacking the sim, I have had it multiple huge multibots could conquer a small sim pretty fast, I more like the idea of diversity

Quote
Should there be some sort of system for bots to affect where they end up when they make a journey through the teleporter? Or a way to find the 'home sim' when in another sim?
(although with the current system that would be impossible, right?)

Eh, why I looks to me if the bot has come in another sim, it's now his new world.

Quote
Any other ideas?

If it is possible, I'd like to see the sim-graphics of others.
Oh my god, who the hell cares.

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Internet mode
« Reply #2 on: September 23, 2007, 11:52:55 AM »
Quote from: Peter
Attacking the sim, this could just cut off diversity, you can have serious have a problem when there are 20 or 30 preditors at desame time attacking the sim, I have had it multiple huge multibots could conquer a small sim pretty fast, I more like the idea of diversity
Diversity is sort of the point. At the moment due to random placement sims get homogenized pretty quick, and bots entering a crowded are automatically outflanked by other bots.

If there were a dedicated "in" teleporter (or more than one), attacking bots could set up their own territories near the teleporter where they can survive as a high-density group, before staking out territories further into the sim as their population grows. Territorial bots like this (and antbots) have been made before.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Internet mode
« Reply #3 on: September 23, 2007, 12:47:43 PM »
So, I stole the concept of Teleporters from Microsoft's Terrarium, which was primarily a way to get people excited about learning C# and .NET.  People ran the Terrarium app on their machine and authored creatures in C# that competed against others.  A creature was essentially a C# program that could be safely executed on other machines with restrictions imposed by a .NET sandbox.  The sim program displayed the environment and creatures in a 2D world similar to DB.  When they ran internet mode, creatures teleported in and out to other machines peer-to-peer using a server based location service.  All the organisms were hand coded.  There was no mutation or evolution unless you built it into your organism yourself.

The Terrarium guys hid the teleporter very delibertly.  They wanted to make the bar for storming other sims very high.  Now, the senses a Terrarium creature had available to them were a little more high level than DB - instead of physical eyes, creatures were given an automatically updated array of all the other creatures around them with refvar equivalent info for each plus distances and such every cycle.  This approach focused the authored code more on creature behaviour than on interpreting senses.  One has to write a lot of bot DNA in DB to look around and keep a high resolution list of all the bots around them.  Never been done to my knowledge.  Takes a bunch of cycles, narrowing eye widths, spinning, etc..   Not so in Terrarium.  So, it was easier in Terrarium to write creature code that tracked everything it could see over time, cycle to cycle and did stuff based on that as creature authors had so much more info provided to them magically each cycle.   Even though it was not evolved, you saw some pretty cool anticiaptory behaviour w.r.t. anticipation of other's movements, fleeing, hearding, attacking, coordinating, hiding behind plants and so on.  The bar for writing a creature that could survive even a few thousand cycles got pretty high over time since all the succesful creatures had super sophisticated logic for threat and prey determination, how much nrg to use to fight or flee, whether it was worth it or not based on the other's nrg levels and so on.  You didn't fight if you were unlikly to win.  You fled to fight another day and much code was devoted to makign this determination.  Would you win?  Should you fight or flee?  What does it cost to flee and how far and will you be chased?  That kind of thing.    

But that said, a Terrarium creature's code was not that much more higher level than DB bot DNA.  And in Terrarium, people were able and did indeed build hand-authored organisms that could locate and storm the invisible teleporter.  They did this by keeping track of the creatures around them and watching when organisms disappearred that should not have I.e. their nrg level was too high for them to have starved that cycle, they weren't being attacked and so on.

Now, I should point out here that in Terrarium and DB, there is no gaurentee that two bots going through a telepoter right after each other end up in the same destination sim.  As the number of sims in Internet mode increases, this probability declines.  But bots can still play the probablities to their advantage.

As far as the meat of your question, I have no philosophical problem making teleporters visible.  DB is not Terrarium.  It would not even be that much work to do so.  I will say though that as it is, invisible randomly moving telporters favor multibots or at least single bots that form clusters for periods of time even if they can't see the teleporter.  Probability will favor them since they will occasionally get teleported as a cluster and a cluster (up to 50) is guarrenteed to arrive all together in the same sim.  They can then split apart and fight as individuals or not.  Thus bots can do things today to increase their chances of a successful en-mass attack on another sim even without teleporters being visible.  The .totalmyspecies and .totalbots sysvars can easily be used to know when you have conqerred a sim or when you've just been teleported somewhere where you are now in the minority.  Changing behaviour accordingly - e.g. to form clusters or not or some other behaviour - based on this should be easy.

I do think that while I'm okay with making the outbound teleporter visible or easier to find, I don't think I like inbound teleporters that are visible, fixed or don't randomly distribute incomers as this would make it too easy to defend a sim from incursions.   Terrarium worked pretty much the same way I've coded it for DB as far as random dispersal of incomers, though the radius of random materialization around the telepoter was perhaps smaller than the entire field as it is now in DB.  I could narrow this some so that incomers had a higher priority of finding others that teleported in at about the same time, but I would not want to make this too small lest it be too easily defended.

I could make private teleporters work over the internet.  That way, if two or N people wanted to connect their internet sims with fixed telporters that did not randomly distribute, they certainly could, instead of or in addition to the internet mode teleporter.

As far as finding their "home" sim goes, we need to discuss what "home" means.  Physics I was built for?  Environmental elements I recognize and was built to leverage?  I.e. shapes with defensable cracks to hide in?  It would not be difficult to allow a bot to know when it was in the sim it's ancestors were initially released in.  But again, things like .totalmyspecies can serve today as a poor man's way to change behaviour based upon relative population in a sim.   Perhaps a better strategy is to provide a little more global info to bots so they can perhaps guage such things as veggy density or morphological costs in the sim.  If forming a tie in one sim costs nothing and in another costs 100, well, perhaps bots should have a way to know that so they can change their behaivour accordingly.

My plans for internet mode are the following:

In the near term, say the next month or so, I want to finish 2.44 and release it.  This means getting internet mode to a stable point with a solid, consistant, core set of features that work well.  Mostly, this is plumbing stuff.  We need to move to a different FTP server or perhaps have the ability for users to override the hardcoded one so when we do move, peopel don't have to rev the exe (though I don't plan to go anywhere).  Not sure I will test full on private internet modes for 2.44, but I want to do something here.   Similarly, there are some cheats that need cleaning up.  For example, virus immune bots should not be teleported, internet telporter properties should not be changable, etc.   I think I'll leave the Disable Mutation option enabled.  Mutating can be seen as an advantage or not and bot authors can choose to release their bots with or without the ability to mutate.   There are some more internet mode graphs I want to add, including population of each sim but I don't want to get too crazy here.  It won't scale for one thing and part of me thinks that other sims should be a mystery at a certain level.   Part of the fun.  Then there are some other little tweaks and bugs of course, but nothing too huge.  I do like Shvarz's idea of making Intenet mode the default for first time newbie start ups, perhaps with nothing but some null plants.  But most of what 2.44 will be is complete today.

Longer term, I do want to provide for different internet modes.  People should be able to play in a multi-bot only mode or a no-mutation mode or a zerobot-descended only mode or a mode with enforced standardized sim settings and costs.  That kind of thing.  But I agree with Nums that a single mode everybody plays in should be the focus in the near tem.  I also want to tie things into the web site better so its easy to see who is on top in what mode for how long at what population and so on.  We could run weekend contests, etc.  Then I think I'll go back to adding generalized environmental richness for awhile e.g. shapes that bots can break apart, physics and costs that can vary by sim region, egrid stuff, lakes and rivers, rocks and sand.  Anything we do that enriches a stand alone sim will also enrich internet mode.  

And of course, suggestions and feature requests as always where reasonable and feasable...  
« Last Edit: September 23, 2007, 01:17:49 PM by EricL »
Many beers....

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
Internet mode
« Reply #4 on: September 23, 2007, 12:58:18 PM »
Quote from: Elite
Quote from: Peter
Attacking the sim, this could just cut off diversity, you can have serious have a problem when there are 20 or 30 preditors at desame time attacking the sim, I have had it multiple huge multibots could conquer a small sim pretty fast, I more like the idea of diversity
Diversity is sort of the point. At the moment due to random placement sims get homogenized pretty quick, and bots entering a crowded are automatically outflanked by other bots.

If there were a dedicated "in" teleporter (or more than one), attacking bots could set up their own territories near the teleporter where they can survive as a high-density group, before staking out territories further into the sim as their population grows. Territorial bots like this (and antbots) have been made before.

Most bots who get in a sim are often outflanked, I believe the incoming bots are something like a test for the original, not beating them means you haven't evolved properly, and the victor gets the sim.

It happens often enought that a sim has been taken by another specie, in this internet mode multiply for example kicked out preditor7 out of two of the three sims, after that, those sims where taken back by the the preditor in the third sim, and after that multiply where for a big part extinct, there wheren't many left, my sim was also conquered by preditor(where multiply). Multiply came fast to a big population then falling very fast to almost nothing. You say most bots get automatically outflanked by the orginal bots. I am not so very sure.
War between multiply and preditor was proving it.
« Last Edit: September 23, 2007, 12:59:25 PM by Peter »
Oh my god, who the hell cares.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Internet mode
« Reply #5 on: September 23, 2007, 07:09:29 PM »
There are alot of fundamental problems with the way DB handles vision at the moment that I'm not sure how to solve.  Teleporters, shapes, shots, and whatever else we add in the future maybe should be visible.  For something like terrarium that can use a foreach loop, an array of visible objects isn't a problem.

Without any looping capability, Darwinbots is sort of stuck with a simplistic vision model.  For the next version, I've been toying with a dedicated eye loop.  Some small codule that can foreach over everything visible to the bot, but I'm still working out the mechanics.

For the current VB version, I'm even less sure what to do.  I like the idea of having something like a vision array, with everything that's visible being listed, but I don't have any ideas about how it would work from the DNA.  Adding loops is definately not a road we want to go down.  It just leads to all sorts of issues with mutated loops that never end (do we want to have a hard coded looping limit?  Charge bots nrg for each loop?).

I think I can get a pseudo FTP set up using a PHP page.  I'm still researching how it would work, but I think it should be pretty easy to let a PHP page on the site upload and download files from a folder.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Internet mode
« Reply #6 on: September 23, 2007, 07:15:00 PM »
-------------------------------------
I kind of like the idea of a bot determining the physics and costs of the sim it's in when it arrives.  Fire a tie and see how much *.pain it causes.  Try moving around a little to check what the bang efficiency is set at.

Maybe a sysvar that lets a bot know when it's just been teleported.  Presumably it's a traumatic enough experience that the bot would know immediately what just happened.

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Internet mode
« Reply #7 on: September 24, 2007, 11:05:44 AM »
I just want to point out that I agree with the comment that Nums made somewhere else: At this point we don't have that many people running internet sims. It would be a good idea to have just one joined internet sim going and everyone defaulting to that one sim. If we ever come to a situation where we have a lot of computers running that one sim, then we can add more sims. I personally think that having uniform conditions would be the best.  We could discuss what kind of sims most people are interested in and then maybe vote. Or Eric could just pick the conditions he is interested in, since he's the one doing the work. I would be fine with either.

Also, I think the internet mode has a potential to make the whole DB experience much easier and fun for newbies.  If one could just start the program and it would automatically go into internet mode, download some default settings, download and populate the sim with species that are currently replicating on other people's computers, then that would be so much easier than trying to figure out "what this DB is all about?".  Heck, it would even make me run sims much more often!  Right now, when my sim crashes or I have to shut it down for some reason, I know it will take me some time and effort to start it back and the whole idea of "start a sim, pick species, pick settings, make sure conditions work, etc..." kinda puts me off. Besides, there is always a feeling that previous sim is "wasted" if I don't continue it, even if that sim turned out to be not very interesting. Having one joined internet mode, where I know that any CPU time that I give DB on my computer is being used towards a common goal - that would just feel good
« Last Edit: September 24, 2007, 11:45:41 AM by shvarz »
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
Internet mode
« Reply #8 on: September 24, 2007, 01:24:39 PM »
Quote from: shvarz
I just want to point out that I agree with the comment that Nums made somewhere else: At this point we don't have that many people running internet sims. It would be a good idea to have just one joined internet sim going and everyone defaulting to that one sim. If we ever come to a situation where we have a lot of computers running that one sim, then we can add more sims. I personally think that having uniform conditions would be the best.  We could discuss what kind of sims most people are interested in and then maybe vote. Or Eric could just pick the conditions he is interested in, since he's the one doing the work. I would be fine with either

Why in fact are different sims with desame conditions better than different sims with different conditions.

Quote
Also, I think the internet mode has a potential to make the whole DB experience much easier and fun for newbies.  If one could just start the program and it would automatically go into internet mode, download some default settings, download and populate the sim with species that are currently replicating on other people's computers, then that would be so much easier than trying to figure out "what this DB is all about?".
Yeah, like a new complete install pack with everything on it, direct start after downloading. Automaticly going to internet-mode, I am not in that one, I gues everyone has to choose what to do with darwinbots. It's easy enough with the F1 button.

About the easy going, I thought I'd had more trouble getting the connection working ,only having a little message from windows firewall, the modem(claiming network security) just let it right go in. Gotta check network security there for a second.  

Quote
Heck, it would even make me run sims much more often!  Right now, when my sim crashes or I have to shut it down for some reason, I know it will take me some time and effort to start it back and the whole idea of "start a sim, pick species, pick settings, make sure conditions work, etc..." kinda puts me off. Besides, there is always a feeling that previous sim is "wasted" if I don't continue it, even if that sim turned out to be not very interesting.Having one joined internet mode, where I know that any CPU time that I give DB on my computer is being used towards a common goal - that would just feel good
Aren't you eather way wasting CPU-time, it's not like you earning something with it.
Oh my god, who the hell cares.

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Internet mode
« Reply #9 on: September 24, 2007, 02:31:24 PM »
Quote
Why in fact are different sims with desame conditions better than different sims with different conditions.

I think they are better, because when conditions (in general) are the same, exchanged bots have a much higher probability of survival in the new place - they are adapted to these conditions. For me, the point of internet mode is to bridge multiple computers and apply their CPU resources toward a common goal of evolving bots. If you have 10 sims with conditions so different that no bot exchange between them is possible, then all you have is 10 unconnected sims - internet mode does not add anything to that.  Take the case of my own sim with Carnatus Orbis - the conditions are so different that none of your top bots were able to survive in it and my evolved Carnatus did not survive in your sims. So, even though I was running an internet sim, I was still as isolated from the community as before.

I am not saying that everyone should run exactly the same sim. We can allow some changes, sim size for example, but overall conditions should be similar enough so that bridging different sims is possible.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
Internet mode
« Reply #10 on: September 24, 2007, 02:49:55 PM »
What kind of settings do you have for having not a single influence from other sims, my sim has been conquered and reconquered several times altrough it doesn't happen too often. I gues most use settings that are'nt very different from F1 settings with sometimes some little chances to their own favor. I normal use F1 settings with a some higher cost for ties, the one who conquers it has to do it with shooting.
I like shooting  


Quote from EricL.
Quote
I generally have between three and five machines running mid sized fields and basically F1 league mode phsyics and costs with autocosts keeping the population at around 1000 bots each.

The normal settings EricL uses, EricL has something like half or three-quart of the sim-capacity.(speaking in bots), seemed a little important if you want to use general settings.
Oh my god, who the hell cares.

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
Internet mode
« Reply #11 on: September 24, 2007, 03:58:16 PM »
I think it would be easier to market DB starting with the zerosim project, "the search for -artificial- life" and so on. That one is more suitable to be run as a black box, even people may use it as a screen saver. If Eric's developments can control an internet zerosim, which needs the less human interference possible, then any other kind of sim will be a looser subset of that system.
Sometimes you win, and sometimes you lose...