Well first off let me say I am not sure if this should be in network or game programing but I think network programing is more relevant.

Anyway

I am creating my first game that runs over a network and so far everything is working. I have a server program, the clients can connect and see each other flying around. (weeeee)

However I have hit a wall when trying to make them shoot. The most easy way I can think to do this, is to have the client tell the server “hay i need a bullet pointing at x angle moving at y speed” the server then spawns a bullet entity then sends a spawn entity packet to all the clients. The main problem I see with this, is that the clients gun will have a delay based on latency.(funValue -= 1000)

The only other way I can think to do this, is to have some fake bullets spawn on the client but when the client gets the spawn bullet packet from the server, I am not sure how to keep track of what fake bullets to delete.

the lag part is inevitable, the servers job is to broadcast whatever goes around its client,

imho, animating a bullet is pretty detailed for a game, what they usually do is display the animation of a gun shooting and the collision of the bullet to an object, unless you are talking about a 2D game on top view where you need to see the bullet as it moves around (that would mean it's awfully slow) then all you need to do is animate it

the client application is only meant to display whatever the server is broadcasting, otherwise the game can be manipulated easily at client side

__________________slow down when you need to hurry, stop when you need to move on,
look back when you need to forget, or you might slip and leave sanity