Dalam game online multiplayer, banyak pemain dapat melakukan berbagai tindakan dalam waktu yang hampir bersamaan. Dua pemain dapat menembak satu sama lain, mengambil item yang sama, membuka pintu, atau menyerang musuh pada waktu yang sangat berdekatan.
Dari layar pemain, kedua tindakan tersebut mungkin terlihat terjadi tepat pada waktu yang sama. Namun, sistem game tetap harus menentukan hasil akhirnya.
Untuk melakukannya, game menggunakan server, jaringan, dan sistem sinkronisasi. Sistem tersebut menerima informasi dari setiap pemain, memprosesnya, kemudian mengirimkan hasil yang dianggap benar kepada perangkat pemain lainnya.
Perangkat Pemain Mengirimkan Informasi ke Server
Ketika pemain menekan tombol rtp rajazeus untuk melakukan aksi, perangkat akan memproses perintah tersebut terlebih dahulu.
Misalnya, pemain A menekan tombol untuk menembak.
Game kemudian mengirimkan informasi mengenai tindakan tersebut menuju server. Pada saat hampir bersamaan, pemain B juga melakukan serangan dan perangkatnya mengirimkan informasi serupa.
Server akhirnya menerima dua permintaan:
- Pemain A melakukan serangan.
- Pemain B melakukan serangan.
Server kemudian menentukan bagaimana kedua tindakan tersebut memengaruhi kondisi permainan.
Aksi yang Terlihat Bersamaan Belum Tentu Tiba Bersamaan
Jarak antara perangkat pemain dan server dapat memengaruhi perjalanan data.
Misalnya, pemain A memiliki ping 30 ms, sedangkan pemain B memiliki ping 100 ms. Perintah dari pemain A kemungkinan dapat mencapai server lebih cepat.
Namun, kondisi jaringan jauh lebih rumit daripada sekadar membandingkan angka ping. Jalur jaringan, perubahan latency, packet loss, serta sistem yang digunakan game juga dapat memengaruhi proses tersebut.
Karena itu, dua aksi yang terlihat terjadi bersamaan pada layar masing-masing pemain belum tentu sampai ke server pada waktu yang sama.
Server Menentukan Kondisi Permainan
Dalam banyak game multiplayer, server memiliki peran penting sebagai sumber informasi utama mengenai kondisi pertandingan.
Misalnya, dua pemain mencoba mengambil satu item yang sama.
Pada layar pemain A, ia merasa sudah mencapai item tersebut terlebih dahulu. Pemain B mungkin melihat hal yang sama dari perangkatnya.
Server harus menentukan siapa yang berhasil mendapatkannya berdasarkan aturan permainan dan data yang diterima.
Setelah menentukan hasil, server mengirimkan informasi terbaru kepada kedua pemain.
Pemain yang gagal mendapatkan item kemudian melihat item tersebut menghilang karena sudah menjadi milik pemain lain.
Urutan Data Membantu Menentukan Hasil
Komputer dapat memproses kejadian dalam urutan yang sangat kecil dan cepat. Karena itu, sesuatu yang terlihat benar-benar bersamaan bagi manusia masih dapat memiliki perbedaan waktu dalam sistem.
Game dapat menggunakan tick server, urutan paket data, timestamp, atau aturan internal lainnya untuk memproses aksi.
Tick dapat dipahami sebagai waktu ketika server memperbarui kondisi permainan.
Jika dua aksi masuk dalam rentang waktu yang sangat dekat, server akan memprosesnya berdasarkan sistem yang sudah developer tentukan.
Karena itu, hasil tidak selalu bergantung pada siapa yang terlihat lebih cepat dari sudut pandang pemain.
Bagaimana Jika Dua Pemain Saling Menyerang?
Situasi menjadi lebih menarik ketika dua pemain saling menyerang pada waktu hampir bersamaan.
Bayangkan pemain A dan pemain B hanya memiliki sedikit health. Keduanya menembak pada waktu yang sangat dekat.
Dalam satu game, server mungkin menerima dan menganggap kedua serangan sah. Akibatnya, kedua pemain dapat kalah hampir bersamaan.
Game lain mungkin memiliki aturan berbeda sehingga hanya salah satu serangan yang dianggap terjadi lebih dahulu.
Hasil tersebut bergantung pada sistem multiplayer yang developer gunakan.
Latency Bisa Membuat Hasil Terlihat Aneh
Latency merupakan waktu yang dibutuhkan data untuk berpindah antara perangkat pemain dan server.
Semakin tinggi latency, semakin besar kemungkinan terdapat perbedaan antara kondisi yang terlihat di layar dan kondisi yang sudah tercatat pada server.
Contohnya, pemain sudah bergerak ke balik tembok tetapi masih terkena serangan.
Dari sudut pandang pemain, karakter seharusnya sudah aman. Namun, informasi yang diterima dan diproses server dapat menunjukkan kondisi yang sedikit berbeda pada saat serangan terjadi.
Situasi seperti ini sering membuat pemain merasa lawannya menyerang dari posisi yang tidak masuk akal.
Game Menggunakan Prediksi agar Gerakan Tetap Terasa Lancar
Jika perangkat harus menunggu jawaban server untuk setiap langkah, permainan dapat terasa lambat.
Karena itu, banyak game menggunakan teknik seperti client-side prediction.
Secara sederhana, perangkat langsung memperkirakan hasil dari tindakan pemain tanpa selalu menunggu konfirmasi server terlebih dahulu.
Misalnya, ketika pemain menekan tombol maju, karakter langsung bergerak pada layar.
Sementara itu, perangkat tetap mengirimkan informasi menuju server.
Jika hasil dari server sesuai dengan perkiraan perangkat, permainan terus berjalan seperti biasa. Namun, jika terdapat perbedaan, game dapat melakukan koreksi.
Sinkronisasi Menjaga Semua Pemain Melihat Dunia yang Sama
Setiap pemain memiliki perangkat dan kondisi jaringan berbeda. Tanpa sinkronisasi, posisi karakter atau kondisi objek dapat terlihat berbeda pada setiap layar.
Server membantu menjaga sinkronisasi game online dengan terus memperbarui informasi penting.
Misalnya, server dapat mencatat posisi pemain, jumlah health, status objek, hasil serangan, dan berbagai perubahan lainnya.
Perangkat kemudian menggunakan informasi tersebut untuk memperbarui kondisi permainan.
Walaupun terdapat sedikit keterlambatan jaringan, sistem berusaha membuat semua pemain mendapatkan hasil yang konsisten.
Developer Harus Menentukan Aturan yang Adil
Tidak ada satu cara yang cocok untuk semua jenis game.
Game balapan memiliki kebutuhan berbeda dari game tembak-menembak. Begitu juga dengan game strategi, olahraga, atau pertarungan.
Karena itu, developer menentukan aturan berdasarkan jenis permainan.
Mereka perlu mempertimbangkan kecepatan aksi, kondisi jaringan pemain, posisi server, hingga seberapa penting ketepatan waktu dalam menentukan hasil.
Tujuannya adalah membuat interaksi antar pemain terasa responsif sekaligus tetap adil.
Penutup
Ketika dua pemain melakukan aksi pada waktu yang sama, game harus menentukan hasil berdasarkan informasi yang diterima dan aturan yang digunakan sistem multiplayer.
Server dapat mempertimbangkan urutan data, pembaruan tick, kondisi permainan, serta mekanisme sinkronisasi. Sementara itu, latency membuat dua kejadian yang terlihat bersamaan belum tentu sampai ke server pada waktu yang benar-benar sama.
Developer kemudian menggunakan berbagai teknik untuk menjaga permainan tetap lancar dan konsisten. Karena proses tersebut, sebuah aksi sederhana seperti dua pemain mengambil item atau saling menyerang sebenarnya melibatkan komunikasi yang sangat cepat antara perangkat pemain dan server game online.
Baca juga : Mengapa Rating Game Bisa Berubah Drastis?
