Jedną z trudności, które zawsze miałem przy tworzeniu gier, jest decydowanie o tym, jak wdrożyć punkty doświadczenia przypisywane do zdobywania poziomów. Wydaje się, że w wielu grach, w które grałem, nie ma wzorca, aby osiągnąć poziom, więc zakładam, że mają one statyczną tabelę słowników, która zawiera punkty doświadczenia w stosunku do poziomu. na przykład
Experience Level
0 1
100 2
175 3
280 4
800 5
... Nie ma rymowania ani powodu, dla którego 280 punktów jest równe poziomowi 4, po prostu jest.
Nie jestem pewien, w jaki sposób wybierane są te poziomy, ale z pewnością nie byłby to dynamiczny. Pomyślałem także o możliwości poziomów wykładniczych, aby nie musieć utrzymywać osobnej tabeli odnośników, np
Experience Level
0 1
100 2
200 3
400 4
800 5
1600 6
3200 7
6400 8
... ale wydaje się, że wymknęłoby się to spod kontroli dość szybko, ponieważ na wyższych poziomach wrogowie w grze musieliby zapewnić ogromne doświadczenie na poziomie - i byłoby to trudne do kontrolowania. Wyrównanie stałoby się zadaniem niemożliwym.
Czy ktoś ma jakieś wskaźniki lub metody, których używa, aby zdecydować, jak wyrównać postać na podstawie doświadczenia? Chcę być uczciwy w zdobywaniu poziomów i chcę wyprzedzać graczy, aby nie martwić się o ciągłe dodawanie nowych doświadczeń / przeszukiwania poziomów.
źródło
f'(x) = c*f(x)
) . Termin „geometryczny” jest stosowany, gdy domena (wejście) jest dyskretna (np. Liczba całkowita). Wzór na przykład @ George'a, powyżej poziomu 1,Experience = 100 * 2^(Level-2)
jest wykładniczy. Wzór na twój postęp, powyżej poziomu 1, jestExperience = 100^(Level-1)
również wykładniczy.Odpowiedzi:
Stosowanie relacji kwadratowej jest dość powszechne.
level = constant * sqrt(XP)
Lub przybliżony ekwiwalent liniowo rosnącej różnicy poziomów.
Systemy te działają całkiem dobrze, gdy wzmocnienie XP jest w przybliżeniu liniowe. Jeśli postać wysokiego poziomu może zdobyć XP szybciej niż postać niskiego poziomu, to nie jest to odpowiedni system.
źródło
Prawdopodobnie przydatne będą funkcje logarytmiczne, które można wykorzystać do spowolnienia wzrostu, gdy zdobywane są kolejne punkty doświadczenia. Oto dwie strony internetowe, które wyjaśniają, jak działają:
Wykresy funkcji logarytmicznych
http://www.analyzemath.com/Graphing/GraphLogarithmicFunction.html
Wprowadzenie do tworzenia graficznych funkcji logarytmicznych
http://www.purplemath.com/modules/graphlog.htm
Oto jak to wygląda na wykresie, który, mam nadzieję, spełni twoje potrzeby:
źródło
level = log(XP) <=> XP = e^level
. Wymaganie może okazać się nieco strome dla ostatnich poziomów, ale będzie działać dobrze przy odpowiednim wzroście akumulacji XP.Oto niektóre sposoby, z których korzystałem do tej pory. Są one sortowane według szybkości wzrostu (wystarczy pomnożyć każde równanie przez stałą wartość):
exp = poziom (ten może wydawać się dziwny, ale w przypadku niektórych gier, które nagradzają zmiany exp zgodnie z poziomem gracza, np. Borderlands, ten może się zmieścić)
exp = poziom * log 10 (poziom)
exp = poziom ^ const_value: w moim przykładzie ustawiłem wartość const na 3/2
źródło
Myślę, że to zależy od tego, jak łatwo gracz może zdobyć doświadczenie. Jeśli gracz może zdobyć 200 PD na poziomie 1 w ciągu 20 minut, a następnie zdobyć 200 PD na poziomie 2 w ciągu 2 minut, musisz skalować swoją ekspozycję w sposób wykładniczy.
Jeśli jednak zdobycie poziomu tylko nieznacznie ułatwia zdobycie xp, powinieneś wykonać funkcję xp na wyższym poziomie. (Może liniowy z pewnym współczynnikiem> 1)
źródło
Często punkty potrzebne do uzyskania poziomu oparte są na krzywej. W wielu grach RPG, w których istnieje również wiele innych cech i atrybutów twojej postaci, które rosną wraz z poziomem, będą one również miały własne krzywe.
Spójrz na RPGMaker, aby zobaczyć, jak to robią. W szczególności spójrz na krzywe parametrów na zrzutach ekranu sekcji „Dodaj trochę wyjątkowości, dostosowując wyposażenie początkowe” w dokumencie Tworzenie głównej postaci .
Zasadniczo możesz mieć krzywą określającą ilość XP potrzebną do awansu, a następnie różne krzywe określające, ile HP, MP, wytrzymałości, siły itp. Jest uzyskiwanych na każdym poziomie.
źródło
Zastanów się
Najpierw musisz dowiedzieć się, w jaki sposób szybkość zdobywania doświadczenia zmienia się wraz z poziomem. Następnie możesz dostosować poziomowanie do wymaganego czasu . Jeśli każdy dodatkowy poziom pozwoli ci zdobyć doświadczenie dwa razy szybciej i potrzebujesz dwa razy więcej doświadczenia, aby każdy poziom wymagał takiej samej ilości czasu.
Sugeruję, aby pomyśleć o tym, ile czasu gracz powinien poświęcić, a następnie dostosować poziomowanie do tego.
źródło
Może powinienem po prostu użyć płaskiego systemu poziomowania, gdzie każdy poziom wymagałby dokładnie takiej samej ilości doświadczenia.
źródło