Birden fazla hikaye dizisine sahip bir RPG oyunu tasarladım, yani kullanıcının tercihine bağlı olarak bazı şeyler olabilir veya olmayabilir, aynı şeyi birkaç şekilde başarabilirsin, bitiş farklı olabilir.
İyi çalışan ancak çok büyük bir kusuru olan basit bir karar motoru uyguladım, karar verdiğiniz anda hikayenin kararınızdan derhal etkilendiği anlamına gelir; . Bunun nedeni, hikayenin bir ağaç yapısındaki bir dal gibi ortaya çıkması ve hangi düğümün daha sonra olduğunu bilmesi gerektiğidir. Başlık altında, kararlar bir sıra kullanılarak uygulanır: her düğüm önceki düğümü ve bir sonraki düğümü bilir (ya da bir karar düğümü ise kullanıcı girişinin bir sonraki düğümü ayarlamasını bekler)
Karmaşık karar motorlarına sahip birçok oyun gördüm ve merak ediyorum, nasıl yapıldılar? İşleri gerçekten kolaylaştıran özel bir tasarım var mı? Birisi benzer bir şey yaptı mı ve bana bununla nasıl başa çıkılacağı konusunda ipucu verebilir mi?
GÜNCELLEME 1:
Önemli bir özellik, hikaye kodunu bir şekilde bağımsız tutmayı, böylece harici bir dosyadan değiştirilebilmeyi yönetmektir. Bunu motor olarak kullanmayı planlıyorum, bu yüzden olası seçimler bile harici bir dosyadan gelmek zorunda. Kod tamamen soyut olmalı.
Ayrıca, bir tasarım çözümüyle, bunu yapmanın iyi bir yoluyla, başkalarının nasıl yaptığını veya yaptığını merak ediyorum.
if (isTree)
veya tutamıyorum isTree
çünkü hikaye bu seçeneğe sahip olabilir veya olmayabilir. Ne demek istediğimi biliyorsun? Daha çok hikayeye hizmet edecek bir seçim motoru gibi.
isTree=true
ancak daha sonra, daha sonra ağaç hala küçükken bir okul arkadaşıyla dövüşmek, karşılığında da ağacını kesmek gibi bir şey yapar. çünkü kıçını tekmeledi. Şimdi, ağacın varlığını etkileyen 2 değişkenimiz var. isTree==true' and
DidFightBrat == false`. Ne demek istediğimi biliyorsun? Zincir sonsuza kadar devam edebilir, ağacın varlığı bilinmeyen sayıda faktörden etkilenebilir. Ne demek istediğimi biliyorsun?