If we've got bind culling already as feature complete, what takes so long? If you've got the technology and the code written, where are the hours going right now?
TL;DRAsync loading, range decisions and bind culling each work, but networked spawning must be reworked so the client loads entities in the background and then tells the server when it's ready, instead of blocking.
So yeah, we've got the async entity loading working. We've got the range-based decision-making working. We've got bind culling working. It's now fitting those together, because what we currently have without asynchronous networked spawning is: the streaming manager will say, these entities are out of range for this client, you don't need them anymore. Bind culling will relay those messages, the client will drop them, and that's fine. But when you come into range of some entities and the client needs to spawn them, it will do a blocking spawn. It puts them all on the main thread. Your game grinds to a halt. So the part that we're left with now is changing the network messaging that handles spawning so that it can work with this asynchronous process, because the network messages as they currently stand assume this blocking synchronous spawn. As soon as I've said spawn, it will be spawned and I can start sending messages to that entity. But because it's an asynchronous process, we've got to load the files from the disk. It can take, depending on the number of entities we're trying to spawn...
Say a whole planet.
Say a whole planet. It's going to take a few seconds to do. So we need the client to start spawning, do all its work, and when it's finished, go back to the server and say, I'm done now, can you send me some updates? And then the server can start communicating information to those new entities on the clients, and put them in their final state, because things have probably changed during the time it's taken. And then when all that process is finished, the client can finally go, right, I've got everything, I can put these entities into my local simulation and they can start interacting.