keep framerate 60 for large openworlds videogames

For large destructable environments with dynamic terrain loading and large openworlds videogames you could place a transparent occluder cube around the player.So that you can keep the framerate 60.
I love the idea don’t you.Work with what you have.

Um, or just set the camera clipping. The result is the same.

But you would not be able to see your sky color.If you set your camera clippings like that.I wish the sky in the bge could have a night and day cycle without a sky box.

An occluder cube around the player???
How would that help?
It would just stop everything from being rendered.

If it was that simple than all of those AAA studios wouldn’t be spending months upon months on optimization now would they…LOL.

It does stop everything from being rendered just the stuff outside the box.

But you would not be able to see your sky color.If you set your camera clippings like that.I wish the sky in the bge could have a night and day cycle without a sky box.

Put your skybox on another scene, then add it as a background scene. Copy camera orientation from main scene.

I don’t think this is a good method for open world games because the objects are still there, they only not visible and that saves maybe some gpu power. The same happens with clipping but anyway it’s the right tool if you want to do something like this (not a occluder cube!).
For the sky you can use a second scene as backgroundscene and synchronize the camera with the the camera in the main scene.
or you scale youre sky depending on the clipping distance.

For open world scenes I would try to use some lod and libload for dynamic loading patches.

I think it would :slight_smile:

It does work.Would anyone
play it that way?I don’t see why not.I would play it that way.Why does things like that have to be like other videogames exactly?

Using this method is really inefficient, and moreover, it would cause popping, objects would just pop in as soon as they come inside the cube which is horrible…the draw distance would suck…and it would just stop them from being drawn to the screen.
It would do nothing for the logic running on them.
LOD, logic culling, dynamically loading in terrain patches is the best way to go and this is why all games use that.

Occlusion culling can only be used at certain places and carefully or it would just slow down. A good example would be a house, so that when you can go inside it everything outside would stop being drawn. Even then if the culled objects are not complex then it is of no use.

Libloading huge chunks of terrain works for me. But, if I add a Near, Radar, sensor, it will crash hard. So there are some rules to apply to make it stable. ( I use sensors, or collisions, or scripts instead. pickup items, bullethole effect, opening doors. etc.) And, I only libload the terrain chunk with as little logic as possible. But, I’m still experiment with it. (Not saying you can’t, just saying I don’t)
Give it a try.

Still there is a limit to how much you can add. and the fps will drop if that limit is exceeded. And more so on weaker PC’s.

Nickolas_A has a video in resources “14 ways to optimize your game” with a script that will get the distance to an object, and make it invisible, might help a little with trees, and brush. But you will still have that popping in and out effect.

No one loves Blender more than I do. . . But. . .
IMHO Blender isn’t built for making large open worlds. Every time I try, the performance drops big time. If I wanted to make a large open world game, I would use UE4, it’s built for that.

I don’t think draw distance for enemies and the environment should be that big a deal for a videogame.For a videogame
that you are playing.If that is the limit of the game engine you are making videogames on.You should accept it and make a openworld game anyway.Ones with destructable environments and not.That would show them you appreciate what they
done so far.If you make a great game with it.I like camera clippings idea.I think i will use that method.You could even use it for multiplayer openworld videogames.

Don’t get me wrong, I am not saying that you shouldn’t use blender to make open world games. Infact one of the problems itself is that people don’t work on big projects and instead make small low level games and it gives out the impression that bge is good for only this low level type of stuff. This happened with unity too in the beginning as everybody and their mama was using it to make small 2d mobile games.

You should definitely try to make an open world game if you’re willing to put in the work and it can DEFINITELY BE DONE one way or another. I was just pointing out that occluder cube is not the best way to go. Blender has a LOD system and logic states which can be used for logic culling. It would just require a lot of work but people don’t even try it and assume from the beginning that its absolutely impossible. Of course I am not talking about GTA or Witcher degree open world, but open world nonetheless.

I believe would still be a openworld videogame even if you could not see very far.What if i made it that in the story about the world in the videogame you could not see very far.Would anyone play it ?

When it makes sense and it has a reason in context to the story (of the world) why not. Maybe it has a nice atmosphäre with some mist or something like that.

Nothing must be realistic as long it fit into the game world/gameplay and the player don’t have to think it’s only a limitation.
So maybe not all kinds of games (or idols) are perfect for this conditions.

But if you really want to use the bge for this then the best way is test it out and see what you can get. It also depends on what you want to do and how much quality…, logic…, amounts of… and all the stuff we talk about here every day.

You also got the importent keywords: Lod, libload, clipping and maybe occluder for some places…

large open world?

use a kdtree to store where each object will be placed.

Kdtree radius small = objects to be givin physics, graphics and logic
set(Kdtree radius big)-set(Kdtree radius small) = objects who need physics removed / gfx and logic removed,

Does this work with procedural environments?

yeah, but you have to generate the world, (without adding the parts)
and save the kdtree.

I have a example,
it uses a kdtree for dynamic lamp placement and physics LOD

Okay, now listen before BPR de-rails this even more.

Here’s how it goes:

  1. Drop the demo that i carpped out in an afternoon. It is the wrong way to do things. You already are getting various bad ideas from it. It’s like bad habit you must quit.
  2. for once, learn about draw call batching, I have even given numerous bge related links.
  3. implement draw call batching in blender
    4.A) if you after that still want voxel games - then switch engines
    or
    4.B) Learn other algorithms. Try to solve all ‘greedy algorithms’ in Hackerrank. After training your thinking skills try again.

I don’t want to sound mean, but you have tried to do this awfully long without any real progress.
Start doing things smart now.

I would like to see it?