Wie implementiere ich ein Erlebnissystem?


14

Ich schreibe gerade ein kleines Spiel, das darauf basiert, Erfahrung beim Töten von Feinden zu sammeln. Wie üblich benötigt jedes Level mehr Erfahrungsgewinn als das vorherige Level und auf höheren Levels bringt das Töten von Feinden mehr Erfahrung.

Aber ich habe ein Problem damit, dieses System auszugleichen. Gibt es vorgefertigte Algorithmen, mit deren Hilfe berechnet werden kann, wie die für jedes Level erforderliche Erfahrungskurve aussehen soll? Und wie viel Erfahrung sollte ein durchschnittlicher Gegner auf einem bestimmten Level bieten?


Antworten:


14

Sie möchten eine Art Exponentialkurve, wahrscheinlich so etwas wie:

base_xp * (level_to_get ^ factor)

base_xp ist eine Konstante, die entscheidet, wie viel xp Sie benötigen, um ein Level aufzusteigen.
level_to_get ist das Level, das Sie anstreben; Bei Level 1 ist dies Level 2.
Faktor ist eine weitere Konstante, die entscheidet, um wie viel xp für jedes Level erhöht werden muss.

Mit einem base_xp von 200 und einem Faktor von beispielsweise 2 ergibt sich etwa Folgendes:

Bildbeschreibung hier eingeben

Während ein base_xp von 50 und ein Faktor von 2,6 ergibt:

Bildbeschreibung hier eingeben

Die zweite hat eine viel niedrigere Start-XP-Rate, aber Sie brauchen sehr schnell mehr XP.

Für Monster XP ist dies etwas, das Sie testen möchten. Probieren Sie verschiedene Werte aus. Sie wollen etwas, das nicht zu hoch ist (Sie werden schnell überwältigt), aber nicht zu niedrig (Spieler wollen nicht mahlen). Überlegen Sie, wie viele "normale" Feinde der Spieler beispielsweise für Level 10-> 11 töten soll.


3
Vielleicht möchten Sie eine schärfere Kurve als die hier. RuneScape hat zum Beispiel eine sehr steile Kurve, die fast einer logarithmischen Kurve ähnelt (natürlich gespiegelt / gedreht). sieh es hier . Zumindest meiner persönlichen Erfahrung nach scheint es SEHR gut zu funktionieren, wenn Sie am Anfang viele schnelle Belohnungen erhalten, und wenn Sie höhere Level erreichen, sind Sie an längere Spielzeiten gewöhnt, bis die letzten Level FOREVER dauern, aber der Spieler irgendwie toleriert es. 99er sind ziemlich häufig, trotz des STEEP !! Kurve, um dorthin zu gelangen.
Ricket

Ich würde mit Sicherheit sagen, dass die Kurven hier flach sind.
Die kommunistische Ente

bitte keine exp. curve =, (- Leveling dauert soooo lange und noch länger, je näher Sie Ihrem Ziel sind, plssss no =. (
Dave O.

Eine lineare Linie würde nicht funktionieren. Wenn Sie 1000xp mehr pro Level benötigen, werden Sie feststellen, dass das Level mit zunehmender Stärke immer weniger Zeit in Anspruch nimmt.
Die kommunistische Ente

1
Die gezeigte Funktion ( base_xp * (level_to_get ^ factor)) ist eigentlich eine quadratische Funktion, da level_to_getder x-Wert und nicht der Faktor ist und, wenn ich mich nicht irre, base_xpaddiert und nicht multipliziert werden sollte, um die Funktion zu übersetzen? Es tut mir leid, wenn ich nur ein wählerischer Semantiker bin. Ich möchte nur sichergehen, dass diese Funktion keine alten Exponentialwerte liefert.
Chockie

6

Es gibt keine richtige Antwort auf die Frage, wie viel Erfahrung ein Feind geben sollte oder wie steil die Erfahrungskurve sein sollte. Es kann hilfreich sein, über die Spielzeit nachzudenken, die zum Aufsteigen für jedes Level erforderlich ist, und dann die pro Level erforderliche Erfahrung und die pro Feind vergütete Durchschnittserfahrung zu Grunde zu legen.

Dieser Artikel enthält eine detaillierte Aufschlüsselung der Nivelliermathematik in Lineage II. http://web.archive.org/web/20100303164314/http://www.tstonramp.com/~mykel/lineage/


1
Ich kann diese Antwort nicht genug unterstützen. Zum Beispiel gibt es keinen Grund, warum es eine tatsächliche Kurve für die unterschiedlichen Exp-Werte pro Level geben muss, da Sie die Erfahrungswerte eines Feindes relativ zu Ihrem eigenen Level für den gleichen Effekt, aber für überschaubarere Zahlen verringern können . Es gibt keinen wirklichen Ersatz dafür, das eigene Kampfsystem und die Art und Weise, wie das Spiel gespielt werden soll, zu verstehen und das Erlebnissystem darauf abzustimmen.
Kylotan

4
Dieser Link existiert nicht. Hier ist ein alter Link, der funktioniert: web.archive.org/web/20100303164314/http://www.tstonramp.com/…
Daniel Kaplan

Genau aus diesem Grund verlinken wir nicht auf Seiten. Sie können nicht garantieren, dass sie immer existieren. Ich habe deine Antwort abgelehnt und markiert.
Krythic

@Krythic Ich habe den Link aktualisiert.
CiscoIPPhone
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.