"Super Meat Boy" son zamanlarda PC için çıkan ve olağanüstü kontrol ve piksel mükemmel atlama gerektiren zor bir platform oyunudur. Oyundaki fizik kodu, 60 fps'ye kilitlenmiş kare hızına bağlıdır; Bu, bilgisayarınız oyunu tam hızda çalıştıramazsa, fizik deli olacak, (diğer şeylerin yanı sıra) karakterinizin daha yavaş çalışmasına ve yere düşmesine neden olur. Ayrıca, vsync kapalıysa, oyun son derece hızlı çalışır.
2D oyun programlamasında deneyimli olanlar, oyunun neden bu şekilde kodlandığını açıklamaya yardımcı olabilir mi? Sabit bir hızda çalışan bir fizik döngüsü daha iyi bir çözüm olmaz mı? (Aslında, oyunun bölümleri için bir fizik döngüsü kullanıldığını düşünüyorum, çünkü bazı varlıklar kare hızından bağımsız olarak normal hareket etmeye devam ediyor. Öte yandan karakteriniz tam olarak [fps / 60] kadar hızlı çalışıyor.)
Bu uygulama hakkında beni rahatsız eden şey, oyun motoru ve grafik oluşturma arasındaki, monitör, grafik kartı ve CPU gibi sisteme özgü şeylere bağlı soyutlama kaybıdır. Herhangi bir nedenle, bilgisayarınız vsync'i işleyemiyorsa veya oyunu tam olarak 60 fps'de çalıştıramazsa, muhteşem bir şekilde bozulur. Oluşturma adımı fizik hesaplamalarını neden herhangi bir şekilde etkilemeli? (Günümüzde çoğu oyun ya oyunu yavaşlatacak ya da kareleri atlayacak. Bu neden ve bu damarda kare hızı bağımlılığı olmadan bir patformer oluşturmak mümkün olabilir mi? Grafik işlemeyi motorun geri kalanından ayırırsanız mutlaka bir hassasiyet kaybı olur mu?
Teşekkür ederim ve sorunun kafa karıştırıcı olup olmadığı için üzgünüm.