Jak zrównoważyć zdobyte doświadczenie w grze RPG

10

Obecnie rozwijam grę RPG z klasycznymi punktami doświadczenia i mechaniką podnoszenia poziomu. Gracz zabija potwory, zdobywa punkty doświadczenia, awansuje, gdy zbierze wystarczająco dużo i stanie się silniejszy.

Jak zrównoważyć liczbę punktów doświadczenia potrzebną do osiągnięcia każdego poziomu i liczbę punktów doświadczenia przyznanych przez każdego potwora na każdym poziomie?

Philipp
źródło
Dzięki za wysłanie. Myślę, że samodzielne udzielanie odpowiedzi na pytania w celu wymiany informacji jest świetne. Uważam jednak, że pytanie to powinno być w stanie samoistnie. Jeśli to pytanie zostanie opublikowane bez odpowiedzi, prawdopodobnie zostanie zamknięte jako zbyt szerokie. Może możesz nieco zmodyfikować pytanie, aby uwzględnić więcej wymagań i określić dokładny problem? Pytanie jest w tej chwili bardzo ogólne, a odpowiedź brzmi „zależy od tego, czego chcesz”.
MichaelHouse

Odpowiedzi:

18

Najlepszym sposobem na dojście do wniosku w tym względzie jest - podobnie jak w przypadku większości rzeczy związanych z tworzeniem gier - najpierw zastanowić się, w jaki sposób chcesz grać , a następnie nadrobić matematykę, która doprowadzi do takiej gry.

Jak długo chcesz, aby gracz grał na każdym poziomie?

W fabularnym RPG dla jednego gracza prawdopodobnie chcesz utrzymywać poziomy jako stały strumień nagród i zwiększać poziom gracza co kilka minut w trakcie całej gry. Szybkość ulepszeń pozostaje stała, więc twoja funkcja minut na poziom jest stała ( time = c).

W grze bardziej skoncentrowanej na osiągnięciach, takiej jak MMORPG, zazwyczaj chcesz, aby poziomy były częste dla początkujących, ale stają się coraz rzadsze w miarę postępów gracza. W takim przypadku funkcja minut na poziom byłaby wielomianowa ( time = Level ^ c) lub nawet wykładnicza ( time = c ^ Level). Jednak przyjmowanie liczby poziomów w postaci wykładniczej jest zwykle zbyt ekstremalne. Dobrym pomysłem może być podzielenie go przez stałą, aby wzrost był znacznie wolniejszy, przy jednoczesnym zachowaniu wykładniczego ( time = c1 ^ (1 + Level / c2)).

Polecam skorzystanie z arkusza kalkulacyjnego, aby rozbić liczby. Utwórz tabelę z kolumną z liczbami od 1 do oczekiwanego maksymalnego poziomu i drugą kolumnę z formułą poziomu. To pozwala łatwo eksperymentować z różnymi formułami, aby znaleźć liczby, które ci się podobają. Może uzyskasz lepsze wyniki, łącząc wielomian ze składnikiem wykładniczym?

Pamiętaj, że widzisz tutaj czas walki netto . Czas gry gracz aktywnie zbiera punkty doświadczenia. Nie liczy czasu, jaki gracz spędza na rozmowach z postaciami niezależnymi, porównywaniu swojego wyposażenia i wykonywaniu innych zadań, które nie powodują bezpośredniego postępu.

W mojej obecnej grze (MMORPG) wymyśliłem formułę seconds(level) = 10 ^ (1 + Level / 20). Pierwsze kilka poziomów zajmuje tylko kilka sekund rzeczywistej walki (bardzo natychmiastowa satysfakcja podczas fazy samouczka), poziomy 20 - 40 zajmują minuty, w latach 50. stają się godzinami na poziom, a gdy są blisko maksymalnego poziomu 100, całe tygodnie widzą postęp.

Jak różna powinna być nagroda za doświadczenie na wroga?

Nawet jeśli twoi wrogowie nie mają wyraźnej (lub znaczącej) statystyki poziomu, będziesz chciał zaprojektować ich jako wyważone wyzwanie dla określonego poziomu postaci. Ale o ile więcej doświadczenia powinien polecić wróg nagradzany na poziomie 40, niż jeden polecony na poziomie 30?

Odpowiedź na to pytanie jest ściśle związana z tym, o ile potężniejsza postać zyskuje na poziom i jak daleko chcesz pozwolić, aby wyprzedzała ona obecnych wrogów za poziomem postaci.

Niektóre systemy gier, na przykład World of Warcraft, sprawiają, że prowadzenie walki z wrogiem nieco poniżej lub powyżej poziomu postaci gracza jest bezcelowe. Wszystko, co znajduje się zaledwie kilka poziomów powyżej, unicestwi gracza, wszystko, co znajduje się kilka poziomów poniżej, nie będzie wcale wyzwaniem (ani nagrodą).

Przeciwnym przykładem byłaby seria Disgaea. W tej grze możesz z łatwością pokonać wrogów kilkukrotnie wyższymi niż poziom własnych postaci, gdy grasz mądrze.

Im bardziej restrykcyjnie chcesz być w grupie poziomów, co jest uczciwą walką dla gracza, tym bardziej musisz zadbać o to, aby gracz nie pozostawał w tyle ani wyprzedzał poziomu wrogów, z którymi obecnie walczy. Gdy gracz pozostanie w tyle za wrogami, gra stanie się frustrująco trudna bez szlifowania. Kiedy gracz wyprzedzi potwory, gra stanie się zbyt łatwa i nudna.

Dobrym sposobem na utrzymanie gracza w grupie poziomów jest zwiększenie nagrody exp na poziom. Z jednej strony łatwo pozwoli graczowi nadrobić zaległości, gdy są nieco poniżej zalecanego poziomu. Z drugiej strony nie pozwoli im skutecznie awansować na słabych wrogów bez przejścia do trudniejszego obszaru.

Wielomianowa krzywa exp ( exp = Level ^ c) zwykle działa dobrze. Im większa wartość c, tym bardziej zmuszasz gracza do obecnego przedziału poziomów potworów, z którymi walczą.

Pamiętaj, że wrogowie, których pokonanie zajmuje więcej czasu, powinni dać proporcjonalnie więcej doświadczenia. Bitwa, która zajmuje 20 sekund, powinna dać dwa razy więcej doświadczenia niż bitwa, która zajmuje tylko 10 sekund. To rozszerza twoją formułę do exp = (Level ^ c) * minutes_per_combat.

Ostateczna formuła exp-per-level

Ostateczna formuła może być teraz wyprowadzona z dwóch. experience per levelJest time per level in minutesmnożona przez experience gained per minute. Więc weź dwie formuły, które wymyśliłeś w dwóch ostatnich sekcjach i pomnóż je. Oto on: Twoja formuła doświadczenia na poziom.

Przy wielomianowym wzroście czasu na poziom wzór byłby następujący

exp(level) = (level ^ c1) * (level ^ c2)

gdzie

  • c1 zależy od tego, jak długo chcesz zająć każdy poziom
  • c2 zależy od tego, jak blisko chcesz utrzymać gracza na poziomie wrogów, z którymi walczą

Co mogłoby pójść źle?

Nawet najlepiej przemyślana koncepcja nie może zastąpić właściwego testowania. Jeśli Twoje testy plazmowe okażą się, że przeciętni gracze postępują znacznie szybciej lub wolniej niż chcesz, jest to zwykle znak, że przeceniłeś lub nie doceniłeś zalecanych poziomów wrogów i czasu, jaki zajmuje przeciętnemu graczowi ich zabicie. Spróbuj wspólnie ze swoimi testerami gier sprawdzić, którzy wrogowie są trudni do zabicia na danym poziomie postaci, i odpowiednio dostosuj ich wartość exp lub statystyki.

Philipp
źródło