Originally Posted by
Jadd
I thought about this pretty well in-depth a while ago. But it's a lot of work, I never even began writing it.
1. Load the world.
2. Copy current objects.
3. Hook player movement functions and forward them to the viewer client.
4. Hook CGObject_C constructors/destructors on host, create and destroy them on the viewer's client.
5. Forward incoming packets to the viewer's client. Game server -> host client -> viewer client.
It sounds easy, but 1, 2 and 3 will probably cause a few headaches. And of course, without any prior testing, there's probably a LOT I'm not accounting for. The viewer client is going to get confused a lot without a LOT of hacks and tweaks.