A lot of small objects.

Hello!
I want to create a forest tycoon game in isometric style using low poly 3d objects( smt like this https://cdn.dribbble.com/users/59947/screenshots/2731907/ship_dribble_1x.jpg (not my artwork). I want the game to be grid based. Since it’s forestry game it would be crucial for it to have a lot of trees(maybe not real life count, but so that each tree respresents like 3 trees(wood volume wise etc)). And since tree regrowth should be quite slow, I would like a big map. And I need each tree to grow individually(checks the soil, how close are nearby trees etc, so they would hold the Size, Age and state(Good quality/dry dead tree). It seems that it would eat up a lot of resources to calculate this stuff for each tree. So the questions:

  1. I want the ability to seemlessly move throughout the map and see all the trees, will this be problematic with a lot of small objects(trees)?

  2. What’s the best way to update/calculate tree values, so they don’t grow all together(which seems quite laggy), maybe updating one tree per second or so, but it might become unbalanced if there are not a lot of trees. :smiley:

  3. Is there any guidelines for grid sizes? Can I make small tiles, so that I can create quite dense forest?

Any good read for this topic would be awesome, if you have something to share, please post! Thanks.

  1. Yes, too many objects in your scene can potentially slow it down. Consider using fog, or some other distance-from-cemera-based computation to limit the number of tree visible at any given moment. How many objects your system can display without frame-loss, depends on how complex the objects are to draw. So, using simple-sprites for distant trees, and a full mesh geometry only for close trees, would allow MORE total tree’s to be visible at once. A Custom shader, to draw distant trees is another,
    more advanced option.

  2. Since you mentioned they grow slowly: simply process say… 500 (or some tested-reasonable number) tree’s per cycle. Obviously, this requires you keep a list of all trees, and store, between update cycles, your current position in this list. Since you will not be processing every tree, every cycle; each tree would need to record when it WAS last processed, so it knows how much time it has had to grow.

  3. Small tiles will be fine, but has the potential to affect #1, above.