Jawaban terbaik adalah: Itu tergantung .
Anda tidak perlu membatasi keduanya
Pembaruan : Jika pembaruan Anda tidak terikat pada batas atas, maka logika game harus bergantung pada jumlah waktu delta , untuk menghindari menjalankan game lebih cepat atau lebih lambat tergantung pada mesin di mana ia dijalankan. Ini adalah pendekatan yang sangat umum digunakan oleh banyak game, tetapi itu bukan satu-satunya.
Rendering : Jika rendering tidak terikat pada batas atas, framebuffer mungkin disajikan dalam keadaan tidak lengkap atau salah, menyebabkan artefak robek . Inilah sebabnya mengapa banyak game menggunakan Sinkronisasi Vertikal (v-sync)
Anda mungkin membatasi keduanya
Pembaruan : Beberapa game memanfaatkan timesteps tetap untuk sebagian atau semua sistem gameplay-nya. Pendekatan ini berfungsi seperti yang telah Anda jelaskan. Jumlah Pembaruan Per Detik terbatas pada batas atas untuk memastikan hal-hal tidak bergerak terlalu cepat pada mesin kedudukan tertinggi. Ini menghilangkan kebutuhan untuk pengaturan waktu delta. Beberapa aplikasi lebih baik dengan catatan waktu tetap, beberapa dengan waktu delta. Memilih pendekatan mana yang akan sepenuhnya bergantung pada apa yang sebenarnya ingin Anda capai. Buku online GameProgrammingPatterns memiliki bab yang didedikasikan untuk loop game yang menyentuh kedua arsitektur.
Rendering : Frames Per Second harus diatur ke batas atas untuk menghindari masalah merobek yang disebutkan sebelumnya, namun, aplikasi Anda tidak boleh mencoba untuk melakukannya secara manual dengan beberapa kunci CPU. Sebagai gantinya, aktifkan v-sync dan biarkan perangkat keras yang mendasari menyinkronkan dengan refresh rate monitor. Dengan melakukan itu, game Anda akan kompatibel dengan monitor masa depan yang mungkin beroperasi pada frekuensi yang jauh lebih tinggi daripada 60Hz yang saat ini biasa. Perlu juga dicatat bahwa banyak gamer, khususnya yang menjadi tolok ukur, masih lebih suka berjalan tanpa v-sync untuk memungkinkan frame rate setinggi mungkin. Jadi masuk akal untuk mengaktifkan atau menonaktifkan fitur selama runtime.
Apa yang seharusnya tidak Anda batasi
Jika game Anda menggunakan pendekatan berbasis pemungutan suara untuk input pengguna, misalnya: memanggil getInput()
jenis untuk memperbarui status pengontrol selama langkah pembaruan, maka ini lebih baik jika tidak terbatas. Atau jika terbatas, maka atur ke batas atas yang sangat tinggi. Semakin sering Anda meminta input pengguna dan menindaklanjutinya, semakin responsif dan halus permainan akan "terasa". Permainan 60Hz yang kita dengar saat ini tidak memperbarui AI dan semua negara di dunia pada tingkat itu, beberapa bahkan tidak merender secepat itu, tetapi mereka meminta input pengontrol setidaknya 60 kali per detik dan memperbarui avatar pemain yang sesuai. Memang ini hanya benar-benar relevan dengan game aksi serba cepat.