„Super Meat Boy” to trudna platformówka, która niedawno pojawiła się na PC, wymagająca wyjątkowej kontroli i skoków w pikselach. Kod fizyki w grze zależy od prędkości klatek, która jest zablokowana na 60 klatek na sekundę; oznacza to, że jeśli twój komputer nie będzie mógł uruchomić gry na pełnych obrotach, fizyka oszaleje, powodując (między innymi) spowolnienie postaci i upadek na ziemię. Ponadto, jeśli vsync jest wyłączony, gra działa bardzo szybko.
Czy osoby doświadczone w programowaniu gier 2D mogłyby wyjaśnić, dlaczego gra została tak zakodowana? Czy pętla fizyki działająca w stałym tempie nie byłaby lepszym rozwiązaniem? (Właściwie myślę, że w niektórych częściach gry używana jest pętla fizyki, ponieważ niektóre byty nadal poruszają się normalnie bez względu na liczbę klatek na sekundę. Z drugiej strony twoja postać biegnie dokładnie [fps / 60] tak szybko.)
W tej implementacji niepokoi mnie utrata abstrakcji między silnikiem gry a renderowaniem grafiki, która zależy od specyficznych dla systemu rzeczy, takich jak monitor, karta graficzna i procesor. Jeśli z jakiegoś powodu komputer nie jest w stanie obsłużyć vsync lub nie może uruchomić gry z dokładnością do 60 klatek na sekundę, zadziała spektakularnie. Dlaczego krok renderowania powinien w jakikolwiek sposób wpływać na obliczenia fizyki? (W dzisiejszych czasach większość gier albo spowalnia grę, albo pomija klatki). Z drugiej strony rozumiem, że oldschoolowe platformówki na NES i SNES zależały od stałej szybkości klatek w dużej mierze od ich kontroli i fizyki. Dlaczego tak jest i czy byłoby możliwe stworzenie w tym stylu wzornika bez uzależnienia od klatek na sekundę? Czy koniecznie jest utrata precyzji, jeśli oddzielisz renderowanie grafiki od reszty silnika?
Dziękuję i przepraszam, jeśli pytanie było mylące.