Od jakiegoś czasu majstruję przy grze i mam z tym sporo problemów:
Mam dwie postacie, z których każda ma atrybuty (około dziesięciu) w zakresie (od 1 do 20). Chcę użyć tych atrybutów do wygenerowania „rzutu” takiego, że wyższy rzut wygrywa to konkretne spotkanie. Warto zauważyć, że obie postacie nie zadają sobie obrażeń / nie bronią się. Obaj sprawdzają, czy zdadzą to, co, jak sądzę, moglibyśmy nazwać sprawdzeniem umiejętności. Oba toczą się, by przekazać / nie zaliczyć wspólnej wartości. Nie wchodzą ze sobą w interakcje.
Jednak gdy jedna z postaci ma choćby małą przewagę liczbową, każda formuła, którą wymyśliłem, powoduje, że ta wciąż nieco lepsza wygrywa ogromną większość czasu. To jest niepożądane.
Próbowałem przypisać wagę „najbardziej odpowiedniego” atrybutu testu do 80% i sumy pozostałych atrybutów do 20%. Próbowałem również porównać średnie, aby uzyskać względną różnicę, i użyć tego, aby wzmocnić słabszą postać. Oba podejścia przyniosły znaczące korzyści, które staram się usunąć (na przykład, jeśli uruchomię spotkanie 5000 razy, całkiem regularnie daje to jednej stronie wygrywając wszystkie 5000).
Wydaje się, że dodanie komponentu „szczęście” ma znaczenie, jeśli w jakiś sposób jest ważone na korzyść mniejszej postaci, a ja nie osiągnąłem tam dobrego balansu.
Jakie podejścia mogę zastosować, aby osłabić wpływ małej przewagi liczbowej, ale nadal zachować i zwiększyć tę przewagę wraz ze wzrostem względnej luki w atrybutach?
Na żądanie, oto szczegóły, które mam do tej pory. Niektóre rzeczy, których jeszcze nie rozgryzłem, więc pozostają ogólnikami:
W tej chwili rzut jest generowany jako
0.8 * (mainAttribute) + 0.2 (1/3 * subAttA + 1/3 * subAttB * 1/3 subAttC)
Obecnie daje to wartości w okolicach 4,0. Atrybuty są generowane losowo między określonymi zakresami. W bieżącym teście używa się jednej postaci o atrybutach od 2 do 4, a przeciwnika między 3 a 5. Przewidywalnie, daje to średnie wartości odpowiednio zbliżone do 3 i 4.
Z tą jednopunktową przewagą chciałbym zobaczyć silniejszą z dwóch wygranych w obszarze od 55% do 60% czasu, z tym skalowaniem aż do wygrania przez około 80% czasu ze średnią przewagą atrybutów wynoszącą 5 lub 6, 90% z przewagą 7 lub 8, pozostawiając miejsce na mało prawdopodobne zwycięstwo, gdy różnica wzrośnie. Wolałbym nigdy nie mieć gwarantowanych wygranych, ale być może rzeczy stają się bardzo mało prawdopodobne - na przykład wygraną 99,5% lub 99,6% czasu, kiedy różnica staje się bardzo duża.
Obecna formuła generuje liczbę nieprzypadkową. Losowość wynika z wyboru odpowiednich atrybutów. Nie wszystkie atrybuty są używane dla każdego rzutu. Możliwe jest, że ten z ogólnie słabszymi atrybutami będzie silniejszy w obszarach istotnych dla tego rzutu i ukradnie zwycięstwo. Ale, jak można przewidzieć, zdarza się to rzadko.
Moja kolejna próba polegała na zważeniu ich względnych sił, biorąc średnią wszystkich statystyk każdego z nich, dzieląc je między sobą i wykorzystując tę wartość, aby w niewielkim stopniu wzmocnić mniejszą postać. To trochę wygładziło, ale nadal wykazywało wyraźną tendencję do generowania 5000 zwycięstw dla jednego faceta na 5000 prób.