Sejauh yang saya mengerti, sebagian besar game besar menggunakan stempel waktu tetap untuk memiliki simulasi yang stabil.
Mengenai server game , "frame rate" mana yang mereka tetapkan? Atau mengatakannya dengan cara lain, stempel waktu tetap apa yang cenderung mereka gunakan?
Saya tahu banyak yang akan mengatakan: "Secepat mereka bisa lolos". Saya ingin tahu seberapa cepat itu, jika Anda memiliki pengalaman langsung dengan MMORPG yang mapan.
mmo
fixed-timestep
Fabio
sumber
sumber
Jawaban:
Second Life mengimplementasikan fisika di sisi server menggunakan Havok, dan mengunci pembaruan hingga 45 per detik.
https://community.secondlife.com/t5/General-Discussions/SIM-FPS-is-maxed-out-at-45/td-p/181120
Versi sebelumnya sekitar 2005-2006 membiarkan pembaruan fisika mengambang setinggi yang diizinkan server. Wilayah tanpa komplikasi dengan beberapa objek skrip dapat berjalan pada 800 pembaruan per detik ... Untuk efisiensi dan konsistensi yang lebih baik, mereka kemudian menguncinya menjadi 45.
(Dalam Second Life, frame rate tergantung pada CPU masing-masing klien dan daya grafis. Akurasi dunia tergantung pada kinerja jaringan.)
sumber
Saya telah bekerja pada beberapa server game, termasuk satu suite untuk MMO.
Secara umum, mereka tidak memiliki fisika sama sekali. Dalam beberapa situasi di mana fisika diperlukan (melompat, terutama) kami membiarkan klien menghitung fisika mereka sendiri, dan kami hanya menyangkal apa pun yang terlalu aneh (pemain bergerak terlalu cepat terlalu lama, bergerak jauh lebih tinggi daripada yang seharusnya bisa dilompati, dll).
Server juga biasanya tidak memiliki 'timesteps'. Mereka biasanya tidak berpikir dalam "bingkai per detik" sama sekali. Alih-alih, kami tahu kapan terakhir kali kami mendengar dari seseorang dan apa yang mereka lakukan saat itu, dan kemudian ketika kami mendengarnya lagi beberapa saat kemudian, kami mendengar tentang apa yang mereka lakukan sekarang, jadi kami memperbarui keadaan internal kami untuk mencocokkan . Tidak perlu mensimulasikan segala sisi server dengan seksama; kami hanya dapat merekam hal-hal yang dikatakan klien kepada kami dan melakukan beberapa pengecekan untuk memastikan bahwa apa yang klien katakan terjadi tampak masuk akal bagi kami.
sumber
perTick * ticksSinceLastUpdated
- sederhana, efisien.Selain jawaban baik lainnya yang diberikan, saya ingin menambahkan fakta bahwa beberapa fisika umumnya tidak didorong oleh server atau bahkan diketahui oleh server dan merupakan trik umum untuk membuat dunia tampak lebih kaya tanpa menambahkan overhead ke jaringan atau server pengolahan sisi.
Misalnya mungkin ada puing-puing yang bisa Anda tendang di tanah atau tertiup angin yang berinteraksi dengan benda lain, atau mungkin Anda bisa mendorong mayat.
Jika fisika murni bersifat dekoratif, dan tidak memengaruhi gerakan atau permainan dengan cara apa pun, Anda dapat mewujudkannya di sisi klien sepenuhnya.
Pemain yang berbeda akan melihat hal-hal yang berbeda (seperti, jika Anda menembak kaleng di tanah dan terbang, pemain lain mungkin tidak melihat yang bisa terbang jauh) tetapi ada banyak kasus di mana itu tidak masalah bahwa pengalaman itu bukan ' Hal yang sama berlaku untuk semua pemain, dan memiliki simulasi fisika sisi klien dapat benar-benar meningkatkan tampilan dan nuansa permainan online.
sumber
EVE Online, sebuah MMO dengan pecahan tunggal dan hingga beberapa ribu plaers dalam pertempuran ruang besar menjalankan fisika pada kutu 1 Hz, yang disebut kutu "takdir".
http://community.eveonline.com/news/dev-blogs/fixing-lag-drakes-of-destiny-part-1-1/
Yang disebut "Bloodbath of B-R5RB" adalah pertarungan pemain paling besar yang pernah terjadi dalam game online hingga saat ini ("konflik selama 21 jam melibatkan lebih dari 7.548 karakter pemain secara keseluruhan dan maksimum 2.670 pemain dalam sistem B-R5RB pada satu waktu ", menurut https://en.wikipedia.org/wiki/Bloodbath_of_B-R5RB ).
sumber