netcode adalah protokol klien/server aman yang dibangun di atas UDP.
Ini dimaksudkan untuk digunakan oleh game multipemain waktu nyata, yang memerlukan protokol berorientasi koneksi tetapi tanpa pemblokiran utama TCP.
netcode memiliki beberapa fitur berikut:
netcode stabil dan siap produksi.
Mulailah dengan membuat kunci pribadi acak 32 byte. Jangan bagikan kunci pribadi Anda dengan siapa pun .
Terutama, jangan sertakan kunci pribadi Anda di klien Anda yang dapat dieksekusi!
Berikut adalah tes kunci pribadi:
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 };
Buat server dengan kunci pribadi:
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 ;
}
Kemudian mulai server dengan jumlah slot klien yang Anda inginkan:
netcode_server_start ( server , 16 );
Untuk menghubungkan klien, klien Anda harus menekan REST API ke backend Anda yang mengembalikan token koneksi .
Menggunakan token koneksi akan mengamankan server Anda sehingga hanya klien yang diberi otorisasi dengan backend Anda yang dapat terhubung.
netcode_client_connect ( client , connect_token );
Setelah klien terhubung ke server, klien diberi indeks klien dan dapat bertukar paket terenkripsi dan ditandatangani dengan server.
Untuk lebih jelasnya silakan lihat client.c dan server.c
Repositori ini menampung implementasi netcode di C.
Implementasi netcode lainnya meliputi:
Jika Anda ingin membuat implementasi netcode Anda sendiri, harap baca standar netcode 1.02.
Orang-orang ini luar biasa:
Terima kasih atas kontribusi Anda pada netcode!
Penulis perpustakaan ini adalah Glenn Fiedler.
Pustaka sumber terbuka lainnya oleh penulis yang sama meliputi: reliabel, serialisasi, dan yojimbo.
Jika Anda merasa perangkat lunak ini berguna, mohon pertimbangkan untuk mensponsorinya. Terima kasih!
Lisensi BSD 3-Klausul.