<aside>

한 줄 요약: 권위 서버의 게임 루프는 입력 드레인 → 고정 틱 → sleep이 정석이며, 부하가 천장에 닿을 때를 대비해 상한 + 배치 + 오버플로 3겹 안전장치가 필요하다.

</aside>

1. 핵심 개념 — 고정 틱(fixed timestep) 게임 루프

권위(authoritative) 게임 서버 한 프레임의 표준 구조:

while (running) {
    [1] 입력 드레인   // 네트워크 이벤트 큐를 소비
    [2] 시뮬 1틱      // 모든 엔티티를 deltaTime만큼 갱신 (이동/충돌/AI)
    [3] 결과 송신      // 변경된 상태를 주변에 브로드캐스트
    [4] sleep         // 다음 틱까지 남은 시간 대기 (레이트 고정)
}

왜 "입력을 다 받고 → 시뮬 1틱"인가 (입력 레이트와 시뮬 레이트 분리):

<aside> 💡

용어틱(tick): 시뮬레이션 1스텝. 틱레이트: 초당 틱 수(Hz). 고정 틱: 매 틱 동일 시간 간격을 목표로 하는 방식.

</aside>


2. 단일 로직 스레드 모델 (존/채널당 1스레드)

상용 MMO에서 널리 쓰는 정석 패턴 중 하나: "존 하나 = 로직 스레드 하나".

장점 단점
락 없는 단순/안전한 로직 단일 존 처리량 = 코어 1개 천장
결정적 시뮬, 디버깅 쉬움 한 틱이 무거우면 그 존 전체가 느려짐
I/O와 로직 관심사 분리 존 간 이동/상호작용은 별도 처리 필요

핵심: 단일 스레드 자체는 죄가 아니다. 죄는 그 위에 무거운 작업(I/O fan-out 등)을 얹는 것.


3. 드레인 패턴과 실패 모드 (일반 도메인 지식)

입력 큐를 "어떻게 비울 것인가"의 3가지 패턴: