Catatan: Ini adalah pertanyaan tentang jaringan, bukan game. Saya menggunakan StarCraft hanya sebagai contoh.
Permainan StarCraft (tidak StarCraft 2) mendukung bermain online. Satu host orang, dan orang lain bergabung. Jika tuan rumah pergi selama pertandingan, permainan dapat berlanjut tanpa batas waktu tanpa tuan rumah. Bagaimana cara kerjanya?
Pertimbangkan skenario berikut:
- Saya meng-host 3 lawan 3. Perhatikan bahwa, agar orang-orang dapat bergabung, router saya harus dikonfigurasikan ke port forward 6112, TCP dan UDP (lihat Dukungan Blizzard ).
- Lima orang bergabung. Semua orang (termasuk saya) ada di belakang router. Saya memulai permainan.
- Tiga menit ke dalam permainan, sekitar dua puluh fanatik mengalir ke pangkalan saya. Tidak ada yang membantu saya.
- Basis saya dihilangkan, jadi saya pergi (permainan tidak memberi Anda pilihan).
- Permainan berlanjut tanpa tuan rumah (tim tuan rumah memiliki dua pemain tersisa).
Bagaimana lima klien yang tersisa (yang tidak perlu diteruskan 6112) tetap terhubung?
Jika saya mengerti benar: jika dua program ingin berbicara satu sama lain, salah satunya harus menjadi "server" dan mendengarkan koneksi pada port, sedangkan yang lain harus menjadi "klien" dan memulai permintaan koneksi pada itu Pelabuhan. Mereka tidak bisa begitu saja mulai mengirim paket satu sama lain (dan saya bahkan tidak tahu bagaimana mereka akan melakukannya, jika keduanya berada di belakang router).
Seseorang yang meng-hosting game adalah server, sementara mereka yang bergabung adalah klien. Sangat mudah untuk melihat bagaimana klien dapat mulai berkomunikasi dengan server. Yang tidak saya dapatkan adalah: bagaimana cara klien mulai berkomunikasi satu sama lain tanpa melalui server? Apakah Protokol Internet memungkinkan server untuk memulai koneksi antara klien?
Sangat mungkin bahwa, dalam kasus StarCraft, lalu lintas game melewati server Battle.net. StarCraft mempertahankan koneksi ke Battle.net selama pertandingan (untuk pesan dari teman, dll.). Namun, saya ragu lalu lintas game melewatinya, karena jika itu terjadi, mengapa tuan rumah perlu melakukan port forward 6112?
Pertanyaan saya adalah: dapatkah server, dengan beberapa klien terhubung, memulai koneksi di antara mereka?
I host a 3 versus 3. Note that, for people to be able to join, my router has to be configured to port forward 6112, TCP and UDP (see Blizzard Support).
Tampaknya ini diperlukan untuk memulai permainan agar pengguna dapat menemukan Anda, tetapi tidak diharuskan untuk tetap terhubung.