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 - Pascal666

Pages: [1] 2
Darwinbots3 / Re: Fluid preview
« on: July 09, 2013, 01:17:43 PM »
It works here, but shouldn't there be more velocity added to the surrounding particles?
Like this:

Toy Planet / Re: Toy Planet: candidate for DB3?
« on: July 05, 2013, 10:39:08 AM »
Was looking into fluid dynamics also but I thought that it would become a performance issue, I wonder how much difference it makes when using CUDA.

I used animated gif editor for the first 2 and gif screen recorder for the last, both are pretty crappy.
Yea, it is very similar to darwinbots2 but the mutation system is probably very different and the DNA functions are more simplified.

Toy Planet / Re: Toy Planet: candidate for DB3?
« on: July 04, 2013, 04:33:14 PM »
Sorry to hijack your thread.  :D

I have been waiting forever for darwinbots3 , is there an alpha release anywere?
I have written my own simulation again in C#, but haven't published anything.
It is quite early so I wont yet.

I'd really like to see the progress on db3.

Made some animations:

Newbie / Darwinbots replacement/clone
« on: April 19, 2010, 01:52:33 PM »
Quote from: ashton15
Opps, I assumed it would be based on apparent size like in darwinbots, sounds like an improvement you made then... maybhe not entirely realistic, but lets just say they can sense using ultrasound

The number is just handled differently, there is still is a limited range and sight angle.

Quote from: peterb
i'm trying to convert the code to
but its a bit complex if you dont know the exact inner working of the program.
I lack the general view.

i see seperated "subjects", there is a graphical part (wich might be translatable to some different kind output > directx9 or something else) and physics and DNA,
And there must be a data structure
hmm besides that there is some complex species loop,
which doesnt convert well to
hmm vbnet doesnt accept arrays with negative values hmmmm

Basicly i think i could be written in, the things in which vb6 is more easy is perhaps file access, but thats about it.
There is a trick however to include vbscript runtime (so you get the easy script commands) and another option is to make to 'right' file dialog calls, which (i forgot them a bit) but they endup with complete finished dialogs like the file load/safe dialogs of word / excel / ...

hmmm thinking thinking  

Personally I am not a big fan of, the speed difference shouldn't be that great either.
When I started programming aevolution I actually made a client using directx in c++, however my lack of experience(none) with c++ made the progress too slow, so I decided to use vb6.

But I dont know what you mean with arrays with negative values, as far as I know there arent any.

Newbie / Darwinbots replacement/clone
« on: April 18, 2010, 07:05:31 AM »
Quote from: ashton15
Yeah i'm having problems with too few memory locations but i've worked out I can store multiple values in one location through a system like binary for instance so 1,1,0 might equal 6 or 2,1,0 with 3 bieng the highest posible value I'd have 63 (0*3 + 1*9 + 2*27) bit too complicated for my liking... also having a small bot circle allows an extra 22 memory locations using every memloc and out sysvar though it's not that practical as it just converts one memory location into another type that in most situations is less useful about twenty-five thousandish should be adequate to create a multi-cellular DB with human intelligence... and maybhe 400 out and in sysvars... is a neural net the same thing as having a web of what varibles every other varible alters? because that's the kinda thing I'm trying to make... I want a bot that can understand that shootval is log2 and changing it affects how far or how powerful a shot is and then that links to a formula somewhere that knows how much it should decrease shootval by because it knows that's what it has to do in order to hit an enemy and thus get energy... it doesn't just do things without thinking... that's the main problem I have with darwinbots. anyways I tried it and made this though it doesn't apear to work

   readmybmem1 1 =
   3 moveforwards

   sight 999 <
   sight 1 >=
   samespecies 0 =
   refvelocity + 3 moveforwards
   refangle setangle

   mymass - bondmass 1 >

   mymass bondmass >
   myenergy - bondenergy 250 >=
   250 sharebenergy

   sight 50 >
   1 eat

   totalbonds 0 =
   samespecies 0 =
   1 writebmem1

   readmybmem1 0 =
   totalbonds 1 =
   myenergy 500 >

   readmybmem1 0 =
   totalbonds 2 =
   myenergy 1500 >

   myenergy 5000 >

The problem you're having with feeding is in this gene:

sight 50 >
1 eat

The sight range is the distance it is away from the bot, you're feeding when its farther than 50, it should be closer than 50 "sight 50 <".

Newbie / Darwinbots replacement/clone
« on: April 17, 2010, 02:03:11 PM »
The source code upload is temporarily uploaded here for anyone who wants it:

I have added expanding memory functions to my todo list.
And I will look into using directx as graphics engine.

My first priority now is fixing a freeze bug, and adding internet mode.

For those already trying to simulate entities, and are bothered by the freeze bug I have uploaded a temporary patch... duplicategene, a mutation function is disabled since this is the cause of the bug.

Newbie / Darwinbots replacement/clone
« on: April 10, 2010, 06:31:10 AM »
Quote from: Numsgil
Quote from: Pascal666
Quote from: Sammeh
What kind of FPS are you getting at say, a population of 1000 bots?
What kind of FPS would you get in DB2 with the same pop?
I am running 200 bots at about 240 cycles per second, while in darwinbots I am running only 50 bots to reach this speed.

I know Eric did a lot of work to make it faster for large( r) numbers of bots.  If you jack it up to 1000, what sort of speed do you get?  Unless you've done some broadphase work it should go way, way down since you're doing some O(n^2) work (so you're doing 25 times as much work at 1000 bots as at 200 bots.  Which means I'd guess you're getting 1 cyc/sec at 1000 bots, where DB2 might get 2 or 3).

Not that what you have isn't impressive, just saying that how many bots you can run at 240 cyc/sec might not be the best metric for comparison.

Also, I should be able to set up SVN this weekend.  If you like, I can set you up with a SVN repo for your code.  Or failing that, you should set up a google code project or a sourceforge project.
In AEvolution I get 10 cycles per second at 1000 eye carrying bots, and in darwinbots I get 2 cycles per second with simple algae bots. So the comparison is about the same.
But you could get even a bigger advantage if you run multiple environment/simulations, 2 simulations of 500 bots run at 20 cps/40 total.

These are the main performance checks, which probably could also be applied to darwinbots.
- Colission checks(the 200 stands for the maximum mass which is 100, 100 + 100 = 200...)
For i = Entity + 1 To GLO_TOTALENTITIES ' It doesnt check indexes below him, because they have already checked for colission.
If Entities(i).X - .X > 200 Or .X - Entities(i).X > 200 Or Entities(i).Y - .Y > 200 Or .Y - Entities(i).Y > 200 Then GoTo nextEntity
- Also resizing the index of GLO_TOTALENTITIES to the last highest index of dead entities in main loop.
- And reproduce/repopulation uses the lowest last dead index if there is one.
- DNA gene caching, store the locations of every gene which allows skipping genes faster once the condition is false.

Next week I will create a souceforge project.

Newbie / Darwinbots replacement/clone
« on: April 09, 2010, 02:06:55 PM »
Quote from: Sammeh
What kind of FPS are you getting at say, a population of 1000 bots?
What kind of FPS would you get in DB2 with the same pop?
I am running 200 bots at about 240 cycles per second, while in darwinbots I am running only 50 bots to reach this speed.

Newbie / Darwinbots replacement/clone
« on: April 09, 2010, 07:59:45 AM »

Newbie / Darwinbots replacement/clone
« on: April 05, 2010, 08:58:05 AM »
Since progress is slow lately, because of the lack of time, I have decided to show what I currently have.

I am still working on solving bugs in bond physics.
And I am also still working on a improved evolution system which should make it easier to evolve different cell-states, useful in both single and multicellular bots, the key function to this is the dna function jump which allows to skip genes, the current problem with it is that it doesn't increment along with gene count mutations.

My goals are:
- Make it easy for animalia_nihilo(darwinbots 's nullbot) to evolve.
- To create a successful evolvable multicellular entity.


Information log:
- Basic physics
- Both plantae and animalia repopulation
- Energy/body handling; max energy is 30000, when one exceeds 30000, the energy is automatically fed to the entity 's mass which is limited by 100
   Mass addition and removal is limited by the size of it 's mass

- Simple plantae and animalia cost handling; plantae receiving 1 energy per cycle, and animalalia paying 0.1 energy per cycle
        Animalia costs increase based on the populationsize: COST = 0.1 * (POPULATION / 20)
   Reproduction costs 10% of the entity 's energy
   Mass removal costs 10% of the asked for energy
   DNA costs 0.01 energy point per 10 units of DNA per cycle
   Age cost increase by 0.1 per 10000 cycles
   Waste costs 0.1 energy point per 100 units of waste per cycle

- Entity details
   Entities can be selected and moved
   Mass benefits sight range by the following formula: SIGHT = 50 + SQR(MASS) * 10(For example: an entity with a mass of 10 will have a sight range of 70, where an entity with a mass of 100 would have a sight range of 150...)
   Mass slows down speed using the following formula: maxVelocity = 11 - Int(Sqr(MASS))
   Eating other animalia gives double the amount of energy than eating plantae, but also gives waste...
   Mass benefits waste dumping by the following formula: DUMPEDWASTE = Sqr(MASS) / 40 (Meaning it can dump 0.25 waste per cycle)
   Mass is the basis for defense and attack in animalia: ENERGY = ENERGY * (SQR(MYMASS) / SQR(REFMASS))

- Plantae details
   Do not have sight
   Mass increases the energy uptake by the following formula: ENERY = ENERGY + 1 + (SQR(MASS) / 4)
   Not able to reproduce after exceeding option_plantaemaximum

- Mutation system
   Mutation per reproduction
   When the population is low the amount of random mutation will be higher

- Stack based DNA system.
   Genecaching so it can skip dna faster

- Dna functions
Functions with a x still have to be added...
      strength moveright
      strength moveleft
      strength moveforwards
      strength movebackwards

      amount aimright
      amount aimleft
      angle setaim

      fertilize      x
      isfertilized      x


   Mass management:
      amount addmass
      amount removemass

   Waste management:
      amount dumpwaste

   Personal functions:

   Reference functions:

   Reference communication:
      readmem1 to 10
      value writemem1 to 10
                readrefmem1 to 10
   Reference sharing:
      amount shareenergy

   Bond functions:
      breakbond      x

   Bond communication:
      readmybmem1 to 10
      value writebmem1 to 10
      readbmem1 to 10

   Bond sharing:
      amount sharebenergy

   Viral functions:
      amount jump
      gene sharegene
      gene delgene

Newbie / Darwinbots replacement/clone
« on: March 18, 2010, 09:01:07 AM »
Since I havent updated for a month I just want to let you guys know that I am working on AEvolution...
The dna functions have expanded a lot, and I just started working on the bond functions(ties).

After I finished the binding and viral functions, I will post AEvolution here with with a few sample bots included.

Newbie / Darwinbots replacement/clone
« on: February 27, 2010, 07:05:36 AM »
Quote from: Numsgil
DB3 is strictly 2D, actually.  I was playing with the idea of 3D but I dropped it.

Are you programming it in VB.NET?

I do know how to program in the .net series, but I prefer to stick to VB6, and if I would choose another language I would probably go for visual c++ due to performance differences.

I will continue the development of Ævolution, and maybe the development of 2 opensource applications may have some benefits for each other.  

Newbie / Darwinbots replacement/clone
« on: February 26, 2010, 02:09:37 PM »
Quote from: Numsgil
When you say a new "client", do you mean a complete rewrite or are you borrowing some of the existing code?  I'm mostly curious how you're handling collisions, physics, and vision (if you are).  Because they're non trivial problems to solve.

Yeah, we can set up a hosting if you like.  I'm a bit busy atm but give me a few days and I can at least set you up with a repository tree if you like and a login to post versions to our FTP.

Also, you are aware of DB3, right?  You're preaching to the choir about the need for a new version
With a new client I do mean write a completely new client, with new benefitional settings for entity features like mass and ties, and limiting them more naturally.

I am aware of the development of DB3, I do not know the stage of it, but I think there will be great difference between the 3D and 2D experience, maybe also some performance differences... And since the development of darwinbots 2 is mainly ceased/finished it might be nice to get a higher performance/neater version of darwinbots, and depending on the results of this new client it might be published as "Darwinbots Classic".

My physics function is pretty simple and probably very similar to how darwinbots handles it:
Code: [Select]
Private Sub executePhysics(ByVal Entity As Integer)
Dim i As Long
Dim a, b, c, d As Double

    With Entities(Entity)
        If .Velocity > 0 Then
            .X = .X + (.Velocity * Cos(.Angle * PI / 180))
            .Y = .Y + (.Velocity * Sin(.Angle * PI / 180))
            .Velocity = .Velocity * 0.99 ' FRICTION
        End If

        For i = Entity + 1 To GLO_TOTALENTITIES
            a = .X - Entities(i).X
            If a < 0 Then a = a * -1
            a = a * a
            b = .Y - Entities(i).Y
            If b < 0 Then b = b * -1
            b = b * b
            c = Sqr(a + b) - (.Mass + Entities(i).Mass) ' DISTANCE
            If c <= 0 Then ' COLISSION
                d = Atan2(.Y - Entities(i).Y, .X - Entities(i).X) * 180 / PI
                .Angle = d
                Entities(i).Angle = (d + 180) Mod 360
                ' FRICTION
                a = (.Velocity + Entities(i).Velocity) * 0.75 / 2 + c / 10 * -1
                .Velocity = a
                Entities(i).Velocity = a
            End If
            If Not .isPlantae Then ' SIGHT ENTITY 1
                If c < (50 + Sqr(.Mass) * 10) Then
                    d = Atan2(.Y - Entities(i).Y, .X - Entities(i).X) * 180 / PI
                    d = (d + 180) Mod 360
                    If .Aim > 338 And d < 22 Then d = d + 360
                    If .Aim < 22 And d > 338 Then d = d - 360
                    If d < .Aim + 22 And d > .Aim - 22 Then
                        If c < .Sight Then
                            .Sight = c
                            .sightReference = i
                        End If
                    End If
                End If
            End If
            If Not Entities(i).isPlantae Then  ' SIGHT ENTITY 2
                If c < (50 + Sqr(Entities(i).Mass) * 10) Then
                    d = Atan2(.Y - Entities(i).Y, .X - Entities(i).X) * 180 / PI
                    d = (d + 360) Mod 360
                    If Entities(i).Aim > 338 And d < 22 Then d = d + 360
                    If Entities(i).Aim < 22 And d > 338 Then d = d - 360
                    If d < Entities(i).Aim + 22 And d > Entities(i).Aim - 22 Then
                        If c < Entities(i).Sight Then
                            Entities(i).Sight = c
                            Entities(i).sightReference = Entity
                        End If
                    End If
                End If
            End If
        If .X < 0 Then .X = OPT_PLANEWIDTH + .X
        If .Y < 0 Then .Y = OPT_PLANEHEIGHT + .Y
    End With
End Sub

Newbie / Darwinbots replacement/clone
« on: February 26, 2010, 09:05:53 AM »
Since darwinbots is pretty old I thought maybe its time for a complete renewal of the client... I have been developing a clone for a while, which I want to show here.
I also want to ask if it would be a nice idea to host it here, and it will be completely opensource of course...
The reasons why a replacement or offering a second client would be nice are: new neater code, faster simulations, and a neat client.

The current version only contains the dna functions equalivent to the functions animal_minimalis uses here.
And it runs about 3 times the speed of darwinbots.
This is the downloadlink:

Internet Mode Commentary / Anybody using IM now?
« on: February 18, 2010, 08:08:28 AM »
I will join you guys for a while, disabled my popcount function so it will run faster...  
And I am also using a completely different mutations module so lets see what happens...

Pages: [1] 2