So we have started experimenting with a replicated version of GPUGame. Each client runs its own GPUGame simulation, which handles all collision and ai for all bullets and zombies. Then we replicate all zombie spawns, player positions, damage and kills. We are NOT replicating zombie positions, but as the simulation is relatively deterministic this seems acceptable for a coop experience.