Skip to content

Technical Architecture

본 문서에서는 기획된 월드와 상호작용 체인을 실제로 구동하기 위해 백엔드에서 지원하는 주요 시스템 구조를 설명합니다.

1. Flow Graph 시스템

게임 내의 복잡한 로직(서사 이벤트 발생, 특정 구역의 기믹 작동 등)은 하드코딩 대신 노드 기반의 Flow Graph를 통해 제어됩니다.

  • 비동기 처리: UniTask 기반으로 작성되어, 시간 지연(Delay), 특정 조건 대기(Wait for Signal) 등의 비동기 흐름을 시각적으로 기획하고 연결할 수 있습니다.
  • 모듈화된 로직: 반복적으로 사용되는 행동이나 이벤트 조건을 공용 노드(Common Nodes)로 분리하여 재사용성을 극대화합니다.

2. Signals (이벤트 버스) 시스템

월드 내에서 발생하는 수많은 상태 변화(Pawn 사망, 자원 고갈, 건물 완성 등)는 Signals 시스템을 통해 전파됩니다.

  • 느슨한 결합: 특정 건물이 완성되었을 때 AI가 이를 인지하기 위해 건물을 계속 감시(Polling)하는 대신, 건물이 완성 시그널을 방송(Publish)하면 AI가 이를 수신(Subscribe)하여 다음 행동을 결정합니다.
  • 인터럽트 트리거: 전투 발생 시그널이 방송되면, 작업 중이던 Pawn들이 즉시 이를 수신하고 행동 트리(Behaviour Tree)를 전환합니다.

3. 확률 및 데이터 제어 (Alias Method)

아이템 드롭, 랜덤 이벤트 발생, Pawn의 돌발 행동 등 게임 내 확률적 요소는 고성능 가중치 랜덤 선택 알고리즘인 Alias Method를 사용합니다.

  • 최적화된 연산: 수백 명의 Pawn이 동시에 확률 기반 의사결정을 내려도 O(1)의 속도로 결과를 도출하여 프레임 드랍을 방지합니다. 가치관 시스템 (Values)의 의사결정 엔진으로 사용됩니다.
  • 에디터 툴 통합: 기획자가 에디터 상에서 테이블(Drop Table 등)의 가중치를 쉽게 조절하고 확인할 수 있는 툴을 지원합니다.