Genshin Impact İçinde Bir Çiftlik Oyunu Nasıl Yaptık
Ya dünyanın en popüler RPG’lerinden birinin içinde bir çiftlik oyunu yapabilseydiniz?
Garden Party’yi başlatan soru buydu. “Yapmalı mıyız?” değil, “yapabilir miyiz ve ne kadar ileri gidebiliriz?” Cevap beklediğimizden çok daha ileri oldu — ve oraya ulaşma yolculuğu anlatılmaya değer bir hikaye.
Fikir
HoYoverse, Miliastra Wonderland’i başlattığında — içerik üreticilerin özel oyun sahneleri oluşturmasına olanak tanıyan, Genshin Impact’in yerleşik UGC platformu — fırsatı anında gördük. Milyonlarca oyuncu zaten Genshin ekosistemindeydi. Oyun zaten yüklüydü. Ya onlara yeni bir şey indirmelerini istemeden rahat bir çiftçilik deneyimi sunabilseydik?
Rahat oyun türü patlama yapıyordu. Stardew Valley, insanların rahat bir ortamda ekip, hasat edip sayıların artmasını izlemeyi sevdiğini kanıtlamıştı. Ancak çoğu seçenek ayrı bir satın alma veya yeni bir kurulum gerektiriyordu. Biz oyuncularla zaten oldukları yerde — Genshin Impact’in içinde — buluşmak istedik.
Bu yüzden tamamen bir Genshin Impact sahnesi içinde çalışan eksiksiz bir çiftlik simülasyon oyunu yapmaya karar verdik. Oynanış için harici sunucu yok. Ayrı bir istemci yok. Oyuncular sadece Paimon Menu üzerinden Miliastra Wonderland’i açıyor, sahnemizi buluyor ve ekmeye başlıyor.
Her Şeyi Şekillendiren Kısıtlama
İşte geliştiriciler için işlerin ilginçleştiği yer burası.
Miliastra Wonderland, tüm oyun mantığı için görsel bir düğüm grafı sistemi kullanır. Her etkileşim, her hesaplama, her mekanik — hepsi görsel bir editörde bağlantılı düğümler olarak ifade edilmelidir. Unreal Blueprints’i düşünün, ama katı sınırlarla. Her graf için kullanabileceğiniz düğüm sayısında tavan var. Süresiz olarak karmaşıklık eklemeye devam edemezsiniz.
Bu tek kısıtlama, aldığımız her tasarım kararını şekillendirdi.
Erken dönemde, görsel editörde elle düğüm grafı oluşturmanın ölçeklenmeyeceğini fark ettik. Basit mekaniklerin grafları bile yüzlerce düğüm derinliğindeydi ve görsel spagetti ayıklamak kimsenin eğlence fikri değil. Bu yüzden alışılmadık bir şey yaptık: Genshin-TS adını verdiğimiz bir TypeScript’ten düğüm grafına derleyici.
Fikir basit. Oyun mantığını TypeScript ile yazıyoruz — okunabilir, test edilebilir, sürüm kontrollü kod. Sonra derleyicimiz bu kodu Genshin motorunun çalıştırabileceği görsel düğüm grafı formatına dönüştürüyor. Bu, gerçek bir programlama dilinin tüm avantajlarını (fonksiyonlar, döngüler, tip kontrolü, testler) elde ederken platformun çalıştırabileceği bir çıktı ürettiğimiz anlamına geliyor.
Ama düğüm sınırları her zaman tetikte. Her özelliğin bir bütçesi var. Hava durumu sistemi mi eklemek istiyorsunuz? Boş düğüm bulmanız ya da yer açmak için başka bir şeyi optimize etmeniz gerekiyor. Küçücük bir apartmanda mobilya yapmak gibi — her parça kapladığı alanı hak etmeli.
Bu, önceliklerde acımasız olmamızı zorladı. Her şeyi yapamadığımız için doğru şeyleri yapmak zorundaydık. Ve dürüst olmak gerekirse, oyun bundan dolayı daha iyi oldu.
1 Bitkiden Tam Bir Ekonomiye
Garden Party’nin ilk oynanabilir sürümünde tam olarak bir bitki ve bir satış bölgesi vardı. Ekiyordunuz, bekliyordunuz, hasat ediyordunuz, satıyordunuz. Oyunun tamamı buydu.
Ve insanlar oynadı. Gerçekten eğlendiler.
Bu erken doğrulama, inşa etmeye devam etmemiz için bize güven verdi. Büyüme mekanikleri ekledik, ardından büyümeyi normal hızın 32 katına kadar hızlandıran 5 seviyeli bir sulama sistemi. Bir anda oyunun bir döngüsü oldu: ek, sula, hasat et, sat, daha fazla tohum al, tekrarla. İyi çiftlik oyunlarının tutturduğu o basit, bağımlılık yaratan tatmin edici histi.
Sonra mutasyonlar geldi — her hasadı küçük bir heyecana dönüştüren rastgele bonuslar. Bir bitki Golden çıkabilir, ya da Shiny, ya da gerçekten şanslıysanız Luminous. Her mutasyon satış değerini katlar, bu yüzden her hasat küçük bir beklenti heyecanı taşır. Bu özel mi olacak?
Ardından bir hava durumu sistemi ekledik. Bahçe güneşli, yağmurlu ve karlı koşullar arasında döner, ve yağmur ile kar bitkilerde kendi mutasyonlarını tetikleyebilir — Wet, Chilled ve ikisi birleştiğinde ortaya çıkan nadir Frozen mutasyonu. Hava durumu, başlangıçta planlamadığımız bir zamanlama ve strateji boyutu ekledi.
Günlük görevler oyunculara geri dönmeleri için bir neden verdi. Bir kilometre taşı sistemi onlara uzun vadeli hedefler verdi. Clover para birimi etrafında inşa edilen oyun içi ekonomi her şeyi tutarlı bir ilerleme döngüsüne bağladı. Altı bitki türü — Carrot, Berry, Sunsettia, Corn, Radish ve Sweet Flower — her biri kendi büyüme hızları, fiyatları ve stratejik nişleriyle.
Ve tüm bunlar düğüm grafları üzerinde çalışıyor, TypeScript’ten derleniyor, başka birinin oyun motorunun içinde. Bazen hala çalıştığına inanamıyoruz.
15 Dil, Bir Bahçe
Genshin Impact küresel bir oyun. Oyuncuları düzinelerce dil konuşuyor. Eğer küresel bir platformun içinde inşa ediyorsak, oyunumuzun da herkesin dilini konuşması gerektiğine erken karar verdik.
15 dilde 637 karakter dizisini işleyen bir çeviri hattı oluşturduk: İngilizce, Japonca, Çince (Basitleştirilmiş ve Geleneksel), Korece, İspanyolca, Fransızca, Almanca, Rusça, Portekizce, İtalyanca, Tayca, Vietnamca, Endonezce ve Türkçe. Hepsi ilk günden destekleniyor.
Teknik zorluklar gerçekti. Karakter genişliği CJK yazıları ile Latin alfabeleri arasında dramatik biçimde değişir — İngilizce’de mükemmel uyan bir etiket Almanca’da taşabilir veya Çince’de garip bir şekilde seyrek görünebilir. Kullanıcı arayüzü düzenleri, tüm bunları zarif bir şekilde ele alacak kadar esnek olmalıydı.
Ama harcanan her saat buna değdi. İngilizce konuşmayan oyuncular, bir oyunun kendi dillerini desteklediğini fark eder ve bunu dile getirirler. En tutkulu topluluk üyelerimizden bazıları, benzer oyunlar desteklemezken Garden Party’nin kendi ana dillerinde mevcut olması nedeniyle bizi buldular.
Öğrendiklerimiz
Garden Party’yi yapmak bize beklemediğimiz dersler öğretti:
- Kısıtlamalar yaratıcılığı doğurur. Düğüm graflarının düğüm sınırları bir kabus gibi görünüyor, ama bizi daha temiz, daha odaklı oyun tasarımına yöneltti. Bir çözümü zorla dayatamadığınızda, zarif çözümler bulursunuz.
- Küçük başla ve tekrarla. İlk sürümümüzde bir bitki ve bir satış bölgesi vardı. Oyuncular sevdi. Ana döngünün işe yarayıp yaramadığını anlamak için tam gelişmiş bir oyuna ihtiyacımız yoktu — sadece ana döngüye ihtiyacımız vardı.
- Yerelleştirme ilk günden buna değer. Mevcut bir oyuna sonradan çeviri eklemek acı vericidir. Hattı erken kurmak, her yeni özelliğin otomatik olarak 15 dilde yayınlanması anlamına geldi.
- Başkasının ekosisteminde inşa etmek bir ödünleşimdir. Genshin Impact’i zaten yüklemiş milyonlarca oyuncuya erişim sağlıyoruz. Karşılığında, kontrol edemediğimiz platform güncellemelerine, sınırlamalarına ve değişikliklerine tabiyiz. Buna değer, ama gözleriniz açık girmek gerekir.
- Topluluk geri bildirim döngüleri düşündüğünüzden daha hızlıdır. Discord sunucumuz anında bir geri bildirim kanalına dönüştü. Oyuncular hata bildiriyor, özellik öneriyor ve değişiklikleri herhangi bir QA ekibinden daha hızlı test ediyor. Oyuncularınız size doğrudan ulaşabildiğinde, tekrarlama hızı dikkat çekicidir.
Sırada Ne Var
Henüz bitirmedik. Garden Party büyümeye devam ediyor — daha fazla bitki, daha fazla özellik, bahçeye geri dönmek için daha fazla neden. Topluluk, nasıl oynadıkları, ne istedikleri ve hiç öngörmediğimiz mekanikleri kullanmanın yaratıcı yollarıyla bizi şaşırtmaya devam ediyor.
Garden Party’yi henüz denemediyseniz, başlamak için bundan daha iyi bir zaman olmadı. Ücretsiz, Genshin Impact içinde çalışıyor ve America, Europe ve Asia sunucularında mevcut. Arkadaşlarınızı getirin — 4 oyuncuya kadar Co-op’ta birlikte çiftçilik yapabilir — ve gezegendeki en büyük RPG’lerden birinin içinde inşa edilmiş rahat bir çiftlik oyununun nasıl göründüğünü görmeye gelin.