Cüce Kalesi açık kaynak değildir ve tüm işlerin nasıl yürüdüğünü belirleyebilecek çok fazla varsayım ve tersine mühendislik varken, bunun yerine, bir 3D (3D grafik, 3D dünya) roguelini optimize etmek için bazı temel tekniklere odaklanacağım. aynı tip.
Tüm video oyunlarında olduğu gibi, karmaşıklık yanılsamasını basit kural ve sistemlerden yaratan çok fazla duman ve ayna vardır. Bunlar, yolsuzluk hareketi için basit rasgele sayılar kullanmaktan, yol bulma için üst düzey bir düğüm ağını önceden pişirmeye kadar uzanır.
hareket
Yol bulma hakkında konuşursak, bu genellikle bir DF haritası gibi büyük alanlar için çözülmesi zor bir problem olabilir (768x768x64 IIRC'ye kadar), ancak problem şu şekilde basitleştirilebilir ve hızlandırılabilir:
- Önceden pişirilmiş düğüm ağı: Harita oluşturulduğunda dünya, parçalara bölünebilir ve her bir parça kendi çıkışlarını ve girişlerini haritalandırabilir. Bir duvar inşa edildiğinde olduğu gibi bir yığın güncellendiğinde, yalnızca bu yığının ağının güncellenmesi gerekir.
- Aşamalı Yol Bulma: Hücre için tüm harita üzerinde bir yol çalıştırmak, hücre için çok fazla zaman alacaktır, bunun yerine, büyük parçalar arasındaki ağ yolunu bulursunuz; öbekten ötekine geçiyor. Bu sizin için 2 şey yapar. Bir çok küçük parçaya bölünerek yol bulmayı hızlandırır ve bir yığın güncellendiğinde ünitenin yol boyunca yol boyunca yön değiştirmesini sağlar. Güncelleştirmeyi geçmesi gereken düğümlerden herhangi biri olması durumunda, büyük ağ üzerinde yeniden yol alacaktır.
- Rastgele direksiyon: Bir hedefe giderken, ünitenin sadece amaçsızca yürümesi gerekir. Birçok roguelik, üniteyi rasgele bir yöne hareket ettirir, bu doğal olmayan bir şeydir. Çeşitli direksiyon teknikleri kullanılabilir, basit olanlar düz bir çizgide hareket etmeyi tercih eder ve sadece% 1 şansı olacak olan, arkaya yayılan yönlerde hareket etme şansı daha az ve azdır. Böylece ünite bazen yönü tamamen tersine çevirir, ancak nadiren.
Ben yol bulmanın temellerini örtmeyeceğim. Çoğu roguelikes A * kullanır, ancak kediyi kaplamanın başka yöntemleri de vardır. Mmmm Cat deri ..
Kişisel Görevler
DF birimlerini pop ve canlı hissettiren en önemli şeylerden biri kişisel hedef listesidir. Gerçekte, birçok roguelike oyun bu temel düzeyde var. Temel olarak, her birim bir arzu listesine sahiptir (ve dorf'larınız için, yapmayı isteyeceğiniz görevler olabilir) ve kişiliklerine göre (statüler) onlardan seçecektir.
Bazı görevlerin gereksinimleri vardır. Deri bir etek yapmak için dorf, X öğelerine sahip bir dükkanda olmayı gerektirir. Böylece hepsi kontrol edilir ve görevlerine görev olarak eklenir. Bu kadar basit.
Bir birimin transit olacağı çoğu zaman, hangi birimlerin yapıldığına dair kontroller çok hızlı olabilir, herhangi bir anda sadece birkaç birim bir seçim yapacaktır ve bu nedenle genel olarak yüzlerce süre boyunca yavaşlama olmaz. binlerce birim. Unutmayın, DF'de arılardan başböceklerine kadar ağaçlara kadar her şey birimlerdir.
Bazı ek araştırmalar yaparken, DF'nin, genel olarak korkunç bir yol bulma işi yaptığı açıktır. Haritayı parçalara ayırmıyor, haritayı bağlı olan bölümlere veya alanlara bölüyor, (ki bu kesinlikle hiçbir şeyden daha iyi değil), bu yüzden yukarıdaki değerlendirmem, DF'nin düşündüğümden daha iyi çalıştığını gösteren bir örnek. :) DF'nin milyonlarca nedenden ötürü şaşırtıcı olmayan bir şey olduğu söylenemez.
Bir oyunda önemli olanın oyun olduğunu göstermek için gider. Grafik değil, harika programlama, harika yazma, harika müzik değil, arayüz bile değil; oyunun kendisi kadar önemli bir şey bile% 1 kadar önemli değil.