"Super Meat Boy" adalah platformer yang sulit yang baru-baru ini keluar untuk PC, membutuhkan kontrol yang luar biasa dan lompatan pixel-sempurna. Kode fisika dalam permainan tergantung pada framerate, yang dikunci menjadi 60fps; ini berarti bahwa jika komputer Anda tidak dapat menjalankan game dengan kecepatan penuh, fisika akan menjadi gila, menyebabkan (antara lain) karakter Anda berjalan lebih lambat dan jatuh ke tanah. Lebih jauh, jika vsync mati, game berjalan sangat cepat.
Bisakah mereka yang berpengalaman dengan pemrograman game 2D membantu menjelaskan mengapa game dikodekan dengan cara ini? Tidakkah perputaran fisika yang berjalan pada kecepatan konstan menjadi solusi yang lebih baik? (Sebenarnya, saya pikir loop fisika digunakan untuk bagian-bagian permainan, karena beberapa entitas terus bergerak secara normal terlepas dari framerate. Karakter Anda, di sisi lain, berjalan persis [fps / 60] secepatnya.)
Apa yang mengganggu saya tentang implementasi ini adalah hilangnya abstraksi antara mesin game dan rendering grafik, yang tergantung pada hal-hal khusus sistem seperti monitor, kartu grafis, dan CPU. Jika, karena alasan apa pun, komputer Anda tidak dapat menangani vsync, atau tidak dapat menjalankan game dengan tepat 60fps, itu akan pecah secara spektakuler. Mengapa langkah rendering memengaruhi perhitungan fisika? (Sebagian besar game saat ini akan memperlambat game atau melompati frame.) Di sisi lain, saya mengerti bahwa platformer jadul di NES dan SNES bergantung pada framerate tetap untuk sebagian besar kontrol dan fisika mereka. Mengapa demikian, dan mungkinkah membuat patformer dalam nada itu tanpa memiliki ketergantungan framerate? Apakah pasti ada kehilangan presisi jika Anda memisahkan rendering grafik dari bagian mesin yang lain?
Terima kasih, dan maaf jika pertanyaannya membingungkan.