PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schadensberechnung AKS



Chemluth
03.02.2011, 20:30
Bin momentan dabei mir ein AKS zusammenzubasteln... funktioniert schon recht weit, ich kann den Gegner angreifen der Gegner kann mich angreifen etc... allerdings habe ich eine ziemlich schlechte Schadensberechnung und ich wollte fragen ob mir jemand damit helfen kann...

die Werte die benötigt werden sind:

vom Angreifer: Angriff und Geschick

der angriff setzt fest wieviel Schaden der Angreifer dem Verteifiger macht. Geschick setzt fest wie groß die Möglichkeit ist zu treffen, bzw. nicht zu treffen.

und vom Verteidiger: Verteidigung und Geschick

die Verteidigung setzt fest, wieviel Punkte Schaden dem errechneten Wert des Angreifers abgezogen werden, das Geschick errechnet die Chance zu blocken, also den Schaden des Angreifers zu mindern.

das größte Problem dabei macht mir das Geschick... wenn ich den Gegner angreife, sollen sowohl sein Geschick als auch mein Geschick eine Wirkung auf das Endergebnis haben. Momentan rechne ich das Geschick des Angreifers minus das Geschick des Verteidigers +65 und lasse danach eine Zahl von 1-100 durch Zufall berechnen... is der wert Größer als der oben berechnete Geschickswert, trifft der Angreifer nicht.

Allerdings funktioniert das nicht so wirklich gut und ich bin mir sicher, dass es da eine bessere Lösung gibt.



Die Verteidigung und der Angriff werden auf genau die selbe art berechnet. zuerst setze ich den Angriffswert des Angreifers auf eine Variable genannt "Angreifer ANG SB" dann mache ich ein Cicle-Event, in dem ich jedesmal wenn der cicle beginnt überprüfe ob die Variable "Angreifer ANG SB" null entspricht... wenn das so ist wird der Cicle unterbrochen. unter der Fork-condition ziehe ich der oben genannten Variable einen Punkt ab und rechne 0-1 Punkt auf die Variable "Endergebnis".

bei der Verteidigung ist es genau das selbe prinzip, nur das der punkt, der beim angriff auf das Endergebnis aufgerechnet wird, abgezogen wird.




nun kommen wir zu den Problemen:
ich würde gerne eine Schadensberechnung benutzen um den Angriff vom Helden auf das Monster und vom Monster auf den Helden darzustellen. aber da ich im prinzip den Verteidigungswert und den Amgriffswert ziemlich gleich halten wollte, und das Stärkenverhältnis vom Helden zum Gegner auch, würden andauernd Endwerte um die 1 oder 0 rauskommen.

z.b. wenn ein held 20 angriff und 20 geschick hat und der gegner ebenfalls 20 angriff und 20 geschick hätte. würde der Wert der in der Berechnung vom Angriff , dem berechneten Wert in der Verteidigung ziemlich nahe kommen. unter Umständen wär der Verteidigungswert sogar höher. dadurch würde kaum Schaden entstehen und der Kampf ziemlich langweilig werden. Es wäre zwar eine Möglichkeit dem Helden und dem Gegner nur sehr wenig HP zu geben, was aber wenn man Level steigt und mehr HP bekommt irgendwann langweilig wird.

eine andere Möglichkeit wäre es die Verteidigung bei bleibenden Grundwerten in der Schadensberechnung abzuschwächen. Allerdings weiß ich nicht genau wie ich das machen soll. Wenn ich dem Wert immer 10 Punkte abziehen würde... wär das später doof wenn die Gegner mehr Leben bekommen... des halb brauch ich dort eine bessere Lösung. Eventuell mal 0.75 oder so...

wie würdet ihr das Problem handhaben? und vor allem macht das überhaupt sinn ein AKS mit der Schadensberechnung aufzubauen oder sollte ich vllt eine völlig andere nehmen.. und wenn ja was für eine? :D

würde mich sehr freuen wenn sich irgendwer dazu berufen fühlen würde mir zu helfen

mfg Chemluth

Corti
04.02.2011, 08:57
Irgendwie ist jede Formel tricky, hier mal ein paar Beispiele:

Atk – Def = Schaden

Wenn die Werte von Atk und Def ähnlich sind ist das Resultat sehr geringer Schaden, es ist sehr einfach immun zu werden.

Atk – Def/2 = Schaden

Bei gleichen Atk und Def-Werten ist der resultierende Schaden 50% der Atk.

Vorteil: 100 Atk und 100 Def in den Stats sehen „ausgeglichen“ aus, es kommen trotzdem 50 Schaden bei rüber.
Nachteil: 1 Atk ist so viel wert wie 2 Def. Wenn Statspunkte jetzt vergeben werden, quasi die Wahl zwischen 1 ATK und 1 Def ist jeder 2. Statspunkt wertlos.


Atk – Def = Schaden

Eine Möglichkeit ist, den Grundwert an Def auf 50% der Atk zu setzen. Auf die Weise kommt immer 50% des Schadens durch. Bei 100 Atk und 50 Def sind 1 zusätzlicher Punkt Atk und Def recht gleichwertig. Sieht aber weniger ausgeglichen aus im Statsfenster.

Eine weitere Möglichkeit wärs, Def levelabhängig in eine %-Absorb-Konstante zu berechnen.

Geschick:
Geschick soll also eine Trefferchance darstellen, berechnet aus dem Verhältnis zwischen Angreifer-Geschick und Verteidiger-Geschick. Tricky. Zuerst brauchst du eine Basis-Verfehlchance, on der du per Gesch/Gesch-Rechnung abweichen kannst.

Eine Möglichkeit wäre es, das Verhältnis von Geschick_Angreifer zu Geschick_Verteidiger zu berechnen und darauf beruhend die Basisverfehlchance zu verändern. Beispiel: Held hat 120 Geschick, Monster hat 100 Geschick. Der Held hat somit 20% mehr.
Diese 20% kann man jetzt auf diverse Art und Weisen verrechnen.

Beispiel: Trefferchance = 80% erhöht um 20%, also 80*1,2 = 96% Trfferchance


Vorteil: Funktioniert
Nachteil: Wenn der Spieler nur wenig auf sein Geschick achtet wird das Spiel schnell frustrierend, weil er immer verfehlt. Hat ein Monster z.B. 100 Geschick lohnt es sich auch nicht mehr als 130~ Geschick zu haben. Der Stat ist „easily capped“, ohne dass der Spieler es weiss.


Vorschlag:
In einem AKS ist verfehlen imo gar nicht cool. Der Spieler arbeitet sich die Chance heraus anzugreifen und dann wird zufällig ein Misserfolg gewürfelt. Ich finde man sollte eher zufällige Erfolge als zufällige Misserfolge würfeln.

Die Lösung heisst: Kritische Trefferchance

Stell dir vor: Geschick wäre ein Stat, der eine Chance gibt, doppelten Schaden zu verursachen. Der Spieler hätte dann die Wahl zwischen einer simplen leichten Erhöhung von Schaden (Atk+) oder die Chance zu erhöhen plötzlich mehr Schaden zu machen (Geschick). Das klingt für mich cooler als die Wahl zwischen Schaden oder nervigem Verfehlen.

Was „aus dem Ruder“-laufende Ergebnisse angeht:

Das kannst du kontrollieren, indem du dir straighte Verhältnisse setzt. Beispiel: Atk auf Level X ist immer 2* Def auf Level X. Die Heldenstatskurven im Maker lassen sich btw. Auch für eigene Systeme sehr gut als Zahl/Level-Spender benutzen.

lordkrinito
04.02.2011, 11:39
Nachteil: 1 Atk ist so viel wert wie 2 Def. Wenn Statspunkte jetzt vergeben werden, quasi die Wahl zwischen 1 ATK und 1 Def ist jeder 2. Statspunkt wertlos.

Nicht unbedingt. Gehen wir mal davon aus, das der Spieler einmal trifft, während er in dieser Zeit von 3-4 Gegnern oder so getroffen wird. Bei 4 Gegnern ist ein Punkt in Def also praktisch doppelt so viel wert wie ein Angriffspunkt. Außerdem wenn der Spieler nur auf Angriff skillt muss er grade in einem AKS damit rechnen nach 1-2 Schlägen KO auf der Matte zu liegen.
Soll heißen: Selbst wenn ein Atk.Punkt nur halb soviel bringt, ist er zwingend erforderlich um dem Spieler eine gewisse Ausdauer zu verschaffen.

Corti
04.02.2011, 13:10
Nicht unbedingt. Gehen wir mal davon aus, das der Spieler einmal trifft, während er in dieser Zeit von 3-4 Gegnern oder so getroffen wird. Bei 4 Gegnern ist ein Punkt in Def also praktisch doppelt so viel wert wie ein Angriffspunkt.
Inkonsequente Milchmädchenrechnung. Machen in deiner Logik alle schnell schlagenden Bienchen genau so viel Schaden pro Schlag wie der Endboss mit seinem riesigen Knüppel?

Atk – Def oder auch Atk-Def/2 ist ein Grundschadenswert aus dem man modifizierte Schadenswerte ableiten kann. Geht man davon aus, dass im Grunde 1 mal pro Sekunde zugeschlagen wird -> Atk-Def = Schaden, so würden Schläge alle 0,5 Sekunden zur Formel (Atk-Def)*0,5 führen. Der Schaden-über-Zeit Wert bleibt gleich.

Die Schadenswerte vom Grundschadenswert herleiten sorgt dafür, dass Atk und Def jeweils im richtigen Verhältnis in allen Schadensquellen enthalten ist. Ob der gesamte eingehende Schaden nun von 3 Gegnern im Takt von 0,45 Sekunden oder von einem Gegner alle 3 Sekunden erbracht wird ist doch völlig egal.

Atk gewinnen bedeutet, dass der Spieler die Kämpfe schneller gewinnt und somit weniger HP verliert. Def gewinnen bedeutet, dass die Kämpfe gleich lang bleiben, aber der Spieler weniger HP einbüßt, im Idealfall ist beides äquivalent.

Ich versteh schon worauf du hinaus willst, aber deine Logik setzt voraus, dass die anteilsweise Schadensberechnung vollkommen für den Arsch ist.

Chemluth
04.02.2011, 18:58
vielen Dank für die Anregungen. Jetzt bin ich schon einen ganzen Schritt näher am Endergebnis...

Das Geschick als eine Chance für zufälligen doppelten Schaden einzubauen ist eine seeehr schöne Idee... das bau ich ein und vergesse das mit dem verfehlen... eventuell bau ich dann noch eine art grenze ein, sodass eine bestimmte Prozentzahl für kritische Treffer nicht übertroffen werden kann... z.B. dass der Held maximal zu 50 % einen kritischen Treffer erzielen kann.

Formelvorschlag dafür: Angreifer Geschick - Verteidiger Geschick = Prozentzahl für kritischen Treffer

Nur leider ist für mich noch nicht das Problem mit der Verteidigung gelöst. Das ist schwierig, da ich ja einerseits nicht will, dass durch das Verhältnis der Verteidigung der Spieler zu leicht immun wird aber auch nicht will, dass die Verteidigung zu unwichtig wird...

Wenn ich den prozentualen Abzug der Verteidigung Levelabhängig mache ist dann noch die Frage in welche Richtung.... ob ich Verteidigung erst schwächer mache und irgendwann stärker oder andersrum. das problem wäre wenn ich die verteidigung erst stärker mache und später schwächer verliert sie im Laufe des Spieles an Wichtigkeit... Andernfalls könnten andere am Anfang Verteidigung vernachlässigen und später wenn sie mehr benötigt wird zu wenig haben.

Eine Idee wäre das ich die kritische Trefferchance umkehre und dem Verteidiger die Möglichkeit gebe abzublocken, wenn er einen hohen Geschicks und Verteidigungswert hat. was haltet ihr davon?

Corti
05.02.2011, 01:24
Was erstmal gut zu wissen wäre:

Was für Zahlenwerte stellst du dir vor und wie sollen die vergeben werden? Läuft Spieler am Ende mit 650 Atk und 500 Geschick durch die Gegend, davon jeweils 50% von Items oder kommen Stats aus ner Punktvergabe vom Spieler und am Ende hat man höchstens so + 50 in Geschick oder wie hast du das vor? Je nachdem was für Zahlen da vorliegen und wie sie sich erhöhen sind andere Vorgehnsweisen besser oder sinnvoller.


Wenn ich den prozentualen Abzug der Verteidigung Levelabhängig mache ist dann noch die Frage in welche Richtung.... ob ich Verteidigung erst schwächer mache und irgendwann stärker oder andersrum. das problem wäre wenn ich die verteidigung erst stärker mache und später schwächer verliert sie im Laufe des Spieles an Wichtigkeit... Andernfalls könnten andere am Anfang Verteidigung vernachlässigen und später wenn sie mehr benötigt wird zu wenig haben.
Verteidigung Levelabhängig ist anders zu verstehen.

Beispiel:
Du hast 50 Verteidigung auf Level 15, das sind dort ca. 50% Schadensabsorb. Auf Level 75 irgendwann sind die Werte alle viel höher. 50 Def sind dann nicht mehr so viel wert verglichen mit anderen Zahlen quasi nur noch + 10% oder so. Was man also macht ist eine Zahlenkurve erstellen, die als Umrechnungsfaktor gilt. Der Rüstungsabsorb in % ergibt sich aus dem Defwertes des Verteidigers in 5 gewandelt durch die Koeffizienzzahl auf Level des Angreifers.

_______________________________________________

Tipp nebenbei:
Mach Beispielrechnungen. Überleg dir, was für Zahlenwerte der Spieler erreichen können soll und wie diese in den Formeln wirken, die du dir aussuchst. z.B. wenn du ne freie Verteilung der Punkte hast, wozu führt das wenn der Spieler zB alle Punkte in einen Stat macht? Ein Held, der für nichts zuschlägt und das mit 220% kritisch? Oder ein Held, der die Wahl hat in Atk zu investieren, damit seinen Schaden verdreifacht, oder in Geschick und damit die Chance hat 3% öfter kritisch zu treffen.

Einiges macht erst Sinn wenn mans mit Beispielwerten gerechnet hat. Wichzig dabei ist, nen Plan zu machen welche Menge an Stats der Spieler aus welchen Quellen bekommen kann und wie viel Freiheit er dabei hat diese zu vergeben.

Chemluth
05.02.2011, 09:25
hmm der Spieler bekommt 2 Attributspunkte pro Level. bis jetzt gehe ich von 50 als höchstlevel aus, also hat er insgesammt 100 AP. mit Startwerten die 20, 20, 20 sind wäre dann der Höchstwert pro Attribut 120, wobei dann die beiden anderen ziemlich vernachlässigt wären.

Durch manche sitequests kann der Held noch zusätzlich AP bekommen. wenn man von ca 30 sitequests a la 5 AP ausgeht stehen dem Helden 150 weitere AP zur Verfügung.... Der Höchstwert wäre dann 270 pro Wert.

ist nur die Frage ob so eine Art Attributsskillsystem sich lohnt, oder ob ich das nochmal überarbeiten sollte. Das der Held durch Sitequests keine weitere AP bekommt und das pro geskillten Wert mehr als nur ein Punkt auf die Attribute verteilt werden... pro AP 3 Stärke oder so...
das würde dann bei 100 AP 300 Punkte für die Attribute geben... also wär der Höchstwert am Ende in Angriff 320 zu 20 geschick und Abwehr.

die nächste Überlegung wäre dann ob ich grenzen mache... das ein Spieler auf Level 5 nicht 7 mal Stärke skillen darf (man erinnere sich an die 2 AP)

wenn man dann nur 2/3 der AP auf einen Wert verteilen darf kann man 198 Punkte auf Angriff bekommen und dann noch 102 auf Geschick oder Abwehr verteilen...

Die Items sollten bei so einer Art Skillsystem nicht mehr als 50 auf einen Wert geben...

ich hab mir bis jetzt noch nicht so viele Gedanken darüber gemacht...



achja und 220 % kritisch würde ich nich zulassen :D... irgendwann macht der Held statt doppeltten kritischen Schaden 3-fachen oder 4-fachen Schaden...

Cornix
05.02.2011, 16:43
Tut mir leid, ich habe nicht die gesamte Konversation durchgelesen, weis daher auch nicht, ob du noch Hilfe bei deiner Schadensberechnung brauchst.

Ich wollte dennoch einmal die Schadensberechnung meines derzeitigen Projektes als Denkanstoß bieten,
bei mir gibt es ebenfalls Angriffskraft und Verteidigung welche sich auf den Schaden auswirken.

Allerdings habe ich mir als Ziel gesetzt die Varianz des Schadens auf einem recht beschränkten Bereich zu fokusieren, "one-hit-kill" Attacken sollten nicht möglich sein, auf der anderen Seite sollte ein Angriff aber auch niemals keinen oder nur extrem wenig Schaden verursachen.
Dennoch sollte das erhöhen des Angriffs oder Verteidigungswertes einen gewissen Anreiz besitzen.

Ich kam also nach einiger Überlegung auf die Idee den Schadensbonus, beziehungsweise Malus (durch die Verteidigung) auf einer Monoton fallenden Funktion für steigende Differenzen für Angriffs- und Verteidigungswerte zu setzen.

Das heißt:
Der Grundschadenswert ist gleich der Angriffskraft.
Dann wird die Differenz aus Angriffskraft des Angreifers und Verteidigung des Opfers ermittelt.
Ist die Differenz positiv so wird der Schadenswert erhöht, ist sie negativ dann wird er verringert.
Ist die Differenz negativ so wird der Schaden mit ( ( 0.98 ) ^Differenz ) multipliziert. Das heißt:
Der erste Punkt Verteidigung welcher über der feindlichen Angriffskraft liegt besitzt eine Effizienz von 2% der nächste 1.96% und so fort. Jeder kommende Punkt besitzt eine geringere Effizienz bis sich die Werte kaum noch ändern. Ab dieser Sättigungsgrenze kann der Schaden für steigende Verteidigung nichtmehr fallen.
Das gleiche in umgekehrter Richtung gilt für eine positive Differenz.

Felski
05.02.2011, 21:57
Da du ja der Entwickler des Spiels bist hast du doch alles in der Hand.
Ich würde da es ein AKS ist generell versuchen von dem normalen System wegzukommen.

Rüstungen sollten je mehr sie schützen, den Helden verlangsamen. Dann können Spieler individuell entscheiden ob sie lieber einen leichtverwundbaren Schnellangreifenden Helden haben wollen, oder einen mächtigen Panzer der viel aushält(der sollte dann Fähigkeiten haben die den Schaden anrichten, ihn aber Punkte kosten die sich über Zeit aufladen)

Du könntest für deine Verteidigung zum Beispiel ein LookUp Tabellen ähnliches System verwenden. Das würde zu dem obengenannten passen.
Ein bestimmter absoluter Wert an Verteidigung steht dabei für eine prozentuale Schadenreduzierung.
Als Beispiel:
10 Verteidigung = 5 % Schadensreduzierung
20 Verteidgung = 10 % Schadenreduzierung
also alle 2 Punkte ein Prozent.
ab 100 Verteidgung dann nur noch alle 3 Punkte. usw.

Dazu müsstest du dann noch die Gegenstände anpassen.
Mächtige Rüstungen(die verlangsamen) und leichte Rüstungen(die könnten noch leichte Ausweichchancen geben, eventuell über Agilität gespeichert, sollte aber dann nicht zu viel geben :D)

Trefferchancen würde ich generell von der gegnerischen Ausweichchance abhängig machen(wobei Fähigkeiten mMn immer treffen sollten)

Chemluth
05.02.2011, 22:41
@cornix: Ich denke, dass ich das bei meinem Spiel ein wenig anders gestalten möchte... bei dir könnte das Problem entstehen, dass man Gebiete bestreiten kann, die für das Level des Helden noch viel zu hoch sind... bzw... bei mir könnte das problem entstehen wenn ich das einführe, da ich bei mir noch eine erhöhte Chance zum ausweichen (in form von wegrennen) eingebaut habe.... aber dennoch ein schönes system... würde das gern mal in ein spiel eingebaut sehen...

@Felski
natürlich ist es immer schön von dem System wegzukommen, aber das hatte ich eigentlich mit unterschiedlichen Waffen und Skills vor... wobei deine Anregungen natürlich auch nicht schlecht sind... ist nur die Frage ob starke Rüstungen direkt meine Angriffe verlangsamen oder nur Geschick abziehen...

Könnte man je nach Gewicht und Effektivität der Rüstung auch beides machen... das macht die Rüstungen abwechslungsreicher und interessanter....

Das mit der Verteidigung wär auch eine Variante... aber im Prinzip nichts neues... wenn man Verteidigung 250 hat, hat man 100 Prozent Schadensreduzierung, was im Prinzip eigentlich nicht möglich sein sollte... und es erinnert ein wenig an die Berechnung für den kritischen Schaden...




Es würde mich mal interessieren, wie andere das Problem mit der Schadensberechnung gelöst haben... (ausser Cornix)...

Felski
06.02.2011, 03:06
dennoch bist du der entwickler,
also kannst du die lookup tabelle beliebig erweitern oder einfach durch die gegenstände dafür sorgen das man 250 nicht erreicht.

@rüstung: bei mir würde man für schwerer rüstung zwischen den angriffen einfach 0.1 bis 0.4 waits warten müssen, je nach rüstung eben. wobei ich die waitzeiten jetzt aus der luft gegriffen habe.

Chemluth
06.02.2011, 11:22
so dacht ich mir das auch, nur das geschick vllt auch noch einen einfluss auf die geschwindigkeit hat...

Felski
06.02.2011, 11:30
wäre mir zuviel rechnung, ich mach es mir da lieber einfach

Chemluth
06.02.2011, 11:59
ist nicht viel Rechnung... du planst einfach 2 Waitevents ein... das eine machst du davon abhängig wie viel Geschick du hast und das andere von der Rüstung...

Corti
07.02.2011, 09:26
Ich möchte dir einen Rat zukommen lassen. Machs nicht zu kompliziert.

Statsvergabe kann helfen, dem Spieler die Möglichkeit zu geben, zu prägen, wie sich sein Charakter spielt, das ist toll, weil Spieler das Gefühl hat, es sei seine geistige Leistungs/Entscheidung, die dazu führte, dass er die Gegner wegsmasht.

Mal was grundlegendes zu Stats und deren Berechnung, weil ich das Gefühl hab, dass du da bei einigen Sachen durcheinander gekommen bist. Die Stats, deren Beschreibung sollte imo vermitteln, welcher Weg zum Ziel durch dessen Wahl gegeben wird.

Beispiel:

Stärke -> Härter zuhauen
Kritisch Treffen -> Chance doppelten Schaden zu machen
Tempo -> Schneller schlagen, öfter handeln
Verteidigung -> mehr wegstecken können


Ein Kniff um das ganze rechnerisch äquivalent zu machen ist folgender:
Es gibt einen verstecken Grundschadenswert, und alle anderen Stats werden prozentual dazugerechnet. Normalweise wird Atk oder wie es auch heisst immer direkt in die Formel verrechnet als Atk-Def oder so, dieser Ansatz verrechnet Atk als zusätzliche Prozente an Schaden.

Beispiel:
+Spieler verursacht auf nem bestimmten Level 100 Schaden.

Alle Werte (Stärke, Crit,Tempo) können maximal auf 100 gebracht werden, wobei 1 Statpunkt jeweils 1 % mehr Schaden, 1 % kritisch zu treffen oder 1% Tempo bedeutet.

Annehme: Spieler vergibt 20 Punkte in Stärke, 10 Punkte in Crit und 25 in Tempo.
Ein Schlag macht dann 20% mehr Schaden, also 100 Schaden *1,2 = 120 Schaden und hat eine 10% Chance kritisch zu treffen. Wenn ein Tempo-loser Schlag alle 2,5 Sekunden möglich ist, senkt das Tempo diese Zeit auf 2,1875 Sekunden. (denk dran: 100% Tempo entspricht nicht 2,5 Sekunden sondern, 1,25 weil dadurch die Zeit zwischen schlägen halbiert und der Schaden / Zeit verdoppelt wird -> +100%)

Woher kommt der Grundschaden:
Der basiert auf dem Level des Charakters. Mit jedem Level wird er etwas stärker. Im Maker gibts diese Statskurven, die kann man schön manuell auslesen und dafür verwenden. Somit ist für jeden Charlevel ein Zahlenwert verfügbar. Dieser Zahlenwert wird jeweils um die Prozente modifiziert.

Stichwort Einseitige Statsvergabe:
Das Makerspiel "Der schwarze Magier" löst das wie folgt. Man bekommt keine Statspunkte, die man vergibt, sondern neutrale Punkte. Statserhöhungen werden von diesen neutralen Punkten erkauft. Je mehr Stärke man zB hat, desto teurer wird der nächste Punkt Stärke, oder vergleichsweise günstiger werden die andere Stats, der Spieler wird also animiert , die andere Stats ein bischen mitzuziehen und kann eher mal einen Stat nachziehen wenn er feststellt, dass er zB zuviel Schaden bekommt weil der Vert. vernachlässigt hat.

____

Wenn Fragen sind, frag. Nur keine Scheu.

Chemluth
07.02.2011, 14:23
ein sehr nettes Prinzip... aber ist ein Prozent pro Skillpunkt nicht ein bisschen wenig? so wirkt sich das doch kaum auf den Schaden aus....

Corti
07.02.2011, 15:17
Jaein~ die Prozente werde ja auf den Basisschaden draufgerechnet. Jedes mal wenn man ein Level-Up bekommt und damit die Möglichkeit Punkte zu vergeben steigt ja automatisch der Basisschaden. Ein Teil des rohen Kraftgewinnes passiert quasi nur durchs aufleveln, der 2. Anteil passiert durchs vergeben der Punkte, womit der Spieler die Charakteristik des Schadens steuert.

In gewisser Weise ist natürlich 1% mehr Schaden nicht viel. Aber 1% Krit ist auch nicht der Unterschied zwischen nie kritten und dauernd kritten, genau wie zB der Spieler nicht "woah das merkt man voll" denkt wenn du ihm zB 0,5% Ausweichen durch Geschick mitgibst.

In der Praxis wird der Spieler z.B. voll auf Atk gehen, hat dann schnell mal 40 Punkte da drin, und die +40% merkt man dann schon ziemlich deutlich. Gleichzeitig könnte er auch auf 40% Krit. gehen~ der Unterschied ist dann zwischen z.B. 280 Schaden machen oder 200 Schaden und häufig mal 400 durch Krits.

Sinnvoll ist es natürlich, mit dem Basisschaden irgendwo bei 100+ anzufangen, damit die Prozente nicht in den Rundungen verschwinden, aber in nem eigenen AKS sollten Schadenszahlen die bei 100 beginnen und bei 3000+ enden kein Problem sein und schöne große Zahlen aufm Bildschirm hat doch auch was geiles, oder?

Das beschriebene Prinzip habe ich mal für ein javabasiertes AKS erdacht, aus dem leider nie etwas geworden ist, allerdings stecken da schon mehrere Iterationen des Durchdenkens drin, das ist schon solide was die Zahlenwirtschaft angeht.

Chemluth
07.02.2011, 18:52
hmm wollte die Zahlen eher klein halten... sind überschaulicher, nicht so protzig und lassen sich leichter anzeigen :)

ich glaub ich hab mir ein ziemlich umständliches Skript ausgedacht um Schadenszahlen per pictures anzuzeigen.... ziemlich viel Text... wisst ihr ein kurzes einfaches Skript dafür?

Corti
07.02.2011, 22:18
Zerlegen der Zahl in 1er, 10er, 100er etc.
Reservier dir ein paar Picture-IDs
Pack die Ziffern nicht in einzelne Pictures, sondern in einige riesige Grafik die dann 10 Pixel breit und 3000 Pixel mit einer Ziffer alle horizontal 300 Pixel
diese Grafik verschiebst du dann so im Bild, dass die Ziffer angezeigt wird, die angezeigt werden soll.
Grund: Verschieben (MovePicture) einer riesigen Grafik ist performancesparender als minikleine Grafiken oft neu anzeigen (ShowPicture)

Chemluth
08.02.2011, 13:37
das mit dem zerlegen der 1er 10er und 100er hab ich hinbekommen, aber mein Skript ist dafür total umständlich glaube ich... hat jemand vielleicht eine praktischere Vorlage dafür?

hmm bis jetzt hab ich jede Ziffer als einzelnes Bild gemacht... wie sehr wirken sich denn viele kleine Bilder auf die performance aus?

Nemica
08.02.2011, 13:40
Naja, Show Picture ist der größte Ressourcenfresser des Makers... je mehr davon desto schlechter.

R.D.
08.02.2011, 14:40
Naja, Show Picture ist der größte Ressourcenfresser des Makers... je mehr davon desto schlechter.

Das ist nicht ganz richtig, sobald du ein Bild angezeigt hast isses okay, dann bleibst auch da und mve picture Befehle verbrauchen kaum was. Es ist nur ein Problem wenn du in einer Schleife ein Bild per ShowPicture Befehl immer wieder anzeigst, also mit kaum waits dazwischen.

Chemluth
08.02.2011, 15:24
kommt es dabei auf die Anzahl der angezeigten Bilder auf dem Bildschirm an oder darauf wie oft Bilder angezeigt werden?

Nemica
08.02.2011, 17:07
Ich bezog mich auf die Anzahl der Show Picture Befehle, nicht die Pictures selbst.

Corti
08.02.2011, 20:39
Ich erklärs mal so:


10 Verschiedene Ziffern per ShowPicture auf einer Picture ID anzeigen funktioniert, führt aber zu ner kleinen Verzögerung, je nach Rechner und anderen Geschehnissen kaum merkbar bis leicht nervig, in nem AKS wenn viele Bilder animiert werden kann das zum Problem werden. Vorteil: du verballerst nur eine Picture ID
10 verschiedenen Ziffern als 10 kleine Bilder laden (per Show Picture) und dann mit MovePicture anzeigen, was man grad braucht ist im Livebetrieb am schonendsten. Nachteil: 10 Picture IDs verbraten und davon hat man je nach Version nur begrenzt.
Der "Kniff" ist das große Bild, auf dem sie einzelnen Ziffern sind. Das große Bild wird einmal geladen, das frisst Performance, und dann nur verschoben, was sehr performanceschonend ist. Trotzdem braucht man so für 10 Ziffern nur eine Picture ID zum anzeigen.


Hier, evtl. hilft das hier zum Verständnis:
http://s3.imgimg.de/uploads/movepic39d421ebpng.png

Chemluth
08.02.2011, 21:11
ahh ok danke...

momentan hab ich die Zahlen als Standbild eingebaut... das heisst ich habe unten rechts eine kleine box die anzeigt wieviel Schaden der Held mit seiner letzten Attacke macht (wird immer aktualisiert nach einem Angriff)...

weiß nämlich nicht wie ich die Schadenszahlen direkt über den Helden oder dem Gegner anzeigen sollte...

werde mal versuchen die Zahlen mit einem Picture ein zu bauen...

ist das Prinzip auch bei einer Lebensleiste sinnvoll? die lasse ich bis jetzt auch mit 20 unterschiedlichen Bildern in einem parralel-process-Event anzeigen, das immer überprüft wieviel Leben der Held noch hat...