Une batterie incluse dans une caisse réseau pour les jeux.
[dependencies]
netstack = "0.3.0"
Documentation (travail en cours)
Si vous avez des suggestions, manquez des fonctionnalités ou souhaitez simplement entrer en contact, vous pouvez ouvrir des problèmes dans ce référentiel ou me contacter sur Twitter.
Pour utiliser efficacement netstack en production, vous avez besoin d'un canal sécurisé pour échanger un secret initial et un jeton de connexion. Il est recommandé d'utiliser https pour cela, mais c'est à vous de décider. Les exemples utilisent un serveur http.
(☑️ signifie mis en œuvre, ? signifie planifié ou en cours de développement)
Les transports basés sur io_uring
, IOCP
ou epoll
sont actuellement hors de portée.
Cette caisse n'implémente pas de retransmission basée sur les accusés de réception et les délais d'attente. Les jeux disposent d'autres moyens d'atteindre la fiabilité, principalement parce que les informations sont déjà obsolètes au moment où un mécanisme basé sur un délai d'attente détecte le paquet perdu.
Les FPS, par exemple, envoient au joueur les entrées des deux dernières images de chaque paquet, de sorte que lorsqu'un utilisateur se perd sur le fil, le paquet suivant comble le vide.
La compression de l'état du jeu du serveur vers le client est généralement basée sur le dernier paquet reconnu par le client. Utilisez pour cela l'événement MessageAcknowledged
et le numéro de séquence renvoyé par send
.
Voir le répertoire d'exemples pour un exemple client/serveur, utilisez les commandes pour les exécuter :
cargo run -p server
cargo run -p client
Netstack est livré avec une macro de dérive en cours de travail pour les structures (et les énumérations ultérieures).
# [ derive ( Debug , Serialize , Deserialize ) ]
pub struct Greeting {
pub id : u32 ,
pub to : String ,
pub message : String ,
}
MIT