I’m working on a prototype that currently generates ~800 proc-gen’d static mesh actors to make a level. It’s prototype code, so it’s really dumb, and they’re mostly just cubes. Not even custom procedural meshes! Some are interactive, but the majority don’t do anything. When connecting the client, it takes minutes to connect and sync the existence of these cubes.
I’d like connection to be much faster, and/or responsive to player input, so they could walk around while the actors stream in.
My first thought, since the procgen is deterministic to a seed, is to just send the seed to the client and have them generate a bunch of local actors. This is super fast to connect, and it visually works, but as a player steps on a block, the third person character code can’t resolve what actor they’re standing on, so we get warnings:
> LogNetPlayerMovement: Warning: ClientAdjustPosition_Implementation could not resolve the new relative movement base actor, ignoring server correction!
I’m not sure what the ramifications of this are, although things seem mostly to work despite it.
My last resort would be some kind of mesh generation, so I’m only streaming tens of actors not hundreds, and/or bite the bullet and move to a voxel renderer. But since this a prototype, I’d really like to do whatever is least-effort. I don’t care about network security, nor do I particularly care about milisecond latency.
What would you do in this situation? Is there any more info I can give you?