Apa kemungkinan kerugian menggunakan JavaScript (sisi klien) saat membuat game multi-pemain?
Deskripsi permainan: Ini adalah MMORPG / RTS. Itu berarti pemain secara aktif berkontribusi pada struktur di dunia dan membuat banyak konten sendiri.
2d
multiplayer
javascript
jcora
sumber
sumber
Jawaban:
Tidak apa-apa jika:
sumber
Apakah game Anda cocok atau tidak untuk pengembangan JavaScript tergantung pada game tersebut. Anda tidak menggambarkan permainan Anda, jadi tidak ada cara bagi kami untuk menjawab pertanyaan dalam judul.
Namun saya dapat mengatakan bahwa masalah peretasan Anda tidak menjadi masalah di sini. Bukan karena JavaScript tidak dapat diretas (dapat, dan mudah) tetapi demikian juga setiap teknologi sisi klien lainnya. Salah satu prinsip dasar pengembangan game multi-pemain adalah "jangan pernah mempercayai klien". Rancang game Anda sedemikian rupa sehingga apa pun yang Anda butuhkan untuk melindungi dari peretasan sedang berjalan di server, karena klien akan diretas. Ini berarti hanya mengirim perintah UI dari klien (mis. "Pemain mengklik tombol Bom") dan menghitung hasil tindakan pemain di server. Kemudian server mengirimkan kembali kepada klien hasil dari tindakan tersebut.
Karena apa pun teknologi yang Anda andalkan, Anda harus merancang game Anda dengan asumsi bahwa komponen sisi klien akan diretas, kemampuan hack JavaScript tidak menjadi pertimbangan ketika memutuskan apakah akan menggunakan JavaScript atau tidak.
sumber
Orang-orang dapat mengubah kode klien untuk menipu, itu adalah masalah untuk game multipemain apa pun. Jika kecepatan reaksi atau penyelesaian tugas matematika yang cepat adalah bagian dari permainan, Anda tidak dapat sepenuhnya mencegah kecurangan.
Untuk elemen gim lainnya, Anda harus memastikan bahwa klien tidak mau dan tidak bisa mendapatkan informasi yang seharusnya disembunyikan oleh pemain. Dan tentu saja server harus memvalidasi bahwa setiap tindakan yang diambil oleh pemain adalah sah.
Masalah terbesar yang saya lihat dalam permainan JavaScript adalah bahwa banyak browser memiliki kecenderungan untuk gagap, terutama Firefox yang sangat buruk terakhir kali saya periksa. Untuk alasan ini, JavaScript bukan pilihan yang baik untuk gameplay yang sensitif terhadap waktu. Tetapi untuk permainan berbasis giliran atau setidaknya permainan lambat, JavaScript dapat bekerja dengan baik.
sumber
Mengubah variabel Javascript cukup mudah dilakukan dengan alat-alat seperti Firebug (untuk firefox) atau perangkat pengembang di Safari / Chrome. Anda cukup mengetikkan javascript di konsol dan itu akan dieksekusi. Sebagai aturan sederhana, jangan mengandalkan sisi klien untuk keamanan. Selain itu, dengan diperkenalkannya elemen kanvas HTML5, javascript menawarkan Anda beberapa kemungkinan nyata untuk gim-gim sederhana (misalnya Angry Birds versi javascript / html5 lengkap).
sumber