Everyone probably knows about Minecraft or similar voxel engines (such as Minetest). One of the most impressive features in MC is the ability to have enormous worlds, which can theoretically be times larger than the surface of Earth in real life. This amazing feature is possible because the engine only loads those parts of the world which are within a player’s field of vision. If it were to load all voxels and all entities in the world at once, MineCraft would require an extremely powerful processor and perhaps hundreds of gigabytes of RAM… therefore you could only build very small worlds in it. Which is precisely the case in Second Life: The server activates all primitives in a region as well as the scripts on them, regardless whether an avatar is around or not… perhaps the primary reason why SL regions were limited to 256 x 256 meters.
I’d like to know if Hifi supports or will ever support an approach similar to MineCraft. What I’m thinking about more precisely is this: Entities as well as voxel groups could have a special property, which determines if they are active all the time or only when within the field of vision of an avatar. If disabled, the object and its model / scripts are always loaded and kept active by the region server… useful for stuff which contains scripts you always want active in your world. If enabled, the server only loads them when an avatar gets close enough to see them, then unloads them once no more avatars are nearby. While unloaded, the object and all its properties are only stored in the world database on the drive, meaning it’s not processed by the server and uses no CPU or RAM whatsoever.
If this ability is or can be implemented, it would allow people to create huge worlds on a single machine, without processor or memory being a limitation! Such as Minecraft sized landscapes that are procedurally generated and can be endlessly explored, or cities of real life proportions using mesh objects. What are your thoughts about realtime loading / unloading of objects based on zones?