Bahkan game yang 100% client / server terkadang memiliki masalah ketika klien berada di belakang NAT. Game pee-peer bahkan merupakan masalah yang lebih besar. Beberapa gim perlu menggunakan beberapa transport (seperti UDP dan TCP) atau banyak koneksi (seperti port UDP yang berbeda untuk suara).
Apa sajakah cara untuk memastikan gim bekerja dengan andal saat berjalan di belakang perute NAT?
- Peer-Peer: Tidak ada server terpusat yang ada. Pemain A memulai permainan dan Pemain B ingin bergabung
- Client-Server: Server terpusat pada alamat yang terkenal (nama host) menerima semua koneksi yang masuk. Setiap klien hanya berkomunikasi dengan server itu.
- Combo: Di mana server hanya perjodohan, tetapi pembaruan game bersifat peer-peer. Peer yang berbeda mungkin melihat setiap pemain dengan IP / port yang berbeda berpotensi (mis. Beberapa klien berada di belakang NAT yang sama dan beberapa di router yang berbeda)
sumber
Jangan minta klien memberi tahu server atau rekannya tentang alamatnya sendiri. Dengan kata lain, jangan embed IP klien A dalam paket game dan minta klien B atau server membalas alamat itu. Selalu balas alamat / port asal pesan itu.
Minimalkan berbagai port UDP atau TCP yang digunakan untuk gim. Ini membuat pengaturan aturan NAT lebih mudah.
Izinkan pengguna untuk mengganti port default yang digunakan dalam game. Dengan cara ini beberapa server dapat di-host di belakang NAT yang sama.
sumber
Bersamaan dengan jawaban lain, gunakan roda yang ada: http://miniupnp.free.fr/ Perpustakaan ini memerangi hampir semua gangguan dalam bentuk fungsi, memberi Anda kendali atas kapan dan bagaimana meninju dan menarik :)
sumber