Developpez.com - Rubrique 2D-3D-Jeux

Le Club des Développeurs et IT Pro

Valve met à disposition une nouvelle bibliothèque pour les communications réseau

Open source

Le 18/04/2018, par LittleWhite, Responsable 2D/3D/Jeux
Valve propose une nouvelle bibliothèque, open source, pour les communications réseau (reposant sur UDP) sur GitHub. Celle-ci a la particularité de ne pas dépendre de Steam (malgré les multiples occurrences que l'on peut trouver dans le code). En effet, cette bibliothèque provient directement de ce qui est proposé dans SteamWorks. Le but de Valve est que les développeurs ne voient pas l'association à Steam comme une barrière pour utiliser la bibliothèque. Plus précisément, si vous ciblez Steam, alors utilisez la bibliothèque de SteamWorks, sinon, utilisez cette variante indépendante.

Les fonctionnalités fournies par la bibliothèque sont les suivantes :
  • une API orientée connexion (comme TCP) ;
  • mais reposant sur le concept de message (comme UDP) et non orienté flux ;
  • support des messages fiables et non fiables ;
  • les messages peuvent être plus grands que la MTU. Le protocole gère la fragmentation, le réassemblage et la retransmission lors de l'utilisation des messages fiables ;
  • estimation de la bande passante reposant sur le contrôle du taux d'échange (RFC 5348) ;
  • chiffrement. AES par paquet. Ed25519 pour l'échange des clés et des signatures des certificats ;
  • outils pour simuler la perte de paquets et obtenir des statistiques.

Par contre, la bibliothèque ne gère pas la compression, la sérialisation haut niveau des entités, l'encodage du delta et ne gère pas le NAT percing.

Valve travaille toujours dessus comme vous pouvez le constater en lisant le README.

Si vous n'avez pas compris certains termes/principes énoncés dans ce billet, je vous invite à lire :
  Billet blog