어셈블리 언어와 마이크로 최적화의 정수
롤러코스터 타이쿤은 개발자 크리스 소이어가 거의 전체 코드를 어셈블리(Assembly) 언어로 작성한 것으로 유명함. 이는 당시에도 이미 드문 사례였으나, 하위 수준에서 하드웨어를 직접 제어함으로써 현대의 빌딩 시뮬레이션 게임도 고전하는 수천 명의 에이전트 처리를 1999년 사양에서 완벽하게 구현함.
성능을 고려한 데이터 구조 및 연산
- 가변적 데이터 타입: 돈의 가치를 저장할 때 모든 변수에 동일한 크기를 할당하지 않고, 상점 아이템 가격은 1바이트, 공원 전체 가치는 4바이트를 사용하는 등 예상 범위에 따라 메모리를 정밀하게 관리함.
- 비트 시프팅 활용: 곱셈과 나눗셈 연산 대신 비트 시프팅(
<<,>>)을 적극적으로 사용함. 이를 위해 게임 내 공식 자체를 2의 거듭제곱 수치에 맞춰 설계하는 집요함을 보여줌.
최적화를 위한 게임 디자인의 변형
- 목적 없는 길 찾기: 모든 손님이 목적지를 계산해 이동하는 대신, 무작위로 걷다가 놀이기구를 발견하는 방식을 채택해 연산 부하를 줄임.
- 경로 탐색 제한: 길 찾기 알고리즘이 일정 단계(교차로 수) 이상 길을 찾지 못하면 포기하도록 설정함. 이는 게임 내에서 길을 잃었다는 손님의 불평이라는 게임 시스템으로 자연스럽게 연결됨.
- 충돌 연산 생략: 수천 명의 손님 간 물리적 충돌을 계산하지 않고 한 타일에 겹쳐 설 수 있게 함. 대신 인파 밀도를 계산해 행복도에 영향을 주는 방식으로 게임적 재미와 성능을 동시에 잡음.
1
검열관 메모 (0)
아직 검열관 메모가 없습니다. 첫 번째 메모를 남겨보세요.