SkyChart 개발기: Aerobiz를 향한 러브레터가 본격 항공사 시뮬레이션이 되기까지
목차
1992년의 한 게임이 우리를 망쳤습니다. Aerobiz Supersonic은 SNES 게임 치고는 그렇게까지 중독적일 이유가 없었습니다. 라고스의 공항 슬롯을 사고, 석유 위기를 피하고, 픽셀화된 지구 위로 작은 비행기 스프라이트가 기어가는 것을 보면서 한 번에 한 허브씩 세계 정복을 도모하는 게임이었습니다.
아직 제대로 된 후속작을 만든 사람이 없었습니다. 그래서 우리가 만들기로 했습니다.
SkyChart: Airline Executive가 우리의 답입니다. Godot 4로 만든 복고-현대 항공사 경영 시뮬레이션으로, 비행정의 황금기부터 A380 시대까지 90년의 항공 역사를 다룹니다. 오늘은 모든 것이 어떻게 모였는지 커튼을 살짝 걷어 봅니다.
기획 한 줄: “Aerobiz에 현대적 UI가 있다면?”
핵심 판타지는 단순합니다. 여러분은 신생 항공사의 CEO가 되어 네 개의 역사적 시대(1930년부터 2020년까지)에 걸쳐 AI 라이벌들과 경쟁합니다. 노선을 고르고, 비행기를 사고, 도시에 투자하고, 세계 권역과의 외교를 관리하고, OPEC이 모두의 분기 실적을 망치기로 할 때 파산하지 않도록 애씁니다.
하지만 Aerobiz가 여러분에게 메뉴와 텍스트를 주었다면, 우리는 살아 있는 세계 지도를 원했습니다. 대권 항로, 기상 레이더, 주야 순환, 도시 번영 애니메이션, 그리고 선회 시 뱅킹하는 비행기 스프라이트 말입니다. 의자에 기대앉아 “그래, 내가 이 네트워크를 만들었지”라고 생각하게 만드는 종류의 것입니다.
우리가 도달한 분위기는 하이테크 레트로입니다. 어두운 지도 위의 네온 글로우 라인. 육각형 모양의 HUD 버튼. 90년대 블룸버그 터미널에서 나온 것 같은 뉴스 티커. SNES 시대의 명백한 매력에 감싸인 현대적 UX입니다.
전 세계 뷰: 여러분의 항공사 네트워크가 한눈에 보입니다. 빛나는 선 하나하나가 노선입니다. 움직이는 점 하나하나가 수익입니다.
150개 도시, 33종 항공기, 90년의 역사
규모 이야기를 해 봅시다. SkyChart는 다음을 갖추고 있습니다:
- 150개 도시, 7개 세계 권역(그리고 1991년 이후의 러시아)에 걸쳐 있으며, 각 도시는 실제 인구 데이터, 경제 프로필, 계절 수요 곡선을 가지고 있습니다. 도쿄는 벚꽃철에 치솟습니다. 마이애미는 겨울에 호황입니다. 콜카타는 두르가 푸자 기간에 정점을 찍습니다.
- 역사적으로 정확한 33종의 항공기. Douglas DC-3(1936년)부터 Boeing 787 Dreamliner까지. 각 기종은 실제와 같은 항속거리, 속도, 용량, 운항비, 퇴역 연도를 갖습니다. DC-3을 제트 시대까지 굴리면서 정비비가 여러분을 잡아먹는 걸 지켜보세요.
- 60개 이상의 역사적 사건이 판을 재편합니다. 대공황이 수요를 꺾습니다. 제2차 세계대전은 런던과 베를린을 폭격합니다(문자 그대로, 그 공항들은 재건해야 합니다). 1973년 석유 위기는 하룻밤 사이에 연료비를 두 배로 만듭니다. COVID-19는 시대 4에 등장하고, 음, 기억하실 겁니다.
- 플레이 가능한 4개 시대, 각 시대마다 단계적으로 높아지는 목표가 있습니다. 시대 1은 프로펠러기와 500만 달러로 생존할 것을 요구합니다. 시대 4는 7개 권역 전체에 걸친 20억 달러 제국을 원합니다.
모든 시대가 다른 게임처럼 느껴집니다. 1930년대 비행정 네트워크의 전략적 계산은 1990년대의 냉혹한 허브 앤 스포크 전쟁과 전혀 다릅니다.
시대를 고르세요. 각 시대는 서로 다른 항공기, 사건, 승리 조건을 가진 다른 게임입니다.
역사는 반복되지 않지만, 연료비는 반드시 치솟게 만듭니다.
실제로 반격하는 AI
우리가 절대 출시하지 않으려 했던 것 한 가지는 뇌가 없는 AI였습니다. SkyChart의 라이벌 항공사들은 무작위로 확장하지 않습니다. 그들은 홈 권역, 인구 및 경제 데이터에 기반한 가중치 노선 선택, 분기별 가격 조정, 항공기 퇴역 시 기단 업그레이드, 그리고 허브 투자 전략을 가지고 있습니다.
경쟁이 치열한 노선에서 여러분의 가격을 언더컷합니다. 여러분이 눈여겨보던 도시의 공항 슬롯을 매입합니다. 현금이 부족할 때는 실제 저비용 항공사처럼 항공기를 리스하기도 합니다.
그리고 시대 4에서, 그들이 경쟁할 수 없을 만큼 큰 제국을 여러분이 구축했다면? 그들은 인수 표적이 될 수도 있습니다. 시대당 한 번의 적대적 인수. 그들의 노선, 슬롯, 허브가 모두 여러분의 것이 됩니다. 물론 가격을 치러야 합니다.
적을 알자: Intel 패널은 7개 권역 전체에 걸친 모든 라이벌의 움직임을 추적합니다.
조종석: 여러분과 싸우지 않는 UI
관리 시뮬레이션 게임을 해 보셨다면, UI가 진짜 보스전이었던 경험이 있을지도 모릅니다. 그 고통을 아실 겁니다. 우리는 SkyChart의 인터페이스가 여러분이 쓰고 싶은 무언가가 되도록 만드는 데 비합리적으로 많은 시간을 썼습니다.
모든 패널은 드래그 가능하고 크기 조절 가능한 창입니다. 노선 관리자, 기단 개요, 전략 자문, 도시 인텔리전스, 경쟁 인텔, 음악 플레이어. 원하는 곳에 드래그하세요. 크기를 조절하세요. 게임은 세션 사이에 여러분의 레이아웃을 기억합니다.
**전략 자문(Strategic Advisor)**은 여러분의 AI 부조종사입니다. 세상의 가능한 모든 도시 쌍(11,175가지 조합)을 스캔해 예상 이익으로 순위를 매기고, 최적의 기회를 은쟁반에 담아 제공합니다. 백그라운드 스레드 풀에서 최대 8개의 워커 스레드로 실행되므로, 수천 개의 노선을 계산할 때도 게임이 멈추지 않습니다.
완전한 컨트롤러 지원은 후기에 추가된 기능이었다가 열정 프로젝트가 되었습니다. Xbox, PlayStation, Switch 컨트롤러 모두 네이티브로 작동합니다. 가상 커서를 쓰면 오른쪽 스틱으로 지도에서 도시를 선택할 수 있습니다. 방사형 메뉴(LB 길게 누르기)는 모든 패널에 즉시 접근할 수 있게 해 줍니다. 모든 창은 B로 닫히는 입력에 반응합니다. 심지어 키캡과 버튼 글리프 위젯이 있는 그래픽 컨트롤 가이드도 만들었습니다.
아, 그리고 내장 음악 플레이어가 있습니다. 세 가지 소스: 게임의 시대에 맞는 사운드트랙(재즈 시대부터 현대 전자음악까지 44곡), 로컬 음악 라이브러리, 그리고 OAuth를 통한 Spotify 연동. 좋은 플레이리스트 없이 항공사를 운영하는 게 말이 됩니까?
여러분의 조종석, 여러분의 레이아웃. 모든 패널은 드래그 가능하고, 크기 조절 가능하며, 여러분이 놓아둔 위치를 기억합니다.
전략 자문이 11,175개의 도시 쌍을 계산해 주니, 여러분은 하지 않아도 됩니다.
완전한 컨트롤러 지원: 소파 친화적 항공사 경영을 위해 모든 버튼이 매핑되어 있습니다.
내부 구조: GDScript 러브 스토리
SkyChart는 전적으로 Godot 4와 GDScript 2.0으로 제작되었습니다. C#도, C++ 모듈도 없습니다. 노선 경제 엔진부터 타일맵 렌더러까지 모든 것이 순수 GDScript입니다.
엔지니어링 쪽의 몇 가지 하이라이트입니다:
도처에서 스레드 활용. 월별 경제 계산, 노선 추천, AI 확장이 모두 워커 스레드에서 실행됩니다. 4개의 라이벌 항공사에 걸친 2,000개 이상의 노선을 처리할 때도 게임은 매끄럽게 유지됩니다.
진짜 윈도우 관리자. WindowManager는 오토로드 싱글톤으로, 포커스-투-프론트 레이어링(창을 클릭하면 맨 위로 올라옴), 위치/크기의 디스크 지속화, 화면 적응형 크기 조정을 처리합니다. 세 계층이 있습니다. Normal(게임플레이 패널), Modal(설정, 저장/로드), HUD(항상 맨 위).
OSM 스타일 지도 타일. 어떤 권역이든 확대하면 고해상도 지도 타일이 동적으로 로드됩니다. 스프라이트 풀링, LRU 텍스처 캐시, 디스크 캐싱, 온라인 가져오기. 세 가지 스타일이 있습니다. Retro Dark(기본), Satellite, Clean Vector.
기상 회피 대권 항로. 비행 경로는 지리적 정확성을 위해 구면 보간을 따르며, 지도의 폭풍 시스템을 동적으로 우회합니다. 항공기 스프라이트는 선회 시 뱅크하고 그림자를 드리웁니다. 겉모습을 위한 수학이 많지만, 세계를 진짜로 느끼게 만듭니다.
대권 항로 작동 모습: 비행기는 현실적인 곡선 경로를 따라가며 기상 시스템을 피합니다.
확대하면 OSM 스타일 타일이 즉석에서 로드됩니다. 세 가지 지도 스타일 중에 고를 수 있습니다.
숫자 게임: 노선 경제
SkyChart의 중심에는 우리가 진심으로 자랑스러워하는 경제 모델이 있습니다. 모든 노선은 다음을 고려하는 파이프라인을 통해 월별 이익을 계산합니다:
- 기본 수요 (도시 인구 x 경제 승수)
- 계절 변동 (도시당 12개의 월별 승수)
- 투자 보너스 (호텔, 골프장, 콘서트홀, 테마파크)
- 권역 외교 (관계가 좋을수록 수요 증가)
- 사건 수정자 (전쟁, 석유 위기, 팬데믹)
- 평판 (안전 기록과 고객 서비스가 전 세계 수요에 영향)
- 경쟁 (매력 점수, 가격, 충성도, 허브 존재에 따른 수요 분할)
- 항공기 노후 (퇴역 연도를 넘긴 기체는 운영비 +40%, 수요 -15%)
- 연료 가격 (OPEC 사건은 하룻밤 사이에 변동비를 두 배로 만들 수 있음)
결과는 어떤 두 노선도 같은 방식으로 플레이되지 않는 시스템이며, 1935년의 최적 네트워크는 2005년의 최적 네트워크와 전혀 다릅니다.
매 분기마다 숫자가 이야기를 들려줍니다. 3분기의 저 하락? OPEC이 일어났죠.
노선 성과: 추세 스파크라인과 함께 이익별로 순위 매겨진 모든 노선. 초록은 좋은 것. 빨강은 어려운 결정을 내릴 때라는 뜻입니다.
다음 단계
우리는 지금 v0.2.17에 있고, 이는 SkyChart 버전 기준으로 Phase 16+ 다듬기 단계에 깊이 들어가 있다는 의미입니다. 핵심 게임은 완성되었고 매우 플레이 가능합니다. 활주로에 있는 것들입니다:
- UI 사운드 이펙트 & 앰비언트 사운드스케이프: 버튼 클릭, 패널이 밀리는 소리, 공항 앰비언스
- 최초 실행 튜토리얼: 새 플레이어가 (재정적으로, 문자 그대로는 아니지만… 문자 그대로이기도 한) 추락하며 배울 필요 없도록 12장짜리 가이드 진행
- Steam 출시 준비: 스토어 페이지, 도전 과제 연동, 클라우드 저장
우리는 관리 시뮬레이션 게임이 액션 게임과 같은 UI 애정을 받을 자격이 있다는 철학으로 SkyChart를 만들어 왔습니다. 모든 툴팁, 모든 애니메이션, 모든 편의 기능은 “무엇이 있으면 우리가 알트탭하고 싶지 않을까?”를 물은 결과 존재합니다.
여정을 따라가세요
SkyChart는 Casey Jones Labs에서 개발 중이며, 우리를 빚어낸 게임들을 향한 큰 애정을 가진 작은 스튜디오입니다. 앵커리지로 가는 노선을 여느냐 호놀룰루에 테마파크를 투자하느냐를 놓고 토론하며 자랐다면, 이 게임은 여러분을 위한 것입니다.
더 많은 개발 블로그를 기대해 주시고, 간이 탁자는 접어 두세요.
Casey Jones Labs 팀
SkyChart: Airline Executive, Windows, macOS, Linux용으로 Steam에 출시 예정. Godot 4로 제작.