Uygulandığını görmek istediğim bir seçenek, otomatik bir kendini ayarlama sistemidir.
Örnek olarak, MOBA türünden bir oyun kullanacağım çünkü bu, her kahramanın diğer kahramanlarla tam olarak nasıl karşılaştırıldığını görmeyi oldukça basitleştirecek şekilde yapılandırıldı.
Temel olarak, her kahraman için, o öğenin tüm istatistikleri, sunucunun o kahramanın kazanma oranına bağlı olarak otomatik olarak değiştiği bir handikap değerine bağlı olmalıdır. Daha sonra, yeni bir oyun her başladığında, oyun süresi boyunca en son handikap değerini kullanır.
Hero(){
attackSpeed = 50 + 5*heroType.adjustment;
moveSpeed = 100 + 5*heroType.adjustment;
}
Daha sonra, her oyunun sonunda, sunucu, bu kahramanın kazanıp kazanmadığına, ne kadar kazandıklarına vb. Bağlı olarak her bir kahraman için değeri az miktarda değiştirir:
for(Hero hero: game.winners)
hero.heroType.nerf();
for(Hero hero: game.losers)
hero.heroType.buff();
Kesin ayarlama formülü böyle bir şey olabilir, ancak daha karmaşık istatistikler daha iyi olabilir:
nerf: adjustment[heroType] -= 1 / globalNumberOfGamesPerWeek
buff: adjustment[heroType] += 1 / globalNumberOfGamesPerWeek
Bu şekilde, oldukça güçlü olan belirli bir yeni kahraman eklenirse, yani bu kahramana sahip olmak bir oyuncunun kazanma şansını önemli ölçüde artırırsa, oyun sunucusu bunu zaman içinde otomatik olarak düzeltir.
Aslında, bu sistem aynı zamanda, gerçekten iyi çalışan yeni bir meta bulan veya belirli bir kahramana yeni bir avantaj sağlayan bazı arazi modifikasyonları gibi belirli bir kahramanın aşırı güçlenebileceği diğer nedenlerle de düzelecektir. Ve yeni taktik bilgisi hala yayılsa bile düzeltme gerçekleşebilirdi.
Bunun yardımcı olabileceği üçüncü bir şey, aslında bir şeyin bir kahramanı ciddi şekilde etkilediğini keşfetmek . Kahramanlar, ayar değeri sıfıra yakın olacak şekilde tasarlanırsa, kahramanlardan birinin değeri önemli ölçüde değiştiğinde, geliştiriciler kahramanla ilgili bir sorun olduğunu bilirler, böylece gidebilir ve daha akıllı bir dengeleme yapabilirler. söz konusu kahramana.