Kampf Script für Browsergame
lima-city → Forum → Die eigene Homepage → Homepage Allgemein
angreifer
angriff
armee
beispiel
boot
insel
kampf
kreuzer
kriegsschiff
leben
person
schaden
schiff
schlachtschiff
spieler
tanker
typ
url
verteidiger
verteidigung
-
Hallo zusammen,
schon mal vorab, ich bin nicht auf der Suche nach Quellcode oder sowas, das kann ich selber schreiben, ich brauche nur eine grundlegende Idee ;) Also hier ist meine Situation:
Ich brauche eine Idee, wie ein Angriff bei einem Browsergame ablaufen soll. Und zwar gibt es verschiedene Inseln und Person A möchte mit seiner Flotte die Insel von Person B angreifen.
Person A gibt natürlich an, wie viele Schiffe er von welcher Sorte losschicken möchte und bei Person B kämpfen alle Schiffe, die auf der Insel stationiert sind. Jede Schiffart hat einen eigenen Angriff und Verteidigungs Wert.
Beispiel:
Person A schickt folgende Schiffe los:
6x Transportschiff
5x Kriegsschiff
1x Tanker
Person B hält mit all seinen Schiffen, die auf der Insel sind, dagegen:
2x Transportschiff
3x Kriegsschiff
4x Tanker
Werte von Schiffen:
Transportschiff: 10 Angriff, 10 Verteidigung
Kriegsschiff: 100 Angriff, 100 Verteidigung
Tanker: 10 Angriff, 10 Verteidigung
Ich bin jetzt am überlegen, wie die einzelnen Werte mit in den Kampf eingebunden werden sollen. Außerdem stelle ich mir die Fragen:
Verliert der Verlierer alle Schiffe?
Wie viele Schiffe verliert der Gewinner? Genauso viele wie der Verlierer?
Welche Schiffe verliert der Gewinner?
Wenn ihr mit sowas Erfahrung habt oder euch spontan Ideen einfallen, wäre ich froh, wenn ihr mir helfen könnt.
Liebe Grüße -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Haben die Schiffe auf einen gewissen "Lebenswert" wie viel sie aushalten ?
-
Um Grundlegend einen Gewinner festzustellen, würde ich zu allererst mal Angriff auf beiden Seiten addieren und Verteidigung addieren und dann vergleichen.
=> Person A: 570 Angriff, 570 Verteidigung
=> Person B: 360 Angriff, 360 Verteidigung
(Dabei würde ich vorschlagen die Werte etwas variieren zu lassen.)
Dann würde ich anregen, zu überprüfen, ob einer mehr Angriff zustande bringen kann als der andere Verteidigung hat, damit hätte dieser Gewonnen, bei Gleichstand gewinnt der Verteidiger.
Zum Schiffe verlieren kann man davon ausgehen, dass der Verlierer alle verliert, wobei ich dafür noch einen Lebenswert für die Schiffe erstellen würde, damit man dies auch gut berechnen kann.
Ich hoffe, das war hilfreich und nicht zu verwirrend. -
Haben die Schiffe auf einen gewissen "Lebenswert" wie viel sie aushalten ?
Nein. Es gibt nur die Angriffs- und Verteidigungswerte.
Meine Idee war, die Angriffswerte von den Schiffen des Angreifers und die Verteidigungswerte der Schiffe des Verteidigers zu berechnen und die beiden Zahlen zu vergleichen.
In meinem beispiel also:
Person A: 570 Angriff
Person B: 360 Verteidigung
So kann man erkennen, dass Person A gewonnen hat, aber die oben genannten Fragen stelle ich mir immer noch.
Zum Schiffe verlieren kann man davon ausgehen, dass der Verlierer alle verliert, wobei ich dafür noch einen Lebenswert für die Schiffe erstellen würde, damit man dies auch gut berechnen kann.
Lebenswerte finde ich dann doch zu kompliziert, da dann evtl Schiffe zurück kommen, die nur noch 50% Leben haben usw. Das hatte ich eigentlich nicht so geplant. Wobei ich auch daran denke, dass im späteren Spielverlauf um die 100.000 Schiffe pro Kampf beteiligt sind, die Werte aus dem Beispiel dienen nur der Einfachkeitshalbar.
Beitrag zuletzt geändert: 18.3.2013 18:28:21 von ultimate-bravery -
Vielleicht wäre eine Berechnung über x Runden empfehlenswert.
D.h das der Kampf auch unentschieden ausgehn kann wenn die Gegner gleichstark sind. -
Beispiel:
Person A schickt folgende Schiffe los:
6x Transportschiff
5x Kriegsschiff
1x Tanker
Person B hält mit all seinen Schiffen, die auf der Insel sind, dagegen:
2x Transportschiff
3x Kriegsschiff
4x Tanker
Werte von Schiffen:
Transportschiff: 10 Angriff, 10 Verteidigung Lebenspunkte 100
Kriegsschiff: 100 Angriff, 100 Verteidigung, Lebenspunkte 100
Tanker: 10 Angriff, 10 Verteidigung, Lebenspunkte 10
=> Person A: 570 Angriff, 570 Verteidigung, 570 Leben
=> Person B: 360 Angriff, 360 Verteidigung, 360 Leben
Nun teilen wir den Schaden der einen durch das Leben der anderen Armee. Dies ergibt dann den Anteil an Einheiten jedes Typs, der im Kampf stirbt.
570/360=1,58. 15,8% der verteidigenden Armee werden sterben.
360/570=0,63. 6,3% der Angreife Armee werden sterben.
Nun rechnen wir wieder die Schadenswerte der beiden Armeen aus. Die stärkere entscheidet den Kampf für sich.
Angreifer Armee:
570 in Angriffs Schaden
Verteidiger Armee:
360 in Verteidigungs Schaden.
Der Angreifer gewinnt den Kampf somit. -
@ ringelsocke:
Ja das hört sich schon mal gut an. Aber brauch man dafür Lebenswerte? Man könnte doch auch Angriff_A/Verteidigung_B bzw. Angriff_B/Verteidigung_A rechnen, dann kommt man auf die gleichen Werte. Ich werde mir das nochmal genauer angucken und dann schreib ich dir nochmal.
Beitrag zuletzt geändert: 18.3.2013 18:42:28 von ultimate-bravery -
Bleibt dann nur die Frage wer bei den % bei den gefallenen dabei ist.
Oder man rechnet z.b von den Transporter 15,8% weg usw. -
easylein schrieb:
Bleibt dann nur die Frage wer bei den % bei den gefallenen dabei ist.
Oder man rechnet z.b von den Transporter 15,8% weg usw.
Ja das ist mir grad auch eingefallen. Aber ich würde eher sagen, dass beim Angreifer die Kriegsschiffe bevorzugt werden, damit die Transportschiffe so viele Rohstoffe wie möglich mit von der Insel nehmen können. Aber was ist, wenn wie im Beispiel 6,3% der Flotte zerstört werden soll, die Anzahl der Kriegsschiffe aber nur 3% der Gesamtflotte ist. Dann müssen ja auch noch andere Schiffe zerstört werden. Hat jemand ne Idee, wie das berechnet werden könnte? -
Nun teilen wir den Schaden der einen durch das Leben der anderen Armee. Dies ergibt dann den Anteil an Einheiten jedes Typs, der im Kampf stirbt.
Hab mal dick gemacht ;)
Beitrag zuletzt geändert: 18.3.2013 19:26:09 von ringelsocke -
Im obigen Konzept kann jemand die Prozentrechnung nicht.
Ich würde das ohne Angriffs und Verteidigungswerte machen.
Ich würde jedem Schiffstyp 2 andere Typen zuordnen, und zwar 2 Typen die bei einem Angriff (und einer Verteidigung) von einem betreffenden Schiff vernichtet werden.
Bsp.
1 Kreuzer vernichtet 2 Zerstörer und 3 Mienenboote
1 U-Boot vernichtet 5 Mienenboote und 2 Kreuzer
1 Zerstörer vernichtet 5 U-Boote und 1 Kreuzer
Hat der angreifende Spieler jetzt:
3 U-Boote
2 Kreuzer
2 Zerstörer
Und der verteidigende Spieler:
5 Zerstörer
10 Mienenboote
1 Kreuzer
Jetzt muss man noch eine kampfreihenfolge festlegen
Ich sage die U-Boote schießen zuerst, der Angreifer vernichtet also theoretisch:
3 x 5 Mienenboote = 15 Mienenboote
Der Verteidiger hat 10 Mienenboote also verliert er alle, er hat weiterhin keine U-Boote und richtet deshalb gerade keinen Schaden an
Jetzt sind sagen wir die Zerstörer drann:
Die zerstörer des Angreifers finden keine Ziele, dümpelkn also rum.
Der Verteidiger hat 5 Zerstörer und kann damit theoretisch 5x 5 U-Boote vernichten, der Angreifer hat nur 3 also verliert er alle
Das geht jetzt immer so weiter bis jeder Typ gegen seinen ersten gegnertyp angetreten ist. Dann kann man das Ganze noch gegen den 2. Gegnertyp machen.
Wer gewinnt jetzt ?
Das kommt darauf an:
Man kann Schiffe machen die durch sinnvolle Zusammenstellung der Flotte überleben müssen oder zerstört werden müssen um den Sieg zu bestimmen, es könnte z.B.
Der Verteidiger muss eine Menge Kommandoschiffe haben von denen mindestens 1 überleben muss um erfolgreich zu verteidigen oder der Angreifer alle Kommandoschiffe des Verteidigers zerstören muss um die Insel zu übernehmen. Man könnte bspw. sagen das ein Spieler mit vielen Inseln mehr Kommandoschiffe bekommt sodass es schwieriger wird Ihn anzugreifen.
Man könnte auch sgaen der Angreifer muss eine Menge Landungsschiffe mitbringen und davon müssen je nach Stärke des Verteidigers eine bestimmte Menge überleben damit der Angreifer die Insel besetzen kann.
Oder man macht eine Rohstoffdifferenz, Sieger ist der der die geringsten Verluste in Rohstoffen hat.
So erhält man ein Stein-Papier-Schere Prinzip und durch die Reihenfolge in der der Kampf abläuft und der unterschiedlichen Effektivität der einzelnen Schiffe gegen bestimmte Gegner eine ganz erhebliche taktische Tiefe, führt man noch weitere Kampfsequenzen ein bspw. eine 3. für eine stationäre Küstenverteidigung die bspw. Landungs und Kommandoschiffe angreift oder eine 4. für einen strategischen Gegenschlag kann man sehr gut kann man sehr gut auch weitere Gebäude und Technologien einbinden.
Man kann einem Spieler auch mehrer Flotten geben denen er seine Schiffe zuteilen kann, so kann man bspw. gleichzeitig angreifen und verteidigen oder einem verbündeten beistehen während man selbst angreift oder angegriffen wird...der phantasie sind keine Grenzen gesetzt.
Im übrigen stammt die idee nicht von mir sondern hat in battlewars sehr gut funktioniert.
Beitrag zuletzt geändert: 18.3.2013 19:31:12 von fatfox -
Fatfox' Vorschlag ist ziemlich gut. ;)
Allerdings (vergleichsweise) schwierig umzusetzen.
Sollte es doch auf eine "richtige" Schadensberechnung hinauslaufen würde ich vorschlagen Schadensreduzierung zu berechnen. Eine Flotte kann exakt ihren Angriffswert an Schaden machen.
Das ganze wird allerdings mit dem Verteidigungswert der anderen Flotte verrechnet. Anbieten tuen sich da Formeln wie
( Verteidigung * 100 ) / 100 o.ä.
Man könnte da dann auch noch Sachen wie Rüstungsdurchdringung einbringen, die vor der Schadensreduzierung die DEF Werte temporär verringern. Das eröffnet ein paar spielerische Freiheiten bleibt aber simpel zu berechnen und sehr überschaubar. ;) -
Ich bezweifle aber das man wirklich um einen Wert wie lebenspunkte rum kommt
Da das System besonders am Anfang sonst zu ungenau wird.
nehmen wir an Flotte A greift an und hat insgesamt 600 Angriff
Flotte B hat 5 Schiffe (x) mit 100 Leben und 50 Verteidigung
Und 5 Schiffe (y) mit 100 Leben und 30 Verteidigung.
Der Schaden wird erstmal grundlegend auf die Anzahl der Schiffe verteilt
5 Schiffe (x) würden je 60-60*(50/100) Schaden erhalten also 30 und
5 Schiffe (y) würden je 60-60*(30/100) Schaden erhalten also 42
Eine Rüstungs Durchdringung könnte man einfach machen indem man
Die rüstungs Durchdringung der gesamten Flotte ausrechnet und
die Verteidigung von Flotte B um soviel Prozent verringert.
Wenn Flotte A 4 Schiffe hat von denen die Hälfte eine Rüstungsdurchdringung von 7 hat
Hätte die Flotte eine Rüstungsdurchdringung von 2*7 / 4 = 3,5
Jetzt muss man im Kampf einfach immernoch Verteidigung*3,5/100 von der Verteidigung von Flotte B abziehen.
Bei 5 Schiffe (y) wäre das 30-30*3,5/100 also nur noch 28,5 Verteidigung und somit würden sie
60-60*(28,5/100) also 42,9 Schaden bekommen
-
filesaver schrieb:
Warum sollte das zu ungenau werden ?
Ich bezweifle aber das man wirklich um einen Wert wie lebenspunkte rum kommt
Da das System besonders am Anfang sonst zu ungenau wird.
Man muss es wie bei jedem Spiel natürlich in der Testphase balancen. Es funktioniert wie geschildert, vertrau mir. Es war bereits jahrelang mit vielen hundert Spielern im Einsatz :-)
Beitrag zuletzt geändert: 18.3.2013 22:28:56 von fatfox -
Aber kann man in deinem System so etwas wie Boni und Rüstungsdurchdringung einbringen ?
-
Muss man zwar nicht aber ginge z.B. indem die Werte eines Schiffstyps für seine Gegnertypen modifiziert oder neue Gegnertypen einfügt.
-
Du könntest für jeden Schifsstypen einen sogenannten Initiativewert festlegen beispielsweise zwischen 0 und 10. Je höher der Angriffswert desto höher der Initiativewert. Dann addierst du das ganze für die Flotte des Spielers A auf und das selbe machste mit der Flotte für den Spieler B. Wer den höheren Ini-Wert hat hat natürlich im Spiel den ersten Zug.
Vielleicht ist das auch noch ne Option. -
welchen Anspruch hast du denn an dein kampfsystem? schmeißt du flotten gegeneinander?
dann maximalwerte errechnen, random +/- 20% schaden, +/- 10% panzerungsverhalten und dann einfach prozentual abziehen:
Beispiel:
Angreifer:
20 flugzeugträger 2000Att /5000 Def
50 Zerstörer 800 Att/ 2000 Def
30 Kreuzer 1200 Att / 3000 Def
10 Kanonenboote 500 Att / 800 Def
5 Uboote 2000 Att / 300 Def
-> 131000 Att / 299500 Def
Verteidiger:
20 schlachtschiffe 5000 Att / 12000 Def
-> 100000 Att / 240000 Def
Kampfsimulation mit beispielrandom:
Runde 1: (kannst schauen: schießen beide gleichzeitig oder wer bekommt first strike?
Angriff Flotte 1: Def flotte 2 - Att Flotte 1
250000 - 120000 = 130000 RestDef Flotte 2
Angriff Flotte 2: Def Flotte 1 - Att Flotte 2
299500 - 110000 = 189500 RestDef Flotte 1
Kampfergebnis Runde 1:
130k/250k -> 52% restStruktur Flotte 2 ->10 schlachtschiffe bleiben übrig
189,5k/299,5k -> 63% Reststruktur Flotte 1 -> Übrige Flotte:
13 Flugzeugträger (es muss aufgerundet werden)
32 Zerstörer
19 Kreuzer
7 Kanonenboote
3 Uboote
die struktur musst du ja jetzt nicht neu ausrechnen, sondern jetzt musst du nur die Att werte neu ausrechnen.
Das wäre ein sehr primitives Kampfsystem ohne hirn unt taktik.
Für alles weitere müsstest du die Kampfflotten gliedern in Untereinheiten., wenn du angriffsreihenfolge vorgeben willst, möglichkeit, dass ferfehlt wird, möglichkeit kritischer Treffer, Panzerrungs-Effekte(Schuss) abgeprallt einzelangriffberecfhnung(wenn das schlachtschiff eine artilleriegranate mit 1000 kampfkraft auf ein 800def Kanonenboot feuert, dann sind 200 Att verloren, die nciht in schadensberechnungen mit eingehen. schlachtschiffe können nciht auf Uvboote losgehen, sondern nur Zerstörer und andere Uboote... solche sachen sind es. Einfach mal im Kopf logisch eine schlachtensimulation durchgehen.
Oder kann die Pistole des Kapitäns eines Frachters wircklich ein schlachtschiff beschädigen? (angriffskraft Ziviler schifffahrt mein ich damit)
-
Ich spiele schon eine ganze Zeit Schulterglatze.
Vielleicht ist das für dich Interessant.
http://board.unikatmedia.de/schulterglatze/index.php?/topic/7917-tutorial-manoeverberechnung/ -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage