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

Tixewi

Frischling

  • »Tixewi« ist der Autor dieses Themas

Beiträge: 81

Wohnort: Stuttgart

Beruf: Software Developer

  • Private Nachricht senden

1

23.05.2012, 20:53

[VB.NET 2010] Kampfsystem

Hi,

ich programmiere zurzeit mit Visual Basic mein zweites Strategie Spiel. Ein Großes Problem habe ich mir jedoch jetzt schon seit mehreren Monaten aufgehoben: Das Kampfsystem.
Da ich noch nie in großem Konflikt mit Mathematik in der Programmierung gekommen bin, weis ich kein anderen Weg außer hier mal Nachzufragen. Ich habe zwar gegoogelt, aber evtl die falschen Tags verwendet.

Es wäre mir schon sehr weitergeholfen, eine Formel für folgendes Beispiel aufzustellen:

100 Axtkämpfer (Int1/Unit1Player1) mit jeweils 10 Attack (Int2/AxeDmg) und 5 Defense (Int3/AxeDef) treten gegen 50 Axtkämpfer (Int4/Unit1Player2) mit den selben Werten an.

1 Def soll 1 Attack Stat verringern.

Danke schon einmal im Voraus,

mfg Tixewi

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Tixewi« (23.05.2012, 21:02)


babelfish

Alter Hase

Beiträge: 1 222

Wohnort: Schweiz

Beruf: Informatiker

  • Private Nachricht senden

2

23.05.2012, 21:07

Ich schätze mal du brauchst ein ähnliches System wie beim Browsergame "Die Stämme"?
Kannst du etwas konkreter werden wie dein Spiel funktioniert?

Tixewi

Frischling

  • »Tixewi« ist der Autor dieses Themas

Beiträge: 81

Wohnort: Stuttgart

Beruf: Software Developer

  • Private Nachricht senden

3

23.05.2012, 21:15

Nun gut es gibt auf der bisherigen "Karte" 6 Territorien. Die Territorien haben jedoch keine Grundverteidigung (zumindest noch nicht - aber dank dir bin ich grad auf die Idee gekommen ^^). Es gibt mehrere Zeitalter, welche die Attribute der verschiedenen Einheiten verändern. Jedoch gibt es nicht so viele Attribute wie in Stämme.

Ich will zumindest für den Anfang nur Attack und Defense Attribute. Distanzkämpfer lasse ich erstmal weg. Der Angriffswert und der Verteidigungswert könnte aber natürlich noch mit Min-Max verrechnet werden. Also min 1,0 max 1,2 (20% mehr Schaden als das Minimum).

Edit:

Der Kampf läuft aber rechnerisch und sofort ab. Also nicht in Echtzeit.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Tixewi« (23.05.2012, 22:08)


birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

4

24.05.2012, 16:46

Soll jeder gegen jeden antreten oder wie läuft das dann ab?

Tixewi

Frischling

  • »Tixewi« ist der Autor dieses Themas

Beiträge: 81

Wohnort: Stuttgart

Beruf: Software Developer

  • Private Nachricht senden

5

24.05.2012, 17:19

Hmm nein, es wird auch ein Team einstellbar sein. Jedoch ist das nicht relevant, da vom Spiel aus, bereits geregelt ist. Das System soll brauch es also nicht berücksichtigen.

@ birdfreeyahoo - ich wohne ja nur 15min von dir weg 8|

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Tixewi« (24.05.2012, 17:35)


babelfish

Alter Hase

Beiträge: 1 222

Wohnort: Schweiz

Beruf: Informatiker

  • Private Nachricht senden

6

24.05.2012, 23:10

Naja... wie du das System machen willst, hängt ganz davon ab wie komplex du die Kämpfe machen willst.

Klar, aus Sicht des Spielers hat man zB. 100 gegen 50 Axtkämpfer. Dann wird gekämpft, und dann sind die 50 tot und von den 100 bleiben vllt. noch 60 übrig.
Aber was passiert dahinter?

"Realitätsnah"
Theoretisch könntest du jeden Axtkämpfer auf ein simuliertes Spielfeld in den Kampf schicken, ihm die Möglichkeit geben sich zu verteidigen, anzugreifen, auszuweichen, zu kontern bis die Simulation komplett realitätsnah abläuft. Ohne das der Spieler was davon mitbekommt.

Einzelkampf
Das kann aber vereinfacht werden. Angenommen ein Axtkämpfer hat folgende Grundwerte:

Gesundheit: 15HP
Angriffsschaden: 10
Verteidigung: 5

Nun könntest du jede Einheit abwechslungsweise angreifen lassen und z.B. sagen:
- Die Einheit greift eine zufällige gegnerische Einheit an
- Der Schaden beträgt (Eigener Angriffschaden * (25% Zufall) - Verteidigung des Gegners)
- Fällt die Gesundheit der gegnerischen Einheit unter 0, ist sie tot

Das wiederholst du nun bis von einer Seite keine Einheit mehr übrig ist.

Gesamtrechnung
Du könntest es natürlich noch weiter vereinfachen.

Angenommen ein Axtkämpfer hat folgende Werte.
Angriffsschaden 10
Verteidigung 5

Die Gruppe 1 mit 50 Axtkämpfern hätte 50 * 5 = 250 Verteidigung, und 50 * 10 = 500 Angriff.
Die Gruppe 2 mit 100 Axtkämpfern hätte 500 Verteidigung und 1000 Angriff.

Eine Gruppe muss ja besiegt werden, nun kannst du z.B. schauen wieviel Prozent des Angriffs der stärkeren Truppe gebraucht wird um die eine zu vernichten. 1 / 1000 * 250 = 25%.

Jetzt kannst du z.B. sagen, dass die erste Gruppe nur 25% des Totalschadens ausführen kann. Das bedeutet 500 * 25% = 125.
Bei mehreren Einheitentypen müsstest du noch unterscheiden, aber hier kannst du die 500 Verteidigung der Gruppe minus 125 rechnen, und bekommst 75 Axtkämpfer die überleben.
Hier überall noch etwas Zufall rein und dann passt das auch schon :D

Das nur ein paar Ideen die mir grad gekommen sind. :)

Tixewi

Frischling

  • »Tixewi« ist der Autor dieses Themas

Beiträge: 81

Wohnort: Stuttgart

Beruf: Software Developer

  • Private Nachricht senden

7

12.06.2012, 15:57

So - sry, war in letzter Zeit Schul- und Feuerwehrtechnisch beschäftigt. Bin dein Post Mal durchgegangen und habe ihn theoretisch ausprobiert.

Ich bedanke mich für deine Hilfe. ;)
Jetzt verstehe ich, wie man so etwas aufbauen kann. Ich werde das ganze noch etwas erweitern, so dass mehrere Einheitentypen vorkommen können.

Werbeanzeige