Author Topic: Fish School  (Read 1678 times)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7713
    • View Profile
Fish School
« on: April 08, 2005, 06:46:36 AM »
k0zm0 inspired me with his attempts at pack like behavior, so I made Fish School.

It swims in schools.  It eats, it reproduces.  The end behavior from such simple rules is amazing.  Smaller sims work alright, but it really shines in large sims.  Like size 4.  Absolutely hypnotizing.

I'm submitting it as a base bot, meaning you can totally rip it off and build a bot around it.  I know k0zm0 is going to develop it further.  There are alot of possibilities with it.

Offline Old Henk

  • Bot Destroyer
  • ***
  • Posts: 229
    • View Profile
Fish School
« Reply #1 on: April 08, 2005, 01:06:44 PM »
It creates an overflow error with me...
Hmmm... I'm being too critical, it's a really cool bot! :)

Offline Carlo

  • Bot Destroyer
  • ***
  • Posts: 122
    • View Profile
Fish School
« Reply #2 on: April 09, 2005, 05:48:18 AM »
Really cool bot, Numsgil. The concept is really interesting (not to mention the visual effect). That's what you call a peculiar behaviour!
Would be also interesting to see what happens letting it evolve, as such group behaviours change dramatically even with very small changes in the rules. Do the mutation parts works now?

Bye,
Carlo

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7713
    • View Profile
Fish School
« Reply #3 on: April 09, 2005, 06:13:11 AM »
He lives!

I tried running some mutation sims with it.  After a few hours the behavior breaks.  The trick I think is to figure out what kind of environment would be best for such a behavior.  And to fix the DNA to be simpler.  The fewer interrelated genes there are the less likely mutations will screw it up, in my experience.

Offline Shen

  • Bot Destroyer
  • ***
  • Posts: 111
    • View Profile
Fish School
« Reply #4 on: April 09, 2005, 07:40:03 AM »
Num, you inspired me.

Ive been playing with the idea of using .out1/2 to store refx/ypos of food so you can use... '*.in1 *.in2 angle .setaim store'.

Unfortuantly its to complex for F1 bots, but a fish is perfect for it!

Attached is my prototype.

For settings Im using F1 but with

Size 4 (32000x24000)
5 nrg/cycle for alga
200 max alga

Its awesome to watch a school of 20 bots attack a large patch of alga. They rip it apart!

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7713
    • View Profile
Fish School
« Reply #5 on: April 09, 2005, 11:53:55 AM »
Hey Shen, noticed a bug in one of the genes.

Second to last gene should be:

' - No more food :( -
cond
    *.eye5 0 =
    *.refeye *.myeye =
start
  0 .out1 store
  0 .out2 store
stop

and then I'd recommend doing:

' - No more food :( -
cond
    *.eye5 0 =
    *.refeye *.myeye =
    *.out1 0 !=
start
  0 .out1 store
  0 .out2 store
stop

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Fish School
« Reply #6 on: April 10, 2005, 02:32:26 AM »
Great bot, just got the chance to see it in action. I'm going to try splicing it with some of Din's dna to see what happens.

Endy B)

Offline Shen

  • Bot Destroyer
  • ***
  • Posts: 111
    • View Profile
Fish School
« Reply #7 on: April 10, 2005, 06:04:22 PM »
The .in memlocs are only conditionaly refreshed so if you only refresh .out then all the bots end up trying to get to a non existant enemy.

This was just a prototype though so its not perfect by a long shot, ill get round to updating it eventually.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7713
    • View Profile
Fish School
« Reply #8 on: April 10, 2005, 09:34:43 PM »
Quote
The .in memlocs are only conditionaly refreshed so if you only refresh .out then all the bots end up trying to get to a non existant enemy.
What do you mean by this?  I admit I really never checked into how in/out work.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2554
    • View Profile
    • http://kuro-tejina.com
Fish School
« Reply #9 on: April 11, 2005, 09:15:14 AM »
in and out work the same as the refvars. Once a value is set it stays until something else displaces it.
However you can delete it internally from DNA if you like.
There are 10 kinds of people in the world

Those who understand binary.

and those who don't

:D PY :D