Skript Kurvendiskussion

Mathematik - Kurvendiskussion
Zusammenfassung der Kursinhalte
School 4 Games, WS 2012
Geraden
Formel der Geradengleichung
Eine Gerade lässt sich mit der Formel
f(x)=a*x+b beschreiben.
Die y-Achse schneidet jede Gerade auf
der Höhe von b. Im Beispiel rechts ist
a=0.5 und b=2, daher schneidet die
Gerade die y-Achse bei 2. Diesen Wert
nennt man daher auch den yAchsenabschnitt.
Der Wert von a bestimmt die „Richtung“
der Geraden. Wenn x um 1 zunimmt
(wenn man also im Graphen um 1 nach rechts geht), dann nimmt y um a zu. Wenn man im
dargestellten Beispiel um 1 nach rechts geht, nimmt die Höhe der Geraden um 0.5 zu. Daher heißt
dieser Wert auch „die Steigung“.
Geraden
Geradengleichung mit Steigung und Startwert aufstellen
In Spielen begegnet man Geraden recht häufig, üblicherweise angegeben als Steigung und Basiswert
(y-Achsenabschnitt).
Auf diesem Screenshot (Quelle: http://leagueoflegends.wikia.com/wiki/Annie) sieht man im rot
markierten Bereich, mit welchen Werten für Gesundheit, Regeneration, Mana und ManaRegeneration die Spielfigur auf Level 1 beginnt sowie in Klammern, um wieviel sich die Werte
ändern, wenn der Champion um eine Stufe aufsteigt.
Die Gerade, die die Gesundheit von Annie in Abhängigkeit davon beschreibt, wie oft sie schon
aufgestiegen ist, hätte also den y-Abschnitt 384 und die Steigung 76.
Daraus ergibt sich die Formel health(levelaufstiege) = 384 + 76*levelaufstiege.
Geraden
Geradengleichung mit Steigung und einem Punkt aufstellen
In der auf der vorigen Seite aufgestellten Formel muss man die Anzahl der Levelaufstiege einsetzen
um die Lebenspunkte zu erhalten (also z.B. muss man 3 einsetzen um die Lebenspunkte auf Level 4
zu erhalten, da der Character auf Level 4 erst dreimal aufgestiegen ist.).
Möchte man die Formel so ändern, dass man den Level einsetzen muss, dann muss man errechnen,
wieviele Lebenspunkte der Character auf Level 0 hätte. Das ist grundsätzlich das Vorgehen, wenn
man von einer Geraden die Steigung und einen Punkt kennt.
In diesem Fall kennen wir die Steigung (76) und den Punkt (1|384), denn wir wissen, dass der
Character pro Level 76 Leben bekommt und auf Level 1 384 HP hat.
Da pro Level 76 HP hinzukommen, müssen von Level 0 bis Level 1 76 HP hinzugekommen sein. Die
(fiktiven) Hitpoints auf Level 0 erhalten wir also, indem wir von dem Wert auf Level 1 das abziehen,
was seit Level 0 hinzugekommen ist.
health(0) = health(1) – 76*1 = 384-76 = 308
Die Geradengleichung für die Lebenspunkte in Abhängigkeit vom Level lautet also:
health(level) = 308+76*level
Ein Champion, der 50hp pro Level erhält und auf Level 3 450 hp hat, hätte auf Level 0:
health(0) = health(3)-50*3 = 450-150=300
Die Geradengleichung für diesen Champion würde also lauten
health(level) = 300+50*level
Geraden
Geradengleichung durch zwei Punkte aufstellen
In vielen Fällen ist die Steigung einer Gerade nicht vorgegeben. Will man beispielsweise aus
statistischen Daten Prognosen erstellen, muss man eine Geradengleichung aus gegebenen Punkten
erstellen:
Um hier die Geradengleichung aufzustellen würde man sich zwei Punkte näherungsweise wählen,
durch die die Gerade verlaufen soll. Als Beispiel nehmen wir die Punkte P(3,7) und Q(6,19).
Da wir aus dem vorigen Kapitel wissen, wie man die Geradengleichung aufstellt, wenn man einen
Punkt und die Steigung hat, benötigen wir also nur noch die Steigung, um mit einem der beiden
Punkte die Gleichung aufzustellen.
Die Steigung besagt, um wieviel sich der y-Wert ändert, wenn sich der x-Wert um 1 ändert. Aus den
Punkten (3,7) und (6,19) können wir ersehen, dass sich der y-Wert um 12 geändert hat (19-7),
während sich der x-Wert um 3 (6-3) geändert hat.
Das heißt, dass für 3 x 12 y hinzugekommen sind. Für 1 x würde also ein Drittel, also 4 y
hinzukommen.
Die Steigung ist also die y-Differenz geteilt durch die x-Differenz:
a = (19-7):(6-3) = 12 : 3 = 4;
Parabeln
Parabel als Produkt zweier Geraden
Als Parabel bezeichnet man einen Graph mit der Formel
.
Graphen dieser Art treten besonders in der Physik sehr häufig auf. Die Geschwindigkeit eines
fallenden Gegenstands ändert sich beispielsweise nach einer solchen Formel.
Beim Balancing von Spielen ist die Parabel oder quadratische Gleichung oft das Ergebnis das man
erhält, wenn zwei Parameter mit einander multipliziert werden müssen, die für sich genommen auf
einer Geraden liegen.
Ein Beispiel:
Ein Raumschiff kann 100 Schuss laden. Dabei kann zwischen zwei Munitionsarten gewählt werden.
Die eine verursacht 6 Schaden, die andere sorgt dafür, dass jeder folgende Schuss 5% mehr Schaden
verursacht.
Wieviel Schaden insgesamt verursacht wird, hängt also von dem Schaden ab, der von der ersten
Munition verursacht wird, sowie vom Schadensfaktor, der von der zweiten Munition erzeugt wird.
Der Basisschaden durch die erste Munition ist 6 pro Schuss, also
dmg(a) = 6*a
wobei a die Munitionsmenge der ersten Munition ist.
Der Faktor ist
faktor(b) = 1+0.05*b
wobei b für die Munitionsmenge der zweiten Munition steht.
Wieviel Munition vom zweiten Typ geladen sein kann hängt davon ab, wieviel vom ersten Typ
geladen ist. Zusammen müssen beide Mengen 100 ergeben:
a + b = 100 => b = 100 – a
Das bedeutet, dass auch der Schadensfaktor davon abhängt, wieviel Munition des ersten Typs
geladen ist, denn daraus ergibt sich, wieviel Munition des zweiten Typs geladen werden kann. Setzt
man b = 100 – a in die Formel für den Faktor ein, erhält man
faktor(a) = 1+0.05*(100 - a)
Wieviel Schaden insgesamt ausgeteilt werden kann, erhält man, wenn man den Basisschaden mit
dem Schadensfaktor multipliziert.
dmg_gesamt(a) = dmg(a) * faktor(a) = 6*a * (1+0.05*(100-a)) = 6*a *(1+5 – 0.05*a)
= 6*a * 6 – 6*a*0.05*a = 36*a – 0.3*a2
Wir erhalten also als Formel für den resultierenden Schaden eine Parabel:
dmg_gesamt(a) = -0.3*a2 + 36*a
Der Start- und der Endwert des Graphen sind leicht anschaulich nachzuvollziehen:
Wenn a=0 ist, also 0 Schuss der „normalen“ Munition geladen sind, würde zwar die Verteidigung des
Gegners mit jedem Schuss gesenkt, aber es würde dennoch kein Schaden verursacht. Deswegen
beginnt der Graph bei (0,0).
Wenn a = 100 ist, würde ausschließlich „normale“ Munition geladen und der Schadensfaktor wäre 1.
Somit würde 100 mal der Basis-Schaden von 6 verursacht. Deswegen endet der Graph bei (100, 600).
Dazwischen entsteht eine Kurve, denn mit jedem Schuss mehr von der ersten Munition nimmt der
Basis-Schaden zu, aber die Effizienz, also der Schadensfaktor, nimmt ab.
Parabeln
Steigung einer Parabel berechnen
Um herauszufinden, wo sich der höchste bzw. tiefste Punkt einer Parabel befindet, muss der eine
Punkt gefunden werden, an dem die Steigung der Kurve gleich 0 ist, das heißt an der die Kurve
waagerecht verläuft.
Die Steigung einer Parabel nach der Form
f(x) = a*x2 + b*x + c
lautet
f‘(x) = 2*a*x + b
Grundsätzlich kann die Ableitung nach diesem Schema gebildet werden:
xn => n*xn-1
(z.B. x3 => 3*x2)
Faktoren bleiben erhalten:
a*xn => a*n*xn-1
(z.B. 4*x3 => 4*3*x2)
Die Ableitung von mehreren addierten Thermen ist die Summe der einzelnen Ableitungen:
xn+xm => n*xn-1 + m*xm-1
(z.B. x3 + x2 => 3*x2 + 2*x)
Die Ableitung einer Konstante (eines Therms ohne x) ist 0. Die Ableitung von x ist 1.
x + 3 => 1 + 0
Parabeln
Extremwert einer Parabel finden
Der Extremwert einer Parabel ist dort, wo ihre Ableitung gleich 0 ist. Mit dem Begriff „Extremwert“
bezeichnet man dabei sowohl Maximalwerte wie auch Minimalwerte.
Als Beispiel soll der Maximalwert der Parabel
f(a) = -0.3*a2 + 36*a
gefunden werden.
Die Ableitung dieser Formel lautet
f‘(a) = 2*(-0.3)*a + 36 = -0.6*a + 36
Wenn man diese Formel zusammen mit der Parabel in einem Graphen darstellt, sieht man schnell,
dass dort, wo die Gerade die waagerechte Achse schneidet auch der Maximalpunkt in der Parabel
erreicht ist.
Wo das genau ist lässt sich errechnen, indem man die Formel für die Ableitung mit 0 gleich setzt:
f‘(a) = -0.6*a + 36 = 0
36 = 0.6*a
36 : 0.6 = a
60 = a
Themenübersicht
für die Praxis
für die Klausur
 Wenn man versucht, Balancingwerte und andere quantitative
Einstellungen in Spielen aus dem Bauch heraus zu entscheiden wird
man zu oft ganz andere Ergebnisse bekommen als man erwartet.
 Formel der Geradengleichung:
 Die Situationen, die man als Spielentwickler für die Ausnahme
betrachtet, sind für viele Spieler die interessantesten.
 Geradengleichung mit Steigung und einem Punkt aufstellen
 Geradengleichung mit Steigung und Startwert aufstellen
 Geradengleichung durch zwei Punkte aufstellen
 Das sogenannte „extreme balancing“ ist eine geeignete Methode
um sicherzustellen, dass eine Spielmechanik auch in den
Extremfällen funktioniert.
(Siehe dazu
 Parabel aus dem Produkt zweier Geraden aufstellen
 Steigung einer Parabel berechnen
http://www.makinggames.de/index.php/magazin/1140_von_der_idee_zu
m_konzept__fruehes_balancing/1)
 Extremwert einer Parabel finden