Menu

Approaching Version 0.9

Dave Kerr
2003-05-29
2003-07-10
  • Dave Kerr

    Dave Kerr - 2003-05-29

    Ai.Planet will soon go to Version 0.9.  That means there will be a feature freeze.  Here is the outline:

    0.9.0 - Last call for features
    0.9.1 - Feature freeze (two weeks from now)
    0.9.2 - 0.9.5 - Feature completion
    0.9.6 - 0.9.9 - Bug hunting and fixes
    1.0.0 - Official Release

    So, this is your last chance to see a feature included in 1.0.  If you want to add one, now is your chance. 

    If you want to suggest a feature or improvement, please do!

    Also, unfinished features will be dropped for 1.0.  That includes crappy creatures like the Mouse, Grass, etc.  They will still be there but will be hidden.

     
    • Aaron Hochwimmer

      Exciting :)

      Are you thinking about documentation for 1.0? htmlhelp or something?

       
    • Dave Kerr

      Dave Kerr - 2003-05-29

      Yes there has been a couple volunteers for a help file however it has not gotten off the ground.  Probably best since we should freeze features before documenting them, or docs get out of date.

      List of things I want to add:
      - Mating
      - Creature Windows (view/edit stats)

      Will think of more later

       
    • Aaron Hochwimmer

      Yes you are right Docs should happen after the feature freeze.

      Depending on my workload I might be able to help out a bit. CVS is great for documentation. I use it a lot for work - we have all our docs in htmlhelp projects with each "chapter" as a separate html file. Also has advantage of being able to have the documentation online :)

       
    • Dave Kerr

      Dave Kerr - 2003-05-29

      Interesting approach, CVS, never thought of that!  :) 

      Forgot to mention, that throughout v0.9.2 - 0.9.9, I will be profiling with GpProfile to optimize the code.  I have done this alot with version 0.6 and 0.7, and a little in v0.8, ive noticed aiplanet slowing down quite a bit with all the new features.  I think v0.9 should be alot faster than 0.8

       
    • Aaron Hochwimmer

      What I'd like to see:

      - pirahanas

      - balancing the foodchain if required. I think a  diagram of what eats what would be pretty cool. Or possibly in the creature windows - could have links to predators and to prey.

      - user defined warnings - ie some warning messages that popup if things are getting out of hand - e.g average temp, population levels etc.

      - a "genocide" function to kill off all of one sort of creature/object.

      - a "heal" function that regenerates health of selected creatures (possibly in the creature windows)

      Just ideas

      Aaron

       
    • Dave Kerr

      Dave Kerr - 2003-06-03

      - pirahanas

      Definitely.  I want to improve the Grabbing system and add a kind of "reverse" grabber.  Like a leech, the pirahana would grab on to the target, bite, then let go.  But while grabbing the target, it wouldnt be able to move it.  If the target moved around, it would carry the pirahanas with it.  So you could use a bot and jump in a pond full of piranahas and then walk out covered in them :)

      - balancing the foodchain if required. I think a diagram of what eats what would be pretty cool. Or possibly in the creature windows - could have links to predators and to prey.

      For this to happen, either someone could draw a graph, or the creature system would need a reworking.  Right now there isnt any data that can be queried to tell who eats what.

      - user defined warnings - ie some warning messages that popup if things are getting out of hand - e.g average temp, population levels etc.

      A tough one, not sure how to encode that into an object.

      - a "genocide" function to kill off all of one sort of creature/object.

      Doable, since each type of object is referenced in a table of objects, could just send a message to kill all in that table.

      - a "heal" function that regenerates health of selected creatures (possibly in the creature windows)

      Yes the creature window would be the best... could add a button in the toolbar too

       
    • Aaron Hochwimmer

      On reflection I think the foodchain thing would be post 1.0.

      It'd be interesting if the user could change the "rules"  and define what eats what. That sort of depends on whether the creature definitions can be stored externally to the program (XML?) or if the creature system was expanded to allow these settings to be altered.

      The genocide function was an idea I had to see the effect of wiping out all of one object and see how the world copes. Sort of similar to asteroid impacts but on a wider scale.

      Maybe an idea if you put together a page on the ai.planet home page with considered features for 0.9-0.91 before the freeze?

       
    • Dushan Tcholich

      Dushan Tcholich - 2003-07-09

      Hello

      I really think that we should make one new creature from the start (well you make it. I don't know to code).
      These will be new things so my energy concept could sum up:

      1. Energy pool E=f(mass),
      2. Aging function

      t-age of a creture
      Ka(t)= { t/A;0=<t<A
      1 ;A=<t<A+B
      1+[(A+B)/C]-t/C;A+B<t<=A+B+C
      0;t>A+B+C}
      A-time of youth
      B-time of middle age
      C-time of old
      A+B+C=time to live
      This function will change some of DNA factors
      3. DNA - I think that this should be a lot of factors that go from parents to children. Like DNA.A,DNA.B,DNA.C - factors of aging f.
      DNA.Sizemax - max size possible for a creature
      DNA.Massmax - maximum mass of a creature
      from these last two you should have changeable buoyancy. If you want it fixed, just calculate one and multiply them to get another.
      DNA.MaxSpeed.Moving - max speed (.Water; .Land; .Air) this should be like this if you didn't code friction in the engine.
      DNA.MaxSpeed.Acceleration-same as the above
      DNA.BodyTemp - Body temperature of creature. In reality this is fixed but it's better like this than to have to model insulation (fat, feathers, fur). Coments?
      DNA.Massmax - maximum mass of a creature
      DNA.Healthmax
      DNA.Desire.Wander
      DNA.Desire.Mate
      DNA=(1+mutation factor)*(fatherDNA +motherDNA)/2
      -0.1<mutation factor<0.1 - random for every DNA factor.
      And maybe these too (for later development):

      DNA.CappacityOfStomach
      DNA.MaxSpeed.Eating
      DNA.MaxSpeed.Digesting
      DNA.Children.Max - max number of children per one birth
      DNA.Children.EnergyStart - if we want to use this there is that other aging f
      DNA.Desire.Flock - does one creature likes to be in community or not

      All this will be calculated on birth so i don't think it will slow down program a lot.

      4. Specific energy values
      For meat
      For green stuff
      For sun

      5. Energy value for every grid (how good is the soil for trees)
      when creature die there'll be no more when rot=0 then creature DEAD, but their caloric value (mass*energy value for eg.meat) will be "eaten up" by grid, earth.

      6. When creature eats another creature they dont eat their health but their flesh, it's caloric value.

      Well mostly all those formulas from my devel. post should be in too. BIIIIIG job I know. Now I saw code for cAIBaseObject.pas; cAIThings.pas; cAILife.pas and cAICreature.pas

      I think we should start with those undeveloped creatures (Fox and rabbit so one could eat another). Code their new possibilities (primarily DNA) in and see how it works. I think that nothing of this will stop program from functioning. Then we should make aging function in AILife if Im correct to calculate modified factors. And that DNA calculating formula. Then we shold code in boundaries (eg. Max health) and see how it works. Well now when I look at it a lot of things would need rewriting. Maybe it will pay up. I believe so.

      Dushan

       
    • Dave Kerr

      Dave Kerr - 2003-07-09

      I think we could start on an "AdvancedCreature" or "GeneticCreature" with all of these abilities. 

      We could leave many of the developed creatures intact and they will be "prey" for the new advanced creatures.  In nature, creatures do not all evolve at once, but some evolve and the rest are left to fill a niche.  Natural selection will determine which creatures survive.  Usually the older creatures still live on (primates still successful even though there are humans)

      DNA is definitely an important feature to add. The biggest obstacle is that the creatures will likely migrate to the "biggest" value right away, and become strong in every area.  There should be tradeoffs: if the creature grows really big, it should also move slower.  (or take more energy to move)

      >6. When creature eats another creature they dont eat their health but their flesh, it's caloric value.

      This is how it should be, so when dead animals are eaten they are still valuable.  Size of the creature would be the biggest factor.  When a creature bites another creature, the second creature would shrink?  Might look funny.

      Great ideas Dushan!

       
    • Dushan Tcholich

      Dushan Tcholich - 2003-07-09

      For DNA tradeoffs.
      Maybe all that mutation factors for each DNA.factor should add up to 0?

       
    • Dushan Tcholich

      Dushan Tcholich - 2003-07-09

      I see your online now
      Could you contact me via ICQ for some chat?
      #215330027

       
    • Dave Kerr

      Dave Kerr - 2003-07-10

      ICQ!!!  I gotta get that

       
    • Dushan Tcholich

      Dushan Tcholich - 2003-07-10

      Well I installed it only because of this.
      I used it years ago and it's good for some fast thoughts of the moment.

       

Log in to post a comment.