Loading a level/stage
Blitz3D Forums/Blitz3D Programming/Loading a level/stage
| ||
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 |
| ||
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 |
| ||
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). |
| ||
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) |