Flora Generation Constraints

As I am developing the world generator it is becoming important to know what the expected properties will be of the flora typically generated in the 3D environment (primarily land part of macroscopic-aware-awakening), ‘grass’ and ‘tree’ equivalents especially. This topic is specifically about what flora will be generated and used, and relates to the more general topic here about expectations for important niches in Thrive.

In typical games there are well developed ways to optimize grass and foliage rendering performance, and that is usually the job of the terrain LOD system which is what I am working on now. Managing and rendering large amounts of flora is going to be a very performance sensitive task and knowing what the flora will be expected to be like is important for knowing how to optimize the LOD and terrain management systems. The more constrained the flora will be, the more optimizations that can be applied. Typical optimizations rely on the simplicity of real life grass and other properties of foliage, specifically its static nature.

How different will the flora be able to be from earth-like standard? Should the foliage be completely generated with auto-evo, or could there be specifically optimized flora generation for specific niches, like grass?

Potential Grass constraints:

Static- Will grass be completely ‘static’ i.e. cannot move on its own. (That doesn’t preclude it blowing in the wind for example) This will enable many useful optimizations and is extremely useful to know for any potential flora to render.

Low complexity- Will it be about the lowest complexity possible? Typical grass in games is rendered using just a few (less than five) flat triangles each blade. If a complex 3D surface model is used this might limit how dense the grass can be without tanking the performance. Various optimizations can be made even to a complex model of flora like a tree, but only so much can be done and it is more critical for something with the density of grass.

1 Like

Similar to your other recent thread, posting the thoughts I shared with you here as well:

For an immediate answer - grass and other flora should be treated as static objects to ensure our environments which require such objects are not too sparse. If something is motile, I think it should be generally dealt with the same sort of auto-evo that works with the tools a player is also given. It isn’t ideal to bar photosynthetic organisms that move as being important food sources for an ecosystem - I’m imagining a rocky environment where nutrients are too sparse for rooted organisms, but sunlight is still present for there to be photosynthetic “slimes” or “slugs” which can move to given resources but prefer to stay sessile to conserve energy. But those should be unique species, not necessarily the organism we spawn every and call flora.

The most movement I can concieve of for our standard grass is for the possibility of areas of vegetation to shrink or expand in seasonal ecosystems in single organism’s life. For example, in a savannah-like ecosystem, it would be cool to see grass slowly disappear across multiple areas and then reappear at some point to represent a dry-wet season and simulate the sort of evolutionary pressures organisms which live in that environment would face. That isn’t necessarily a matter of movement, and more a matter of spawning and adjusting the underlying stats of the patch itself. So if that isn’t too much work, that would be a nice thing to have; but, to put it a certain way, I don’t at all think this is necessary straight out the box for the purposes of the macroscopic stages.

For a more complex answer on the way I think we deal with flora’s evoltuion: I think that many aspects of flora for a lot of Thrive’s macroscopic development should be simulated in a very simple manner. Kind of like how we treat compounds in the Microbe Stage, I think it’s best to treat many forms of flora, and especially ground cover like grasses, ferns, some bushes, etc., as a resource handled somewhat generically by the game. Its presence, sparcity, and behavior would vary in spawning depending on the characteristics of the environment, but we won’t focus the same attention on fundamental flora evolution as we will on fauna flora evolution. And for the “default” sort of ground cover, it’s ideal for them to be very simple in order to allow their abundance if needed.

Larger flora is a bit of a tougher question. I think it would be beneficial to think of there being “resource” flora for things like larger shrubbery and fruit bushes if conditions are met and if an appropriate evoltuionary period is reached. which is set dependent on the environment itself, while allowing for unique products of a simplified “plant auto-evo” to be present. For trees, I think trusting auto-evo with that more, but slightly loosening how strict trees have to be evolved to their ecosystem, will allow for a balance of appropriateness, variety, and ensuring there are numerous areas of the planet available for trees to be highly present in.

2 Likes

Yes.

And yes. I think for the goals of Thrive to make sense all foliage has to be generated by auto-evo, but for performance reasons stuff like grass probably needs special rendering handling like maybe just being a texture layer on terrain.

I don’t think we should allow plants that move around in the game. It will be not realistic and it would be a nightmare for performance.

I think we’ll want to anyway be able to render any foliage as billboards when it is far away from the player. So small dense foliage could stay as billboards even when near the player.

2 Likes

Perhaps I should clarify, by completely static I was excluding such things like the carnivorous venus flytraps that interact actively with the environment while still being rooted to a fixed position in the ground. Or even something like flowers opening and closing at different times, though that might be workable more easily as it is a roughly global change instead of unique to each plant. This is a stricter condition than requiring the general flora to be fixed in position on the world. Is this what you also meant? If we render all foliage as billboards this will necessarily be the case.

I agree, I think that photosynthetic organisms that can move to other locations in the world should not be part of the general flora category. And motile photosynthesizers would be far closer to the density of motile animals in those kind of harsh environments, so it could be managed by the same system that manages the other non-sessile organisms.

1 Like

Well sadly I do think I mean no venus flytraps. Or if allowed it needs to use the same entity limit as moving around creatures do (as it cannot be a billboard).

2 Likes

Thanks for the clarification, this should be enough for me to design the terrain LOD foliage system with.

This level of dynamism should be feasible to do, though the limit might be on how fast the changes can occur. (The amount of change that can be done per real-time second would depend partially on the computer performance, and partially on the system design) We might revisit this later once the system is more complete.

1 Like

I completely agree with hh on this. All organisms should be handled by auto-evo. They should be displayed as billboards depending on their size and distance relative to the player organism.

Keep in mind that the player organism will have a variable size. I believe the current plan is for the smallest macroscopic organism to be 1cm in size, right? If the player is that small, the blades of gras will be the size of trees relatively to the player. Thus, they would need to be displayed at a similar LOD/with a similar amount of detail as a tree when the player is that small.

1 Like