Open World Design in video games is becoming widely popular. Gamers are seeking games that are more advanced. For the most part, linear games are loosing their interest, and new ways of gaming
are being developed, hence games like World of Warcraft and Eve Online. Are you looking to create an open world but don’t know where to start? These tips will steer you in the right direction.
You say you are worried about the cost of such a huge scene in the editing process. A valid worry but ask yourself this; Why edit it all in the one scene? For each area that your world is divided up into make a separate blend file. Group the entire map together as a single blender group and link the group into your final file. Now arrange these objects in your final file to make your world and you can edit each section separately in their own file. The results will be automatically transferred to the final blend file.
LOD (Level of Detail)
There are many prototypes for LOD (Level of detail) in Blender. It can be done with python and even with logic bricks. You want to carefully map out how to run your LOD system for each section and for the map as a whole. Remember also to use the lowest LOD level as the object seen when editing the map. Since in the 3D viewport all the objects will be giving their impact you want to be using the versions with the lowest poly-count to avoid editing impact.
Heavy use of occluders
Occluders are a relatively new feature in the BGE that, if active, will prevent anything hidden behind an occluder being rendered. For instance if you have a big building and a park behind it full of trees by making the building an occluder you prevent having to render all those trees and save yourself FPS. Just remember never use your detailed game model as the occluder.
They should be as simple as possible. It can be handy to just use the same parts as your collision map for your occluders but remember to think in simple shapes. If your detailed building is in essence a tall cuboid tower then have an invisible cuboid with only 6 faces the same size in the same place. Have it act as your occluder.
This is something to bare in mind for every game you make. You want a nice detailed environment but these details will cost you in terms of speed when it comes to collisions. You want the detailed environment to be a ghost and to have an invisible map with the most basic geometry possible while maintaining the approximate layout as the map that the objects actually collide with.
This is a method that has been used in practically every game since the PS2 era began so it is an important factor in speeding up your games performance. The extra polys are well worth the save in collision calculation time.
Keep your game clean
What this means is avoid having the game slow down over time. If you are doing a GTA-like with lots of cars and pedestrians being generated all the time make sure to impose limitations on the numbers generated. Also, when a dynamic object such as a pedestrian or a car has been out of view for five to ten seconds end that object and get rid of it entirely.
This will enable the game to generate a new pedestrian at a more suitable location and it will make sure that they don’t “fall through the cracks” as it were, leading to a build up in pedestrians over time making the game slow down more and more as time goes on.
One way of testing for this is to start your game at night and check the frame-rate. Leave it running overnight and check frame rate again in the morning. If the game has slowed to a snails crawl or crashed then you have leaks and or bugs that need fixing.
Dynamic Loading and Freeing.
This is a feature that is available in some builds of 2.49 but is officially coming in with 2.5. Dynamically loading and Freeing objects and even entire sections of scenes will remove them entirely. Rather than only removing the calculations pertaining to the objects rendering they are removed from calculation entirely greatly saving your frame-rate.
Extensive use of Grouping
Grouping objects is one of the best features when it comes to design of objects and even areas in the BGE. You can have all your objects set aside in their own files where you set them up with their Graphics, Dynamics and Logic.
All this in it’s on safe, external file that enables easy editing without having to bother with the rest of the game getting in the way. Make extensive use of grouping in every game project you do. Its very important for creating a strong flexible work flow which will allow for easy correction of problems at any stage of the game.