If I can work out how maps, regions, zones, sectors, cells and portals relate to each other, I think I may be able to come up with at least one way of doing this.
The main environment would be made of one big sector. This sector would contain one terrain2 mesh (see http://www.crystalspace3d.org/docs/online/api/structiTerrainSystem.html
You would have split the terrain in many cells (that can be loaded separately). You can configure the terrain2 mesh to load automatically in background the cells that are close to the camera.
You can add foliage, rocks and such objects on the terrain by using the mesh generator (see http://www.crystalspace3d.org/docs/online/api/structiMeshGenerator.html
You can also add bigger objects such as small houses, big trees, etc. These objects would be genmeshes (see http://www.crystalspace3d.org/docs/online/api/structiGeneralMeshState.html
). These objects can use either imposters, static or progressive LOD in order to have more details when close to them but still having many of them in view all the time (see http://www.crystalspace3d.org/docs/online/manual/Level-of-Detail.html
When you want to create a big building or dig a cavern onto the terrain, you would create other sectors and connect them with portals. The sectors would be used to split the big building in small areas that can be loaded separately. Portals are used to go from one sector to another, they are also the main way to create a hole in a terrain (eg for the entrance of a cavern). The default level ('castle') of walktest is a good example of a heavy use of portals (although their exact position should be tweaked).
To actually manage to way all these sectors are automatically loaded and unloaded, you would use the iPcZoneManager (see http://crystalspace3d.org/cel/docs/online/manual/PropClass-ZoneMgr.html
). This manager defines the following concepts:
- map: a sector or a list of entities (eg NPC's)
- region: a list of map (ie sectors or entities) that would be loaded alltogether
- zone: a list of region
By defining how the regions are shared by the zones, you can define how these regions will be loaded and unloaded in background from the memory.
Are there any Windows binaries available so that I can test Crystal Space without having to compile the source and install dependencies?
No, sorry, there are still no binary available.