Hello @syntheticmagus!
First let me say that I really appreciate your feedback and the information. I mentioned to @PirateJC that I’ve been incredibly impressed by this community and the whole Babylon.js experience. Everything seems designed to encourage people to learn and create I’ve had a lot of fun doing just that the past couple of weeks, and the support from the forum members has been a big part of that!
I’ll try to answer your questions to see if what I’m trying is a little too ambitious for my current skill set. You definitely seem like the expert on this topic!
-With respect to inspiration, I’ve been completely fixated over the years on procedural generation, neural networks, and machine learning. These programming advancements are so exciting because they simulate what actually happens in nature–natural selection, and for some species, learning from past experiences. Countless variations selected for or against based on the parameters of the environment (or the programmer’s set goals). Just amazing stuff! Years ago a programmer named Jeffrey Ventrella created a simulation called Gene Pool (here). These “swimbots” spawn with random traits (body segments, segment movement, etc.), and these traits determine their ability to move through the environment. These traits determine whether or not they can successfully find food and mates. If they do mate, they pass down information about their character’s traits to their offspring. The swimbots are completely self-animated and move very realistically. Over time (you can let it run through a browser for hours, days, weeks), the swimbots literally evolve into new characters without any user input. I’ve never seen a more realistic depiction of natural selection in a game or simulation. I mentioned before that I’m a biology teacher (and an avid gamer!), so that’s why I’m so interested in creating something like this, but with my own artistic and game play variations.
-I thought it would be fun to use 3d models and a physics engine for my digital creatures. Obviously, babylon.js supports those two things, but here’s what I don’t know yet:
Can I create a creature made of multiple meshes (body, limbs, head, etc.), have those meshes use the same skeleton, and have those body segments each be able to spawn a random mesh? This is basically what Gene Pool does, but with 2D objects and no physics. I could be completely wrong, but this seems like the biggest technical hurdle to the whole concept.
For instance, when a creature spawns:
*A default skeleton and physics impostors are loaded.
*The head, limbs, and body are randomly assigned from a set of premade meshes.
*The world will be populated with hundreds of these self-animated creatures, which will then move
around and attempt to achieve their objectives with no user input. I know there will be some
seriously complicated math to make them move realistically!
I’ve eliminated the potential challenge of trying to have the creatures have one continuous mesh (like in Spore or No Man’s Sky). My characters will have different segments that overlap, but will not actually be part of the same mesh. This won’t look as good as having continuous meshes, but I didn’t want to add another tremendous challenge to the mix.
So, this is what I envision, but I’m realistic about my current programming limitations. I certainly don’t want to spend months trying to program something that even the experts have trouble creating!
Any input or advice you have would be most appreciated!
Thanks again,
-Dustan