DAMAGE_RATE und SHIELD_MAX
-
Einmal das, was mein Vorposter schon sagte und dann müsste man noch entscheiden, ob du eventuelle Schilde hast, die jeweils nur bestimmte Arten von Projektilen oder Lasern aushalten können, oder von jedem ein bisschen in verschiedenen Stärken und Ausartungen.
Diese können dnan wieder beschädigt werden und so weiter.Dann sollte man vielleicht noch entscheiden, ob verschiedene Teile der Maschinerie empfindlicher sind als andere und dies dann auch berücksichtigen. Und dann immer noch einen Teil Zufall reinbringen.
Im Endeffekt wird es auf sehr viel Ausprobieren herauslaufen, bis du einen ausgeglichenen Spielverlauf hast.
-
+gjm+ schrieb:
Dagegen spricht, will mal sagen, die Realität:
Wenn dus realistisch haben willst, dann wünsch ich dir viel Spaß! Mal im Ernst, überleg dir halt einige Faktoren, welche Einfluss haben sollen, und probier dann aus. Du z.B. könntest auch zufällige Abweichungen mit berücksichtigen...
-
makkurona schrieb:
Im Endeffekt wird es auf sehr viel Ausprobieren herauslaufen, bis du einen ausgeglichenen Spielverlauf hast.
Hab ich auch schon bemerkt.
Ist ganz schön heftig, sowas wie SHIELD_MAX und DAMAGE_RATE "einfach so" festzulegen. Hätte ich nicht erwartet. Aber ich wollte auch nicht vom hundertsten ins tausende kommen (was die Überlegungen angeht).
David_pb schrieb:
Du z.B. könntest auch zufällige Abweichungen mit berücksichtigen...
Meinst Du damit in etwa sowas:
SHIELD_MAX -= DAMAGE_RATE + RANDOM (irgendwas von 0 bis UNKNOWN_FAKTOR)
Das wäre eine Idee. Zumindest soll der SHIELD_MAX nicht "einfach nur" linear nach unten gehen.
-
Du willst also, dass bei tiefem Schild mehr Schaden entsteht? Ich habe mal einen etwas komplizierteren Ansatz. Ich bin dabei rein logisch vorgegangen, mal schauen, ob du damit etwas anfangen kannst.
MaxShield ist die maximale Schildstärke/-kapazität.
Shield ist die aktuelle Schildstärke (≤ MaxShield).
Damage ist der zugefügte Schaden (absolut).Berechnung:
Jetzt rechnest du die Schildstärke aus, die nach dem Einschlag vorhanden wäre, wenn du es absolut machen würdest:
Shield - DamageDie relative Schildstärke errechnest du, indem du die absolute durch die maximale Stärke teilst (Wert zwischen 0 und 1):
(Shield - Damage) / MaxShieldDie relative Beschädigung des Schildes ist dann 1 minus die relative Schildstärke (immer noch ein Wert zwischen 0 und 1):
1 - (Shield - Damage) / MaxShieldJetzt willst du einen Schaden zufügen, der proportional zur Beschädigung des Schildes ist. Also wenn es stärker beschädigt ist, wird mehr Schaden zugefügt.
(1 - (Shield - Damage) / MaxShield) * DamageUnd noch einen Proportionalitätsfaktor Factor wählen, der Aufschluss darüber gibt, wie "schnell" der Schutzschild kollabiert.
Factor * (1 - (Shield - Damage) / MaxShield) * DamageSomit hast du den zugefügten Schaden abhängig von der Schildstärke. Um die absolute Schildstärke nach dem Angriff zu erhalten, kannst du eine Subtraktion durchführen:
Shield - Factor * (1 - (Shield - Damage) / MaxShield) * DamageEin Beispiel zur Verdeutlichung:
Damage = 5, MaxShield = 100, Factor = 6, Shield am Anfang = MaxShield.
[b]Angriffe[/b] [b]Absolute Schildstärke (Wert von Shield)[/b] 0 100.00 1 98.50 2 96.55 3 94.02 4 90.72 5 86.44 6 80.87 7 73.63 8 64.21 9 51.98 10 36.07 11 15.39 12 -11.49 (also zerstört)
-
@+gjm+:
Ein "mehr Schaden wenn schon Beschädigt" Verhalten macht IMO wenig Sinn, da es fast gleichbedeutend mit einer nicht-linearen Anzeige der verbleibenden "Schild-Stärke" ist.
Eher würde ich sowas machen wie das "Schild" in "Schild + Panzerung" aufzuteilen, wobei das "Schild" sich regeneriert, die "Panzerung" aber nicht. Wie du den Schaden dann auf Schild und Panzerung aufteilst wäre dann die nächste Frage. Die einfachste Möglichkeit wäre dass das Schild alles frisst (bis es auf 0 ist natürlich -- also "leer" ist), und nur das was das Schild nichtmehr aufhalten kann (weil es eben "leer" ist) an die Panzerung weitergeht.
Dann könnte man verschiedene Waffentypen machen, z.B. welche die durch Schilde durchschiessen können, welche die sehr effektiv gegen Schilde, aber nicht gegen Panzerung sind, welche die an Schilden garnix ausrichten, aber voll reinhauen wenn das Schild erstmal leer ist etc.
Das ganze kann man natürlich immer weiter und weiter treiben. Irgendwann wird es dann so komplex dass man mit einfachen Tabellen, und fixen Regeln die für alle Typen gelten nichtmehr auskommt. In dem Fall bieten sich dann Scriptsprachen an. Man hängt dann auf jedes Objekt mehrere Scripte drauf, die für bestimmte Aktionen, in bestimmten Reihenfolgen aufgerufen werden.
----
Was für eine Art Spiel soll es denn werden? Strategie? Rundenbasiert oder Echtzeit? Oder doch eher Richtung Rollenspiel? Und wie einfache/komplex?
-
hustbaer schrieb:
Eher würde ich sowas machen wie das "Schild" in "Schild + Panzerung" aufzuteilen, wobei das "Schild" sich regeneriert, die "Panzerung" aber nicht.
Erinnert mich an Starcraft und finde ich dort eine gute Lösung, um den 3 Rassen eigenes Gameplay zu geben (Zergs regenerieren komplette Lebensenergie langsam, Terraner haben nur "Panzerung" und regenerieren sich gar nicht, Protoss haben Schild und Panzerung, Verhältnis je nach Einheit).
-
du koenntest es so machen, wie es Nexus evtl schon vorgeschlagen hat, dass wenn der Schild x% an Energie verloren hat, der Schuss ebenfalls x% mehr Schaden macht.
Hat also der Schild nur noch 50% Energie, macht der Schuss auch 50% mehr Schaden.
Andere Moeglichkeit, wenn du zusaetzlich eine Panzerung hast, dass der Schild soviel Prozent am Schaden des Schusses zur Panzerung durchlaesst, wie es selbst an Energie verloren hat. Hat der Schild 50% Energie verloren, geht die Haelfte des Schadens auf das Schild und auf die Panzerung.
Haette zur Folge, dass das Schild zwar immer weniger Schaden abbekommt, aber wenn die Panzerung hinueber ist, bringt auch das Schild nichts mehr. Vergleichbar mit einem Schild, dass Loecher bekommt bzw. immer weniger in der Lage ist, den Schaden abzuhalten.
Wenn man dann noch Waffen hat, die einen Prozentsatz des Schildes ignorieren hat man ein schoen komplexes System das einiges an Taktik erfordert. So kann man beschaedigte Einheiten nicht einfach in den Kampf schicken, obwohl sie volle Schilde habenAlles eine Sache des Balancings, wie du es im Endeffekt machst... bei mehreren "Rassen" oder deren Einheiten kann man auch gerne mal mischen
-
Mit Schild und Panzerung würde ich es auch wie von zwutz vorgeschlagen tun, also dass sich der Schaden zwischen Schild und Hülle aufteilt.
Dann kannst du den einzelnen Einheiten auch unterschiedliche Kombinationen der Eigenschaften geben, zum Beispiel starke Hülle, schwacher Schild oder schnelle Schildregeneration, aber kleine Max-Kapazität, etc. Und manche Einheiten haben gar kein Schild, und so weiter...
-
Nexus schrieb:
Shield - Factor * (1 - (Shield - Damage) / MaxShield) * Damage
Vielen Dank für diesen ausführlichen Ansatz. So einen, leicht modifiziert, habe ich gesucht.
hustbaer schrieb:
Was für eine Art Spiel soll es denn werden? Strategie? Rundenbasiert oder Echtzeit? Oder doch eher Richtung Rollenspiel? Und wie einfache/komplex?
Natürlich ein SIMWOW-MMORPG.
Nene, soll nur eine kleine ASCII-Landschaft werden mit verschiedenen Objekten drauf um zu gucken, ob man die Objekte angreifen würde oder es lieber/vorerst/sonstwas sein lassen sollte.
-
mehr schaden je mehr das schild geschädigt ist? was spricht gegen ne normale exp funktion?