Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Jez

Pages: 1 ... 49 50 [51] 52 53
751
Simulation Emporium / Shapes and bots
« on: August 24, 2006, 07:16:01 AM »
V. nice, it is really cool to see positive mutations in an evo sim!

752
Off Topic / Happy Birthday Numsgil
« on: August 24, 2006, 07:13:27 AM »
 Happy Birthday Numsgil!

753
Biology / Max number of bots
« on: August 23, 2006, 01:37:16 PM »
Is there a max number of bots on screen or a max number for an individual species?

My latest bot stops feeding at about 2050 bots. It seems to reach about 2070 because it takes a little while for the last babies to be born.
Very strange, all the bots suddenly start ignoring all the veg. The veg, if it can find space, will carry on reproducing.

Don't see how it could be the bots code.

Just realised I had only tried under default conditions, tried again and the bot also does it if I double the size of the arena.
Didn't realise we had population control!  

754
Biology / Costs and energy usage.
« on: August 23, 2006, 01:24:43 PM »
Quote
I've been wondering about the default cost settings. How did you come up with those numbers as default values?

AFAIK default costs come from the first time PY created a new version of DB. The costs were, or were representitive of, the costs of the previous version by Carlos.

The idea was to keep the default costs the same each time so that you had a point to compare newer bots with older bots. It meant the leagues didn't have to be redone with each new version.

So yeah, they are pretty arbitary!

755
Suggestions / Eyes
« on: August 22, 2006, 03:31:20 PM »
Do you think that bots would benefit having their eyes changed a bit? The following quotes come from a previous discussion here:
Quote
What I can't do is mimic behaviour of simple things like fish because they have two eyes and bots don't. I can't mimic shoal behaviour for instance only mass following behaviour.
Quote
How about giving bots greater control over eyes, so that, for example, each refvar gets split into 1-9
So *.refeye9 would read back the eye reference of a bot in your eye9
Quote
What I was thinking when I wrote that was more sort of two eyes and being able to choose the location that they are at. The difference between having eyes at side of head or on front of head style.
Quote
Maybe something similar to what I'm doing with ties. Have a command (switcheye or something) that changes which eye has the "focus", and as such changes the info read from the refvars during DNA execution. You could change your "focus" from eye5 to eye3 and back again in a single cycle.
The only possible issue is while this increases potential complexity (which is good) it decreases reaction time that bots have. Already bots can accomplish alot in a single cycle. The few cycles it takes to turn and "lock" onto an opponent are very important to the fitness landscape, and we should be careful before we change it.
Quote
Where the eye's overlap the animal has depth perception, where they can see with only one eye they have no depth perception but can ID objects.
That's what the bots are doing wrong isn't it! They have depth perception through the side eyes but can't ID.
Quote
If we remove the distance part of eye5 and require bots to triangulate the distance to other bots, these are the consequences as I see them.
1. We would need to add some trig functions. Perhaps map the usual 0-360 degrees and -1 to 1 of regular sin and cosine to 0-1256 and -1000 to 1000.
2. Things get more complex for the bots. Specifically finding the distance to the target becomes rather difficult. Finding the velocity even more so.
3. It may not be possible to tell the difference between a really big bot and a very close bot unless you form a multibot and use steroscopic vision.
4. Alot of old bots simply wouldn't work.
I would be willing to make this fundamental change as part of the feature set for 3.0, since upgrading the numbers gives us a legitimate reason not to support older bots  But it would be a huge change.

756
Off Topic / Behavior simulation
« on: August 22, 2006, 03:10:43 PM »
I wasn't thinking of removing the ability for depth perception in eye5 but these points:

Quote
2. Things get more complex for the bots. Specifically finding the distance to the target becomes rather difficult. Finding the velocity even more so.
3. It may not be possible to tell the difference between a really big bot and a very close bot unless you form a multibot and use stereoscopic vision.

Sound good!  

Seeing as the eyes don't overlap I imagine they would have a bit of a problem triangulating a targets position. Cool idea to force a two cell structure to get depth perception though.

You are right, anything done to change the way eye's work is going to have a major impact on the old bots. It's a pretty major game change as well really.

I will write a short summary of the ideas from this thread and put a poll in the suggestions forum to see if peeps are interested in changing the way eyes work.

757
Off Topic / Behavior simulation
« on: August 22, 2006, 07:57:50 AM »
Quote
The only possible issue is while this increases potential complexity (which is good) it decreases reaction time that bots have. Already bots can accomplish alot in a single cycle. The few cycles it takes to turn and "lock" onto an opponent are very important to the fitness landscape, and we should be careful before we change it.

I think any changes to eyes would have a dramatic affect on the survivability of the bots, eyes are very important in the scheme of evolution.

I was thinking about the picture here Eye placement and eyesight Where the eye's overlap the animal has depth perception, where they can see with only one eye they have no depth perception but can ID objects.

  There's a simple idea for you to program!  

That's what the bots are doing wrong isn't it! They have depth perception through the side eyes but can't ID. I think, (as a simpler change than above!) Bots should lose their ability to see distance, speed, maybe Ypos Xpos with their side eyes but gain the ability to ID objects with these eyes.

Serial numbers would come in useful then, quickly allowing you to see if eyes 1,2,3,4 are seeing the same bot, but that would give them a form of depth perception, after all any bot that fills all those eyes is probably not a million miles away!
Serial numbers also run into a problem if you think about how you are going to use them, you'd have to store information about the bot with each serial number in a memory location to access it later. That could quickly lead to a form of information overload and would probably be quite difficult to use well.

Hmm, OK, how about eye1,2,3,4 being seen as a single unit, the program works out the closest object being seen through those eyes and that is the only object you are allowed to ID? Maybe not.., the problem (for me) is how to replicate what the two eye's of mammals do using the 9 eyes of the bots.

I do so like the idea of changing eyes though!    

PS, just to keep up appearances of keeping to the topic...Bitozoa

758
Off Topic / Behavior simulation
« on: August 21, 2006, 04:55:03 PM »
What I was thinking when I wrote that was more sort of two eyes and being able to choose the location that they are at. The difference between having eyes at side of head or on front of head style.
Then again I suppose you could choose how many eyes you wanted and pay for the privilige.

I just have this idea that more eyes would give more possible variation in behaviour so anything extra in the eye department would be great.

759
F2 bots / Bubbles (F2)(Jez)-21.08.06
« on: August 21, 2006, 04:41:27 PM »
Code: [Select]
'I know, I know, but it's been 9 days since the last one!   This one has a useful venom/poison defence.

'Bubbles is a social hunter using a primitive form of communication to make up for its
'lack of spatial awareness. Bubbles follows the ancient "Path of Bubbles" which states
'that the shame of being poisoned or paralysed demands the sacred act of "Death by
'Baby!"
'To many Bubbles lead to disorientation though and some "Followers of the Bubble" may
'then become confused and unable to fufil their destiny.

def move 990
def bodya 989
def nrga 987
def nrgb 986
def bodyb 985

'ID gene - Endy
cond
*.robage 0 =
start
300 .bodya store
500 .nrga store
.thisgene .memloc store
100 .mkshell store
.tie inc
stop

'memloc check
cond
*.memloc .thisgene !=
start
.thisgene .memloc store
stop

'eye4
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.eye4 0 >
*.eye4 *.eye3 >=
*.eye4 *.eye2 >=
*.eye4 *.eye1 >=
*.eye4 *.eye6 >=
*.eye4 *.eye7 >=
*.eye4 *.eye8 >=
*.eye4 *.eye9 >=
start
*.aim 35 add .setaim store
stop

'eye6
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.eye6 0 >
*.eye6 *.eye4 >
*.eye6 *.eye7 >=
*.eye6 *.eye8 >=
*.eye6 *.eye9 >=
*.eye6 *.eye1 >=
*.eye6 *.eye2 >=
*.eye6 *.eye3 >=
start
*.aim -35 add .setaim store
stop

'eye3
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.eye3 0 >
*.eye3 *.eye4 >
*.eye3 *.eye6 >
*.eye3 *.eye2 >=
*.eye3 *.eye1 >=
*.eye3 *.eye7 >=
*.eye3 *.eye8 >=
*.eye3 *.eye9 >=
start
*.aim 70 add .setaim store
stop

'eye7
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye7 0 >
*.eye5 0 =
*.eye7 *.eye4 >
*.eye7 *.eye6 >
*.eye7 *.eye3 >
*.eye7 *.eye2 >=
*.eye7 *.eye1 >=
*.eye7 *.eye8 >=
*.eye7 *.eye9 >=
start
*.aim -70 add .setaim store
stop

'eye2
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye2 0 >
*.eye5 0 =
*.eye2 *.eye4 >
*.eye2 *.eye3 >
*.eye2 *.eye7 >
*.eye2 *.eye6 >
*.eye2 *.eye1 >=
*.eye2 *.eye9 >=
*.eye2 *.eye8 >=
start
*.aim 105 add .setaim store
stop

'eye8
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye8 0 >
*.eye5 0 =
*.eye8 *.eye2 >
*.eye8 *.eye3 >
*.eye8 *.eye4 >
*.eye8 *.eye7 >
*.eye8 *.eye6 >
*.eye8 *.eye1 >=
*.eye8 *.eye9 >=
start
*.aim -105 add .setaim store
stop

'eye1
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.eye1 0 >
*.eye1 *.eye2 >
*.eye1 *.eye3 >
*.eye1 *.eye4 >
*.eye1 *.eye6 >
*.eye1 *.eye7 >
*.eye1 *.eye8 >
*.eye1 *.eye9 >=
start
*.aim 140 add .setaim store
stop

'eye9
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.eye9 0 >
*.eye9 *.eye1 >
*.eye9 *.eye2 >
*.eye9 *.eye8 >
*.eye9 *.eye7 >
*.eye9 *.eye6 >
*.eye9 *.eye4 >
*.eye9 *.eye3 >
start
*.aim -140 add .setaim store
stop

'rotate if all eyes empty and not being shot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.eye4 0 =
*.eye3 0 =
*.eye2 0 =
*.eye1 0 =
*.eye6 0 =
*.eye7 0 =
*.eye8 0 =
*.eye9 0 =
*.shflav 0 =
*.shflav -2 = or
start
*.aim 280 add .setaim store
stop

'follow friend if not being shot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.in1 0 !=
*.in2 0 != or
*.memval *.genes =
*.refage 0 >
*.eye5 0 >
*.shflav 0 =
*.shflav -2 = or
start
*.in1 *.in2 angle .setaim store
*.in1 *.in2 dist 500 div *.maxvel mult *.refvel add 0 floor *.maxvel ceil .up store
*.veldx .sx store
stop

'avoid friend when not getting shot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.in1 0 =
*.in2 0 = and
*.memval *.genes =
*.refage 0 >
*.eye5 0 >
*.shflav 0 =
*.shflav -2 = or
start
*.refxpos *.refypos angle 280 add .setaim store
stop

'if see friend but getting shot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.in1 0 =
*.in2 0 = and
*.memval *.genes =
*.refage 0 >
*.eye5 0 >
*.shflav 0 !=
*.shflav -2 != and
start
*.shang .setaim store
0 .shflav store
-1 .shoot store
*.shang *.aim add .aimshoot store
stop

'all eyes empty but being shot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.eye4 0 =
*.eye3 0 =
*.eye2 0 =
*.eye1 0 =
*.eye6 0 =
*.eye7 0 =
*.eye8 0 =
*.eye9 0 =
*.shflav 0 !=
*.shflav -2 != and
start
*.shang .setaim store
0 .shflav store
-1 .shoot store
*.shang *.aim add .aimshoot store
stop

'follow friend if not being shot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.in1 0 !=
*.in2 0 != or
*.memval *.genes =
*.refage 0 >
*.eye5 0 >
*.shflav 0 =
*.shflav -2 = or
start
*.in1 *.in2 angle .setaim store
*.in1 *.in2 dist 500 div *.maxvel mult *.refvel add 0 floor *.maxvel ceil .up store
*.veldx .sx store
stop

'don't follow friend if getting shot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.in1 0 !=
*.in2 0 != or
*.memval *.genes =
*.refage 0 >
*.eye5 0 >
*.shflav 0 !=
*.shflav -2 != and
start
*.shang .setaim store
0 .shflav store
-1 .shoot store
*.shang *.aim add .aimshoot store
stop

'target and shoot
cond
*.paralyzed 0 =
*.poisoned 0 =
*.robage 1 >
*.eye5 9 >
*.memval *.genes !=
'*.numties 0 =
start
*.refxpos *.refypos angle *.aim sub .aimshoot store
-6 .shoot store
*.nrg 32 div .shootval store
stop

'move and communicate
cond
*.paralyzed 0 =
*.poisoned 0 =
*.robage 1 >
*.eye5 0 >
*.memval *.genes !=
*.numties 0 =
start
*.refxpos *.refypos angle .setaim store
*.refxpos *.refypos dist 500 div *.maxvel mult *.refvel add 0 floor *.maxvel ceil .up store
*.veldx .sx store
*.refxpos .out1 store
*.refypos .out2 store
stop

'refresh communication or hide veg location
cond
*.paralyzed 0 =
*.poisoned 0 =
*.refeye 0 =
*.eye5 0 = or
*.memval *.genes =
*.eye5 0 > and
*.in1 0 = and
*.in2 0 = and or
*.out1 0 !=
*.out2 0 != or
start
0 .out1 store
0 .out2 store
stop

'turn back after repro
cond
*.paralyzed 0 =
*.poisoned 0 =
*.move 0 !=
start
*.aim 628 add .setaim store
.move dec
1 .deltie store
0 .shoot store
stop

'baby avoids mum
cond
*.paralyzed 0 =
*.poisoned 0 =
*.robage 1 =
*.numties 0 >
*.memval *.genes = or
start
*.aim 280 add .setaim store
0 .shoot store
stop

'repro
cond
*.paralyzed 0 =
*.poisoned 0 =
*.eye5 0 =
*.move 0 =
*.body *.bodya >
*.nrg *.nrga >
start
25 .repro store
*.aim 628 add .setaim store
1 .move store
*.bodya 10 div *.bodya add 30000 ceil .bodya store
*.nrga 10 div *.nrga add 30000 ceil .nrga store
stop

'delete tie
cond
*.numties 0 >
start
*.tiepres .deltie store
stop

'make body
cond
*.paralyzed 0 =
*.poisoned 0 =
*.nrg *.nrga >
*.body 3190 <
start
100 .strbody store
stop

'use body
cond
*.paralyzed 0 =
*.poisoned 0 =
*.nrg *.nrgb <
*.body 11 >
start
100 .fdbody store
stop

'make more shell
cond
*.paralyzed 0 =
*.poisoned 0 =
*.shell 100 <
*.nrg 500 > and
*.shflav -6 = or
*.shflav -3 = or
start
50 .mkshell store
0 .shflav store
stop

'poop
cond
*.paralyzed 0 =
*.poisoned 0 =
*.waste 50 >
*.memval *.genes !=
start
-4 .shoot store
*.waste .shootval store
stop

'Death by Baby!
cond
*.poisoned 0 !=
*.paralyzed 0 != or
start
100 .repro store
*.aim 280 add .setaim store
*.aim 280 add .aimshoot store
stop

'ID gene - Endy
cond
start
*.nrga 2 div .nrgb store
' little constant viral defense gene doubles as ID gene
*.genes .delgene
 .fixpos *.fixed mult dec 'anti fixpos by Elite
*.thisgene *.genes sub dup div
mult *.robage sgn mult store
.genes inc
stop
end

760
Off Topic / Behavior simulation
« on: August 21, 2006, 11:06:25 AM »
Hmm, I suppose things like fish and ants don't have 'learned by watching others' behaviour. I'm guessing that they do have learnt behaviour though. I'd be quite happy just being able to ID other bots by more than species.
That bot is ID no.1436, seen it before, not grown much since, not many extra kills, yada yada blah de blah giving me a bot with another level of understanding about its surrounding.
Or perhaps better interpretation of eye's, I can only interpret the information from eye5, the other eye's only give me distance, I can't tell if what I see in eye4 is the same object I am seeing in eye5 for instance.

It's great if a bot is supposedly swimming around a slide under your microscope but then again I could moan about some of the higher functions that the bot has in that case.

I love the loosely defined boundaries of DB, they could be little spaceships, I can see it now;

Captain: "What idiot decided to install opaque windows everywhere except window 5?"

I guess I could mimic most behaviour with things as they stand, excepting some forms of learned behaviour. What I can't do is mimic behaviour of simple things like fish because they have two eyes and bots don't. I can't mimic shoal behaviour for instance only mass following behaviour.

Wow, that's an awful lot of evolution I'm missing because of the eyes. Just think of the instant improvements a pair of eyes could make!

Sorry if I went off topic!  

761
Newbie / Intimidating?
« on: August 21, 2006, 10:05:12 AM »
Having seen several new members join since I did and not having heard anything from the new members that aren't bots for spamming the forum I thought I'd open my big mouth!  

DB is a great game/sim but it can look really intimidating when you first start, 'specialy if you aren't used to programming! I still refer to the sysvars page loads and I shouldn't really need to after all the bots I've made in the past!

I made this post because I sort of thought it probably looks much more intimidating than it used to, some of the bots in the forums are minature works of art and the peeps you see talking on the forum are generally talking about the advanced functions not the simple stuff that make the bots work in the first place.

So here's a reminder! When I first met PY the top bot was I. Flamma, the last topic on the forum when I first joined was "Is I. Flamma ever going to be beaten?"
The first bot I wrote was simply one that could find/eat veg and reproduce, took me a while as well.  

I'm a born worrier I guess, don't want people to be joining DB and not posting because they don't feel there bot is any good, or their questions are too stupid. We'd love to hear from you, even if it's just to say hello, and we'd love to see your bots, even if they don't work properly or you don't feel they are competitive. DB isn't about competition anyway, that's just a game we play using DB!

PS Maybe my time would have been spent better going through the sysvars info and looking for stuff to add but it's a lot of info to trawl through, much easier for me (and others) to be lazy if other people point out what information they think is missing when they use it!!

762
Newbie / How did you find DarwinBots?
« on: August 21, 2006, 09:34:04 AM »
I voted for home of the underdogs but it might have been another shareware site. I was certainly searching for sims at the time. DB has stood head and shoulders above all the other AI sims I have tried.  

763
Off Topic / Behavior simulation
« on: August 21, 2006, 09:27:22 AM »
I've just finished reading 'Animals in translation' by Temple Grandin and Catherine Johnson, a book that covers animal behaviour. I thought it was a good book and when I get it back, having lent it out already, I intend to try to model some of the behaviours that it talks about.

Off the top of my head I'd say that learned behaviour was going to be the hardest. The biggest problem I am going to have with DB is that it is going to be very hard for one bot to watch how two other bots behave with each other IMO.
Overall though it should be possible just using the basic maths functions DB already provides.

Probably the slowest part will probably be identifying another bot as a new bot or a bot that has been observed before.

Anyway, if you will forgive me using DB as my working model, I think basic maths would be enough. I don't think it's the behaviour that will cause problems, more the interpreting of data and what data to use to make inferences from.

2B brutally honest I have no idea what advantage a synapse or neural network would be so maths is the only answer I really understand!

764
Off Topic / Happy Birthday Endy
« on: August 16, 2006, 11:24:39 AM »
Happy Birthday Endy, hope you have a good day!    

765
Off Topic / Behavior simulation
« on: August 13, 2006, 08:15:28 AM »
Mi ne komprenas!

I thought we were simulating behaviour with an 'if this do that' attitude!

Is there a previous topic where this question or behaviour has been discussed before?

Pages: 1 ... 49 50 [51] 52 53