SkyChart 개발기 #2: 열다섯 번의 버전, 매우 분주한 활주로
목차
우리가 개발 블로그 #1을 발행했을 때, SkyChart는 v0.2.17이었습니다. 150개 도시, 33종 항공기, 그럭저럭 따라가는 엔진을 가진 작동하는 항공사 시뮬레이션이었습니다. 더 많은 것을 가지고 돌아오겠다고 했었죠. 이 정도로 많은 것을 가지고 돌아올 줄은 예상하지 못했습니다.
열다섯 번의 버전 뒤, 게임은 도시 수를 세 배로 늘렸고, 기단을 두 배로 키웠고, 전체 컨트롤러 지원을 얻었고, 접근성 정비를 했고, OPEC을 긴장시킬 만한 경제 전쟁 시스템을 갖추었고, 1,600개 노선에서 더 이상 자비를 구걸하지 않는 렌더링 엔진을 얻었습니다. 한동안 격납고에 있었습니다. 무엇이 바뀌었는지 안내해 드리겠습니다.
스튜디오 마카우 Casey는 자신이 모든 업데이트를 직접 감독했다고 우기고 있음을 언급해 달라 요청했습니다. 하지 않았습니다. 호두를 먹으며 우리를 심사했을 뿐입니다.
아무도 보지 못했지만 모두가 느낀 엔진 정비
다른 모든 것을 가능하게 하는, 화려하지 않은 부분부터 시작하겠습니다.
v0.2.17에서 큰 노선 네트워크를 축소해 보는 것은… 가장 나쁜 의미에서 영화적이었습니다. 1,600개 노선에서 초당 9프레임. 지도는 매 프레임마다 모든 노선을 다시 그리고 있었습니다. 19,000개의 개별 라인 노드가 파워포인트 슬라이드쇼의 최선을 다한 버전을 흉내내고 있었습니다.
우리는 노선 렌더링 엔진 전체를 처음부터 다시 만들었습니다. 한 번의 배치 드로우 패스가 수천 개의 개별 노드를 대체했습니다. 이제 지도 패닝 비용은 드로우 콜 0입니다. 렌더링된 이미지가 그냥 미끄러질 뿐입니다. 네트워크가 실제로 변할 때만 노선이 다시 그려집니다. 재구축 이후: 지구를 가로지르는 수천 개의 노선이 있어도 60 FPS 고정입니다.
또한 유령 조종사처럼 시간외 근무 수당을 모으고 있던 56,000개의 보이지 않는 항공기 스프라이트를 접지시켰습니다. 숨겨진 비행기들은 이제 처리 라이선스가 전면 회수됩니다.
그다음, 자동 튜닝 성능 벤치마크를 만들었습니다. 설정에서 “벤치마크 실행”을 누르면 게임이 약 8초 동안 GPU, CPU, 텍스처 파이프라인을 스트레스 테스트한 뒤, 여러분의 하드웨어에 맞춰 11개의 성능 제한을 자동 튜닝합니다. 노선 표시 임계값, 타일 캐시 크기, 기상 밀도, 추천 스레드 수 모두 자동으로 보정됩니다. 슬라이더를 권장 구간 너머로 밀면 노란 경고가 뜹니다. 우리는 기장들이 Casey의 계기를 무시하는 것을 본 적이 있습니다. 잘 끝나는 일이 없습니다.
여러분의 항공사가 이제 IT 부서를 갖게 되었습니다. 벤치마크가 11개 설정을 조정해 주니 여러분은 하지 않아도 됩니다.
496개 도시. 66종 항공기. 엔드리스 모드.
세계가 훨씬 커졌습니다.
496개 도시가 이제 지도에 있습니다. 150에서 늘어난 것으로, 팀북투부터 페트로파블롭스크-캄차츠키까지 아우릅니다(세 번 시도해서야 발음했습니다). 모든 신규 도시는 연구된 1930년 인구, 성장률, 경제 가치, IATA 코드, 실제 공항 좌표를 가지고 있습니다. 4단계 가시성 시스템이 지도 가독성을 유지합니다. 글로벌 허브는 항상 보이고, 소도시는 가까이 확대할 때만 나타납니다.
기단도 두 배가 되었습니다. 66종 항공기가 이제 카탈로그를 채웁니다. Cortez Condor 복엽기(1933)부터 현대까지의 역사적으로 정확한 모델, 그리고 실제 개념과 떠오르는 항공 기술에서 외삽한 Bering Orbital 1 준궤도 수송기(2085) 같은 사변적 미래 설계까지 포함합니다. 프로펠러부터 극초음속 플라즈마 드라이브까지. 구버전의 저장 파일은 항공기 손실이나 서류 분실 없이 매끄럽게 자동 이전됩니다.
네 시대를 모두 완료하면 엔드리스 모드가 해금되어, 시간 제한도 목표도 없이 2020년을 넘어 비행할 수 있습니다. 수소 제트, 블렌디드 윙 바디, 궤도 호퍼가 앞으로 수십 년 동안 기다리고 있습니다. 하늘이 더 이상 한계가 아닙니다.
그리고 모두가 같은 속도로 플레이하고 싶은 것은 아니기 때문에, 네 가지 게임 페이스 옵션을 추가했습니다. Arcade(월당 45초, 조급한 분들을 위해), Standard, Extended, Realtime(월당 30분, 모든 난류 범프를 음미하는 기장들을 위해). 비행기 애니메이션은 여러분이 선택한 페이스에 맞춰집니다. Arcade 비행기들은 지키지 않은 호두 그릇을 찾은 뒤의 Casey처럼 지도를 휙 가로지릅니다.
블로그 #1의 전략 자문은 11,175개의 도시 쌍을 계산했었습니다. 이제 122,000개 이상을 계산합니다. 백그라운드 스레드 풀에서. 땀 한 방울 흘리지 않고. 우리는 이 부분이 정말 자랑스럽습니다.
496개 도시. 122,000개 이상의 가능한 노선. 전략 자문이 처리하니 여러분은 하지 않아도 됩니다.
워 룸에 오신 것을 환영합니다
SkyChart는 언제나 전략 게임이었습니다. 이제 그에 걸맞은 계기들을 갖췄습니다.
열두 개의 새로운 분석 대시보드가 임원 스위트에 상륙했습니다. 기단 위험 보고서(Fleet Risk Report)는 노후 항공기가 문진이 되기 전에 식별합니다. 현금 흐름 예측(Cash Flow Forecast)은 시나리오 슬라이더와 함께 12개월치 은행 잔액을 투영합니다. 도시 쌍 포화도 파인더(City Pair Saturation Finder)는 122,000개 이상의 도시 쌍을 기회 점수로 순위 매겨, 여러분이 난투극에 뛰어드는 것을 막아 줍니다. 경쟁사 위협 평가(Competitor Threat Assessment)는 모든 라이벌의 확장 전략과 여러분 네트워크와의 겹침을 프로파일링합니다.
그리고 무장시켰습니다.
완전한 경제 전쟁이 v0.2.28에 도착했고, 게임의 감각을 완전히 바꿨습니다. 권역 경제는 이제 매달 호황과 불황을 오갑니다. 도시들은 여러 분기에 걸친 골드러시(+40% 수요)나 과포화 불황(-30%)에 들어갑니다. 분기별로 동적 시장 충격이 닥칩니다. 연료 위기, 허브 붕괴, 글로벌 경기 침체, 항공사 메가 합병입니다.
허브 특화를 통해 허브를 Cargo, Tourist, Business로 지정하면 해당 수요가 +20% 됩니다. 가격 전쟁은 경쟁이 치열한 노선에서 라이벌을 언더컷할 때 자동으로 발동합니다. 비용 1.5배, 수요 +20%, 순수한 아드레날린. 권역의 40% 이상을 지배하면 AI 라이벌들이 6개월 약탈적 시장 전쟁을 개시하여 모든 것을 언더컷하고 여러분의 최고 도시를 빼앗아 갑니다.
봉인 입찰 슬롯 경매가 선착순을 대체했습니다. 실제 수익 공유가 있는 코드셰어 얼라이언스도 추가되었습니다. 기업 스파이 활동: 노선 데이터부터 전체 재무, 완전한 기업 절도까지 세 등급의 정보를 얻도록 정보원을 고용하세요. 라이벌도 여러분을 스파이합니다. Casey의 암호명은 “Tropical Thunder”이며 바꾸기를 거부합니다.
분기 실적 발표는 이제 전장 브리핑이 되었습니다.
열두 개의 새 대시보드. 여러분의 항공사 제국을 위한 블룸버그 터미널 감성.
누구나 탈 수 있는 조종석
블로그 #1에서는 컨트롤러 지원을 후기 추가 기능으로 언급했습니다. 이제는 플래그십 기능입니다.
완전한 Steam Input API 연동은 모든 Xbox, PlayStation, Switch, Steam Deck 컨트롤러가 올바른 버튼 글리프와 함께 자동 지원된다는 뜻입니다. 일반 대체 아이콘이 아니라 여러분의 컨트롤러의 정확한 아이콘입니다. 세 가지 컨텍스트 민감 액션 세트가 탐색에 따라 매끄럽게 전환됩니다. 컨트롤러 사용자가 텍스트 필드에 포커스할 때마다 화면상 QWERTY 키보드가 자동으로 나타납니다. 모든 단일 패널이 게임패드 입력에 반응합니다.
98개의 Steam 도전 과제가 모두 연결되어 있습니다. First Flight부터 Every Seat, Every City까지. 15개의 Steam 통계가 프로필에 동기화됩니다. Steam Timeline은 여러분의 최고의 순간들을 Steam Replay용으로 북마크합니다. 글로벌 및 로컬 리더보드로 여러분의 제국을 전 세계와 비교할 수 있습니다.
그러나 우리가 가장 자랑스러워하는 업데이트는 접근성입니다.
다섯 가지 색맹 디스플레이 모드: Normal, Deuteranopia, Protanopia, Tritanopia, Achromatopsia. 세 단계 대비. 80%부터 150%까지의 텍스트 크기 슬라이더. 텍스트 음성 변환을 통한 스크린 리더 지원. 뉴스 티커를 멈추고 떠다니는 애니메이션을 건너뛰는 Reduce Motion 토글.
그리고 여기 숫자가 있습니다: 866개의 하드코딩된 Color() 호출이 교체되었습니다. 게임 내 모든 UI 패널(기단 관리, 노선 성과, 전략 인텔, 인수, 얼라이언스, 설정, 난이도 선택, 시대 선택, 승리 조건, 음악 플레이어, 리더보드, 모든 것)이 이제 중앙 AccessibilityPalette를 통해 색상을 라우팅합니다. 색맹 모드와 대비 설정이 모든 곳에서, 모든 패널에서, 실시간으로 작동합니다. 재시작 불필요.
Casey는 다섯 가지 색맹 모드를 모두 테스트해 보고 자신이 몇 년 동안 연료 게이지를 잘못 읽고 있었다는 사실을 발견했습니다.
다섯 가지 색맹 모드, 세 단계 대비, 866개의 다시 쓰인 색상 호출. 조종석은 이제 모두를 위한 곳입니다.
소유하거나 빌리거나
v0.2.17 시점에, 우리는 게임 플레이 방식을 조용히 바꾼 시스템을 출시했습니다. 항공기 리스입니다.
현금이 부족하지만 노선을 열어야 하나요? 비행기를 리스하세요. 1년, 3년, 5년 조건. 짧은 조건은 월당 더 비싸지만 유연성을 줍니다. 리스가 만료되면 여러분이 갱신하거나, 매입하거나, 철수할 때까지 노선이 자동 정지됩니다. AI 라이벌도 실제 저비용 항공사처럼 리스합니다.
리스와 함께 제대로 된 항공기 격납고가 추가되었습니다. 소유한 비행기는 이제 노선에서 제거되어도 증발하지 않고 남아 있습니다. 보관하고, 재사용하고, 감가상각된 시장 가격에 매각하세요. 항공기 리퍼비시는 기체 가격의 30%로 수익성 있는 비행기의 서비스 수명을 10년 연장할 수 있게 해 줍니다.
또 시대 진행을 출시했습니다. 이전 시대를 완료할 때까지 상위 시대는 잠겨 있습니다. 제트 시대를 도전하기 전에 비행 여명기를 마스터하세요. Passengers 모드로 어떤 시대든 클리어하면 Cargo가 해금됩니다. Cargo를 이기면 Combined가 해금됩니다. 첫 시대를 완료하면 Sandbox Mode가 열립니다. 파산도, 시간 압박도 없이, 그저 구축만 하세요.
블랙박스, Spotify, 그리고 잡다한 것들
게임을 더 좋게 만드는 나머지 모든 것을 빠르게 훑어봅니다:
Epic Games Store 지원. 새로운 PlatformManager 추상화가 여러분이 어느 스토어프론트에서 이륙하든 도전 과제, 통계, 리더보드, 클라우드 저장을 그곳으로 라우팅합니다. 하나의 코드베이스, 여러 터미널.
블랙박스 레코더. 마이그레이션 매니저가 이제 Steam이 연결되기 전에 실행되어, 여러분의 저장 파일에서 회사 값을 재구성하고 잘못된 리더보드 데이터를 정리합니다. 모든 저장 파일에 게임 버전이 찍힙니다. 경력 통계는 모든 시대 완료를 영구적으로 기록합니다. 평생 카운터가 구축된 허브, 이루어진 투자, 성사된 인수, 맺어진 얼라이언스, 버텨낸 무역 전쟁을 추적합니다.
Spotify가 실행 시 자동 연결됩니다. 이미 인증되어 있다면, 음악 플레이어가 여러분이 멈춘 곳에서 이어집니다. 더 이상 세션마다 탑승권을 다시 스캔할 필요가 없습니다.
저장 슬롯이 5개에서 10개로 확장되었습니다. 색상 구분 pill 태그(난이도, 게임 모드, 샌드박스)와 실제 타임스탬프와 함께입니다. HUD가 재편성되었습니다: Routes & Fleet, Company, 그리고 라벨이 달린 섹션 헤더가 있는 새로운 Rivals 드롭다운. 토스트 알림은 이제 서로 위에 보이지 않게 쌓이는 대신 수직으로 계단식으로 나타납니다. 그리고 14개의 새로운 키보드 단축키가 모든 전략 패널을 다룹니다.
작은 디테일에도 주의를 기울였습니다. 탄소 상쇄 투자는 이제 2005년으로 시대 잠금되어 있으며(프로펠러 시대에는 누구도 탄소를 상쇄하지 않았습니다), 카고 모드는 “승객” 대신 톤과 요율을 보여주고, 종료 대화상자는 이제 나가기 전에 자동 저장을 제안합니다.
접근 허가
우리는 이제 v0.2.32.10에 있습니다. v0.2.17에서 “완성되었고 매우 플레이 가능한” 게임이었던 것이, 훨씬 큰 무언가가 되었습니다. 496개 도시, 66종 항공기, 컨트롤러 네이티브, 접근성 우선의 경제 전쟁과 기업 스파이 활동을 갖춘 항공사 제국 시뮬레이션, 그리고 이 모든 것을 60 FPS로 처리하는 성능 엔진입니다.
활주로에 있는 것들입니다:
- 사운드 디자인: UI 효과, 앰비언트 공항 사운드스케이프, 모든 버튼의 만족스러운 클릭 소리
- 튜토리얼: 새 플레이어가 파산하며 배우지 않아도 되도록 가이드되는 첫 비행 경험
- Steam 스토어 페이지: 도전 과제, 클라우드 저장, 그리고 출시를 위한 마지막 박차
우리는 여전히 같은 철학으로 SkyChart를 만들고 있습니다. 관리 시뮬레이션은 액션 게임과 같은 완성도를 받을 자격이 있다는 것입니다. 모든 툴팁, 모든 애니메이션, 모든 접근성 옵션은 무엇이 있으면 우리가 알트탭하고 싶지 않을까를 스스로에게 물은 결과 존재합니다.
여정을 따라 주셔서 감사합니다. 간이 탁자를 접어 두시고, 노선 네트워크를 수익성 있게 유지하세요.
Casey Jones Labs 팀
Casey는 연봉 인상과 코너 오피스를 원한다고 말합니다. 스플래시 화면에 이름이 들어간 것만으로 이미 자랑하고 다니면서 우리가 잊지 못하게 합니다. 호두가 더 지급됩니다.
SkyChart: Airline Executive, Windows, macOS, Linux용으로 Steam에 출시 예정. Godot 4로 제작.