[... Good description of the system...]
Thank you.
That makes sense, also that you keep important objects active and they keep the cells active. Maybe you could optimize it one step further and just keep the collision data and interactable object for the area, sounds like you are keeping the graphics as well?
It would be interesting trying to implement a Zelda game using this logic as well. But maybe need a bit more logic to try to keep enemies in their native areas...
That made me think of something else.
How will you handle monsters. Will a monster be owned by the cell they are currently in, or where they where created. Both of these can be come a problem. 1: A zone deviod of life due to all enemies migrating to another cell. 2: Enemies being despawned because the owner cell is out of range...
All textures and graphics are streamed / unloaded, the only thing that is always kept in memory is the shape of each polygon for the collision data. If you do make it to an area before it gets loaded, you won't fall through the world, but you won't see anything there. It's not the best solution, but I don't want to punish players for being fast.
As for monsters, larger / more notable things like bosses will be marked essential and won't respawn once they've been killed. All monsters start in the Cell they were spawned in, but can move to other active Cells at will. If the Cell they're in is deactivated, they're despawned, but when you re-activate the Cell they originated in they'll respawn. You could technically abuse this to duplicate enemies, but since it will only work on small ones it shouldn't be an issue. It'd just be like running into another one in the wild. Since their AI will primarily respond to the player, making them not leave their original Cell without being lured or forced to by the player shouldn't be an issue.
To be honest, some of this is still theory and has yet to be implemented, but I'm fairly certain it won't be a big issue. If I make any changes to this I'll give a followup post explaining what actually worked. I hope this helps!
this looks GREAT. when will we get to play it? it looks like a biiiig project, so I'd imagine it won't be for a while?
Thanks! I'm actually hoping to get a player movement test out relatively soon so that people can try their best to break it / get out of the environment / etc. It won't be huge, but should give a good idea of how the game will control and play. Keep your eyes out for it, I'll be making a post about it here when it's ready