# 고정된 크기의 단계로 시뮬레이션을 발전시키세요

> 고정된 시뮬레이션 단계, 제한된 따라잡기 작업, 정지 및 충돌 테스트를 통해 렌더링에서 물리 업데이트를 분리합니다.

- URL: https://oneshotgems.ai/ko/topics/fixed-timestep-game-physics
- 카테고리: 게임 개발자용
- 유형: 가이드
- 업데이트일: 2026년 10월 5일

렌더 콜백은 균일하지 않은 간격으로 도착할 수 있지만 게임 물리학은 동일한 시뮬레이션 단계에서 진행될 때 더 예측 가능하게 동작하는 경우가 많습니다. 고정된 시간 간격을 사용하면 각 업데이트가 동일한 기간을 사용하게 되며 브라우저가 칠할 준비가 될 때마다 렌더링이 발생할 수 있습니다. 이는 완벽한 결정론을 약속하는 것이 아니라 실용적인 구현 선택입니다. 입력 도착, 부동 소수점 동작 및 충돌 규칙은 여전히 ​​중요합니다. 안정적인 시뮬레이션 단계가 역학에 도움이 될 때 사용하고 프레임이 오래 멈춘 뒤 루프가 어떻게 반응하는지 테스트하십시오.

## 경과 시간을 누적하고 제한된 업데이트를 실행합니다.

각 애니메이션 콜백에서 경과 시간을 누산기에 추가합니다. 누산기에는 적어도 하나의 단계가 포함되어 있지만 1/60초와 같은 일정한 간격으로 물리학을 업데이트하고 해당 간격을 뺍니다. 그런 다음 최신 상태를 렌더링합니다. 프레임당 최대 따라잡기 단계 수를 설정합니다. 그렇지 않으면 긴 일시 중지로 인해 더 많은 시간이 소모되고 지연이 심화되는 대규모 백로그가 발생할 수 있습니다. 초과 시간을 삭제, 제한 또는 다른 복구 규칙으로 처리할지 여부를 명시적으로 결정합니다.

단위를 일관되게 유지하십시오. 속도가 초당 월드 단위로 측정되는 경우 각 시뮬레이션 업데이트 내의 고정 단계를 곱합니다. 동일한 속도에 프레임의 전체 경과 시간을 곱하지 말고 고정 업데이트도 여러 번 실행하십시오. 그렇지 않으면 움직임이 두 번 계산됩니다.

## 자체 경계에서 입력 및 렌더링을 처리합니다.

각 시뮬레이션 단계에서 유지 중인 입력을 읽거나 단계에서 해당 작업을 사용할 때까지 일회성 작업을 대기열에 넣습니다. 두 프레임 사이에 키 누름이 발생하면 다음 업데이트 전에 해당 키가 손실되지 않는지 확인하세요. 렌더링은 물리 상태 사이를 보간할 수 있는 반면 충돌 및 채점은 시뮬레이션 상태를 사용합니다. MDN은 requestAnimationFrame을 다시 그리기 전에 예약된 일회성 콜백으로 설명하고 타임스탬프를 사용하여 진행 상황을 계산하도록 조언합니다. 누산기는 해당 타임스탬프를 사용하여 업데이트를 고정 상태로 유지합니다.

## 루프의 한계 테스트

일반 프레임, 시뮬레이션된 느린 프레임, 긴 일시 정지에서 동일한 짧은 움직임과 충돌을 비교합니다. 플레이어가 얇은 벽을 뚫고 터널을 뚫거나, 실속 후 추가 속도를 얻거나, 밀린 업데이트를 따라잡는 동안 여러 번 충돌을 일으키지 않는지 확인하십시오. 의도한 규칙에 따라 일시 중지 및 숨겨진 탭 반환을 테스트하세요. 고정 단계 루프가 시뮬레이션을 안정적으로 만들어 주지만 여전히 고속에서 충돌이 누락되는 경우 렌더링 빈도를 높이는 대신 모션에 적합한 충돌 방법을 사용하십시오.

## 자주 묻는 질문

**고정된 시간 간격이 결정론적 물리학을 보장합니까?** 아니요. 시뮬레이션 간격을 일정하게 유지하지만 입력 타이밍, 수학 및 충돌 순서로 인해 여전히 변동이 발생할 수 있습니다. 재생이 필요한 테스트의 경우 별도로 제어합니다.

**긴 프레임 정지 후 캡 따라잡기 업데이트가 필요한 이유는 무엇입니까?** 제한이 없으면 따라잡는 것이 나중 프레임을 독점하여 지연을 악화시킬 수 있습니다. 시뮬레이션된 시간을 폐기할 수 있는지 여부를 포함하여 게임에 맞는 복구 정책을 선택하고 테스트하세요.

## 궁금한 것을 더 찾아보세요

- [델타 시간으로 튀지 않는 움직임 구현하기](https://oneshotgems.ai/ko/topics/delta-time-in-games): 게임 모션에 경과 시간을 적용하고, 안전한 따라잡기 정책을 선택하고, 다양한 새로 고침 빈도와 정지 후 움직임을 테스트합니다.
- [소규모 게임에 대한 충돌 검사 선택](https://oneshotgems.ai/ko/topics/game-collision-detection): 게임에 맞는 충돌 표현을 선택하고, 불필요한 쌍 확인을 줄이고, 장애물을 통과하는 객체를 진단하세요.

## 추가 읽을거리

- [MDN 요청애니메이션프레임](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame)

---
대표 페이지: https://oneshotgems.ai/ko/topics/fixed-timestep-game-physics
