Mastodon
← Tüm yazılar
yazan: Casey Jones Labs · 7 dakika okuma

SkyChart'ı İnşa Etmek: Aerobiz'e Bir Aşk Mektubu Nasıl Tam Teşekküllü Bir Havayolu Simülasyonuna Dönüştü

devlogskychartbehind-the-scenes
Bu yazı İngilizceden otomatik olarak çevrildi. Orijinali oku
İçindekiler

1992’den bizi mahveden bir oyun var. SNES’teki Aerobiz Supersonic olduğu kadar bağımlılık yapmasına hiç gerek yoktu. Lagos’ta havalimanı slotları almak, petrol krizlerinden kaçınmak, siz küçük uçak sprite’larınızın pikselleştirilmiş bir küre üzerinde sürünürken tek bir merkezde dünya hakimiyetini planlamak.

Kimse düzgün bir halef yapmadı. Bu yüzden biz inşa etmeye karar verdik.

SkyChart: Airline Executive bizim cevabımız. Godot 4’te inşa edilen, deniz uçaklarının altın çağından A380 dönemine kadar 90 yıllık havacılık tarihini kapsayan retro-modern bir havayolu yönetim simülasyonu. Bugün her şeyin nasıl bir araya geldiğini anlatan perdeyi aralıyoruz.


Pitch: “Ya Aerobiz’in Modern Kullanıcı Arayüzü Olsaydı?”

Temel fantezi basit: dört tarihi dönem boyunca yapay zeka rakiplerine karşı yarışan, yeni bir havayolunun CEO’susunuz (1930-2020). Rotaları seçersiniz, uçaklar satın alırsınız, şehirlere yatırım yaparsınız, dünya bölgeleriyle diplomasi yönetirsiniz ve OPEC herkesin çeyreğini mahvetmeye karar verdiğinde iflas etmemeye çalışırsınız.

Ama Aerobiz size menüler ve metin verirken, biz yaşayan bir dünya haritası istiyorduk. Büyük daire uçuş yolları, hava durumu radarı, gündüz/gece döngüleri, şehir patlama animasyonları ve virajlara yatan uçak sprite’ları. Sandalyenize yaslanıp “Evet, bu ağı ben kurdum” diye düşündürten türden şey.

Ulaştığımız his: yüksek teknolojili retro. Karanlık bir haritada neon ışıklı çizgiler. Altıgen şekilli HUD düğmeleri. 90’ların bir Bloomberg terminalinden gelmiş olabilecek bir haber bandı. Inkar edilemez SNES dönemi cazibesiyle sarmalanmış modern kullanıcı deneyimi.

Dünya haritası gece vakti, küreyi çaprazlama geçen neon rota çizgileriyle ve şehirler arasında büyük daire yollarını izleyen uçak sprite'larıyla Küresel görünüm: havayolu ağınız bir bakışta. Parlayan her çizgi bir rotadır. Her hareket eden nokta gelirdir.


150 Şehir, 33 Uçak, 90 Yıllık Tarih

Ölçek hakkında konuşalım. SkyChart şunları içerir:

  • 7 dünya bölgesi boyunca 150 şehir (artı 1991 sonrası Rusya), her biri gerçek nüfus verileri, ekonomik profiller ve mevsimsel talep eğrileriyle. Tokyo kiraz çiçeği mevsiminde yükselir. Miami kışın patlar. Kalküta Durga Puja sırasında zirveye çıkar.
  • 33 tarihsel olarak doğru uçak, Douglas DC-3’ten (1936) Boeing 787 Dreamliner’a. Her birinin gerçek menzili, hızı, kapasitesi, işletme maliyetleri ve emeklilik yılı vardır. Bir DC-3’ü jet çağına sokun ve bakım maliyetlerinin sizi yiyip bitirmesini izleyin.
  • 60’tan fazla tarihi olay oyun sahasını yeniden şekillendirir. Büyük Buhran talebi düşürür. İkinci Dünya Savaşı Londra ve Berlin’i bombalar (gerçekten, bu havalimanlarını yeniden inşa etmeniz gerekecek). 1973 petrol krizi yakıt maliyetlerinizi bir gecede iki katına çıkarır. COVID-19 4. Dönemde ortaya çıkar ve, hatırlarsınız işte.
  • 4 oynanabilir dönem, her biri artan hedeflerle. 1. Dönem sizden pervaneli uçaklar ve 5 milyon dolarla hayatta kalmanızı ister. 4. Dönem yedi bölgenin tamamına yayılan 2 milyar dolarlık bir imparatorluk ister.

Her dönem farklı bir oyun gibi hissettirir. 1930’lar deniz uçağı ağının stratejik hesabı, 1990’ların acımasız merkez-yıldız savaşıyla hiçbir ilgisi yoktur.

Dört tarihi dönemi hedefleri ve başlangıç koşullarıyla gösteren dönem seçim ekranı Döneminizi seçin: her biri farklı uçaklar, olaylar ve zafer koşullarına sahip farklı bir oyundur.

COVID-19 pandemisini duyuran tarihi olay açılır penceresi Tarih tekrarlamaz, ama yakıt maliyetlerinizi fırlatır.


Gerçekten Karşılık Veren Yapay Zeka

Yayınlamayı reddettiğimiz bir şey vardı: beyinsiz yapay zeka. SkyChart’ın rakip havayolları rastgele genişlemez. Ana bölgeleri, nüfus ve ekonomik verilere dayalı ağırlıklı rota seçimi, üç aylık fiyatlandırma ayarlamaları, uçaklar emekli olduğunda filo yükseltmeleri ve merkez yatırım stratejileri vardır.

Çekişmeli rotalarda fiyatlarınızın altını oyarlar. Gözünüze kestirdiğiniz şehirlerdeki havalimanı slotlarını satın alırlar. Nakit sıkıntısı çektiklerinde, tıpkı gerçek bir ekonomik taşıyıcının yapacağı gibi uçak bile kiralarlar.

Ve 4. Dönemde, onların rekabet edemeyeceği bir imparatorluk kurduysanız? Bir satın alma hedefi haline gelebilirler. Dönem başına bir düşmanca devralma. Rotaları, slotları ve merkezleri, hepsi sizin. Bir bedel karşılığında.

Bölgelerdeki rakip havayolu genişlemesini gösteren Rekabet İstihbaratı paneli Düşmanını tanı: İstihbarat paneli tüm yedi bölgedeki her rakibin hamlelerini izler.


Kokpit: Sizinle Savaşmayan Kullanıcı Arayüzü

Hiç kullanıcı arayüzünün gerçek patron dövüşü olduğu bir yönetim simülasyonu oynadıysanız, acıyı bilirsiniz. SkyChart’ın arayüzünün kullanmak isteyeceğiniz bir şey olmasını sağlamak için mantıksız miktarda zaman harcadık.

Her panel sürüklenebilir, yeniden boyutlandırılabilir bir penceredir. Rota Yöneticisi, Filo Genel Bakış, Stratejik Danışman, Şehir İstihbaratı, Rekabet İstihbaratı, Müzik Çalar. İstediğiniz yere sürükleyin. Yeniden boyutlandırın. Oyun düzeninizi oturumlar arasında hatırlar.

Stratejik Danışman yapay zeka yardımcı pilotunuzdur. Dünyadaki her olası şehir çiftini tarar (bu 11.175 kombinasyon), tahmini kâra göre sıralar ve en iyi fırsatları gümüş tepside sunar. Bir arka plan iş parçacığı havuzunda, 8 çalışan iş parçacığına kadar çalışır, bu nedenle binlerce rotayı işlerken bile oyunu asla dondurmaz.

Tam denetleyici desteği geç bir ekleme oldu ve tutku projesine dönüştü. Xbox, PlayStation ve Switch denetleyicileri yerel olarak çalışır. Sanal bir imleç, sağ analog çubukla haritadaki şehirleri seçmenizi sağlar. Radyal bir menü (LB tutun) her panele anında erişim sağlar. Her pencere B-kapat yanıt verir. Tuş başlığı ve buton glif widget’larıyla grafiksel bir Kontroller Rehberi bile oluşturduk.

Ah, ve bir yerleşik müzik çalar var. Üç kaynak: oyunun döneme uygun film müziği (caz çağından modern elektronik müziğe 44 parça), yerel müzik kütüphaneniz veya OAuth aracılığıyla Spotify entegrasyonu. Çünkü iyi bir çalma listesi olmadan havayolu yönetmek nedir ki?

Rota Yöneticisi, Şehir Paneli ve Stratejik Danışman haritada düzenlenmiş açık birden çok sürüklenebilir pencere Kokpitiniz, düzeniniz. Her panel sürüklenebilir, yeniden boyutlandırılabilir ve onu bıraktığınız yeri hatırlar.

Tahmini kâra göre sıralanmış önerilen rotaları gösteren Stratejik Danışman paneli Stratejik Danışman sizin için 11.175 şehir çiftini işler.

Tüm gamepad buton eşlemelerini gösteren denetleyici girdi kılavuzu Tam denetleyici desteği: koltuk dostu havayolu yönetimi için her düğme eşleştirilmiştir.


Kaputun Altında: Bir GDScript Aşk Hikayesi

SkyChart tamamen Godot 4 ve GDScript 2.0 ile inşa edilmiştir. C# yok, C++ modülü yok. Rota ekonomi motorundan döşeme harita oluşturucusuna kadar her şey saf GDScript.

Mühendislik tarafından bazı öne çıkanlar:

Her yerde iş parçacıkları. Aylık ekonomik hesaplamalar, rota önerileri ve yapay zeka genişlemesi hepsi çalışan iş parçacıklarında çalışır. Oyun, dört rakip havayolu boyunca 2.000’den fazla rotayı işlerken bile ipek gibi pürüzsüz kalır.

Gerçek bir pencere yöneticisi. WindowManager, öne odak katmanlamasını (bir pencereye tıklayın, üste gelir), diske konum/boyut kalıcılığını ve ekrana uyumlu boyutlandırmayı işleyen bir autoload singleton’dır. Üç kademe: Normal (oyun panelleri), Modal (ayarlar, kaydet/yükle) ve HUD (her zaman üstte).

OSM tarzı harita döşemeleri. Herhangi bir bölgeye yakınlaştırın ve yüksek ayrıntılı harita döşemeleri dinamik olarak yüklenir. Sprite havuzlama, LRU doku önbelleği, disk önbelleği ve çevrimiçi getirme. Üç stil: Retro Dark (varsayılan), Uydu ve Temiz Vektör.

Hava durumundan kaçınan büyük daire yolları. Uçuş yolları coğrafi doğruluk için küresel enterpolasyonu izler ve haritadaki fırtına sistemleri etrafında dinamik olarak yönlendirilir. Uçak sprite’ları virajlara yatar ve düşen gölgeler oluşturur. Kozmetik için çok fazla matematik, ama dünyayı gerçek hissettirir.

Büyük daire rotalama eylemde: uçaklar küre boyunca gerçekçi kavisli yolları izler Büyük daire rotalama eylemde: uçaklar gerçekçi kavisli yolları izler ve hava durumu sistemlerinden kaçar.

Neon tarzı ayrıntılarla Retro Dark döşeme stilini gösteren bir bölgeye yakınlaştırılmış harita Yakınlaştırın ve OSM tarzı döşemeler anında yüklenir. Aralarından seçim yapabileceğiniz üç harita stili.


Sayı Oyunu: Rota Ekonomisi

SkyChart’ın kalbinde gerçekten gurur duyduğumuz bir ekonomik model var. Her rota aylık kârı şunları dikkate alan bir boru hattı aracılığıyla hesaplar:

  • Temel talep (şehir nüfusu x ekonomik çarpan)
  • Mevsimsel değişim (şehir başına 12 aylık çarpan)
  • Yatırım bonusları (oteller, golf sahaları, konser salonları, tema parkları)
  • Bölgesel diplomasi (daha iyi ilişkiler = daha fazla talep)
  • Olay değiştiricileri (savaşlar, petrol krizleri, pandemiler)
  • İtibar (güvenlik kaydı ve müşteri hizmetleri küresel olarak talebi etkiler)
  • Rekabet (talep çekim puanı, fiyatlandırma, sadakat, merkez varlığı ile bölünür)
  • Uçak yaşı (emeklilik yılını geçen uçaklar çalıştırmak için %40 daha pahalıdır ve %15 talep kaybeder)
  • Yakıt fiyatları (OPEC olayları değişken maliyetlerinizi bir gecede iki katına çıkarabilir)

Sonuç, hiçbir iki rotanın aynı şekilde oynanmadığı bir sistemdir ve 1935’teki optimal ağ, 2005’teki optimal ağa benzemez.

Geliri, giderleri ve değişen bir kâr grafiğini gösteren Üç Aylık Mali Rapor Her çeyrek, sayılar hikayeyi anlatır. Q3’teki o düşüş mü? OPEC oldu.

Trend verileriyle kâra göre sıralanmış rotaları gösteren Rota Performans panosu Rota Performansı: trend sparkline’larıyla kâra göre sıralanmış her rota. Yeşil iyidir. Kırmızı zor kararlar verme zamanı anlamına gelir.


Sırada Ne Var

Şu anda v0.2.17 sürümündeyiz, bu SkyChart sürümlendirmesinde Faz 16+ cilalamasında derinleştiğimiz anlamına geliyor. Temel oyun tamamlandı ve çok oynanabilir. İşte pistteki planlar:

  • Kullanıcı Arayüzü Ses Efektleri ve Ambiyans Ses Manzarası: düğme tıklamaları, panel fısıltıları, havalimanı ambiyansı
  • İlk Çalıştırma Eğitimi: yeni oyuncuların çökerek öğrenmek zorunda kalmaması için 12 bölümlük rehberli bir tur (mali olarak, kelimenin tam anlamıyla değil ama ayrıca kelimenin tam anlamıyla da)
  • Steam Yayın Hazırlığı: mağaza sayfası, başarı entegrasyonu, bulut kayıtları

SkyChart’ı şu felsefeyle inşa ettik: yönetim simülasyonları aksiyon oyunlarının aldığı kullanıcı arayüzü sevgisini hak eder. Her ipucu, her animasyon, her yaşam kalitesi özelliği şu soruyu sormamızla var oluyor: “Bizim alt-sekme yapmak istemememizi sağlayacak şey nedir?”


Yolculuğu Takip Edin

SkyChart, bizi şekillendiren oyunlara büyük bir sevgi duyan küçük bir stüdyo olan Casey Jones Labs tarafından geliştiriliyor. Anchorage’a bir rota açmak ile Honolulu’da bir tema parkına yatırım yapmak arasında tartışarak büyüdüyseniz, bu oyun sizin için.

Daha fazla geliştirici blogu için bizi takip etmeye devam edin ve masa tablalarınızı dik konumda tutun.

Casey Jones Labs ekibi

Arka plan haritasında animasyonlu uçakların geçtiği SkyChart ana menüsü SkyChart: Airline Executive, Windows, macOS ve Linux için Steam’e geliyor. Godot 4 ile inşa edildi.