Cities: Skylines, 도시의 모든 움직임은 주식 시장처럼?

by DD
2주 전
조회수 4

Cities: Skylines는 주식 시장과 유사한 TransferManager 시스템을 통해 도시 내 모든 상호작용을 관리함

건물은 쓰레기(Garbage), 석유(Oil) 등 다양한 TransferReason을 기반으로 거래 제안을 생성

TransferManager는 우선순위(Priority)와 거리(Distance)를 고려하여 제안을 매칭하고, 차량을 할당

개발자는 잘 설계된 추상화를 통해 새로운 게임 플레이와 콘텐츠 확장에 유연성(Flexibility)을 확보함

TransferManager의 핵심 원리

Cities: Skylines의 핵심 시스템인 TransferManager는 도시 내 모든 상호작용을 주식 시장의 매매 원리에 비유하여 설계되었다. 건물, 차량, 시민 등은 TransferReason을 기반으로 거래 제안을 생성하고, TransferManager는 우선순위(Priority)와 거리(Distance)를 고려하여 제안을 매칭한다. 특히, 쓰레기 수거 과정에서 건물은 쓰레기 판매 제안을, 매립지는 쓰레기 구매 제안을 하여 트럭을 할당하는 방식은 시스템의 효율성을 보여준다. 이러한 거래 기반 아키텍처(Trading-Based Architecture)는 게임 내 다양한 요소들의 유기적인 연결을 가능하게 한다.

쓰레기 수거 시스템의 상세 분석

쓰레기 수거 시스템은 TransferManager의 작동 방식을 잘 보여주는 예시이다. 건물은 쓰레기 양에 따라 판매 제안(Sell Offer)을 생성하고, 매립지는 트럭의 가용성에 따라 구매 제안(Buy Offer)을 한다. 매립지는 이미 운행 중인 트럭 수를 고려하여 구매 제안의 우선순위를 조절함으로써, 쓰레기 수거의 효율성(Garbage Collection Efficiency)을 관리한다. 이러한 메커니즘은 쓰레기 처리의 병목 현상을 방지하고, 도시 전체의 쓰레기 문제를 균형 있게 해결하는 데 기여한다.

제안 매칭 알고리즘의 심층 분석

제안 매칭 알고리즘은 TransferManager의 핵심 기능 중 하나이다. 시스템은 각 TransferReason에 대해 우선순위(Priority)를 기준으로 제안을 정렬하고, 거리(Distance)를 고려하여 최적의 매칭을 찾는다. 특히, 우선순위가 낮은 제안은 높은 우선순위의 제안에 의해 매칭될 수 있도록 설계되어, 자원 할당의 유연성(Resource Allocation Flexibility)을 확보한다. 이러한 알고리즘은 게임 내 다양한 상호작용의 효율적인 처리를 가능하게 하며, 도시의 역동성을 유지하는 데 중요한 역할을 한다.

성능 최적화 및 메모리 관리

Cities: Skylines는 대규모 도시 시뮬레이션을 위해 효율적인 메모리 관리 기법을 사용한다. TransferOffer는 32비트 정수와 인스턴스 핸들, 바이트로 구성되어 메모리 사용량을 최소화한다. 또한, 모든 제안을 저장하는 배열은 미리 할당되어 있어, 동적으로 메모리를 할당하는 데 따른 오버헤드를 줄인다. 이러한 최적화는 게임의 성능을 유지하면서, 대규모 데이터 처리(Large-Scale Data Processing)를 가능하게 한다.

How Cities: Skylines uses a stock-market analogy to drive almost everything in the game