Xây dựng SkyChart: Khi một lá thư tình gửi Aerobiz trở thành một game mô phỏng hàng không đầy đủ
Mục lục
Có một game từ năm 1992 đã hủy hoại chúng tôi. Aerobiz Supersonic trên SNES không có lý do gì để gây nghiện đến vậy. Mua slot sân bay ở Lagos, né khủng hoảng dầu, xem các sprite máy bay bé xíu của bạn bò qua quả địa cầu pixel hóa trong khi bạn âm mưu thống trị thế giới, từng trung tâm trung chuyển một.
Không ai từng làm một phần kế thừa tử tế. Nên chúng tôi quyết định xây một cái.
SkyChart: Airline Executive là câu trả lời của chúng tôi. Một game mô phỏng quản lý hàng không retro-hiện đại được xây dựng trên Godot 4, trải dài 90 năm lịch sử hàng không từ thời hoàng kim của thủy phi cơ đến kỷ nguyên A380. Hôm nay, chúng tôi kéo tấm màn về cách tất cả đã ghép lại với nhau.
Ý tưởng: “Sẽ thế nào nếu Aerobiz có UI hiện đại?”
Ảo tưởng cốt lõi rất đơn giản: bạn là CEO của một hãng hàng không non trẻ, cạnh tranh với các đối thủ AI qua bốn kỷ nguyên lịch sử (1930 đến 2020). Bạn chọn đường bay, mua máy bay, đầu tư vào thành phố, quản lý quan hệ ngoại giao với các khu vực trên thế giới, và cố không phá sản khi OPEC quyết định làm hỏng quý của mọi người.
Nhưng ở nơi Aerobiz cho bạn các menu và chữ, chúng tôi muốn một bản đồ thế giới sống động. Các đường bay vòng tròn lớn, radar thời tiết, chu kỳ ngày/đêm, hoạt cảnh thành phố bùng nổ, và các sprite máy bay nghiêng khi rẽ. Thứ khiến bạn ngả lưng trong ghế và nghĩ “Đúng rồi, tôi đã xây dựng mạng lưới này.”
Cảm giác chúng tôi chọn: công nghệ cao nhưng retro. Các đường neon sáng trên một bản đồ tối. Các nút HUD hình lục giác. Một bản tin chạy có thể đến từ một thiết bị Bloomberg những năm ‘90. UX hiện đại gói trong sức hấp dẫn thời SNES không thể nhầm lẫn.
Chế độ xem toàn cầu: mạng lưới hãng hàng không của bạn trong một cái nhìn. Mỗi đường phát sáng là một tuyến. Mỗi chấm di chuyển là doanh thu.
150 thành phố, 33 máy bay, 90 năm lịch sử
Nói về quy mô. SkyChart có:
- 150 thành phố trên 7 khu vực thế giới (cộng thêm Nga sau 1991), mỗi thành phố có dữ liệu dân số thực, hồ sơ kinh tế và đường cong nhu cầu theo mùa. Tokyo tăng vọt trong mùa hoa anh đào. Miami bùng nổ vào mùa đông. Kolkata đạt đỉnh trong mùa Durga Puja.
- 33 máy bay chính xác về mặt lịch sử từ Douglas DC-3 (1936) đến Boeing 787 Dreamliner. Mỗi chiếc có tầm bay, tốc độ, sức chứa, chi phí vận hành và năm nghỉ hưu thật. Bay một DC-3 sang kỷ nguyên phản lực và xem chi phí bảo trì ăn sống bạn.
- Hơn 60 sự kiện lịch sử tái định hình sân chơi. Đại Suy Thoái kéo nhu cầu xuống. Thế chiến II ném bom London và Berlin (theo nghĩa đen, bạn sẽ cần xây lại các sân bay đó). Khủng hoảng dầu 1973 tăng gấp đôi chi phí nhiên liệu của bạn chỉ sau một đêm. COVID-19 xuất hiện trong Kỷ nguyên 4 và, ừm… bạn nhớ mà.
- 4 kỷ nguyên có thể chơi, mỗi kỷ nguyên có mục tiêu leo thang. Kỷ nguyên 1 yêu cầu bạn sống sót với máy bay cánh quạt và 5 triệu đô la. Kỷ nguyên 4 muốn một đế chế 2 tỷ đô la trải dài cả bảy khu vực.
Mỗi kỷ nguyên cảm giác như một game khác. Bài toán chiến lược của một mạng lưới thủy phi cơ thập niên 1930 không giống cuộc chiến hub-and-spoke tàn khốc của thập niên 1990.
Chọn kỷ nguyên của bạn: mỗi kỷ nguyên là một game khác với các máy bay, sự kiện và điều kiện chiến thắng khác nhau.
Lịch sử không lặp lại, nhưng nó thực sự làm tăng vọt chi phí nhiên liệu của bạn.
Các AI thực sự biết đáp trả
Một điều chúng tôi từ chối phát hành là AI ngớ ngẩn. Các hãng đối thủ của SkyChart không chỉ mở rộng ngẫu nhiên. Chúng có khu vực nhà, lựa chọn đường bay được đánh trọng số theo dân số và dữ liệu kinh tế, điều chỉnh giá hàng quý, nâng cấp đội bay khi máy bay nghỉ hưu, và các chiến lược đầu tư trung tâm trung chuyển.
Chúng hạ giá bạn trên các đường bay tranh chấp. Chúng mua slot sân bay ở các thành phố bạn đang nhắm tới. Chúng thậm chí còn thuê máy bay khi thiếu tiền mặt, y như một hãng giá rẻ thực sự sẽ làm.
Và trong Kỷ nguyên 4, nếu bạn đã xây được một đế chế chúng không thể cạnh tranh? Chúng có thể chỉ trở thành mục tiêu mua lại. Một thương vụ thâu tóm thù địch mỗi kỷ nguyên. Các đường bay, slot và trung tâm trung chuyển của chúng, tất cả thuộc về bạn. Với một cái giá.
Biết địch: bảng Intel theo dõi mọi động thái của đối thủ trên cả bảy khu vực.
Buồng lái: UI không chống lại bạn
Nếu bạn từng chơi một game quản lý mà UI là trận đánh thật, bạn biết nỗi đau. Chúng tôi đã dành một lượng thời gian vô lý để đảm bảo giao diện của SkyChart là thứ bạn muốn dùng.
Mỗi bảng là một cửa sổ có thể kéo và thay đổi kích thước. Route Manager, Fleet Overview, Strategic Advisor, City Intelligence, Competitive Intel, Music Player. Kéo chúng đến nơi bạn muốn. Thay đổi kích thước. Game nhớ bố cục của bạn giữa các phiên chơi.
Strategic Advisor là đồng phi công AI của bạn. Nó quét mọi cặp thành phố có thể trên thế giới (tức là 11.175 tổ hợp), xếp hạng theo lợi nhuận dự kiến, và dâng các cơ hội tốt nhất trên một chiếc khay bạc. Nó chạy trên một pool luồng nền, tối đa 8 luồng worker, nên không bao giờ làm đóng băng game, kể cả khi đang xử lý hàng ngàn đường bay.
Hỗ trợ tay cầm đầy đủ là một bổ sung muộn trở thành một dự án đam mê. Tay cầm Xbox, PlayStation và Switch đều hoạt động gốc. Một con trỏ ảo cho phép bạn chọn thành phố trên bản đồ bằng joystick phải. Một menu radial (giữ LB) cho quyền truy cập tức thì đến mọi bảng. Mọi cửa sổ phản hồi với B-đóng. Chúng tôi còn xây một Hướng dẫn Điều khiển đồ họa với các widget phím và biểu tượng nút.
Ồ, và có một trình phát nhạc tích hợp. Ba nguồn: nhạc nền phù hợp kỷ nguyên của game (44 bản trải từ nhạc jazz đến điện tử hiện đại), thư viện nhạc cục bộ của bạn, hoặc tích hợp Spotify qua OAuth. Bởi vì điều hành một hãng hàng không mà không có playlist ra hồn thì sao được?
Buồng lái của bạn, bố cục của bạn. Mọi bảng đều kéo được, thay đổi kích thước được, và nhớ nơi bạn để nó.
Strategic Advisor xử lý 11.175 cặp thành phố để bạn không phải làm.
Hỗ trợ tay cầm đầy đủ: mọi nút được ánh xạ để quản lý hàng không thân thiện với ghế sofa.
Dưới nắp ca-pô: Một chuyện tình GDScript
SkyChart được xây hoàn toàn bằng Godot 4 với GDScript 2.0. Không C#, không module C++. Mọi thứ từ engine kinh tế đường bay đến trình dựng bản đồ ô đều là GDScript thuần.
Vài điểm nổi bật từ phía kỹ thuật:
Luồng ở khắp nơi. Tính toán kinh tế hàng tháng, đề xuất đường bay, và mở rộng AI đều chạy trên các luồng worker. Game vẫn chạy mượt mà ngay cả khi xử lý hơn 2.000 đường bay trên bốn hãng đối thủ.
Một trình quản lý cửa sổ thực sự. WindowManager là một autoload singleton xử lý xếp lớp focus-to-front (bấm một cửa sổ, nó lên trên cùng), lưu vị trí/kích thước ra đĩa, và định kích thước thích ứng với màn hình. Ba cấp: Normal (các bảng gameplay), Modal (settings, save/load), và HUD (luôn ở trên cùng).
Các ô bản đồ kiểu OSM. Zoom vào bất kỳ khu vực nào và các ô bản đồ chi tiết cao tải động. Pool sprite, cache kết cấu LRU, cache đĩa, và tải trực tuyến. Ba kiểu: Retro Dark (mặc định), Satellite, và Clean Vector.
Đường bay vòng tròn lớn với tránh thời tiết. Các đường bay theo nội suy cầu để chính xác về mặt địa lý, và định tuyến động để tránh các hệ thống bão trên bản đồ. Sprite máy bay nghiêng khi rẽ và đổ bóng. Đó là rất nhiều toán học cho thẩm mỹ, nhưng nó khiến thế giới cảm giác thật.
Định tuyến vòng tròn lớn trong hành động: máy bay theo các đường cong thực tế và né các hệ thống thời tiết.
Phóng to và các ô kiểu OSM tải tức thì. Ba kiểu bản đồ để chọn.
Trò chơi con số: Kinh tế đường bay
Tại trung tâm của SkyChart là một mô hình kinh tế chúng tôi thực sự tự hào. Mọi đường bay tính lợi nhuận hàng tháng qua một ống dẫn xem xét:
- Nhu cầu cơ sở (dân số thành phố x hệ số nhân kinh tế)
- Biến động theo mùa (12 hệ số nhân hàng tháng mỗi thành phố)
- Tiền thưởng đầu tư (khách sạn, sân golf, phòng hòa nhạc, công viên chủ đề)
- Ngoại giao khu vực (quan hệ tốt hơn = nhu cầu cao hơn)
- Các điều chỉnh sự kiện (chiến tranh, khủng hoảng dầu, đại dịch)
- Uy tín (hồ sơ an toàn và dịch vụ khách hàng ảnh hưởng đến nhu cầu toàn cầu)
- Cạnh tranh (nhu cầu chia theo điểm hấp dẫn, giá, lòng trung thành, sự hiện diện trung tâm trung chuyển)
- Tuổi máy bay (máy bay quá năm nghỉ hưu tốn thêm 40% vận hành và mất 15% nhu cầu)
- Giá nhiên liệu (các sự kiện OPEC có thể tăng gấp đôi chi phí biến đổi của bạn chỉ sau một đêm)
Kết quả là một hệ thống nơi không có hai đường bay nào chơi giống nhau, và mạng lưới tối ưu năm 1935 không giống gì mạng lưới tối ưu năm 2005.
Mỗi quý, các con số kể câu chuyện. Cái sụt ở Q3 đó? OPEC đã xảy ra.
Route Performance: mỗi đường bay được xếp hạng theo lợi nhuận với sparkline xu hướng. Xanh là tốt. Đỏ nghĩa là đã đến lúc đưa ra quyết định khó.
Kế tiếp là gì
Chúng tôi hiện ở v0.2.17, theo cách đánh phiên bản của SkyChart nghĩa là chúng tôi đang đi sâu vào giai đoạn tinh chỉnh Phase 16+. Game cốt lõi đã hoàn chỉnh và rất chơi được. Đây là những gì đang trên đường băng:
- Hiệu ứng âm thanh UI & cảnh âm thanh xung quanh: tiếng bấm nút, tiếng bảng vụt qua, âm thanh sân bay
- Hướng dẫn lần chạy đầu: một hướng dẫn đi qua 12 chương để người chơi mới không cần học bằng cách rơi máy bay (về tài chính, không phải theo nghĩa đen… dù cũng theo nghĩa đen)
- Chuẩn bị Steam Release: trang cửa hàng, tích hợp thành tích, lưu đám mây
Chúng tôi đã xây dựng SkyChart với triết lý rằng các game mô phỏng quản lý xứng đáng được yêu thương về UI như các game hành động. Mỗi tooltip, mỗi hoạt cảnh, mỗi tính năng cải thiện chất lượng cuộc sống tồn tại vì chúng tôi đã hỏi: “Điều gì sẽ khiến chúng tôi không muốn alt-tab?”
Theo dõi hành trình
SkyChart đang được phát triển bởi Casey Jones Labs, một studio nhỏ với một tình yêu lớn dành cho các game đã định hình chúng tôi. Nếu bạn lớn lên trong lúc tranh luận xem có nên mở đường bay đến Anchorage hay đầu tư vào một công viên chủ đề ở Honolulu, game này là dành cho bạn.
Hãy theo dõi thêm các dev blog, và giữ khay bàn của bạn ở tư thế thẳng đứng.
Đội Casey Jones Labs
SkyChart: Airline Executive, sắp ra mắt trên Steam cho Windows, macOS và Linux. Được xây dựng bằng Godot 4.