Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

21

07.11.2016, 22:33

Alternative: Wie viel des eingehenden Schadens verteilt wird, hängt nur vom Lifelink, nicht aber von den angebundenen Einheiten ab. So kann man später dafür sorgen, dass der LifeLink besser oder schlechter wird.
Der LifeLink könnte bspw. pauschal 10 %, 25 %, ... des eingehenden Schadens an die angebundene Einheit weiterleiten. Werden weitere Einheiten angebunden, gilt dafür dann entweder der gleiche Prozentwert oder der Prozentwert könnte von den Anzahl der Links abhängig sein. Weiterhin sollte die Anzahl der Links begrenzt sein.
Erhält der Charakter mehr Schaden, sodass eine angebundene stirbt, könnte der "überschüssige" Schaden verloren gehen oder wieder der Einheit angerechnet werden. Bei letzterem könnte dieser Schaden wieder verteilt werden, oder direkt der Einheit angerechnet werden, als Strafe dafür, dass ein Link zerstört wurde.
Die Verbindungen könnten entweder immer von der Einheit aufgebaut werden, die mit den anderen verbunden werden soll, oder von einer dritten Einheit, die eher als "Supporter" zu bezeichnen wäre. In beiden Fällen könnte es sinnvoll sein, dass nur bestimmte Einheiten diese Fähigkeit anwenden können. Es wäre auch möglich, dass von den ersten beiden Möglichkeiten beides vorhanden ist, es den Supporter aber mehr kosten würde.

Letztendlich ist das eine Game Design Entscheidung, keine Performance-Entscheidung. Man muss auch darauf achten, dass diese Fähigkeit nicht zu stark im Vergleich zu anderen Fähigkeiten wird. Auch muss man darauf achten, dass die Verbindungen dem Spieler am Ende sinnvoll präsentiert werden und dass er diese Verbindungen sinnvoll aufbauen kann.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

22

08.11.2016, 07:43

Spielt der HP Wert denn überhaupt irgendeine Rolle, solange er Größer 0 bleibt? Ansonsten einfach erstbeste Einheit nehmen und auf minimal 1 reduzieren, wenn noch Schaden übrig weiter mit irgendeiner anderen.

Es soll wenn möglich gleichmäßig verteilt sein.
Was hat man denn davon, wenn es gleichmäßig verteilt ist? Und was genau bedeutet dann "gleichmäßig"?

Wenn eine Unit mit aktiven LifeLink einen burst Dmg erhält, hat es große Chancen lebend aus der Situation heraus zu kommen, da sich der Schaden eben auf mehrere Units verteilt. Damit kann man z.B. seine defensiv schwachen Units offensiver einsetzen, so lange sie eben mit einem Tank verknüpft sind, der wesentlich mehr aushält, aber zu wenig Schaden für die erste Reihe macht.
Ja und wie ich schon sagte, ist es dafuer komplett unnoetig irgendwas gleichmaessig zu verteilen. Denn du konntest mir ja keinen Nachteil nennen, wenn man nur noch 1 HP hat. Das war mein allererster Satz hier ueberhaupt. Gerade um die Performance zu optimieren ist das ein entscheidendes Kriterium und veraendert komplett den Algorithmus.

Verstehe nicht, was es an gleichmäßig nicht zu verstehen gilt. Das habe ich jetzt auch schon anhand von Beispielen erklärt. Der Dmg x wird prinzipiell zu gleichen Teilen auf die N Member des LifeLinks verteilt. Im Normalfall erhält dann jedes Unit X/N Dmg.
Vorhin meintest du noch "Es soll gleichmäßig verteilt sein." jetzt ist es schon "Der Dmg soll gleichmäßig verteilt sein." Und du fragst mich ernsthaft, wieso dein Aussage unklar sein koennte... Als kleiner Hinweis fuer dich: diese Verteilung ist weder optimal berechenbar, noch erfuellt sie den oben beschriebenen Zweck wenn nur ganzzahlige HP Zahlen erlaubt sind.

Jar

Treue Seele

Beiträge: 197

Wohnort: Lübeck

Beruf: Softwareentwickler

  • Private Nachricht senden

23

08.11.2016, 10:25

Ja, praktisch so ähnlich, nur das der LifePool eben temporär geteilt werden soll. D.h. einfach die Units auf einen Pool referenzieren lassen geht leider nicht so einfach.

Da du ja keine Deadline hast, wäre es doch noch möglich ein entsprechendes System einzubauen. Im Prinzip eine Klasse die einfach die Referenzen auf die einzelnen Units speichert und die Berechnungen durchführt.
Was genau meinst du mit temporär?
Und nochmals meine Frage, sollen alle Einheiten gleichzeitig sterben?

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

24

08.11.2016, 12:09

Denn du konntest mir ja keinen Nachteil nennen, wenn man nur noch 1 HP hat.
Nachteile resultieren daraus, dass der LifeLink "temporär" ist. Wird die Verbindung aufgelöst, haben die Einheiten wieder ihre eigene Menge an Lebenspunkten. Wird dabei die Lebensenergie einer einzelnen Einheit auf 1 gesetzt, die der anderen Einheiten aber nicht angefasst, wurde der Zweck des Life Links verfehlt.

Was genau meinst du mit temporär?
Das bedeutet, dass der Life Link nicht permanent ist, dass er also auch wieder entfernt werden oder automatisch unter bestimmten Umständen verschwinden kann.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

25

08.11.2016, 12:37

Nachteile resultieren daraus, dass der LifeLink "temporär" ist. Wird die Verbindung aufgelöst, haben die Einheiten wieder ihre eigene Menge an Lebenspunkten. Wird dabei die Lebensenergie einer einzelnen Einheit auf 1 gesetzt, die der anderen Einheiten aber nicht angefasst, wurde der Zweck des Life Links verfehlt.
Ich hab keine Ahnung was der Zweck vom Life Link ist. Nachdem er aufgeloest ist, hat man damit aber eine recht optimale Verteiling, da bei einer Einheit mit 1 HP der meiste Overkill auftritt.

Jar

Treue Seele

Beiträge: 197

Wohnort: Lübeck

Beruf: Softwareentwickler

  • Private Nachricht senden

26

08.11.2016, 13:49

Ich hab keine Ahnung was der Zweck vom Life Link ist.

Life Link bei Gegnern kann eine andere Taktik erforderlich machen, als einfach nur drauf hauen... okay zugegeben... dann heißt es möglichst einheiten zusammen ziehen und dann bekämpfen. Dann ist man in kürzerer Zeit fertig mit dem Gegnerpack :)

Wenn eine Unit mit aktiven LifeLink einen burst Dmg erhält, hat es große Chancen lebend aus der Situation heraus zu kommen, da sich der Schaden eben auf mehrere Units verteilt. Damit kann man z.B. seine defensiv schwachen Units offensiver einsetzen, so lange sie eben mit einem Tank verknüpft sind, der wesentlich mehr aushält, aber zu wenig Schaden für die erste Reihe macht. Das aber nur so nebenbei.


Wenn wir jetzt mal mehrer Szenarien nehmen:
Einheit(Lebenszähler)
<--incomming Damage --

Beispiel 1:
A(100), B(200), C(500), D(10) ... <-- 1000 -- = alle Einheiten tot?

Beispiel 2:
A(100), B(200), C(500), D(10) ... <-- 100 -- =
A(100 - 100/4 - 14/3), B(200 - 100/4 - 14/3), C(500 - 100/4 - 14/3), D(10 - 9) =
A( 70), B(170), C(470), D( 1)

Beispiel 3:
A(100), B(200), C(500), D(10) ... <-- 4 -- =
A( 99), B(199), C(499), D( 9) ... D left the group
A( 99), B(199), C(499) ... <-- 50 -- =
A( 82), B(182), C(482)

Die Werte sind jeweils gerundet?
Hier ist es ein temporärer Lifepool.

Die zu stellenden Fragen sind:
Ist eine Einheit die nur 1 HP hat unsterblich solange die Gruppe noch lebt?
Wird die Einheit mit 1 HP aus der Gruppe entfernt?
Soll eine Aufteilung des Schadens pro Gruppenmitglied geschehen?

Das Beispiel kann natürlich noch ausgebaut werden mit Resistenzen, Rüstung und co.

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

27

08.11.2016, 13:51

Das sind aber alles Designfragen, die wir so nicht beantworten können - nur anti-freak selbst kann sagen, wie der Life-Link genau funktionieren soll.
WIP Website: kevinheese.de

28

08.11.2016, 15:18

Um das nochmal zu erläutern:

Meine Units besitzen float Werte als LifePool, da wir mit relativ geringen Zahlen arbeiten und dort (durch teilweise Schadensreduzierungen) ordentlich was verloren gehen würde. D.h. Rundungsfehler interessieren uns weniger, auch ist die Formel DMG/N so durchführbar.

Temporärer LifeLink bedeutet, der Spieler kann diesen Effekt benutzen und nach x Sekunden läuft dieser wieder aus. Innerhalb dieser x Sekunden wird dann der Schaden auf alle Member aufgeteilt.
1 HP ist 1 HP. Sie sind weder unsterblich, noch sonst was. Sollte die Gruppe mehr Schaden bekommen, als sie insgesamt an HP hat, sterben alle. Hat die Gruppe 3 Member mit jeweils 1 HP und bekommen 2 Schaden, sterben 2 Member und einer bleibt übrig. Welche davon sterben ist dann lediglich die Frage der Implementierung.

Ich danke jedenfalls für die vielen Antworten, auch wenn der ein oder andere mal an sich arbeiten sollte und vll ein bisschen weniger von oben herab antworten sollte. Fällt mir nicht nur in dem Thread auf, das TEs häufig seltsam behandelt werden.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

29

08.11.2016, 21:37

Meine Units besitzen float Werte als LifePool, (...), auch ist die Formel DMG/N so durchführbar.

Hat die Gruppe 3 Member mit jeweils 1 HP und bekommen 2 Schaden, sterben 2 Member und einer bleibt übrig.

Das sind Widersprüche. Entweder leben alle drei weiterhin mit 0.66 HP oder du hast keine float Werte.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

30

08.11.2016, 22:29

Widersprüchlich ist da gar nichts. Inkonsistent lasse ich gelten, aber den Widerspruch sehe ich nicht, wenn ich das per Definition so fest lege.

Werbeanzeige