Stacking i balans

Sporo gier MMO cierpi na problem balansu przy ekstremalnych wartościach opisujących graczy. Nieważne, jaki typ gry to jest i o jakie wartości chodzi – czy to są zadawane obrażenia, czy poziom życia czy pancerz. Stara wersja VA też miała ten problem i co chwilę trzeba było wymyślać coraz bardziej kreatywne poprawki. Z tego powodu, problem należy rozwiązać już na etapie projektowania.

Jednym z możliwych rozwiązań jest wprowadzenie kar za stacking. Stacking, w tym przypadku, oznacza posiadanie wielu aktywnych takich samych bonusów w tym samym momencie. Bez ograniczenia stackingu, można zrobić niezniszczalną puszkę, zadawać absurdalne obrażenia lub zniszczyć balans w dowolny inny sposób.

Ograniczyć ten efekt można przez zmniejszanie bonusu z każdym kolejnym wystąpieniem danego efektu. W tym momencie każdy bonus jest mnożony przez specjalny mnożnik:

M(i)=e^{-(i/2.67)^2}

gdzie i oznacza numer bonusu w kolejności (0, 1, 2, …). Daje to poniższy wykres:

Efekt najlepiej widać na przykładzie bonusu do obrażeń. Załóżmy, że mamy przedmioty dodające 5, 10, 15 i 20 obrażeń. Bez kar za stacking, ostateczny wynik wynosi 50. Z mnożnikiem mamy:

wynik=5*1+10*0.869+15*0.57+20*0.283=27.9

Prawie 2x mniej! Dzięki temu nie ma możliwości wykorzystywania systemu gry do zaburzania balansu. Oczywiście, wszystko na razie jest na etapie planowania i można wprowadzać poprawki, jeśli będzie potrzeba. Nie jest jeszcze ustalona ostateczna kolejność liczenia bonusów (ankieta dotycząca tego jest dostępna tutaj).

Jak zwykle – daj znać co myślisz!

3 thoughts on “Stacking i balans

  1. Dragnar Firestorm says:

    A jaka ma być brana kolejność do tego wzoru ?
    Bo jeżeli policzymy te same wartości tylko w odwrotnej kolejności to wychodzi:
    20*1+15*0.869+10*0.57+5*0.283=20+13.035+5.7+1.415=40.15
    W kolejności zakładania ekwipunku (logiczne) czy może od najniższego bonusu do najwyższego ?
    Bo jeżeli tak to w ogóle nie opłaca się zakładać więcej niż 2 sztuk danego efektu a jeżeli już 2 to i tak najlepiej o takiej samej wartości np. 2×20.

Dodaj komentarz