Loading a level/stage

Blitz3D Forums/Blitz3D Programming/Loading a level/stage

NotAGamer(Posted 2015) [#1]
i've been trying to see on what will make the game faster.

load a big mesh, an well detailed level?

or

chunk the level and load it by parts?



i dont know the culling techniques built in Blitz3d, does anybody know?

i have to optimise my game coz my game features a huge wave of enemy attacking from all sides


RemiD(Posted 2015) [#2]
I have a found a great culling approach for indoor maps or maps with closed areas and passages between one area and another.
See : http://www.blitzbasic.com/Community/post.php?topic=100901&post=1196855


Rroff(Posted 2015) [#3]
There aren't really culling techniques built into B3D.

The cheap and dirtiest technique that can be used with almost any game is distance based culling + fog.

Anything else will depend hugely on what kind of game you are making and can be surprisingly difficult to implement - if its a traditional FPS type game with fairly static "hull" geometry then you could pre-compute some kind of PVS system but that certainly isn't trivial.

You'll often see things like scene graphs mentioned in this context.

For many games you can probably get away with various LOD systems breaking the level up into chunks and displaying lower quality versions for those at the furthest distance (which is over simplified how games like skyrim/oblivion, etc. work).


RemiD(Posted 2015) [#4]
For games with huge open areas like terrains, this becomes more complicated because you can't rely on one area connected to others areas with passages to know what to show/hide, so you probably would need to use some kind of progressive loading/creation and progressive saving/destruction system, which can be complicated to manage especially if your game has unique components (terrain reliefs, buildings, ...).
Discussions on the same subject :
http://www.blitzbasic.com/Community/posts.php?topic=96042

Another approach that i have seen in some games is to have for each open area (outdoor) the near areas shown and the far away areas hidden but prerendered on a texture and displayed on a flipped cylinder (without top and without bottom, only the sides), doable but the difficult part is to have no visible seams between each render (at front, at back, at left, at right, at frontleft, at frontright, at backleft, at backright)