DSA 4.1-Kampf-Unterstützungstool „Combat Alrik“ wieder verfügbar


Kurzfassung


Nachdem Combat Alrik viele Jahre nicht mehr lauffähig war, gelang es mir kürzlich, das Programm mit Hilfe von Codex wieder auf eine moderne Python-Version zu portieren.


Was ist Combat Alrik?

Combat Alrik hilft DSA-Spielleitern bei der Kampfverwaltung. Sämtliche Interaktionen der Nichtspielercharakter werden über Combat Alrik gesteuert. Zudem wird für alle Kämpfer die Initiative verwaltet.

Für die Spieler ändert sich nichts. Diese würfeln normal Attacken und Paraden, sagen Manöver an und verwalten ihre Lebensenergie. Nur die Folgen dieser Handlungen auf die Nichtspielercharaktere werden über Combat Alrik gesteuert. Greift ein Held beispielsweise an (wobei er selbst würfeln muss), so gibt der Spielleiter, im Falle einer erfolgreichen Attacke, diesen Angriff bei Combat Alrik ein. Das Programm bestimmt, ob pariert wurde, teilt gegebenenfalls Schaden zu (unter Beachtung des zonenspezifischen Rüstungsschutzes), berücksichtigt die Effekte von Wunden oder niedriger Lebensenergie. Auch eine etwaige Kampfunfähigkeit wird geprüft. Ebenfalls werden Erschwernisse misslungener Manöver bei der nächsten Aktion als Erschwernis berücksichtigt.

Umgekehrt nimmt der Spielleiter die Attacken der Nichtspielercharaktere über das Programm vor. Combat Alrik errechnet ob und wo getroffen wurde und welche Trefferpunkte erzielt wurden Dies teilt der Spielleiter den Spielern mit, die ihrerseits parieren können – allerdings klassisch per Würfelwurf.

Dadurch das Combat Alrik für alle Nichtspielercharaktere alle Regeln umsetzt und die Initiativverwaltung komplett übernimmt, hat der Spielleiter erheblich mehr Zeit, sich um andere Aspekte des Spiels zu kümmern.

Combat Alrik ist in Python geschrieben und damit praktisch plattformunabhängig.


Historie

Als wir circa 2009 in unserer DSA-Runde DSA 4 einführten, schloss ich mich über ein Osterwochenende ein und eignete mir die Regeln an.

Trotz dessen hatte ich damals die Sorge, dass Kämpfe von mir als Spielleiter nur mit großer Mühe zu verwalten sind – gerade wenn man viele Kämpfer, Distanzklassen, kombiniert mit Effekten aus Wunden (für unterschiedliche Trefferzonen), vor Augen hat.

Ein Freund, mit der Internet-Identität „Serbitar“ (so auch in vielen Foren vertreten), nahm sich dem an und programmierte Combat Alrik.

In der DSA-Community war die Wertschätzung nach meiner Beobachtung nicht ganz so hoch, weil die Bedienung etwas kryptisch ist. Diese erfolgte primär über eine Kommandozeile. Serbitar fügte zwar später noch eine graphische Benutzeroberfläche hinzu – mit Blick auf die hohe Komplexität, die ein Angriff haben kann (wer wird angegriffen? Wuchtschlag oder Finte oder beides? Wohin wird getroffen? Wie viele TP? gibt es ein weiteres Manöver?) verlangte die Eingabe etwas Zeit.

Ich nutzte Combat Alrik praktisch ausschließlich über die Kommandozeile – mit nur etwas Übung war das gut machbar.

Irgendwann wurde ich aber so sattelfest im Regelwerk, dass ich, trotz der Komplexität der Regeln, in vielen Kämpfer ohne Software schneller war. Nur für Gefechte mit vielen Kämpfern griff ich noch auf Combat Alrik zurück – aber auch diese Anwendungszweck wurde, auch bedingt durch die Abenteuer, die wir spielten, weniger.

Einige Jahre später war ich jedoch Spielleiter des Abenteuers „Äonenstaub“. Hierbei gibt es im Finale eine gewaltige Armee, welche den Helden gegenübersteht. Obgleich es nicht geplant ist, dass die Helden diese Armee als Ganzes bekämpfen, kann es doch zu ein paar Kampfrunden kommen, in denen wirklich viele Gegner berücksichtigt werden müssen. Hierfür wollte ich Combat Alrik verwenden. Nur ich fand den Code nicht mehr. Serbitar hatte ihn auch nicht mehr. Damit schien es um Combat Alrik geschehen zu sein.


Zwischenzeit

Ein paar Jahre später fand ich das Programm doch noch; mir ist ex post unklar, warum ich zunächst nicht gefunden hatte. Nur – es war nicht mehr zu Laufen zu bringen. Der Code war in Python 2 geschrieben und mittlerweile war Python 3 etabliert und der alte Code wäre nur mit großer Mühe verwendbar gewesen – Mühe, die ich nicht auf mich nahm.

Ich startete im Nachgang ein paar Anläufe, sprach auch mit ein paar Programmierern, ob man den Code auf Python 3 aktualisieren könnte – aber erfolglos – offenbar zu mühevoll.


Gegenwart

Aufgrund zahlreicher Erfolge mit Künstlicher Intelligenz in in zahlreichen Belangen kam mir vor einigen Wochen der Gedanke, Codex (der Programmier-Agent OpenAIs), mit der Aufgabe der Konvertierung CombatAlriks zu Python 3 zu betrauen. Und das war ein Durchbruch! Nach nur kurzer Zeit war der Code wieder lauffähig. Nur ein paar Fehler waren zu beheben.

In den nachfolgenden Wochen arbeitete ich hin und wieder an dem Programm und ergänzte und verbesserte einzelne Aspekte. Vor allen Dingen erstellte ich auch eine „Bedienungsanleitung“, die sicherstellen soll, dass künftigen Nutzern die Bedienung leichter fällt.

Neue Funktionalitäten sind insbesondere:

  • Vollständige Implementierung der Distanzklasse X für Dämonen mit „Langer Arm“
  • Korrekte Abbildung von Angriffen mit Fernkampfwaffen
  • Ergänzung einer Funktion, die Trefferpunkte um einen Faktor (z.B. 0,5 oder 2,0) zu modifizieren, um beispielsweise Resistenzen oder Verwundbarkeiten gegen bestimmten Waffen abzubilden.
  • Leichte Verbesserungen der graphischen Oberfläche.
  • Verhinderung der Ausgabe von Fehlermeldungen in vielen Fällen bei falschen Kommandos. Stattdessen wird ein Hinweis gegeben.
  • Diverse kleinere technische Verbesserungen
  • Einzelne neue praktische Befehle.

Das neue Combat Alrik mag (wird auch) nicht fehlerfrei sein – es ist aber eine große Hilfe für Spielleiter bei DAS 4.1. Daher, und mit Einverständnis Serbitars, ist es nun wieder verfügbar.

Falls es Fehler gibt oder weitere Funktionalitäten gewünscht sind (ein paar eher exotische Sonderfertigkeiten fehlen noch) – all‘ dies nehme ich gerne auf.

Dateien: