3 comments

[ 3.0 ms ] story [ 16.0 ms ] thread
This is cool. I'm trying to learn how to do multiplayer networking from scratch, and it is a challenge. I have a C++ game project in my to do projects, might try it out.

It says that all the logic is coded on the server side... would it also be client side too to do the interpolation? I'm coming from the perspective of this article, which I'm following for my networking experiments: https://www.gabrielgambetta.com/client-server-game-architect...

Game logic can be written on either side, as it largely depends on the use case. We strongly encourage developers to design their game logic to be run at server-side due to security considerations however.

As for interpolation, yes, that is entirely possible and completely in your control as well.

librg allows for entity peer streaming, which means that you as a player can take control over a specific entity (or entities) and provide your own updates for the server (such as player position or view angles, etc). It is entirely up to you really.

As an example, we also develop an unofficial multiplayer for Mafia: The City of Lost Heaven, so we use librg as a server proxy for players. Since we can't replicate the game logic on server side, we trust the player in various aspects, such as his player position, animation states or even vehicle handling. This case leads us to librg being used on server as a proxy with minimal logic, that shares game-generated content between players and provides basic fact-checking.

See: https://www.youtube.com/watch?v=2s3Ox5_4rQo

With librg, you are free to do as you please. Feel free to contact us on Discord or via GitHub issues/E-Mail.

Great thanks for the reply, I'm going to star this on Github for using later, thanks for offering contact info; makes this a little less daunting.