The Tales of the Last (FPS) (+Screenshots)

Sounds Neat… :spin:

Just because something is old doesn’t mean it isn’t hard to program or structurally complex.

there are an easy way to handle bullet drop in blender over network, as explained here:
NOTE 1: this method requires an blend file to coexist or be the server.
NOTE 2: using this method can give the server almost all the calculations in the game, making the clients less expensive to run.

step 1:
client fires an bullet and sends an request to the server whit the exact starting location/rotation of the bullet. (need an tcp connection)
step 2:
the server receives the request, after syncing everything else the server adds an bullet at the received location and sends back an answer telling every client to add this bullet. (the bullet in the client’s are visual only, and don’t need to be 100% precise.)

You got about the right idea so far…

step 3: as the server continuous to update the player position it is also handling the bullet (in blender this one can be handled as an usual object affected by bullet-physic’s)

No, they can’t. Bullets are too fast and tiny to register collisions correctly using the built-in bullet physics (ironic name though) and need custom collision checking which greatly increases performance as well. You aren’t dealing with lag compensation. This is the hard part in networking this type of collision checking. You have to check each players’ ping and take it into consideration when checking for collision.

step 4: the bullet on the server dies or hit an object the server sends an message to the clients telling them that the bullet have died or hit an object.
step 5: the clients revive the info about the bullet and do what needs to be done to their visual bullet.

This is no different from local situation, nothing special.

no more steps needed, that was easy, wasn’t it? :slight_smile:

in order to make this system more accurate for players whit huge ping, an ping compensation system can be used, but i won’t explain that on here.[/QUOTE]

It’s easy because you aren’t handling the hard stuff at all. Practically any real-time (especially FPS) game is unplayable (by today’s standards) without lag compensation. What looks like an obvious hit on your screen would register as a miss most of the time what with the bullet traveling speed.