No, at the moment I've got a very basic starting point:
Client fires
Client creates bullet object
Client sends bullet position, angle and velocity to server
Server propagates bullet to other clients
Other clients create bullet
Basically, every client creates every bullet that was fired by any player, and the server tracks position and facing of each bullet.
Collision detection is done in the clients using DGDK native collision detection (ObjectHit). There are no Objects created in the server, the server just tracks position and angle values. So, using ObjectHit on server is not possible.
I understand that native collision detection isn't going to be the fastest. I'd be happy to use a 3rd party dll, but only if it was free. (Is sparky's free and does it come in a Dark GDK flavour?)
As far as I can tell though, it's not the network traffic that is the bottle neck. It's the creation and movement of the bullets in the client.
When there are 1000 bullets in the air, the loop to move the bullets must go through 1000 iterations every main game loop.
I started out using CloneObject, with a master bullet object. Now I've moved to instanced objects which improves things slightly.
There is definately a lot of optimisation to be had. Pretty much everything has been coded 'just to get it working' at the moment. Now I want to get it all slick before moving on with the next phase.
It's not my fault!