팩토리오(Factorio)가 **60 FPS(정확히는 60 UPS, Updates Per Second)**를 고집하는 이유는 단순히 그래픽적인 선택이 아니라, 게임의 시뮬레이션 메커니즘과 멀티플레이어 동기화 방식 때문입니다.

그 핵심적인 이유들을 정리해 드릴게요.

1. UPS와 FPS의 결합

팩토리오에서 '프레임'은 단순히 화면을 그리는 속도가 아니라, **공장이 돌아가는 물리적 연산 속도(UPS)**와 직결됩니다.

  • 1 Tick = 1 Frame: 게임 엔진의 설계상 1프레임마다 공장의 논리 연산(투입기가 물건을 집고, 벨트가 움직이는 등)이 한 단계씩 진행됩니다.

  • 게임 속도의 기준: 팩토리오의 모든 밸런스는 초당 60번의 연산을 기준으로 설계되어 있습니다. 만약 프레임 제한을 풀어서 120 FPS로 구동하면, 공장의 속도와 플레이어의 이동 속도도 2배로 빨라지게 됩니다.

2. 결정론적 알고리즘 (Deterministic Simulation)

팩토리오는 **'똑같은 입력이 주어지면 항상 똑같은 결과가 나와야 한다'**는 결정론적 설계를 따릅니다.

  • 멀티플레이어 동기화: 팩토리오의 멀티플레이어는 수만 개의 객체 데이터를 주고받는 대신, "플레이어가 어떤 조작을 했다"는 신호만 주고받습니다.

  • 고정된 시간축: 모든 플레이어의 컴퓨터가 동일하게 초당 60번의 틱을 계산해야만 서로의 화면에서 공장이 어긋나지(Desync) 않고 똑같이 돌아갑니다. 프레임이 가변적이면 이 동기화가 깨질 위험이 매우 큽니다.

3. 정밀한 충돌 및 연산 판정

컨베이어 벨트 위의 수만 개의 아이템, 수천 마리의 바이터(Biter) 군단을 처리하기 위해서는 매우 정밀한 계산이 필요합니다.

  • 부동 소수점 오차 방지: 프레임 타임이 일정하지 않으면(가변 프레임), 물리 연산에서 미세한 오차가 발생할 수 있습니다. 60 FPS라는 고정된 시간 간격은 연산의 정확도를 유지하는 가장 안정적인 수단입니다.

4. 사양 최적화 (CPU가 병목)

팩토리오는 그래픽 카드(GPU)보다 CPU와 메모리 속도가 훨씬 중요한 게임입니다.

  • 공장이 커질수록 CPU는 초당 60번의 연산을 수행하는 것조차 버거워합니다. 이를 **"UPS가 떨어진다"**고 표현하는데, 그래픽적으로 144 FPS를 지원하더라도 CPU가 공장 연산을 그만큼 따라가지 못하면 아무런 의미가 없습니다.

요약하자면

"팩토리오의 60 FPS는 영화 같은 부드러움을 위한 것이 아니라, 거대한 공장의 톱니바퀴가 완벽하게 맞물려 돌아가게 하기 위한 시계의 메트로놈과 같습니다."

물론 고주사율 모니터를 쓰는 사용자들을 위해 개발진이 내부적으로 연산(UPS)과 렌더링(FPS)을 분리하려는 시도를 고려한 적은 있으나, 게임의 근간을 흔드는 작업이라 현재의 60 FPS 고정 방식을 유지하고 있습니다.

혹시 지금 대규모 공장을 돌리느라 UPS가 60 아래로 떨어져서 고민이신가요? 그렇다면 공장 최적화 방법(벨트 대신 로봇 사용 등)에 대해 더 알려드릴 수 있습니다.







....... 왤케 잘아는거임???