Create an Evolving World Part 2: Creatures

Поділитися
Вставка
  • Опубліковано 28 січ 2025

КОМЕНТАРІ • 29

  • @Gentle_Ego
    @Gentle_Ego Рік тому +2

    A little late, but I just saw the video, and as the first episode I have loved the video. Such an incredible project. Please continue to create such perfect content 👍

    • @programmingchaos8957
      @programmingchaos8957  Рік тому +1

      All three in the serious are available now - and lot's more on the channel. I'm really glad you're enjoying them and plan to keep creating content.

  • @foo52ru
    @foo52ru Рік тому

    you are good at explaining
    PS
    in your playlist "The Evolutionary Artificial Life Model"
    there is an audiobook. It seems it got there by accident

    • @programmingchaos8957
      @programmingchaos8957  Рік тому +1

      Thank you! Being clear is one of my main goals, so I appreciate knowing that I'm succeeding.
      And thanks for letting me know about the audiobook, no idea how it got there. I've removed it. I'm a little surprised it even good be linked there, I would have thought there were (better) copyright protections.

  • @inscseeker401
    @inscseeker401 Рік тому +1

    Just finished coding a version of particle life in C based on your video. Hopefully going to try this one soon!

    • @programmingchaos8957
      @programmingchaos8957  Рік тому +2

      That's fantastic! I'm guessing a C version is much faster. Any interesting results? At some point I would like to do a C or C++ version complete with quad trees and all of the other possible optimizations to see how large of a population of particles it could support.

    • @prietjepruck
      @prietjepruck Рік тому

      @@programmingchaos8957 That would be awesome. I'd love to see the performase figures of it. With the few experiments I did, C++ was not really faster than processing and sometimes slower.

  • @prietjepruck
    @prietjepruck Рік тому

    This is quite a project. A lot of things are new to me and I always learn a lot from you. Thanks for being such a good explainer. Greetings from The Netherlands.

    • @programmingchaos8957
      @programmingchaos8957  Рік тому +1

      I hope it's not too much to take in. I divided it into three parts thinking it would be easier in pieces, but even so each video is a bit longer than I like. Glad it's understandable. Greetings from Idaho, US.

  • @flameofthephoenix8395
    @flameofthephoenix8395 5 місяців тому

    12:04 You could have creatures have a set number of "objects" which could be legs, sensory organs, or any other thing a creature could have, then you can have each object have a size, when the smaller an object the more likely it will change types at birth in the random variance stage, and it will also randomly vary in size too, this means that in order to swap a leg out for flippers the legs have to slowly shrink becoming less and less good at walking then eventually swap out for flippers once they get small enough that they have no clear function at which point they likely will start growing again, you'd have to have a good number of these objects stored with most of them not being used by the creature. Ideally this should give more gradual changes.

    • @flameofthephoenix8395
      @flameofthephoenix8395 5 місяців тому

      I had some additional thoughts on this after making my comment, if you were to go all out on this idea you could probably have a tree structure, each object sprouts from either the base of the creature or an object that came before it in the list of definitions, possibly the position they branch from is stored too. Instead of the type being whether it is legs or fins you could have it be body parts or muscles, with muscles requiring two objects to branch from. Then you could make both the type and branch connections be more likely given that the object has shrunk, this would do well with a physics engine.

    • @programmingchaos8957
      @programmingchaos8957  5 місяців тому

      This is an excellent idea! I'm part of game studio that has released a couple of evolutionary games on steam (Darwin's Demons and Project Hastur - both are free now) that used this approach for some traits. For example, the opponents could evolve resistance to different player weapon types, but they were opposite ends of a spectrum: higher positive values of a gene meant high fire resistance, large negative values meant high cold resistance. So a creature would need to 'shrink' its fire resistance before gaining cold resistance.
      It helps to make low values of the 'wrong' trait better than high values. For example, high fire resistance also means cold vulnerability, so there's selective pressure to lower fire resistance even in the absence of fire (or to apply a small cost to high resistance so lowering a useless resistance is beneficial). Or in your example, larger legs actually slows the creature in water, so they evolve smaller and smaller legs until they switch to flippers.

    • @programmingchaos8957
      @programmingchaos8957  5 місяців тому

      This is a cool idea that we haven't tried! I wouldn't want to try to code it in a tutorial as it would likely be a lot of complex code, but it's a great idea. There has been some research on generative versions of evolutionary computation, i.e. where you evolve the 'blueprints' to grow a creature that sound similar to what you are proposing.

    • @flameofthephoenix8395
      @flameofthephoenix8395 5 місяців тому

      @@programmingchaos8957 I see, that would certainly explain all the evolution simulation videos! I might try some of these games you mentioned!

    • @flameofthephoenix8395
      @flameofthephoenix8395 5 місяців тому

      ​@@programmingchaos8957 Certainly! I wouldn't expect this to be great in tutorial format. I also have another idea for evolution simulation I've been meaning to try to solve two problems, both the problem of there only being single-parent evolution and the lesser problem of the creature's needing to have an A.I. Although it is a bit of a stretch and I am biased, the plan is simple, this A.I here known as M.E.N.A.C.E en.wikipedia.org/wiki/Matchbox_Educable_Noughts_and_Crosses_Engine , my favorite A.I by far, has been entirely under-utilized, however I think with a little abstraction it could be useful for evolution simulations. It is very rigid in that it has to have a set list of inputs and a set list of outputs, so the first thing is to give it an array of multiple sets of outputs and an array of multiple sets of inputs which is easy enough, secondly each M.E.N.A.C.E A.I can be treated as a function, where the outputs of the function are handled as function calls with possible in-line functions too, it is also important that whatever set of inputs it has will have an "Else" input tacked on allowing for it to handle any inputs as opposed to just a select few but it will not be able to distinguish between two different inputs that are not directly handled, and too the outputs are allowed to directly pull from the inputs which goes hand-in-hand with the "Else" inputs since it can read the real values of these and pass them on as output information though without any computation having been done on them, with this function based approach there can also be natively supported non-M.E.N.A.C.E functions like basic mathematics, memory handling, and of course input and output. I think the rigidity of M.E.N.A.C.E functions is just what is needed for the job of handling reproduction, when birthing a child, the parent will choose other creatures and put their data alongside the parent data into the M.E.N.A.C.E systems which can handle creating the creature's body, A.I, and reproductive A.I. I hope this wasn't too long a read! It also may be a bit incomprehensive as I'm typing this at midnight and maybe am not in the best of minds.

  • @flameofthephoenix8395
    @flameofthephoenix8395 5 місяців тому

    I'm curious, does the name "Programming Chaos" mean that the channel is about chaotic programming, or does it mean that chaos is being programmed?

    • @programmingchaos8957
      @programmingchaos8957  5 місяців тому

      Both! :) The topics are a bit chaotic because they are whatever grab my attention, plus my programming is not entirely well structured. And many of the models do exhibit chaotic behavior in the formal sense by having unpredictable, but not random, patterns and showing sensitive dependence on initial conditions - two of the hallmarks of chaotic systems.

    • @flameofthephoenix8395
      @flameofthephoenix8395 5 місяців тому

      @@programmingchaos8957 Ah! Doubly chaotic then!