[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