Saya membuat MOBA kecil sederhana hanya untuk bersenang-senang. Saya membuat semuanya single-player kemudian saya menyadari "oh sial, saya mungkin harus menambahkan multiplayer, ya."
Saya belum pernah melakukan apa pun dengan jaringan sebelumnya, jadi belajar bagaimana mengintegrasikan Lidgren ke dalam permainan saya menyenangkan dan mengagumkan. Masalahnya, saya cukup tahu cara saya melakukan sesuatu itu salah, karena itu tidak cukup kuat untuk digunakan oleh permainan umum, sejauh yang saya tahu, tetapi apa yang salah dengan itu?
Apa yang saya lakukan adalah, pada dasarnya, setiap kali seorang pemain melakukan suatu tindakan, ia mengirim pesan ke server mengatakan "hei, saya baru saja melakukan hal ini." Server dan klien menjalankan simulasi yang sama. Server kemudian mengirim pesan ke semua klien lain mengatakan kepada mereka bahwa orang itu melakukan hal itu.
Sebagian besar, kecuali dalam beberapa kasus, ketika seorang pemain melakukan sesuatu, klien menganggap itu keren dan melanjutkannya sendiri. Jadi ketika Anda mengklik kanan di suatu tempat untuk pindah ke sana, klien pemain itu baru saja mulai memindahkan orangnya di sana, dan kemudian mengirim pesan ke server untuk memberitahukannya.
Jadi pada dasarnya:
- Pemain 1 mengucapkan mantra untuk membuatnya bergerak 100% lebih cepat selama enam detik
- Klien lokal Player 1 menambahkan buff itu ke objek Unitnya
- Klien Player 1 mengirim pesan ke server yang mengatakan "hei saya baru saja membaca mantra ini"
- Server memastikan dia benar-benar memiliki cukup mana untuk menggunakan mantra itu, dan jika demikian, menambahkan buff itu ke salinan server objek Unit itu
- Server mengirim pesan ke semua klien lain mengatakan "hei orang ini baru saja membaca mantra ini"
- Setiap klien lain menerima pesan dan pergi "ah oke, keren," dan menambahkan buff itu ke objek Unit lokal mereka untuk pemain itu
Saya telah membaca sekilas tentang hal-hal untuk melihat bagaimana permainan besar melakukan multipemain, dan ini agak membingungkan bagi seseorang yang baru mulai mencoba-coba hal ini, tetapi sepertinya mesin Sumber mengirimkan paket berisi semua perubahan ke semua yang ada di dunia setiap kutu? Sekali lagi, benar-benar baru dalam hal ini, tetapi bisakah Anda benar-benar mendorong sebanyak itu data sebanyak itu?
Maaf jika ini agak kasar, tetapi pada dasarnya, saya bertanya-tanya mengapa sistem saya yang lebih sederhana bukan cara yang tepat untuk pergi, karena jika itu, game lain akan menggunakannya, kan?