Netcode ist ein sicheres Client/Server-Protokoll, das auf UDP aufbaut.
Es ist für den Einsatz in Echtzeit-Multiplayer-Spielen gedacht, die ein verbindungsorientiertes Protokoll benötigen, jedoch ohne die Head-of-Line-Blockierung von TCP.
Netcode verfügt über die folgenden Funktionen:
Netcode ist stabil und produktionsbereit.
Beginnen Sie mit der Generierung eines zufälligen privaten 32-Byte-Schlüssels. Geben Sie Ihren privaten Schlüssel nicht an Dritte weiter.
Fügen Sie Ihren privaten Schlüssel insbesondere nicht in die ausführbare Client-Datei ein!
Hier ist ein privater Testschlüssel:
static uint8_t private_key [ NETCODE_KEY_BYTES ] = { 0x60 , 0x6a , 0xbe , 0x6e , 0xc9 , 0x19 , 0x10 , 0xea ,
0x9a , 0x65 , 0x62 , 0xf6 , 0x6f , 0x2b , 0x30 , 0xe4 ,
0x43 , 0x71 , 0xd6 , 0x2c , 0xd1 , 0x99 , 0x27 , 0x26 ,
0x6b , 0x3c , 0x60 , 0xf4 , 0xb7 , 0x15 , 0xab , 0xa1 };
Erstellen Sie einen Server mit dem privaten Schlüssel:
char * server_address = "127.0.0.1:40000" ;
struct netcode_server_config_t server_config ;
netcode_default_server_config ( & server_config );
memcpy ( & server_config . private_key , private_key , NETCODE_KEY_BYTES );
struct netcode_server_t * server = netcode_server_create ( server_address , & server_config , time );
if ( ! server )
{
printf ( "error: failed to create servern" );
return 1 ;
}
Anschließend starten Sie den Server mit der gewünschten Anzahl an Client-Slots:
netcode_server_start ( server , 16 );
Um einen Client zu verbinden, sollte Ihr Client eine REST-API zu Ihrem Backend aufrufen, die ein Verbindungstoken zurückgibt.
Die Verwendung eines Verbindungstokens sichert Ihren Server, sodass nur mit Ihrem Backend autorisierte Clients eine Verbindung herstellen können.
netcode_client_connect ( client , connect_token );
Sobald der Client eine Verbindung zum Server herstellt, wird dem Client ein Client-Index zugewiesen und er kann verschlüsselte und signierte Pakete mit dem Server austauschen.
Weitere Einzelheiten finden Sie unter client.c und server.c
Dieses Repository enthält die Implementierung von Netcode in C.
Andere Netcode-Implementierungen umfassen:
Wenn Sie Ihre eigene Netcode-Implementierung erstellen möchten, lesen Sie bitte den Netcode 1.02-Standard.
Diese Leute sind großartig:
Vielen Dank für Ihre Beiträge zu Netcode!
Der Autor dieser Bibliothek ist Glenn Fiedler.
Weitere Open-Source-Bibliotheken desselben Autors sind: Reliable, Serialize und Yojimbo.
Wenn Sie diese Software nützlich finden, denken Sie bitte darüber nach, sie zu sponsern. Danke!
BSD-3-Klausel-Lizenz.