Apa state-of-the-art saat ini untuk jaringan game strategi real-time?
Saya ingat beberapa tahun yang lalu, beberapa judul AAA hanya mentransmisikan input pemain (Starcraft 1, Age of Empires). Karena ini mengharuskan Anda untuk menjaga segala sesuatu yang lain benar-benar deterministik, apakah ini masih pilihan yang layak? Menyinkronkan generator angka acak tampaknya layak, tetapi bagaimana dengan perbedaan halus dalam implementasi FPU dll.?
Atau apakah game strategi menggunakan sesuatu yang lebih dekat dengan jaringan game aksi, di mana entitas individu ditransmisikan sebagai gantinya (dengan beberapa bentuk prediksi dan kompresi (delta))?
Jika demikian, bagaimana item volatile seperti proyektil diperlakukan?
Bagaimana dengan klien / server versus peer-to-peer? Saya menduga bahwa semua ini sangat saling terkait.
Terima kasih atas waktu Anda!
sumber
Jawaban:
http://www.gamasutra.com/view/feature/3094/1500_archers_on_a_288_network_.php Ini masih bagaimana jaringan dilakukan dalam game RTS. P2P juga merupakan cara normal menangani koneksi. Menggunakan model timestep kunci namun menghasilkan kasus menjengkelkan dari desync dan penanganan curang. Ada cara yang baik untuk memulihkan ketika desync terjadi dan semua game RTS hanya mengatakan "Keluar dari pertandingan". Bug tracing desync error juga merupakan mimpi buruk.
sumber
Bukan untuk RTS tetapi game serba cepat akan membutuhkan interpolasi & prediksi
http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
sumber
Ini adalah bacaan yang bagus, dan akan menjawab banyak pertanyaan Anda:
http://udn.epicgames.com/Three/NetworkingOverview.html
Dalam permainan strategi / menara pertahanan saya, saya menggunakan model klien / server dan saya bisa menjaga semuanya deterministik sejauh ini. Klien hanya mengirim permintaan server untuk melakukan hal-hal (tetapi tidak pernah benar - benar melakukan apa - apa), dan server mengirimkan pembaruan, kreasi, dan penghapusan ke klien ketika ada perubahan. Meskipun permainan saya saat ini bersifat deterministik, saya tidak pernah mempercayai klien saya untuk melakukan sesuatu dengan benar, server adalah bos dan memiliki kontrol penuh atas permainan. Klien hanyalah terminal bodoh.
Untuk membuat semuanya benar-benar sederhana, saya menggunakan kombinasi Reflection dan Eventing untuk menjaga entitas saya sepenuhnya dalam kegelapan tentang sisi jaringan hal. Saya juga menggunakan konsep Aktor dan "Kekuatan" (sebagai lawan Aktor dan Gadai dalam FPS seperti Unreal). Ini memungkinkan enkapsulasi yang sangat bagus dan tempat untuk menyimpan uang dan barang-barang Force.
sumber