Selasa, 31 Januari 2017

Membuat Game HTML5 : Cara Kerja Multi-Player Game (Komunikasi Antara Client Dan Server)


Awalnya terasa terheran ketika melihat semua komputer dapat melihat wajah tampilan yang sama. Padahal, pemainnya ada puluhan sampai ratusan! Bagaimana bisa server melayani klien sebanyak itu dengan biaya pribadi?

Baru-baru ini saya paham, ternyata bayangan mekanisme komunikasi antara klien dan server pada game multiplayer salah tergambar di otak saya. Jadi, bagaimana sebenarnya mekanisme komunikasi antara server dan para kliennya?

Awalnya saya pikir gambar yang muncul di monitor adalah gambar yang sudah diproses di server, lalu dikirim ke kita. Padahal, sebenarnya semua gambar tersebut diproses langsung oleh komputer kita masing-masing. Biar lebih jelas, kita mulai dengan melihat ilustrasi mulai dari awal kita mengklik tombol start pada game multiplayer.

Semua data pemain berada di server dan juga klien, misalnya nama, koordinat pemain dan beberapa aktivitas yang sedan dilakukan oleh pemain. Namun, server mungkin tidak akan membagikan data spesifik yang bersifat privat bagi tiap pemain.

Ketika pemain datang, data pemain baru tersebut akan ditambahkan ke server. Selanjutnya server mengirimkan data pemain lain yang sedang aktif dan sudah memulai terlebih dulu kepadanya. Tidak sampai disitu, pemain lain juga harus tahu, bahwa ada pemain baru, ya. Jadi, server juga perlu mengirim data pemain baru kepada para klien lama-nya.

Sementara itu, proses kontrol player dan semua event yang terjadi dalam permainan juga akan dibagikan secara menyeluruh.

Server sama sekali tidak memproses gambar apapun. Tugas server di sini hanyalah menyiarkan event yang terjadi oleh setiap player. Misalkan kita menekan tombol DOWN, yang terjadi adalah:
- Update data posisi player
- Kirim pemberitahuan ke server
- Update gambar tampilan
- Server menyebarkan pemberitahuan ke yang lain
- Pemain lain mengupdata data posisi kita di komputer mereka
- Update gambar tampilan mereka

Sampai disini sudah cukup terbayang, bukan?
Yap, bagus. Jika sudah, nanti kita akan mulai belajar membuat game multi-player pertama kita. Eits, tapi mimin selesaikan dulu ya, tutorial Node.js dan Socket.io nya.
Load disqus comments

0 comments