Önce bir tür, sonra beş: bu oyun nasıl büyüyor 🪨
Sürüm listemize bakan biri, iyi bir beş haftada 29 sürüm bulacak: 20 Haziran'daki 0.1.0'dan dünkü 0.9.0'a. Bu nasıl oluyor? Kesinlikle oturup tek hamlede bitmiş bir özellik inşa ederek değil. Biz aşamalar halinde inşa ediyoruz: önce gerçekten çalışan en küçük sürüm, sonra (kararlı ve eğlenceli olunca) bir sonraki aşama. Şu anda bunu asteroitler her şeyden iyi gösteriyor.
1. aşama: var olmaları. Asteroitler oyuna geldiğinde tek bir soru önemliydi: birkaç dakikada çevresini dolaşabileceğiniz minicik bir cisimde inmek, yürümek ve kazmak çalışıyor mu? Asteroit küçük bir gezegen değil; kendi boyut sınıfı, farklı yerçekimi, farklı bir ufku var. 1. aşama buydu ve geri kalan her şey bilerek ikinci plandaydı. Bu yüzden tam olarak tek bir tür vardı: tür sabit kodlanmıştı ve olası yüzeylerin bir listesi olmadığı için her sütun kristalle kaplanıyordu. Tüm galaksideki her asteroit aynı görünüyordu. Tek değişiklik çevre uzunluğu ve kraterlerin nerede durduğuydu.
2. aşama: artık farklı olabilir. İkinci aşama dünden beri bitti; bir sonraki güncellemeyle oyuna geliyor. O zaman beş asteroit ailesi olacak ve her kaya kendi ailesini ağırlıklı şansla çekecek. Taşlı olan iş atı; demir, silikat, bakır ve kalay taşıyor. Metalik olan neredeyse saf metal; her yerde titanyum, derinlerde kobalt, tungsten ve platin. Buzlu olan −95 °C'de duruyor ve metal yerine uçucular taşıyor: karbon, lityum, kükürt. Karbonca zengin olan is gibi kara, mağaralarla delik deşik ve çok aşağıda uranyum ile elması saklıyor. Ve kristalli olan, yani eskiden her asteroidin kendisi olan, artık nadir bir buluntu. Üstelik her cisim kendi krater kabartmasını alıyor: yoğunluk, havza genişliği, derinlik, kenar yüksekliği ve aradaki tozun ne kadar dalgalı yattığı. Eskiden bunlar tüm evren için sabit beş sayıydı, bu yüzden havasız her cisim aynı görünüyordu. Bu arada aylar da faydalanıyor, çünkü kodda aynı yoldan geçiyorlar.
Asıl kazanç sonra geliyor. Temiz kurulmuş bir ikinci aşamanın güzel yanı üçüncüsü: altıncı bir aile artık programlama işi değil, bir veri dosyasında bir kayıt; isim, yüzeyler, cevherler, sıklık, bitti. “Birinin bunu eklemesi lazım” sözü “bir akşam deneyebiliriz” oldu. Yeniden yapmaya değmesinin nedeni bu.
Bunu neden hep böyle yapıyoruz. Üç neden, üçünü de acı yoldan öğrendik. Birincisi: bir fikrin eğlenceli olup olmadığını önceden bilemezsiniz. Küçük bir ilk yapı Justus'la bir akşamda denenebilir ve sonra genişletmenin değip değmediğini ya da fikrin aslında sıkıcı olup olmadığını bilirsiniz. İkincisi: küçük bir adım gözden geçirilebilir, test edilebilir ve gerekirse geri alınabilir. Elli yere birden uzanan dev bir özellik için ancak dua edilir. Üçüncüsü ve bizim için en önemlisi: bu oyunu çocuklar oynuyor. Yarım kalmış dev bir özellik, onlar için güvenilir çalışan küçük bir özellikten daha kötü.
Her yerde aynı kalıp. Bloklar önce küptü; rampalar, merdivenler ve küreler sonra geldi, sonra renklendirme, sonra da hiçbir şey karton kutuya benzemesin diye ince kenar pahları. Gezegenler gri bir kayayla başladı; gerçek denizler, mağara sistemleri, yüksekliğe göre iklim ve volkanlar sonra geldi, sonra soğuk dünyalarda donmuş denizler ve şimdi asteroitler. Çocuk güvenliğinde önce sadece sohbette bir bildirme komutu vardı, sonra gerekçeli yasaklar ve zaman aşımları, en son da görünmez gözlemci modu. Ve yeni çıkan haydutlarımız da hâlâ 1. aşamada: uçan gerçek mermilerle değil, yakınlık etkisiyle vuruyorlar. Bu bir ihmal değil, planda yazılı: 1. aşama kendini kanıtladıktan sonra 2. aşama.
Bu çalışma biçiminin bedeli. Dürüst olarak iki şey. Birincisi, mevcut dünyalar değişiyor: bir gök cisminin türü her yüklemede yeniden hesaplanıp asla saklanmadığı için, eski dünyalarınızdaki asteroitler bir sonraki güncellemeyle farklı aileler ve farklı bir kabartma alacak. İnşa ettiğiniz bloklar kalıyor, ama birden havada asılı kalabilir ya da kayanın içine gömülebilir. Bu yüzden böyle şeyler hep sürüm notlarına giriyor. İkincisi, ilk aşamanın bile ikincisini mümkün kılacak şekilde kurulması gerekiyor. Asteroitler için bu şu demek: kodda “bu bir asteroit mi?” sorusuna cevap veren tam olarak tek yer var ve üretilen her ailenin gerçekten asteroit olarak sınıflandığını kontrol eden bir test. Tek bir çağıranı kaçırırsanız, eski berbat bir hata geri gelir: tek bir blok bile kazamayacağınız bir kaya.
Ve testler bizi yine kurtardı. Yeni aileleri yaparken uzun zamandır duran bir kontrol çaldı: cevher yatakları olan her dünyada kablo tarifine ulaşabildiğinizden emin oluyor. Beş yeni ailenin üçünde hiç bakır yoktu; oyuncular orada ilerlemede takılıp kalacaktı. Bunu hiçbir insan fark etmedi; haftalar önce birinin yazdığı bir test fark etti. Artık tüm aileler bakır ve silikat taşıyor.
Sırada bu aşamalardan bir tane daha var, bitkiler, hayvanlar ve haydutlar arasında bir yerde. Hangisi olacağı genelde Justus'un kararı. 🌟
Yorumlar