About the river thing...Then you need particles, because to create a fluid with momentum, god that'd be really intensive nums. really intensive.
You mean simulate the fluid as individual particles bouncing around? No, that's not a good way to do it. Instead I'm simulating the fluid using "panel methods". Specifically the fluid sim is a simplification of an incompressible potential flow, commonly used for simulating things like airfoils. Basically each panel in a bot can pull or push the fluid so that the fluid won't pass through it. This pulling or pushing takes the form of hills and valleys in the "potential" of the flow, and the velocity of the fluid at any point in space can be calculated as the sum of the slopes (gradients) of these hills and valleys at that point. Which is a nicely linear problem. Expensive to solve, but not that
expensive. Not entirely computationally dissimilar to if you connected each bot together using a spring, or played around with "planet eaters" mode in DB2. But faster since I know what I'm doing
Have you seen the fluid demo
I put up around two years ago?
I think it'd be better spent to be adding resources which the bots would utilise, such as oxygen, carbon, hydrogen, nitrogren, amino acids, glucose, fructose and starch.
There'll be something along those lines certainly. From what research I can find it seems that biodiversity (which is one of those holy grail goals I want for DB3) arise in nature from energy rich/resource poor areas. So I need to simulate limiting nutrients, I think, and that implies I need to simulate nutrients.
Almost certainly it won't be things like oxygen or carbon dioxide. That particular feed back loop is only really interesting on a global scale, so I don't think it's worth the effort for us. That is, it's not like rain forests are oxygen rich because of all the plants. The atmosphere is too well mixed for that.
But something analogous to phosphorus or potassium seems like a good idea. Something necessary to build panels or other organelles probably. Then bots can fight each other not just for energy to sustain themselves but essential nutrients they need to grow larger and reproduce. Animals have an easy time of it, since they can rob from the plants. The plants have a harder time of it, since they can't go looking for more.
Also, an interesting thing to see would be an Z axis of some sort, maybe 2 layers on the Z axis which bots can go into, to drift over things. It'd create a new challenge of eyes but it'd surely be fun.
I'm thinking through having "leaves" in a third dimension for plants. So plants can compete for space and access to light without preventing animals from running between them. The other option for that I've been thinking about is having something like shapes emitting light from their surface. It doesn't map well to how our universe works, but then it would encourage plants to crowd around the light giving shapes and the spaces between shapes would be mostly empty. But even here I maybe want plants to be able to connect to each other using "roots", and I wouldn't want the roots to block animals from running around.
So while I like the simplicity of a 2D universe I might end up going with an "under" and/or "over" dimension to allow very specific sorts of things to not compete for space with the main 2D layer. Or put another way, maybe physics between bots and some things they can build are disabled.