PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Variables Damagesystem


Gast
2006-03-28, 21:09:35
Hallo
es ist zwar spiele bezogen aber es geht auch sehr stark um die realisierbarkeit des ganzen
also: mir geht es darum ob es schon ein variables damagesystem gibt und ob soetwas überhaut zu programmieren ist
zB soldatA macht gegen panzerB sehr wenig schaden dafür macht der grenadierA gegen den panzer sehr viel schaden
usw also dass bestimmte einheiten auch einen bestimmten schaden auf bestimmte einheiten ausüben

gibt es schon so ein system? (blizzard spiele?)

MFG

Coda
2006-03-28, 21:48:10
Jo das gabs schon bei StarCraft, wenn nich früher.

Marscel
2006-03-28, 21:53:58
Reicht da nicht ein Stein-Schere-Papier-Prinzip aus, um sowas zu realisieren?

In der Empire Earth Demo wurde ich damals darauf hingewiesen, dass das Schadenssystem ähnlich aussah, wie von die beschrieben, genauso, wie ich glaube, ist dies auch der Fall bei Command & Conquer Generals.

Gnafoo
2006-03-28, 22:52:52
Age of Empires (zumindest der zweite Teil) nutzt das iirc recht intensiv. So haben z.B. die Pikeniere einen Angriffsbonus gegenüber der Kavallerie. Und die Rammböcke einen gegen Gebäude etc. pp.

Aqualon
2006-03-29, 00:17:45
Im ersten C&C-Teil gab es ja auch schon sowas in der Richtung. Grenadiere waren super gegen Panzer, hatten aber keine Chance gegen Infanterie, die wiederum keine Chance gegen Panzer haben. Wie ausgefeilt das ganze war, weiß ich natürlich auch nicht.

Grundsätzlich kannst du das aber beliebig komplex machen. Zum Beispiel, wenn du nicht nur den Typ berücksichtigst, sondern auch Erfahrung, Motivation, Truppenzugehörigkeit usw.

Aqua

KinGGoliAth
2006-03-29, 00:42:23
Jo das gabs schon bei StarCraft, wenn nich früher.

bei starcraft definitiv. da war es sogar ziemlich komplex. da wurde unterschieden zwischen richtigen explosion und "splitterexplosionen".
explosionen waren gegen große objekte gut, gegen mittlere mittel und gegen kleine einheiten schlecht, beim splitter war es genau andersrum. splitter gegen klein war gut und gegen groß war nicht so gut. und es gab natürlich noch den "normalen" schaden. der war gegen alles gleich gut (oder mittelmäßig?) .
die kunst bestand dann immer darin genau zu wissen welche einheit welche rechnerische größe hatte und welchen schaden sie verursacht.

gegen eine kleine einheit die explosionsschaden verteilt war z.b. eine kleine einheit mit splitterschaden sehr gut. der gegner bekommt die volle ladung während man selber nur einen teil (ich glaube die hälfte) vom schaden kassiert.
das ganze war ziemlich ausgeklügelt. die cracks kannten sich damit mit sicherheit super aus. ich war in dem spiel aber nie so sehr interessiert, dass mich sowas interessiert hätte. ;)

es gab noch ein anderes...ich glaube auch, dass es aoe 2 gewesen ist.
bei aoe 1 gab es das aber glaube ich auch schon.

KinGGoliAth
2006-03-29, 00:47:11
Im ersten C&C-Teil gab es ja auch schon sowas in der Richtung. Grenadiere waren super gegen Panzer, hatten aber keine Chance gegen Infanterie, die wiederum keine Chance gegen Panzer haben. Wie ausgefeilt das ganze war, weiß ich natürlich auch nicht.


ich glaube das war garnicht variabel. das war nur einfachstes a kill b killt c killt a.
bestes beispiel war c&c 2.
panzer killen infanterie (einfach drüber fahren)
raketen typen killen panzer
normale infanterie killt raketen typen

daraus konnte man tierisch fiese sachen drehen. wenn der gegner mit der "falschen armee" ankam (z.b. normale infanterie vergessen) war es das reinste gemetzel. :D

Pinoccio
2006-03-29, 01:46:28
Selbst bei C&C 1 aka Tiberium-Konflikt war das schon so. ;-)
Dort stand in den entsprechenden Spiel-Datein drin, wer welche Waffe trägt, und wieviel diese Waffe gegen welche Art Panzerung Schaden macht und wer welche Panzerung hat etc.

mfg Sebastian

zeckensack
2006-03-29, 02:27:01
Hallo
es ist zwar spiele bezogen aber es geht auch sehr stark um die realisierbarkeit des ganzen
also: mir geht es darum ob es schon ein variables damagesystem gibt und ob soetwas überhaut zu programmieren ist
zB soldatA macht gegen panzerB sehr wenig schaden dafür macht der grenadierA gegen den panzer sehr viel schaden
usw also dass bestimmte einheiten auch einen bestimmten schaden auf bestimmte einheiten ausüben

gibt es schon so ein system? (blizzard spiele?)

MFGEine Struktur um sie alle zu finden ...struct
Schadensgeraffel
{
float hund,katze,maus,elefant;
};Schadenstypen.const Schadensgeraffel
maus_schaden={0.0f,0.0f,1.0f,0.0f}; //pur

const Schadensgeraffel
elefanten_schaden={0.0f,0.0f,0.0f,15.0f}; //auch pur, und stärker als die Maus

const Schadensgeraffel
mammut_schaden={3.0f,0.0f,0.0f,15.0f}; //stark behaart => HundebeimischungPanzerungstypen.const Schadensgeraffel
maus_panzer={0.3f,0.0f,0.5f,0.0f}; //anfällig gegen Katzen und Elefantenfüße

const Schadensgeraffel
elefanten_panzer={0.95f,0.9f,1.0f,0.6f}; //leicht kratzanfällig, ansonsten helfen nur stumpfe Schläge

const Schadensgeraffel
panzer_panzer={1.0f,1.0f,0.8f,0.9f}; //wenn die Maus ins Geschütz krabbelt ...


Dann wertet man den Gesamtschaden letztlich über das Produkt des ursprünglichen Schadens und der "Immunität" gegen diesen Schaden aus. Für jeden Schadenstypen einzeln, und dann aufsummieren.

Bonuspunkte für kompliziertere Systeme, die zB einen bestimmten Schadenstypus zu Null werden lassen, wenn er unter einer Maximalgrenze liegt.

Aqualon
2006-03-29, 13:37:29
ich glaube das war garnicht variabel. das war nur einfachstes a kill b killt c killt a.Variabel ist halt ein weitumfassender Begriff ;)

Aqua

micki
2006-03-29, 15:28:39
...
sowas steckt man aber normalerweise in eine matrix, ein programmierer wäre viel zu faul um für jeden typen variablen anzulegen ;)

zeckensack
2006-03-29, 16:32:32
sowas steckt man aber normalerweise in eine matrix, ein programmierer wäre viel zu faul um für jeden typen variablen anzulegen ;)Wollte ich auch schon vorschlagen, aber eigentlich braucht man dafür nur Vektoren und Skalarprodukte. Es sei denn du hast noch eine tolle Idee bei der sich Matrixoperationen bezahlt machen würden ;)

ScottManDeath
2006-03-29, 21:02:04
Wollte ich auch schon vorschlagen, aber eigentlich braucht man dafür nur Vektoren und Skalarprodukte. Es sei denn du hast noch eine tolle Idee bei der sich Matrixoperationen bezahlt machen würden ;)

Z.b globale Effekte wie z.B. Schneesturm, Hand Gottes..... =)

Oder lokale Zaubersprüche, Moral-durch-General-mit-Spaten-an-der-Front Effekte ;)

Coda
2006-03-29, 22:09:45
Wird das nicht ne ziemlich große Matrix? :|

RMC
2006-03-29, 22:45:27
Hallo
es ist zwar spiele bezogen aber es geht auch sehr stark um die realisierbarkeit des ganzen
also: mir geht es darum ob es schon ein variables damagesystem gibt und ob soetwas überhaut zu programmieren ist
zB soldatA macht gegen panzerB sehr wenig schaden dafür macht der grenadierA gegen den panzer sehr viel schaden
usw also dass bestimmte einheiten auch einen bestimmten schaden auf bestimmte einheiten ausüben

gibt es schon so ein system? (blizzard spiele?)

MFG


Jo nennt sich Stein-Schere-Papier Prinzip.

Im Endeffekt kommt alles auf das Balancing an. Da spielen mehrere Werte ein Rolle (kommt auch wieder drauf an, was alles mit einbezogen wird. Angefangen von einfachen Angriffstärken bis hin zur Einberechnung von Erfahrung/Moral/Wetter/Umgebung etc.). Ein vorgefertigtes System müsste demnach anhand der verschiedenen Werte den Ausgang einer Schlacht eindeutig berechnen können, was aber wiederum sehr schwer machbar ist. Die Formel dafür könnte ziemlich kompliziert werden, um allen Anforderungen gerecht zu werden und nicht "unfair" zu werden oder in extremen Werten zu enden.

Wir hatten ein ähnliches Problem bei unserem Spiel (siehe Sig ;) ). Es war nicht wirklich errechenbar was eine Einheit aufgrund ihren Stärken im System an Geld kostet. Deshalb mussten die Werte händisch ausbalanciert werden, weil aufgrund der unterschiedlichen Einheiteneigenschaften wieder große Ausnahmen in der Formel gemacht werden müssten.

ScottManDeath
2006-03-30, 00:13:05
Wird das nicht ne ziemlich große Matrix? :|

Naja, wenn man z.B. 5 Schadentypen und demzufolge 5 Rystungstypen hat, braucht man eine 5x5 Matrix. Jede Einheit hat dann zwei 5 Vektoren, einen der die Schadensgewichte angibt, und einen die Rüstungsgewichte. Dann könnte man auch Linearkombinationen machen, z.B. 0.5 schaden gegen leichte Panzerung, 1.0 Schaden gegen schwere Panzerung....

zeckensack
2006-03-30, 01:17:41
Naja, wenn man z.B. 5 Schadentypen und demzufolge 5 Rystungstypen hat, braucht man eine 5x5 Matrix.Wozu denn jetzt?Jede Einheit hat dann zwei 5 Vektoren, einen der die Schadensgewichte angibt, und einen die Rüstungsgewichte.Eben eben. Vektoren.Dann könnte man auch Linearkombinationen machen, z.B. 0.5 schaden gegen leichte Panzerung, 1.0 Schaden gegen schwere Panzerung....Das erreicht man doch schon mit den zwei Vektoren, einer für Schaden, einer für Panzerung.

Wofür du die Matrix haben möchtest musst du mir nochmal erklären ;(

Shink
2006-03-30, 08:57:17
Hatten das nicht schon uralte Rollenspiele? Mir fällt jetzt zwar nur Thunderscape (SSI) ein, dass ja so alt auch wieder nicht ist, aber das ist nicht gerade für Innovationen bekannt.
Da gabs Schnittschaden, Schlagschaden, Elementarschaden etc., die von verschiedenen Rüstungen verschieden gut abgewehrt werden.

micki
2006-03-30, 10:54:13
Wollte ich auch schon vorschlagen, aber eigentlich braucht man dafür nur Vektoren und Skalarprodukte. Es sei denn du hast noch eine tolle Idee bei der sich Matrixoperationen bezahlt machen würden ;)
es hat nicht viel mit den operationen zu tun, denn wenn man ne matrix hat, spart man sich eigentlich das rechnen (esseiden man muss mehrere "angriffe" aufsummieren), sondern mit datadrivendesign. wenn ein scripter ne neue einheit einfügt, nen neuen angrifstyp oder sonst eine einflussgröße, möchte ich nicht irgendwo code ändern müssen, da erweitert er sich die matrix und der der für die gamebalance zuständig ist, kann die werte dann leicht variieren.

natürlich wird so ne matrix ein bissl groß, aber ob man nun ein 2d array hat, oder hunderte von variablen mit 1d arrays, das ändert ja nichts an dem datenaufwand.