libquicknet
Einfache und kleine zuverlässige UDP-Netzwerkbibliothek für Spiele
❗ libquicknet befindet sich in der Entwicklung und ist nicht für Produktionscode geeignet ❗
Das Hauptziel dieser Bibliothek sind Spielprototypen oder Jam-Spiele, die ein schnelles Plug-and-Play-Netzwerk-Subsystem erfordern.
Sehr einfach einzurichten und in Betrieb zu nehmen!
Merkmale:
- Verbindungsorientiertes UDP-Protokoll mit 3-stufigem Handshake
- Client<->Server- und Peer-to-Peer-Unterstützung
- Geringe Bandbreitennutzung
- Sequenziert/Unsequenziert. Zuverlässige/unzuverlässige Unterstützung
- Schnelles redundantes Quittierungssystem für zuverlässige Nachrichten
- Servererkennung (nur LAN)
- Vollständiges Prüfsummensystem zur Vermeidung von Nachrichtenbeschädigungen
- Optionale Nachrichtenzusammenführung beim Senden
- Fest wählbare Senderate
- Erkennung doppelter Nachrichten
- Unterstützung für gefälschte Latenz und Paketverlust
- Ping- und Round-Trip-Time-Schätzung
- Plattformübergreifend (Windows/Linux)
Zukünftige Funktionen:
- Zeitsynchronisation
- RNG-Synchronisation für deterministische Systeme
- Bitpacking und Komprimierung
- Symmetrische Verschlüsselung mit Schlüsselaustausch beim Handshake
- NAT-Traversal und Punch-Through
- Endianness-Bewusstsein
- Anerkennungssystem verbessern
Installation
Legen Sie alle Quelldateien in Ihrem Projekt ab und kompilieren Sie!
Verwendung
- Quicknet_peer.h einschließen
- Erstellen Sie einen Nachkommen von quicknet::Peer
- Überschreiben Sie die Methoden OnConnection, OnDisconnection und OnGameMessage
- Definieren Sie Ihre benutzerdefinierten Spielnachrichten wie in quicknet_messagetypes.h beschrieben
- Fügen Sie Ihre Nachrichten-IDs in quicknet_messagelookup.h ein
- Bereit!
Ein einfaches Beispiel finden Sie in test.cpp
Hintergrund
Diese Bibliothek wurde in einer Woche geschrieben, und selbst wenn sie voll funktionsfähig ist, bedarf es noch einer Menge Arbeit, um sie noch besser zu machen!
Es gibt immer noch viele fest codierte Dinge, die gepflegt werden müssen, aber ich werde versuchen, daraus eine leicht anpassbare Bibliothek zu machen.