Saya membuat iPhone shmup dan saya sedang mencoba untuk memutuskan jenis permainan apa yang akan digunakan. Saya ingin menggunakan timestep semi-tetap atau timestep sepenuhnya-diperbaiki.
Dengan timestep semi-tetap saya akan membuat nol atau lebih pembaruan (FIXED_INTERVAL) panggilan diikuti oleh satu panggilan pembaruan (dt) di mana dt <= FIXED_INTERVAL per loop game. Seperti yang saya pahami, kelemahan dengan metode ini adalah bahwa logika pembaruan fisika (dt) saya akan lebih sulit diprogram karena pada dasarnya saya harus mengasumsikan variabel dt untuk setiap pembaruan. Dan kemudian saya juga mendengar bahwa setiap permainan saya akan sedikit berbeda karena nilai floating point tidak sama setiap waktu.
Kemudian dengan timestep yang sepenuhnya diperbaiki, saya membuat nol atau lebih pembaruan (FIXED_INTERVAL) panggilan diikuti oleh satu interpolasi (dt / FIXED_INTERVAL) panggilan di mana dt <FIXED_INTERVAL per loop permainan.
Jadi sepertinya keputusan besar yang harus saya buat adalah: apakah saya ingin mengatasi tantangan mengimplementasikan pembaruan (dt) dengan variabel dt atau apakah saya ingin mengatasi tantangan penerapan interpolasi?
Sekarang dari apa yang saya baca mayoritas orang mengatakan untuk menggunakan sepenuhnya-diperbaiki dan melakukan interpolasi. Tetapi ketika saya berpikir tentang menerapkan interpolasi sepertinya saya akan jauh lebih kompleks daripada pembaruan (dt) dengan variabel dt. Ini karena jika saya menggunakan interpolasi saya harus mengingat keadaan sebelumnya dan keadaan saat ini. Jadi jika saya ingin menggunakan interpolasi, saya harus membuat lapisan tipuan tambahan yang mengabstraksi seluruh status permainan individu. Sedangkan dengan timestep semi-tetap di mana saya tidak harus menggunakan interpolasi, saya tidak harus membuat abstraksi status permainan karena selalu ada hanya satu kondisi permainan dan itu hanyalah "array global" yang mewakili musuh saya, dan musuh peluru dll
Jadi, apa pilihan yang lebih praktis: apakah saya menerapkannya semi-tetap mengetahui bahwa pembaruan fisika saya bisa rumit dengan variabel dt. Atau apakah saya menggunakan sepenuhnya-diperbaiki dan mencoba untuk datang dengan abstraksi status permainan sehingga saya dapat melacak keadaan sebelumnya dan keadaan saat ini untuk melakukan interpolasi?