---
id: TIME-STEP-001
category: "[[10_Wiki/💡 Topics/AI]]"
confidence_score: 1.0
tags: [game-development, physics-engine, synchronization, game-loop]
last_reinforced: 2026-04-26
---

# [[Time Step Logic in Games (게임 타임스텝 로직)]]

## 📌 한 줄 통찰 (The Karpathy Summary)
> "물리는 일정하게, 렌더링은 부드럽게 시간의 흐름을 제어하라" — 하드웨어 성능에 관계없이 물리 연산의 일관성(Determinism)을 보장하고 화면 업데이트를 최적화하기 위한 시간 관리 알고리즘.

## 📖 구조화된 지식 (Synthesized Content)
- **추출된 패턴:** 가변적인 프레임 속도(Variable Frame Rate) 환경에서도 물리 엔진은 고정된 시간 간격(Fixed Delta Time)으로 업데이트하여 시뮬레이션의 안정성을 확보하는 패턴.
- **핵심 패턴:**
    - **Fixed Time Step:** 물리 연산을 항상 동일한 시간 간격(예: 1/60초)으로 수행하여 충돌 감지 오류나 물리 발산을 방지.
    - **Accumulator Pattern:** 지난 프레임부터 흐른 시간을 누적기에 쌓고, 고정 타임스텝만큼 소모하며 물리 업데이트를 반복 실행.
    - **Interpolation (평활화):** 남은 잔여 시간(Remainder)을 활용하여 이전 물리 상태와 현재 상태 사이를 보간해 프레임 끊김 현상 제거.
    - **Deterministic Lockstep:** 모든 클라이언트가 동일한 타임스텝 로직을 공유하여 멀티플레이어 동기화 유지.

## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌:** 단순히 프레임 간격($\Delta t$)을 물리 연산에 곱하던 방식은 프레임 드랍 시 물체가 벽을 뚫는 등 심각한 오류 유발. 현대 게임 엔진은 반드시 누적기 기반의 고정 타임스텝을 사용함.
- **정책 변화:** Skybound 프로젝트는 1/60초 고정 타임스텝을 적용하며, 복잡한 물리 상황에서도 'Spiral of Death'에 빠지지 않도록 프레임당 최대 업데이트 횟수를 제한함.

## 🔗 지식 연결 (Graph)
- [[Physics-Engine]], [[Game-Analytics]], [[Parallel-Computing]], [[Numerical-Analysis]]
- **Raw Source:** [[10_Wiki/Topics/AI/Time-Step-Logic-in-Games.md]]
