Author Topic: Newbie  (Read 7354 times)

Offline Nitus

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
Newbie
« on: April 15, 2005, 03:39:56 AM »
Hello.

I discovered DB a few days ago at HotU, and I've spent most of the last two days evolving a strain of bots through natural selection. Basically keep hand-populating veggies all over until a few generations have gone by with huge populations, then let it stabilize into a small population feeding at a small cluster of veggies, then repeat. Then repeat with un-blocked veggies a few times. Then back to blocked veggies.

Every so often I would let the veggie population dwindle until only the hardiest five variants of my bot were left, then start the whole process over again with all five of those competing at the start.

After a few days of this, my bot's code doubled. The intense competition seems to have worked for it.
 
Anyway, I just started learning the bot code, and it looks like most of mines' is junk.
 
My question is simple. The help files say that the sysvars utlilize memory cells, but it doesn't say which ones. I am assuming that if I use one of them by mistake it will throw everything off.
 
Thanks!

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Newbie
« Reply #1 on: April 15, 2005, 03:53:59 AM »
You can easily check which sysvars use which memory locations by looking at your sysvars2.21.txt file.  It will have the sysvar followed by the memory location.

Most mutated bots are very very junky.  It's sometimes very hard to figure out exactly what it's doing.

Have you tried competing your bots against the original?  That's really the acid test of a mutation in my book.

Offline Nitus

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
Newbie
« Reply #2 on: April 15, 2005, 04:08:57 PM »
Ah, I didn't see that file, thanks.
 
My evolved bots will defeat all of the stock bots, even slightly outnumbered - except for the stock I_Flamma, with which they will develop equalibrium - so long as there are enough veggies - I haven't tried f1 settings, but I was using an earlier version at first.
 
Most of the DNA appears to be junk, but their general movement and behavior has grown visibly more sophisticated as time goes on. However they were quite simple at the start.
 
Now that I have upgraded to 2.36 I am going to write a bot from scratch.

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Newbie
« Reply #3 on: April 15, 2005, 04:12:07 PM »
Welcome to the board Nitus!

Can you post details of the evosim you've finished: starting bot, conditions, final bot.  I'd be interested in taking a look!
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Newbie
« Reply #4 on: April 15, 2005, 04:25:10 PM »
Welcome to DarwinBots Nitus.

Quote
My evolved bots will defeat all of the stock bots, even slightly outnumbered - except for the stock I_Flamma, with which they will develop equalibrium - so long as there are enough veggies - I haven't tried f1 settings, but I was using an earlier version at first.

I assume you mean the ones that come with 2.11 in the installation package.

Those are pretty low level by today's standards. Try downloading some of the robots that we have posted in the Beastiary or in the DarwinBots Database. You should find those a little more challenging.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Nitus

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
Newbie
« Reply #5 on: April 15, 2005, 04:35:36 PM »
To the best of my awareness it's not possible to run an extended sim without supervision, since it will either crash or the bots will extinct - and its not particularily useful for forced evolution.
 
I used boom-and-bust feeding cycles, followed by periods of "feeding trough" competition, followed by more boom-and-bust cycles. At times I would use drifting veggies, at times blocked ones. At times I would significantly increase the friction variable.
 
And every now and then I would throw in a competitor species, usually I_Flamma since its the most deadly stock bot. At first the I_Flammas would rapidly take over, but after awhile the bots developed strategies.
 
I began with C_Anscestralis, but the present bot code is entirely different. As I said, mostly junk, but some of it must be doing something.
 
Anyway, the bot I'm writing now will be somewhat more sophisticated, but I'll run it thorugh the same evolutionary difficulties and see where it ends up.
 
I'm a member of the zdaemon gaming community - zdaemon is a win32 doom port. The bots are quite stupid, and I was hoping that I could port some of the DB bot DNA into the zcajun bot code.
 
BTW, I did download some of the present top bots. Destinatus_Preliator utterly stomps my bots unless outnumered 80 to 1. But that's what you get pitting a dumb but evo'd bot against a monster like that.
« Last Edit: April 15, 2005, 04:37:35 PM by Nitus »

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Newbie
« Reply #6 on: April 15, 2005, 04:47:30 PM »
Quote
it's not possible to run an extended sim without supervision


How extended?  With current version I can leave the sim to run for ~million cycles without any supervision.  I am sure it could be longer, but I just don't have the patience. :)


Your evolution approach seems a bit strange to me.  You are giving them so many different conditions that bots will not know what to adapt to.  You can probably get some bots that are able to survive in a variaty of conditions, but they will never be able to be as good as bots designed specifically for a particular set of conditions.

The idea for adapting bots in 3d-shooters is pretty cool!
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Newbie
« Reply #7 on: April 15, 2005, 08:34:13 PM »
BTW, you don't have to manually insert veggies - just go into options, change the value given to a veggie to a large one and click "change".
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Nitus

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
Newbie
« Reply #8 on: April 16, 2005, 02:23:46 AM »
The problem with that is the veggies tend to clump - for a boom and bust you need to populate the veggies everywhere and keep doing it until the screen is totally filled with bots. You don't want a big clump but rather a scattered bunch of small clumps so the bots have to keep roving aroud.
 
The result of my evo is a hardy bot that can take root under a variety of circumstances, but can't compete with a specialized bot, as you said. But that's okay - that was as far as my thinking had gone.
 
That bot will simply be food for the one I'm writing now :)
« Last Edit: April 16, 2005, 02:25:08 AM by Nitus »

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Newbie
« Reply #9 on: April 16, 2005, 11:41:18 AM »
Nitus, it sounds like you are referring to the feedrate setting while Shvarz was talking about the "repopulate" function.

That will just make new veggies in random locations as soon as the veggie poplation dies down to a user definable level
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Nitus

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
Newbie
« Reply #10 on: April 16, 2005, 01:17:41 PM »
Yes, but even tweaking the repopulate function causes the veggies to tend to clump.
 
For my purpose, I was adding veggies manually specifically where they were furthest away from the nearest clumps of veggies, so that the field was always covered with scattered clumps that were roughly equadistant from each other.
 
Basically the only way to do a forced evo sim like this is to be there at all times while the sim is running so that you can monitor and alter conditions on the fly. That's why I spend literally 13 or more hours over a two day period monitoring the sim.
 
Of course, since the C_Anscestralis bot is so simple to begin with, the bots never really evolved much beyond a better movement and reproductive strategy.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Newbie
« Reply #11 on: April 16, 2005, 01:41:41 PM »
That sounds like a whole lot of work
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Nitus

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
Newbie
« Reply #12 on: April 16, 2005, 01:55:48 PM »
Work? It was fun! :0
 
Letting a sim run on auto doesn't cause the bots to evolve sensible behaviors - they just learn to feed mindlessly. You have to monitor it to make the results count.
 
Besides, I had the friction cranked and I needed the veggies to be equidistant so that the bots would either develop a sensible movement strategy or else die.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Newbie
« Reply #13 on: April 16, 2005, 02:01:25 PM »
Then again I always find evo sims a lot of work. That is why I work mostly on Battle Bots
When I am not spending hours programming the new releases that is. I haven't actually designed a bot for months now.
I guess what I really enjoy best about DB is programming it  :D
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Nitus

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
Newbie
« Reply #14 on: April 16, 2005, 09:34:39 PM »
I'm trying my hand at writing a simple bot, but that's because the bot code is kind of simple. As for any real programming, I stopped in 89 at qbasic. :)
 
BTW, for a fps bot to work like this it would have to be constantly shooting, which might work but would seriously bog down the game. But who cares. I'm hooked on DB.