나는 아이폰 shmup을 만들고 있으며 사용할 게임 루프 유형을 결정하려고합니다. 반 고정 타임 스텝 또는 완전 고정 타임 스텝을 사용하고 싶습니다.
반 고정 타임 스텝을 사용하면 게임 루프 당 dt <= FIXED_INTERVAL (여기서 dt <= FIXED_INTERVAL)을 따라 0 번 이상의 update (FIXED_INTERVAL) 호출을 수행합니다. 내가 이해하는 것처럼이 방법의 단점은 기본적으로 모든 업데이트마다 변수 dt를 가정해야하기 때문에 물리 업데이트 (dt) 논리를 프로그래밍하기가 더 어려워진다는 것입니다. 그리고 부동 소수점 값이 매번 동일하지 않기 때문에 게임의 각 실행이 약간 다를 것이라고 들었습니다.
그런 다음 완전히 고정 된 시간 단계를 사용하여 게임 루프 당 dt <FIXED_INTERVAL 인 한 번의 보간 (dt / FIXED_INTERVAL) 호출을 수행하는 0 번 이상의 업데이트 (FIXED_INTERVAL) 호출을하고 있습니다.
따라서 실제로 결정해야 할 큰 결정은 다음과 같습니다. 변수 dt를 사용하여 업데이트 (dt)를 구현하는 문제를 해결하고 싶거나 보간을 구현하는 문제를 해결하고 싶습니까?
이제 내가 읽은 것에서 대부분의 사람들은 완전히 고정되어 보간을 수행한다고 말합니다. 그러나 보간 구현에 대해 생각할 때 변수 dt가있는 업데이트 (dt)보다 훨씬 복잡한 것처럼 보입니다. 보간법을 사용하면 이전 상태와 현재 상태를 모두 기억해야하기 때문입니다. 보간을 사용하려면 전체 개별 게임 상태를 추상화하는 추가 간접 레이어가 필요합니다. 보간을 사용할 필요가없는 반 고정 타임 스텝과는 달리 항상 게임 상태가 하나뿐이므로 적과 적을 나타내는 "전역 배열"이기 때문에 게임 상태 추상화가 필요 없습니다. 총알 등
더 실용적인 선택은 무엇입니까? 물리적 업데이트가 변수 dt로 복잡해질 수 있다는 것을 알고 반 고정으로 구현합니까? 또는 완전히 수정하여 게임 상태 추상화를 생각해 보아 보간을 수행하기 위해 이전 상태와 현재 상태를 추적 할 수 있습니까?