Ergebnis 1 bis 5 von 5

Thema: Modder gesucht: Gedanken zu einem neuen Kampfsystem

  1. #1
    Ein Platz an der Sonne Avatar von Commander Bello
    Registriert seit
    05.06.05
    Ort
    Nähe Koblenz
    Beiträge
    6.209

    Modder gesucht: Gedanken zu einem neuen Kampfsystem

    (Ray, ich hatte diesen Thread schon offen, als ich dein Posting gesehen habe )

    Ich habe mir - wie Ray auch - Gedanken darüber gemacht, wie man das Colonization-Kampfsystem verbessern könnte.

    Da ich nicht programmieren kann, stelle ich meine Gedanken einfach mal vor, vielleicht inspirieren sie ja den einen oder anderen fähigen Modder.

    1) Beförderungen und Kampfmodifikatoren
    Bei Col wirken Beförderungen in verschiedener Weise.
    Alle Veteran-Beförderungen (Namen sind alle aus TAC entnommen) wirken unmittelbar auf die Stärke der jeweiligen Einheit; d.h., eine Einheit mit Stärke 3 und Veteran_1-Beförderung (+10%) hat immer die resultierende Stärke 3,3.
    Bei allen anderen Beförderungen/Modifikatoren (z.B. durch Geländeboni) ist das nicht unbedingt der Fall. Für diese Modifikatoren zählt nämlich das Modifikatoren-Verhältnis zwischen Angreifer und Verteidiger, und es wird immer auf der Seite des Verteidigers berechnet.
    Eine Beförderung, die eigentlich eine Kampfwertsteigerung des Angreifers bedeutet (z.B. der Gebirgskämpfer), wirkt in der Kampfberechnung als Abzug der Verteidigerstärke.

    Das würde ich gerne dahingehend ändern, dass die jeweiligen Modifikatoren auch tatsächlich auf ihrer jeweiligen Seite zugeschlagen werden - seien es nun Veteranbeförderungen oder andere.

    2) Heilung

    Heilung erfolgt in Colonization "umsonst". Es dauert halt ein wenig

    Auf der anderen Seite kostet eine Einheit faktisch gesehen 200 (mit Ausnahme der Kanonen und Schiffe).

    Ich fände es interessant, wenn die Heilung einer Einheit die entsprechende -Menge aus dem Lager der Stadt mit der höchsten Lagermenge abziehen würde.

    Beispiel:
    Wir haben drei verwundete Einheiten E1 (87% Reststärke => 2,61), E2 (66% Reststärke => 1,98) und E3 (47% Reststärke => 1,41).
    Jede Einheit heilt mit 10% pro Runde (das müsste der Wert für neutrales Gelände sein, wenn ich mich nicht täusche; ist aber für das Beispiel auch egal...).
    Jedes einzelne Prozent Heilung verbraucht 2 aus der Stadt mit der höchsten Lagermenge zu diesem Zeitpunkt (das ist wichtig!).
    Davon haben wir auch wieder drei Städte: A (190 ), B (180 ) und C (80 )
    Weiterhin soll in jede Stadt pro Runde 25 geliefert werden (wir nehmen an, dass die Lieferung zum Rundenende erfolgt). A und B würden also eigentlich in der nächsten Runde einen neuen Bürger erhalten.

    Nun setzt jedoch die Truppenheilung ein:
    E1 heilt um 10% (=20 ), die aus A entnommen werden.
    In der nächsten Runde hat E1 die Stärke 2,91, und A hätte 195 (190 -20 +25).
    E2 heilt um 10% (=20 ), die aber aus B entnommen werden, denn in diesem Moment hat A nur noch 170 (190 - 20) im Speicher. Also hat B am Rundenende 185
    E3 heilt ebenfalls um 10% (= 20 ), die nun wieder aus A entnommen werden, denn A (170 ) hat mehr Vorräte als B (160 ) und als C (80 ) sowieso.

    Das Resultat ist, dass sowohl A als auch B in dieser Runde nicht wachsen konnten (es wurde Nahrung zur Heilung verbraucht = Bürger wurden zu den Waffen gerufen, um Truppenverluste auszugleichen).
    A hat am Ende der Runde 175 (190 - 20 - 20 +25)
    B hat am Ende der Runde 185 (180 - 20 + 25)
    C hat am Ende der Runde 105 (80 + 25)

    (Es wäre ggf. sinnvoll, Mindestmengen zu berücksichtigen, so dass Städte nicht "in die Miesen" laufen können)

    3) Kampfverlauf
    Im Moment ist es so, dass Kämpfe nach folgendem Schema ausgetragen werden:
    Aus den Stärken der Angreifers A (wir nehmen an, der Angreifer sei stärker als der Verteidiger) und Verteidigers V wird nach der Formel A/(A+V) eine Trefferwahrscheinlichkeit für den Angreifer errechnet.
    Der Schaden, den er beim Verteidiger verursacht, errechnet sich aus
    20*((3*A)+V)/((3*V)+A). Es wird immer abgerundet.
    Wenn der Angreifer nicht trifft, trifft automatisch der Verteidiger, für den die Schadensermittlung analog erfolgt ( 20*((3*V)+A))/((3*A)+V)) ). Auch hier wird immer abgerundet.

    Das führt dazu, dass Kämpfe (die - mit Ausnahme von Rückzug des Angreifers [Sonderfall_1] bzw. Flucht des Schiffes [Sonderfall_2] immer tödlich verlaufen), maximal 11 - 13 Kampfrunden umfassen können, immer in Abhängigkeit der jeweiligen Stärken.
    Die Mindestzahl an Kampfrunden (Angreifer trifft immer, ohne Gegentreffer) liegt dann bei 4 Kampfrunden (selbst wenn der Angreifer dreimal stärker sein sollte, z.B. A = 6 und V = 2, bedeutet das, dass A 33 Schadenspunkte zufügt, V jedoch nur 12 => mindestens 4 Kampfrunden).

    Das Problem ist ein mehrfaches:
    a) Wenn der Angreifer nicht trifft, zählt das automatisch als Treffer des Verteidigers.
    b) Es kann sein, dass einer der beiden den Kampf völlig unbeschadet übersteht; ganz egal, wie die ursprünglichen Wahrscheinlichkeiten einmal ausgesehen haben mögen

    Beides ist unlogisch.
    a) Wenn ich im Wald auf meinen Gegner schieße und ihn nicht treffe, heißt das ja noch lange nicht, dass er nun automatisch mich getroffen hätte
    b) wenn eine Einheit 99% Siegchance hatte, dann sollte man zumindest Schäden beim Gegner erwarten

    Ich stelle mir einen Kampfverlauf nun so vor, dass dieser immer über z.B. 8 Kampfrunden (das könnte über xml eingestellt werden) ausgetragen wird, falls nicht eine Einheit vorher schon gewonnen haben sollte (s. dazu auch Pkt 4!); d.h., der Kampf wird wahrscheinlich, aber nicht sicher, tödlich für eine der beiden Seiten verlaufen.
    Je geringer der eingestellte Wert für die Kampfrunden ist, desto höher die Wahrscheinlichkeit, dass beide Einheiten den Kampf überleben.

    Weiterhin nimmt jede Einheit pro Kampfrunde mindestens 5% Schaden (auch, wenn der Gegner nicht trifft).
    Das Ergebnis der einzelnen Kampfrunde wird für beide Seiten ausgewürfelt, nicht nur für den Angreifer. Es ist also nicht gesagt, dass ein Nicht-Treffer des Angreifers automatisch einen Treffer des Verteidigers bedeutet und umgekehrt.
    Wenn eine Einheit nicht selbst trifft, erhält sie mindestens 10% Schaden, selbst wenn die Gegenseite auch nicht getroffen hat.

    Sehen wir uns das konkret an.
    Bisher stellt sich das so dar:
    A (Miliz mit Veteran1) = 3,3 gegen V (Indianer) = 2
    Siegchance A = 96,0%; Siegchance V = 4%
    Mindestrunden (A) = 4 (Angreifer macht 25 Schadenspunkte = 25%)
    Mindestrunden (V) = 7 (Verteidiger macht 15 Schadenspunkte = 15%)
    Maximalrunden = 10 (A trifft dreimal, V trifft siebenmal / A trifft viermal, aber V hat sechsmal getroffen).
    Wir können als Extremwerte folgende Ausgänge haben:
    A gewinnt und hat 100% Reststärke (4 Treffer in Folge, keine "Fehlschüsse")
    V gewinnt und hat 100% Reststärke (7 Treffer in Folge, nur "Fehlschüsse" des Angreifers)

    Wir nehmen jedoch einen durchwachsenen Kampfverlauf an, bei dem A zwar gewinnt, aber 3mal nicht getroffen hat. V hat demzufolge 3mal getroffen.
    Das wäre bei Colonization dann:
    A gewinnt und hat 65% Reststärke (100 - (3*0,15))

    Nach meinem System wären die Extremwerte nun diese:
    A gewinnt und hat 80% Reststärke (4 Treffer in Folge, aber 5% Schaden pro Kampfrunde)
    V gewinnt und hat 65% Reststärke (7 Treffer in folge, aber 5% Schaden pro Kampfrunde)

    Der "durchwachsene" Kampf hätte dann folgenden Ausgang (wir nehmen an, dass V selbständig dreimal getroffen hat):
    A gewinnt und hat (100 - (3*0,15)-(3*0,1)) = 35% Reststärke.

    4) "Unerwartete Ergebnisse"
    Viele Spieler sind - m.E. zu Recht - erbittert darüber, dass sie die berüchtigten 99%-Kämpfe verlieren - am "besten" noch ohne eigenen Treffer .

    Ich würde hier in den xml-Dateien einen "Schwellwert" eintragen, ab welchem man einen Kampf nicht mehr verliert.
    Die Berechnung des Kampfes würde gem. Pkt. 3 erfolgen, so dass eine hochüberlegene Einheit sehr wohl Schaden nehmen kann, aber diese extremen Niederlagen nicht mehr vorkommen würden.
    Mit anderen Worten, in den obigen Beispielen würde A maximal 6 Treffer hinnehmen; wenn das geschehen ist, wird der Kampf beendet.
    Man könnte in diesem Fall V durchaus überleben lassen, nur "stirbt" A halt nicht - zumindest nicht in diesem Kampf, es kann ja sein, dass noch andere Einheiten des Gegners zugegen sind.

    =============================
    Anmerkungen, Kritik, Autogrammwünsche?
    Geändert von Commander Bello (14. August 2011 um 00:51 Uhr) Grund: Klarstellung, Verbesserung, Rechtschreibung


  2. #2
    Col-Modder Avatar von raystuttgart
    Registriert seit
    19.03.10
    Ort
    Stuttgart
    Beiträge
    4.585
    Zum Thema Heilung:

    Ich hatte mir mal sowas vorgestellt, wie Einheiten (oder Berufe mit Spezialisten), die Militäreinheiten auf dem Schlachtfeld reparieren oder heilen.

    Ein Militärarzt hätte beispielsweise Verbandsmaterial / Medikamente dabei um Infanterie und Kavallerie zu heilen.
    (Ohne Militärarzt könnten diese Einheiten nur einen kleinen Teil der Gesundheit regenerieren.)

    Ein Handwerker (mir fehlt der passende Name) hätte Werkzeuge dabei um eine Artillerie (oder beispielsweise einen Wagenzug) zu reparieren.

    Bei jeder Heilung / Reparatur wird vom entsprechenden Material etwas verbraucht.
    Hat die Einheit nichts mehr davon, muss sie es in einer Stadt oder durch eine Transporteinheit auffüllen, bevor sie wieder reparieren / heilen kann.

    In einer Stadt bräuchte es die Einheiten (Militärarzt / Handwerker) für die Heilung / Reparatur nicht.
    (Mit der Einheit ginge es aber deutlich schneller.)
    Die entsprechenden Ware müssten aber verfügbar sein.

    KI:

    Das beschriebene Verhalten könnte man den KI-Einheiten durchaus grundsätzlich beibringen.

    Allerdings würde die KI das Gesamtkonstrukt wohl nie so gut beherrschen, wie ein menschlicher Spieler.

    Die KI würde beispielsweise die nötigen Waren Werkzeuge / Medikamente oft gar nicht ausreichend verfügbar haben.
    Oder sie würde ihre Prioritäten für Reparatur und Heilung immer wieder falsch setzen.
    Oder sie passt nicht gut genug auf ihre Militärärzte, Handwerker und Versorgungstransporte auf.
    Oder sie zieht angeschlagene Einheiten nicht effektiv aus dem Kampfbereich zurück.
    Oder sie hat viel zu viele Militärärzte / Handwerker oder einfach viel zu wenige.
    Oder ...
    Oder ...
    Oder ...

    Zu deinen anderen Punkten:

    Da stimmt mir einfach der Aufwand zu meinem persönlichen Spielspaß-Gewinn nicht, um je eigene Arbeit da rein zu stecken.
    Geändert von raystuttgart (14. August 2011 um 13:30 Uhr)
    Teammitgleid dieses Projekt für Colonization:
    [Mod] We The People
    (Nachfolgerprojekt von Religion and Revolution)

    Davor Teammitgleid dieses Projekt für Colonization:
    [Mod] Religion and Revolution

    Vor-Vorheriges Projekt für Colonization:
    [ModMod] ray's Wunschliste

    Und wiederum davor Teammitglied von:
    [Mod] The Authentic Colonization (TAC)

  3. #3
    Ein Platz an der Sonne Avatar von Commander Bello
    Registriert seit
    05.06.05
    Ort
    Nähe Koblenz
    Beiträge
    6.209
    Zitat Zitat von raystuttgart Beitrag anzeigen

    Zu deinen anderen Punkten:

    Da stimmt mir einfach der Aufwand zu meinem persönlichen Spielspaß-Gewinn nicht, um je eigene Arbeit da rein zu stecken.
    Nun ja, man muss die Dinge im Zusammenhang betrachten.

    Die Konzepte "Heilung" und "Kampfverlauf" sollen nachvollziehbarere Kampfergebnisse und realistischeres Verhalten der gesamten Kolonie ermöglichen.
    Einheiten sind halt nicht entweder Gewinner des Kampfes oder tot, sie können (und das wäre durch eine gescheite Einstellung in den xml-Dateien zu bewerkstelligen) die Kämpfe auch mehrheitlich überleben.
    Aber die Kolonie spürt den ständigen Verlust an Menschenleben, weil sie langsamer wächst.
    Erhöht man das Nahrungs-Heilungsverhältnis für feindliches/neutrales Gebiet, würden dadurch auch noch die Desertionen im Nachschub abgebildet.

    Insgesamt bin ich der Meinung, würde dadurch die Auswirkung des Krieges recht gut dargestellt werden.

    Aber ja, es wäre sicherlich ein wenig manueller Aufwand dafür notwendig


  4. #4
    Ein Platz an der Sonne Avatar von Commander Bello
    Registriert seit
    05.06.05
    Ort
    Nähe Koblenz
    Beiträge
    6.209
    Die Heilung ist in der aktuellen Version meiner Modmod (für RaR 2.0) bereits umgesetzt worden.
    Das Kampfsystem befindet sich derzeit in Überarbeitung, wie hier zu sehen ist.

    Weitere Umsetzungen der in diesem Faden angesprochenen Gedanken folgen in Kürze (hoffe ich).


  5. #5
    Registrierter Benutzer
    Registriert seit
    29.02.04
    Beiträge
    59
    Wenn es um ein besseres Kampfsystem geht, könnte man sich durchaus mal ein Vorbild an Civ-Revolution nehmen. Was an Civ4-Col auffällt, es gibt viel zu viele Beförderungen, die man schon mal drastisch reduzieren müßte, auch deshalb, weil man gegen die Indianer auch friedlich spielen kann und dann am Ende des Spiels nach der Rebellion gegen königliche Truppen ganz schlecht darsteht. Stattdessen könnte man allgemein die Boni/Mali für bestimmte Geländetypen erhöhen.
    Nimmt man z.B. mal die Kanone, dann sollte diese als Distanzwaffe nicht automatisch auf das Feld der gegnerischen Einheit vorrücken wenn sie diese erledigt hat.
    Man sollte Kanonen auch nicht einfach so über Berge karren können (die man im übrigen auch unbegehbar machen könnte) und es ist auch klar, daß man mit einer Kanone im Wald nicht gut feuern kann ;-)
    Am Ende sollten nur einige wenige breit einsetzbare oder sinnvolle Beförderungen übrig bleiben, die man durch individuelle Kampferfahrung von Einheiten gewinnt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •