[ENet-discuss] fps networking

Lee Salzman lsalzman1 at cox.net
Wed Mar 19 19:58:51 PDT 2008


Sauerbraten itself is just almost totally client-side. Though some stuff 
(damage, health, pickups) has migrated to the server to prevent some 
annoying abuses that were happening, but otherwise aiming and movement 
are done entirely on the client. This has the advantage of being rather 
simple and fool-proof to implement, virtually lag free and requires 
basically no CPU usage on the server. While on the one hand it is easy 
to cheat with an open source game based on that, just moving a few key 
things server-side while leaving more latency sensitive things (aiming, 
movement) client-side really brought down the level of cheating to a 
manageable level.

For Bloodtoll (http://bloodtoll.com), I implemented the co-simulation 
idea because security was essential. After the fact, someone had 
mentioned it sounded similar to HL's networking, so sure enough I had 
reinvented their wheel. It came out rather well, in that aiming is 
pretty much WYSIWYG and latency is masked.

Oh, uh, yeah, both used ENet anyway. ;)

Lee

Martin Sherburn wrote:
> Lee,
>
> Thanks for your very detailed description. And I hope you don't feel 
> like your time writing it was wasted because of rather rude and 
> ungrateful replies.
>
> I think you have just solved my problem for me. For my game 
> (www.konggame.co.uk) I have gone down the co-simulation route because I 
> think it's the best option (prevents blatant cheating such as 
> teleportation while still giving a low-latency feel). But also the most 
> difficult to implement :p
>
> I already implemented  most of what you said, except the part where the 
> client buffers its input to the server. Because of this, the client and 
> server would often get out of sync and lead to laggy feel (constant 
> snapping over bad connections). What you said sounds quite consistent 
> with what I have observed in the Half-Life engine. I.e. when players 
> have lag spikes they stand still for a while then would accelerate back 
> into position. And I'd like to acheive the same kind of networking seen 
> in the HL engine because I think it's one of the best which IMO has 
> contributed a lot to the success of the game counter-strike.
>
> I will get to work on implementing this soon. Just one question, what 
> game have you implemented this in? I've seen you mention the game 
> Sauerbraten (http://sauerbraten.org/) in the past, does this have the 
> co-simulation networking you described?
>
> Regards,
>
> Martin.
>
>   


More information about the ENet-discuss mailing list