Bir süredir bir oyunla uğraşıyorum ve bir şeyle ilgili ciddi bir sorun yaşıyorum:
Her biri bir aralıkta özniteliklere (yaklaşık on) sahip (1 ile 20 arasında) iki karakterim var. Bu özellikleri, 'rulo' oluşturmak için kullanmak, böylece yüksek rulo o özel karşılaşmayı kazanır. İki karakterin birbirlerine zarar vermediğini / savunmadığını belirtmekte fayda var . Her ikisi de yetenek sınavı diyebileceğimizi düşündüğümden geçip geçmediklerini görmek için yuvarlanıyorlar. İkisi de ortak bir değere karşı geçmek / başarısız olmak için yuvarlanıyorlar. Birbirleriyle etkileşime girmezler.
Bununla birlikte, karakterlerden birinin bile küçük bir sayısal avantajı olduğunda, ortaya çıkmış olduğum herhangi bir formül, zamanın çok büyük bir çoğunluğunu kazanan çok hafif üstün bir sonuç verdi. Bu istenmeyen bir durumdur.
Test için 'en alakalı' özniteliği% 80’de ve diğer özniteliklerin% 20’sinde ağırlıklandırmayı denedim. Göreceli bir fark üretmek için ortalamaları karşılaştırmayı ve zayıf karakteri arttırmak için kullanmayı da denedim. Her iki yaklaşım da kaldırmaya çalıştığım önemli avantajlarla sonuçlandı (örneğin, karşılaşmayı 5.000 kez çalıştırırsam, düzenli olarak tüm 5.000'i kazanan bir tarafı üretir).
Bir "şans" bileşeni eklemek sadece önemli, bir şekilde daha az karakter lehine bir şekilde ağırlıklandırılmışsa ve orada iyi bir denge kurmamış gibi görünüyor.
Küçük bir sayısal avantajın etkisini körelemek, ancak niteliklerdeki göreceli boşluk arttıkça bu avantajı korumak ve arttırmak için hangi yaklaşımları kullanabilirim?
İstek başına, işte şimdiye kadar sahip olduğum özellikler. Henüz çözemediğim bazı şeyler var.
Şu anda, rulo olarak üretilir
0.8 * (mainAttribute) + 0.2 (1/3 * subAttA + 1/3 * subAttB * 1/3 subAttC)
Şu anda, bu 4.0 mahallesinde sayıları üretiyor. Öznitelikler, belirtilen aralıklar arasında rasgele oluşturulur. Mevcut test, 2'den 4'e kadar özniteliğe sahip bir karakter ve rakibi 3 ila 5'e kadar olan karakterleri kullanır.
Bu tek puanlık avantajla, zamanın% 55 -% 60'ında iki galibiyetin daha güçlü olduğunu görmek isterim; 5 veya 6,% 90, 7 veya 8 avantajlarında, boşluk büyüdüğünde olası bir galibiyet için yer bıraktı. Hiçbir zaman garantili kazanımların olmamasını tercih ederim, ancak belki de işler pek mümkün değil - aralığın çok büyüdüğü zamanların% 99,5 veya% 99,6'sını kazanma ayarına.
Mevcut formül rastgele olmayan bir sayı üretir. Rassallık, hangi özelliklerin alakalı olduğu seçiminden gelir. Değil tüm özelliklerin her biri rulo kullanılır. Genel olarak daha zayıf özelliklere sahip olanın o topla ilgili alanlarda daha güçlü olması ve bir galibiyet çalması mümkündür. Ancak, tahmin edilebileceği gibi, nadiren olur.
Bir sonraki denemem, göreceli güçlerini tartmak, her bir istatistiğin ortalamasını alarak, onları birbirine bölerek ve daha küçük karaktere küçük bir destek vermek için bu değeri kullanmaktı. Bu, işleri biraz düzeltti, ancak 5.000 denemeden biri için 5.000 kazanç gibi şeyler üretme eğiliminde olduğu açıktı.