Letzte Chance: Ukraine-Humblebundle
Thursday, 24. March 2022
Das erst kürzlich gestartete "Stand With Ukraine"-Humblebundle endet bereits bald. 125 Items sind darin, darunter vor allem ein paar interessante Spiele wie Metro Exodus.
Einiges davon war noch nicht in meiner Spielesammlung, die ja doch schon einige andere Spielebündel gesehen hat.
Das Angebot läuft noch etwas mehr als 24 Stunden. Über 14 Millionen Euro wurden bereits eingenommen, 100% davon sollen an vier Hilfsorganisationen gehen: Razom for Ukraine, International Rescue Committee (IRC), International Medical Corps und Direct Relief.
Mit SnapForX Aerosnap für beliebige Linux-Fenstermanager nachrüsten
Monday, 21. March 2022
Die von Windows 7 eingeführten Aerosnap-Fensterkontrollen fand ich schon immer großartig. Mit ihnen werden zur linken Monitorseite gezogene Fenster auf die linke Hälfte des Monitors maximiert, die rechte maximiert sie auf die rechte Hälfte, zieht man sie an den obere Rand bedecken sie den ganzen Bildschirm. Sollen die Fenster wieder klein werden zieht man sie einfach nach unten, schon springen sie zurück, das gefiel mir besonders.
In der Linuxwelt ist das auch schon länger angekommen, aber hauptsächlich in den größeren Desktopumgebungen. Kleinere Fenstermanager wie das von mir genutzte IceWM beherrschen solche dynamischen Kontrollen normalerweise nicht. Bei ihnen sind die Fenster so starr wie bei Windows 95. Tiling-Fenstermanager können zwar auch die Fenster geschickt anordnen, aber ist ihr Ansatz dafür schon sehr anders. Und an Kontrollen über die Tastatur wie durch quicktile konnte ich mich nie gewöhnen.
Deshalb habe ich mit SnapForX ein Skript geschrieben, das den Ansatz der Aerosnap-Kontrollen für X-Fenstermanager nachrüsten kann. Perfekt ist es nicht, als angenehm empfinde ich es trotzdem.
SnapForX in aller Kürze
So sieht es in Bewegung aus, der gezeigte Fenstermanager ist IceWM:
SnapForX ist ein Bashskript. Es benutzt eine wilde Mischung aus Hilfsprogrammen um diese Fensterkontrollen nachzubilden – besonders xdotool und wmctrl, aber auch xinput, awk, cut und xprop werden gebraucht. Das Skript lässt sich dann direkt ausführen. Die alternative Installation ist aber auch nicht kompliziert, das Skript einfach irgendwo in den PATH schieben und starten:
snapforx -l -r -t -iof
-l
, -r
und -t
aktivieren die Reaktion auf die linke, rechte und obere Monitorseite, -iof
lässt das Skript Vollbildanwendungen ignorieren.
Der Code ist ein Fork von cornora, einem Skript um Befehle durch Verharren des Mauszeigers in den Bildschirmecken auszuführen.
Der Ansatz
Der X-Server lässt zwar den Zugriff auf viele Informationen zu und ermöglicht auch Fensterkontrollen von außerhalb des Fenstermanagers, aber um Fensterkontrollen im Stil von Aerosnap umzusetzen waren ein paar Tricks erforderlich.
Um zu erkennen, ob der Mauszeiger am Rand des Bildschirms ist, wird regelmäßig die Mauszeigerposition abgegriffen. Ist deren X-Wert nahezu 0 ist er links, ist er fast so groß wie der Monitor breit ist sind wir am rechten Rand, ist der Y-Wert kleiner 1 ist der Zeiger ganz oben. Ob der Mauszeiger dort verharrt wird getestet, indem diese Prüfung mit einer kleinen Verzögerung zweimal hintereinander ausgeführt wird. Das ist so ziemlich wie cornora funktioniert, nur leicht erweitert.
Aber hieran knabberte ich lange: Wie erkennen, dass ein Fenster bewegt werden soll? Die üblichen Werkzeuge wie xdotool geben da keine brauchbaren Informationen. Ich könnte mir alle Fenster und ihre Position ausgeben lassen, aber wenn der Nutzer ein maximiertes Fenster nach unten zu schieben versucht ändert sich keine Fensterposition.
Der Ansatz jetzt kombiniert mehrere Ideen:
-
Schaue mittels
xinput
, ob die linke Maustaste gedrückt wird. -
Wenn ja, gucke ob der Mauszeiger im oberen Bereich eines Fensters ist. Das ist ein Vergleich von
xdotool getmouselocation
mit der Y-Koordinate ausxdotool getactivewindow getwindowgeometry
. Das aktiviert für 5 Takte à 0,1 (einer unbekannten Einheit, weil ich die delay-Funktion nicht verstehe) den Bewegungsmodus, ab jetzt können Fenster maximiert werden. - Zum Unmaximieren kommt die letzte Erkennung hinzu: Wenn der Mauszeiger jetzt, also bei gedrückter Maustaste auf einer Fensterdekoration startend, zwei Takte à 0,5 unbekannter Einheit nach unten bewegt wird, dann wird das aktive Fenster demaximiert.
Dass diese Erkennungen zusammengreifen und tatsächlich halbwegs ordentlich funktionieren, damit hatte ich nicht wirklich gerechnet. Entsprechend zufrieden bin ich gerade mit dem Ergebnis.
Limitierungen
Allerdings hat dieser Ansatz natürlich seine Probleme. Ich sehe keinen Weg die Animationen einzubauen, die bei Windows und den Desktopumgebungen vorankündigen wie das Fenster beim Loslassen der Maustaste sich bewegen wird. Stattdessen wird das Fenster direkt bewegt, was dem Nutzer weniger Kontrolle gibt. Zudem springen die Fenster gerne mal völlig unflüssig hin und her, z.B. wenn man nach dem vertikalen Maximieren an einer Monitorecke dann nochmal bei gedrückter Maustaste den Mauszeiger bewegt. Vielleicht lässt sich das noch etwas besser glattbügeln, aber dass es perfekt wird scheint unmöglich, weil da der Fenstermanager und das Skript sich praktisch um die Kontrolle des Fensters streiten. Vielleicht könnte das Skript irgendwie anders markieren, wie es das Fenster bewegen will, und es ebenfalls erst beim Loslassen der Maustaste durchführen.
Kleinere Unfertigkeit: Da xinput die ID einer bestimmten Maus braucht sucht sich das Skript am Anfang eine aus. Der Code unterstützt also weder Mauswechsel während des Betriebs noch mehrere Mäuse an einem System, das dürfte besonders manche Laptopnutzer blockieren. Wer da Ideen für eine bessere Lösung hat möge einen PR einsenden.
Vielleicht ein weiterer Baustein für den eigenen Linuxdesktop. Zumindest empfand ich es als nette Trickserei. Vielleicht geht es ein paar weiteren hier mitlesenden Linuxern auch so. Verbesserungsvorschläge und vor allem Codeverbesserungen wären gern gesehen.
Linksammlung 11/2022
Friday, 18. March 2022
Diese Woche fand ich besonders erwähnenswert:
Dank dem Steamdeck bekommt jetzt die Masse mit, wenn Proton und Valves Infrastruktur Spielen auf Linux Vorteile gegenüber Windows verschafft. Valve does what FromSoftware don’t, thanks to Steam Deck’s precaching update beschreibt, wie die vorkompilierten Shader dem technisch etwas vermurksten Elden Ring auf die Sprünge helfen.
Die Initiative Ruby Together pumpt netterweise etwas Geld in Rubys Ökosystem.
Bei Audio Input mittels Pipewire auf den Kopfhörern ausgeben sieht man greifbare Vorteile von Pipewire. Ich hätte tatsächlich die Umleitung mit Alsa nicht umzusetzen gewusst. Helvum sieht nett aus.
Dirk misst den Effekt von Kompressionsverfahren bei Borgbackup. Wenn man ohne Daten vor der Auswahl steht ist die gar nicht so einfach.
Über Hype bei Spielen auf GamersGlobal
Monday, 14. March 2022
Wer möchte kann einen Artikel von mir bei GamersGlobal lesen:
Hype, Spieletests und Immersion
…
Wenn Entwickler und Publisher ihre neuen Spiele bewerben, geschieht dies nicht selten mit dem Versprechen "vollständiger Immersion". In der Praxis ist diese aber extrem schwer zu erreichen. Wenn der Hype um ein Spiel maßgeblich auf dieser versprochenen Immersion aufgebaut wird, dann kann das Ergebnis fast nur enttäuschen. Das Spiel muss dann in anderen Bereichen umso hervorragender sein und die unweigerlich unbefriedigende Immersion durch Spielmechanik und Spielspaß aufwiegen, sonst droht der Mega-Shitstorm. Zusätzlich befeuert wird der typische "auf Hype folgt Gegenhype"-Effekt durch umfangreiche Previews und Spieletests, die nicht selten das Immersionsversprechen noch befeuern. Welche unterschiedlichen Auswirkungen dies haben kann, möchte ich an einigen Beispielen wie Cyberpunk 2077 und Elden Ring zeigen.
Ich fand er passte dort besser als hier im Blog. Aber erwähnt wollte ich ihn hier auch haben :)
Phantom Doctrine, ein XCOM ohne Aliens
Monday, 14. March 2022
Phantom Doctrine übernimmt viele Elemente aus der XCOM-Reihe, hat aber ein ganz anderes Setting und viele eigene Ideen. Die meisten davon sind spaßig, aber was an dem Spiel nicht funktioniert ist fast interessanter.
Verschwörung im Kalten Krieg
Erstmal zum Szenario: Es ist kalter Krieg. Wahlweise auf Seiten der UdSSR oder der USA steht man am Kopf einer Mini-Geheimorganisation, die in den Sog einer größeren Verschwörung gerät.
Das spielt sich stark wie das XCOM-Vorbild. Es gibt eine ausbaubare Basis. In ihr können auch neue Geheimagenten rekrutiert, ausgerüstet und verbessert werden. Diese Agenten übernehmen entweder Aufgaben in der Basis (wie, wichtig, das Herstellen von Falschgeld) oder reisen auf der Weltkarte umher, um dort auf Aktionen der Gegner zu reagieren. Die wollen dann zum Beispiel einen Informanten ermorden, sind genug eigene Agenten in der Nähe, können sie dies per Knopfdruck und investierter Zeit verhindern. Reicht die Zeit nicht oder soll eine feindliche Zelle ausgehoben werden bleibt nur der Angriff. Dafür wechselt das Spiel von der Weltkarte auf das jeweilige Missionsgebiet und dabei in den Rundenkampfmodus.
Auch dieser Rundenkampfmodus ist erstmal nicht groß anders als bei XCOM. Agenten haben Bewegungs- und Angriffsaktionen, wobei manche Aktionen den Zug des Agenten direkt beenden. Die Umgebung kann als Deckung dienen, Deckung ist je nach Höhe entweder halb oder vollständig und schützt dann weniger oder mehr. Anfangs wissen die Feinde nicht dass man dort ist, erst beim direkten Feindkontakt beginnt ein Gefecht. Natürlich gibt es unterschiedliche Waffen und haben die Agenten unterschiedliche Fähigkeiten, gleiches gilt für die Gegnertypen. Dazu gehört das Überwachen eines Bereiches, in dem dann Bewegungen des Gegners in seinem Zug einen Schuss auslösen. Ein typisches Missionsziel wäre das Erledigen aller Gegner oder, je nach Missionstyp, das Platzieren oder Entschärfen von Bomben.
Viele Unterschiede, mehr als im Detail
Was gerade beim Rundenkampfmodus erstmal sehr ähnlich wie das offensichtliche Vorbild klingt ist dann durch geschickte Unterschiede doch ganz anders.
Fast alle Missionen lassen sich ohne ein offenes Gefecht lösen. Die Gegner haben Sichtkegel, bleibt man ihnen fern wird man nicht erkannt. Ein offener Schuss würde das Gefecht immer auslösen, aber ein unbeobachteter und schallgedämpfter nicht, zudem haben alle Agenten die Möglichkeit Feinde lautlos umzuhauen. Das Ergebnis: Mehr als ein Rundenkampfspiel ist Phantom Doctrine ein Rundenschleichspiel, in dem man versucht die Missionen ungesehen zu erledigen. Denn Phantom Doctrine bestraft den offenen Kampf: Feindliche Verstärkung rückt nach der Entdeckung alle 6 Runden an, alternativ erfolgt gar ein Luftangriff. Kämpfe erhöhen den individuellen Gefährdungslevel der Agenten, ist er auf Maximum senkt er sich nicht mehr, ist zudem seine Identität kompromittiert und Feinde werden ihm auflauern. Nichts, was ein neuer Pass nicht reparieren kann, aber ein starker Anreiz das Schleichen zumindest zu priorisieren. So ist es zudem auch einfacher, ohne Zeitdruck beim Erledigen der Mission herumliegende Geheimdokumente abzufotografieren und Ausrüstung aufzusammeln.
Die Kämpfe selbst wirken auch anders weil Schüsse immer treffen. Was sich unterscheidet ist nur wieviel Schaden angerichtet wird, was von der Deckung bzw vom Wahrnehmungszähler abhängt. Beschuss reduziert erstmal nur Wahrnehmung mit etwas Schaden als Nebeneffekt, erst ohne Wahrnehmung wird Schaden voll vom Leben abgezogen, wobei dann noch die Deckung sich auswirken muss. Das ist ungewohnt, aber bei eigenen Angriffen der Ungewissheit des Zufallsgenerators nicht ausgeliefert zu sein ist auch angenehm. Alle Gegner haben ebenfalls Wahrnehmung, aber nur bei feindliche Agenten ist sie schon vor Gefechtsbeginn auf Maximum – was schlicht bedeutet, dass feindliche Agenten beim Schleichen nicht heimlich erschossen, sondern nur umgehauen werden können (was auf höheren Schwierigkeitsgraden nur geht, wenn der eigene Agent mehr Leben hat, immer aber eigene Wahrnehmung kostet).
Auch auf der Weltkarte und beim Basisbau ist das Spiel keine direkte Kopie. Die Basis kennt zwar Upgrades, aber die werden einfach aus einer Liste ausgewählt, brauchen keine Energie und keinen freien Raum, nur Geld. Die Basis lebt aber auch sehr viel weniger, denn es gibt keine mit einem sprechenden Abteilungsleiter, die Menüs sind also weniger schön verpackt. Immerhin, das Aussehen der Agenten ist anpassbar und ihre Werte werden durch Doping verbessert, was teils sich heftig auswirkt durch mehr Bewegungs- und Aktionspunkte. Und was auf der Weltkarte passiert ist natürlich deutlich anders, schon weil keine Kontinente unter die eigene Kontrolle gebracht werden müssen, sondern verschiedene Geheimdiensttätigkeiten der Feinde vereitelt. Im Grunde verteilt man eigene Agenten in den Städten der Welt, die dann bei Bedarf in andere Städte reisen.
Erweiterte Mechaniken
Dazu kommen einige eigenständige Spielmechaniken, die oft vom Szenario motiviert sind.
Für die zwei in den Kämpfen gilt das weniger. Stehen mehrere Agenten vor einem Raum, können sie ihn stürmen und erledigen dann darin die Gegner. Mit schallgedämpften Waffen wird so nichtmal Alarm ausgelöst, auch Überwachungsreaktionen werden verhindert. Das wird selten gebraucht, ist aber ganz angenehm. Gleiches gilt für die strategischen Aktionen wie dem außerhalb des Missionsgebietes platzierbaren Scharfschützen, der gegen Strategiepunkte einzelne Gegner ausschalten kann. Voraussetzung dabei, dass vorher mit einer Weltkartenaktion das Missionsgebiet ausgekundschaftet wurde, was etwas Zeit kostet.
Außerhalb der Rundenkämpfe sind die Szenariobezüge stärker. So hat auch die Basis einen Bedrohungszähler. Ist er voll, wird die Basis gestürmt (was leider nur ein Textboxevent ist), wodurch Agenten verlorengehen können und die Basis verlegt werden muss. Besser vorher selbst die Basis verlegen, was Geld kostet, aber den Bedrohungszähler wieder reduziert. Erfolgreiche feindliche Aktionen auf der Weltkarte können ihn erhöhen, dann führt der Gegner eine Erkundungsmission in einem Ort auf der Weltkarte durch. Werden vorher dort Agenten hingeschickt können sie das verhindern. Aber auch manche eigene Aktionen wie das Rekrutieren neuer Agenten erhöht die Gefahr.
Die Loyalität eigener Agenten ist dabei nichtmal gewährleistet. Sie könnten Schläferagenten sein, die einem beim nächsten Gefecht verraten und direkt die Seite wechseln werden. Eine Gehirnwäsche in der späteren MK-Ultra-Basiserweiterung behebt dieses Problem, kostet aber Geld. Auch feindlichen Agenten (die man in den Missionen ja umhauen und dann mit evakuieren kann) können so Gehirngewaschen werden, trifft man sie dann später wieder reicht eine Aktion und sie dienen dauerhaft der eigenen Sache. Oder alternativ kann man sie auch als Saboteur losschicken, wenn sie eine feindliche Basis erreichen wird sie zerstört, überleben tut der Agent das dann aber nicht.
Immer aber sollte man feindliche Agenten verhören. Das kann mehrere Dinge freischalten: Bislang unbekannte Perks eigener Agenten, die Identität feindlicher Agenten, den Standort von dann zerstörbaren Feindeszellen, mögliche neue Rekruten und vor allem Geheimdokumente. Die landen mit den anderen auf den Investigativtafeln. Diese zu lösen ist immer mal wieder auch die Hauptmission. Die Dokumente haben entweder sofort sichtbare Stichwörter, oder sie müssen in Texten erst markiert werden. Dann können die mit gleichem Stichwort verbunden werden. Es geht dabei immer darum, einen Ort oder eine Person einem gegebenen Startcodewort zuzuordnen, was dann beispielsweise den Standort einer feindlichen Hauptbasis verrät.
Ähnlich ist der Effekt von Informanten. Immer wieder signalisieren Orte auf der Weltkarte verdächtige Aktionen. Schickt man einen Agenten dorthin ist an dem Ort meist einfach ein Informant, der nach einer Weile auch Informationen wie Geheimdokumente preisgeben wird. Manchmal muss er, wie oben erwähnt, vor feindlichen Aktionen geschützt werden. Ultimativ dient das primär dem Füllen der Investigativtafeln.
Viel verschenktes Potential
Die Investigativtafeln sind ein gutes Beispiel für die Schwäche von Phantom Doctrine. Sie sind toll gemacht und machen Spaß – am Anfang. Da sich die Stichwörter immer wiederholen und es immer neue Geheimdokumentsammlungen gibt, wird sie zu lösen mit der Zeit nervig. Zum Glück kann man das mit ein paar Basisupgrades automatisieren, das bindet dann aber bis zu vier Agenten und ist nicht gerade schnell. Mir schien es sogar langsamer zu sein als durch fleißiges Verhören von Feindagenten neue Informationen ankommen, ich musste also immer wieder doch manuell die Verbindungen herstellen. Mir war das nie zu frustrierend, aber gelungenes Spieldesign ist das auch nicht.
An vielen Stellen merkt man, dass Phantom Doctrine mit begrenzten Mitteln umgesetzt wurde. So wiederholen sich die kleinen Zwischensequenzen dauernd, beispielsweise wenn das Fluchtauto am Missionsgebiet ankommt. Die Zwischensequenz an sich ist nett und lockert das Geschehen auf, aber weil es immer die gleiche ist wird sie später eher nervig. Bei Agenten kann aus einer Handvoll Sprecher ausgewählt werden, gleichzeitig ihrem Charakter, was ändert wie sie Befehle kommentieren. Eine Handvoll (immer englischer) Sprecher ist nicht ansatzweise genug für alle, viele klingen also gleich. Agenten haben Portraits, ihr Aussehen ähnelt dem aber selten sehr, gerade bei den Frauen fehlte da wohl Feintuning. Bei denen ist auch noch die Kleidung feindlicher Agenten immer gleich. Man kann da jeweils manuell nachbessern, aber das ist etwas mühsam, und selbst bei diesen Anpassungsoption fehlt Auswahl.
Ähnliches gilt leider auch für die Rundenkämpfe selbst. Die Einsatzorte wiederholen sich häufig - damit meine ich nichtmal den Charakter der Städte, die unterscheiden sich leider sogar gar nicht. Nein, außerhalb der Hauptmissionen laufen beispielsweise die Angriffe auf feindliche Zellen gefühlt auf einer Handvoll von Karten ab. Kleinere Variationen gibt es immer, trotzdem ist das repetitiv. Da hilft es nicht, dass die Ziele meist die gleichen sind – nur manche Missionen müssen wirklich bestritten werden. Andere, wie das Schützen von Informanten, kann auch eine Aktion auf der Weltkarte ohne Wechsel in den Rundenkampfmodus zeiteffizienter bewirken, wodurch ich diesen Missionstyp nur selten erlebte.
Selbst den Schleichfokus sehe ich als Problem. Besonders er macht aus Phantom Doctrine ein eigenständiges Spiel und ist ein großer Unterschied zu XCOM, was an sich toll ist. Aber es gibt zu wenige Missionen, die das Kämpfen erfordern – und warum rüstet man seine Agenten immer weiter mit besseren Waffen aus, wenn man die gewonnene Kampfststärke nur so selten nutzen kann? Das gilt mehr noch beim einfachen Schwierigkeitsgrad, den das Spiel neuen Spielern empfiehlt, in dem die Beschränkungen fürs heimliche Umhauen wegfallen. So zählt bei den Waffen fast nur das Upgrade der schallgedämpften Pistole, damit ein Schuss den Gegner direkt ausschaltet, wodurch der Alarm ausbleibt. Klar, man könnte entscheiden die Missionen mit Gewalt statt Heimlichkeit zu lösen, aber dann brauchen sie länger, droht die feindliche Verstärkung und steigt das Gefährdungslevel der Agenten.
Dann lieber heimlich, wobei heimliches Bewegen durch die Missionsgebiete am besten von verkleideten Agenten übernommen wird. Die können (außer durch beobachtete eigene Aktionen) nur von Agenten enttarnt werden, mit dem Schauspielerperk passiert dann sogar das nur selten. Ich habe meistens doch alle meiner Agenten versucht zu nutzen, um die Mission schnellstmöglich zu erledigen. Aber das war wahrscheinlich kontraproduktiv, weil ich dann immer mal wieder Neuladen musste wenn einer meiner Agenten entdeckt wurde. Sicherer wäre es, die anderen Agenten an ihrer Startstelle stehen zu lassen, was ja wohl nicht im Sinne des Erfinders sein kann. Generell ist das eines der Hauptprobleme: Es wäre schön, wenn es einfach okay wäre nach einer Weile enttarnt zu werden um dann die Gefechte außerhalb der wenigen Hauptmissionen erleben zu können. Weniger Schnellladen, mehr Spielen im Flow. Aber das muss das Spieldesign unterstützen, damit es nicht mit zu sehr mit dem Perfektionismus kollidiert, Phantom Doctrine patzt hier leider.
Dem Entwickler sind einige der Probleme bewusst. Es gibt eine ziemlich interessante GDC-Präsentation zu gelungenen und gescheiterten Designentscheidungen des Spiels auf Youtube:
Auf Slideshare gibt es ein Folienset eines Post-Mortem mit noch etwas mehr Lektionen. Die beschriebenen Edgecases bezüglich der Schüsse durch Wände haben mich weniger gestört, das weite Sichtfeld um Hindernisse dagegen war mir positiv aufgefallen, mit dem Kampfsystem ohne Zufallsgenerator kam ich ganz gut zurecht. Aber nach Spielen des Spiels kann man viel der Kritik und Reflexion nachvollziehen.
Probleme unter Linux
Das Spiel funktioniert nicht einwandfrei mit Proton, es gibt keine Linuxversion. Um es auch nur starten zu können brauchte es bei mir mit Proton-7.2-GE-2 Startparameter, nämlich:
PROTON_NO_ESYNC=1 taskset -c 0-15 %command%
Danach lief das Spiel selbst flüssig und stabil, aber die Haupt-Zwischensequenzen (also nicht die in Spielgrafik, sondern die gezeichneten) wurden nicht abgespielt. Die sind leider nicht ganz unwichtig, erzählen sie doch den Storyhergang weiter. Das Spiel erklärt fast alles nochmal in Texten im Ladebildschirm, aber ideal ist das nicht.
Mittlerweile gibt es einen Report in der ProtonDB, der die Installation von mf-install beschreibt. Ich habe das getestet. Es mussten ein paar fehlende Verzeichnisse angelegt werden, damit die Installation durchlief. Dann nochmal ein Ordner und eine Datei erstellt werden, damit Steam das Spiel wieder starten konnte. Tatsächlich liefen danach die Videosequenzen. Die momentane Gold-Bewertung ist angesichts dieser nötigen Nachbesserung aber ein Fehler.
Fazit: Mehr als spielbar, nur nicht perfekt
Selbst mit den Linuxproblemen ist Phantom Doctrine am Ende kein schlechtes Spiel. Es ist mehr eins mit verschenktem Potential, ein gutes Spiel mit ein paar Nervfaktoren, das ein hervorragendes hätte sein können. So bleibt beeindruckend, wieviele der Spielmechaniken gut ineinandergreifen. Und trotz aller Nervfaktoren – das Spiel unterhält durchaus bis zum Ende, weil das Fortschrittsgefühl nie ganz weggeht und mich zumindest die Auflösung der Hauptstory interessiert hat. Das ist ein ziemlicher Gegensatz zum kürzlich von mir gespielten King's Bounty: Warriors of the North, das noch vor der Hälfte der Spielzeit in sich zusammenbrach. Dabei ist Phantom Doctrine nichtmal kurz, 44 Stunden verbrachte ich laut Steam im Spiel, was circa 40 Stunden echter Spielzeit entsprechen müsste.
Vor allem aber ist Phantom Doctrine eine Anlehnung an XCOM, die eine alternative Weiterentwicklung dieser Spielereihe ausprobiert. Während XCOM 2 mit Zeitlimits, generell mit Spannung und einer besserer Inszenierung den Vorgänger verbesserte, zeigt Phantom Doctrine einen möglichen Pfad mit einem Fokus auf Agententätigkeiten und Heimlichkeit, was durchaus auch eine Option für die Vorbildreihe wäre. Das ist interessant zu sehen und meist ja auch spaßig zu spielen, selbst wenn wie oben ausführlich beschrieben nicht alle Experimente wirklich funktionieren.
Linksammlung 10/2022
Friday, 11. March 2022
Diese Woche fand ich besonders erwähnenswert:
The Dirty Pipe Vulnerability ist nicht einfach ein schlimmer Bug. Der Zusammenschrieb schildert vielmehr eine großartige Debugarbeit, wie sie kaum ein Entwickler so durchgeführt und erst recht nicht dann so klar zusammengeschrieben hätte. Wer heute nur einem Link folgen will, es sollte dieser sein.
Was die anderen Artikel nicht geringschätzen soll. I/O Scheduler automatisch einstellen als bestes Beispiel ist ein geschickter Hack, um den IO-Scheduler je nach Festplattenart (HDD, SSD, NVMe-SSD) auszuwechseln.
Manche Telekommunikationsanbieter machen es möglich: Kostenlos in die Ukraine Kommunizieren. Verblasst etwas angesichts der Gräueltaten Russlands, aber eine greifbare kleine menschliche Aktion.
In einem der absehbar wichtigsten Rechtsstreits des Jahres greift die Gesellschaft für Freiheitsrechte ein, denn die GFF unterstützt Hoster von Open-Source-Projekt youtube-dl gegen Klage der Musikindustrie (via). Der Hoster ist uberspace, das Ansinnen der Musikindustrie wie so oft freiheitszersetzend und moralisch verwerflich.
We're Building Computers Wrong (Video) versucht den Punkt zu machen, dass wir digitale Computer durch analoge Bestandteile ergänzen könnten. Vielleicht. Davon abgesehen ist das Video eine sehr gute Erklärung von neuronalen Netzen, samt ihrer Historie und Wiederentdeckung als Deep Learning in den letzten Jahren.
Far Cry 2 war tatsächlich voller Macken
Monday, 7. March 2022
Dem Titel zum Trotz sind viele Elemente von Far Cry 2 ziemlich toll. Aber sie sind nicht zu einem guten Spiel zusammengepackt. Das Ergebnis ist frustrierend.
Ein Beginn als Auftragsmörder
In FC2 wählt der Spieler anfangs einen Charakter aus, was aber später ziemlich bedeutungslos ist. Dann geht es auch schon los: Gerade in einem afrikanischen Land angekommen um den Waffenhändler Jackal zu ermorden, kippt der Charakter um und ist fortan mit Malaria erkrankt. Ein Gespräch vom Krankenbett mit dem Jackal später kippt der Charakter nochmal um, diesmal aufgrund einer Schießerei zwischen verfeindeten Fraktionen mit ihm in der Mitte. Eine davon rettet ihn, woraufhin der Spieler den Rest des Spiels über verschiedene Missionen für die beiden Fraktionen erledigen wird.
Diese Missionen sind fast alle spielerisch sehr ähnlich. FC2 spielt auf zwei großen Karten, in denen es verschiedene Afrikabiotope wie Dschungel und Wüsten gibt. In der Mitte ist eine Stadt, dort herrscht nach dem Gefecht aus dem Intro Waffenstillstand, beide Fraktionen haben da einen Hauptsitz. Als Spieler betritt man eines der beiden Häuser, lauscht einem Gespräch, nimmt die Mission und ein paar Diamanten als Bezahlung entgegen. Dann gilt es sich ein Auto zu schnappen und zum Zielort zu fahren. Am Zielort gibt es immer einige Gegner und meist muss eine Zielperson getötet oder etwas zerstört werden.
Statt die Aufträge wie beschrieben zu erledigen kann man auch der Alternativmission folgen. Es gibt noch andere Akteure, ein paar davon sieht man regelmäßig. Auf beiden Karten ruft immer einer der beiden Kameraden nach dem Missionsstart an und schlägt eine alternative Lösung vor. Ein Beispiel: Statt einen Waffenhändler auf einem Schiff anzugreifen, fahre zu einem Stützpunkt und hole einen Zünder, mit dem und einer Bombe kann dann eine Brücke über dem Schiff gesprengt und der Händler so getötet werden. Dann gibt es zur Belohnung auch noch Upgrades der Spielerunterschlüpfe, wie fortan dort verfügbare Munition. Die anderen Kameraden haben weniger Missionen, helfen aber im Spielverlauf: Hat man durch eine Nebenmission ihre Zuneigung, wirken sie als Extraleben. Geht der Spielercharakter im Bleihagel zu Boden, erscheinen sie aus dem Nichts, beleben ihn wieder und helfen beim Feuergefecht.
Richtig schlecht sieht das Spiel dabei nie aus. Klar, es ist angestaubt, aber ignoriert man ein paar Grafikfehler ist die Engine für seine Zeit echt hübsch. Wobei die Farben arg matt sind, selbst am Tag ist das Spiel meist braun, in der Nacht dunkelgrau. Das stört aber nach einer Weile weniger und wäre durch Mods reparierbar.
FC2 ist dabei spielerisch ein Egoshooter, wenn man nicht gerade in einem Auto sitzt, wobei die meisten davon ebenfalls Waffen haben. Machete, Kleinwaffe, Primärwaffe und eine Spezialwaffe schleppt der Spielercharakter mit sich herum. Die Waffen können ausgewechselt werden, einmal mit der Ausrüstung der Gegner, besser mit für Diamanten gekauften Alternativen (die dauerhaft freigeschaltet bleiben). Die Waffen aus dem Shop sind besser, denn neue Waffen haben erstmal keine Fehlfunktionen, die umständlich durch Drücken des Nachladenknopfes repariert werden müssen und die mitten im Gefecht natürlich oft tödlich sind.
Unfassbare Macken
Funktionieren die Waffen liefern sie gute Gefechte gegen die Soldaten. Die Soldaten sind in den regulären Gefechten nicht allzu blöd, sie flanken den Spieler und beharken ihn auch mal aus der Ferne mit einem Scharfschützengewehr. Sie halten viel weniger aus als er, aber gegen sie zu sterben ist durchaus möglich. Dazu sind die Waffen hübsch variiert und teils sehr gut gemacht, sodass beispielsweise die Schrotflinte eben nicht nur für kürzeste Entfernungen zu gebrauchen ist. Wo also ist das Problem?
Das Problem ist: Alles außer den Autos und den konkreten Schusswechseln ist bei Far Cry 2 komplett gestört. FC2 ist kein Topspiel, kein würdiger Nachfolger des (in der ersten Hälfte) großartigen ersten Teils. Es spielt sich wie ein nie fertiggestellter Early-Access-Titel.
Sobald man die Stadt mit ihrem Waffenstillstand verlässt greift jeder Charakter den Spieler sofort an. Es gibt außer den Kameraden und ein paar Statisten in speziellen Missionen keine Freunde in diesem Land, nur feindliche Soldaten. Selbst die Mitglieder der eigenen Fraktion (wobei deren Mitglieder nicht unterscheidbar sind) – also der, für die man gerade eine Mission erledigt – eröffnen sofort das Feuer. Das wird richtig lächerlich, wenn man in einem Jeep mit Maschinengewehrturm sitzt, ein Schrottwagen ankommt und da gemächlich ein einzelner feindlicher Soldat aussteigt und das Gewehr anlegt. Im nächsten Moment ist dieser Gegner dann auch schon vom Spieler umgenietet worden, der Wechsel vom Steuer zum Maschinengewehr braucht nur einen kurzen Moment, aber die Verblüffung über dieses absurde Spieldesign hält länger an.
Diese unbegrenzte Feindseligkeit bedeutet, dass die überall auf der Karte verteilten Straßenblockaden jedes mal von feindlichen Soldaten geräumt werden müssen. Ja, man kann versuchen da einfach durchzufahren, aber erstens tut das Gegnergewehrfeuer ziemlich weh, zweitens steigen die Soldaten immer in alle verfügbare Autos und verfolgen den Spieler, sodass man sie dann aus den Wagen schießen muss. Was meist kein Problem ist, aber Zeit frisst. Wäre es nur das eine mal, dann ginge das ja noch – aber die Gegner respawnen direkt wieder. Ist direkt vor der Mission eine gegnerische Station, sind dort auf dem Hinweg Gegner und auf dem Rückweg direkt wieder, selbst wenn nur zwei Minuten vergangen sind. Bitte richtig verstehen: Das ist nicht an die Mission gebunden. Sobald man einen Ort gesäubert hat und einen Moment nicht dort war, werden bei der Rückkehr wieder neue Gegner da sein.
Eine echte Schnellreisefunktion würde dieses Problem entschärfen, die hat FC2 aber nicht. Stattdessen gibt es wenige Busstationen. Tatsächlich helfen die etwas, weil sich mit ihnen ein paar Fahrten vermeiden lassen. Komplett stumpfsinnig bleiben die Respawngegner aber trotzdem.
Als wären das nicht genug Nervfaktor gewesen, wirft das Spiel noch mehr nervige Beschäftigungstherapie in den Mix. Die regelmäßig benötigten Malariamedikamente muss der Spieler sich in einem immergleichen Missionstyp verdienen, bei dem er erst an einem Ort Reisedokumente abholen muss, dann zu einem anderen fahren (-> Gegner auf Weg erledigen), dort ein paar Gegner töten und dann die Dokumente übergeben muss. Zusätzlich könnte man noch für die Waffenhändler einen Konvoi zerstören, was mehr Waffen früher freischaltet, oder an einem Antennenmast für ein paar Diamanten einen Auftragsmord annehmen.
Die Hauptmissionen sind etwas besser, aber auch sie folgen meist dem gleichen Schema, wie oben beschrieben. Zudem ist das Handeln der Hauptfigur völlig unverständlich. Warum genau mordet er für die beiden (komplett identischen) Fraktionen?
Nichtmal das im Menü aufrufbare Tagebuch hat Erklärungsansätze zur Hand, was man sich zusammenreimen könnte ist nicht überzeugend und wird es immer weniger, je bösartiger die Missionen werden. Das Ermorden (nach Erledigen der Wachen) hilfloser Personen, das Sabotieren von Medikamenten, dem Trinkwasser – warum macht der Spielercharakter das völlig grundlos mit? Klar, das ist vom Spiel als Storyelement gedacht, aber das reicht doch als Erzählmodell nicht.
Das Ergebnis ist nur ein verstörendes, in seiner Kaputtheit surreal wirkendes Spiel, dessen Handlung null Sinn ergibt. Nichts davon fördert den Spielspaß.
Interessante Elemente
Und das ist schade, weil FC2 auch gute Elemente hat. Tolle Elemente sogar, innovative, die einen guten Shooter hätten ergeben können.
So hat das Spiel viele Ansätze von Realismus. Einige davon sind allein betrachtet nervig, wie die blockierenden Waffen. Zusammengenommen haben sie aber einen immersiven Effekt. Wenn man erst zum Waffenlager fahren muss, um frische Waffen zu holen, damit auf der nächsten Mission alles klar geht. Dabei die Gegner nicht auf einer Minikarte zu sehen sind, sondern im (nicht zu dichten) Dschungel versteckt erledigt werden müssen. Eine Karte hat der Spieler, muss sie aber statt einer Waffe zur Hand nehmen und dann auf sie herunterschauen – das ganze HUD ist sehr dezent, die wenigen Elemente tauchen nur bei Bedarf auf.
Genial die Idee, an allen Kreuzungen für den Spieler personalisierte Straßenschilder anzubringen, die dann auch noch während Missionen in der Missionsfarbe eingefärbt sind und so den Weg weisen.
Am Zielort sollte man überlegen, ob nicht mit einer schallgedämpften Waffe schleichend vorzugehen besser ist, als mit dem Grantatenwerfer des Schützentransporters die Wachen direkt anzugreifen. Das ist alles zusammen eine interessante Mischung, die Afrikalandschaft für sie eine gute Umgebung.
Gut, dann kommt zum hundertsten mal wieder ein Wagen angefahren und hält direkt vor dem Lauf des Maschinengewehrs, weil der Fahrer einen Todeswunsch hat. Aber wenn einen solcher Unsinn nicht gerade rausreißt machen die Gefechte Spaß. Auch, weil mehr passiert als Gegner zu erledigen, die wie panische Hühner herumlaufen. In manchen Situationen funktioniert ihre KI ziemlich gut.
Dazu kommen die Effekte, alles mögliche explodiert, Feuer kann sich besser ausbreiten als in modernen Titeln, die Dschungelpflanzen gehe unter Beschuss kaputt und geben so den Blick auf verschanzte Gegner frei, einige Materialien sind nicht kugelsicher und die Gegner schießen auch mal durch Holzlatten auf den Spieler. Klasse.
Die Kameraden sind ein dadrin gut eingebundenes Spielelement. Weil sie in den Gefechten helfen, damit dem Kern des Spiels. Sicher noch wichtiger auf den Konsolen, bei denen kein Schnellspeichern möglich war.
Superungewöhnlich ist, dass die Kameraden dauerhaft sterben können: Gehen sie nach zu viel Feindbeschuss zu Boden, kann der Spieler sie wiederbeleben oder ermorden. Es gibt für letzteres keinen Grund, außer evtl keine Heilungsspritzen mehr zur Verfügung zu haben. Was motiviert, mit ihnen hauszuhalten. Dass sie bei Friendly Fire dauerhaft sterben ist ebenfalls ungewöhnlich und soll wohl in Richtung Realismus gehen, das positiv zu bewerten fällt mir aber schwerer. Es passiert zu leicht versehentlich.
Doch selbst der Story lässt sich positives abgewinnen. Zum einem wieder über die Kameraden, die für ihre Alternativmissionen sehr wohl eine bessere Motivation haben und die auch erklären – wobei das mehr für den zweiten Akt gilt. Ihnen zu helfen ist daher angenehm. Aber zum anderen wäre es bei besserer Ausgestaltung der Idee toll gewesen, mal keinen Held zu spielen. Ein widerliches Arschloch, das sich rücksichtslos durch ein Kriegsgebiet mordet ist ja mal was anderes.
Und der Versuch war offensichtlich, mit dem philosophisch schwurbelnden Jackal einen interessanten Antagonisten und insgesamt eine kriegskritische Geschichte zu schaffen, die Verweise auf Apocalypse Now sind überdeutlich. Nur hätte es für solch einen Ansatz mehr nachvollziehbare Handlungsmotivation, vielleicht auch Handlungsalternativen gebraucht, und im Idealfall keinen stummen Hauptcharakter mit selbst im Tagebuch minimaler Selbstreflexion.
Fazit: Unfertiges Ideengrab
Far Cry 2 zu spielen macht schon etwas Spaß, denn die guten Ideen darin zu sehen ist interessant und im Kern steckt im Spiel ein guter Shooter. Darauf kann man versuchen sich zu konzentrieren, dass das möglich sein würde hatte ich trotz der gemischten Rezensionen gehofft. Wegen der Kaputtheit des Spiels überwiegt aber das nervige. Doppelt frustrierend, weil das Potential für ein tolles Spiel dagewesen wäre: Wenn nur jede Fraktionen etwas besser ausgestaltet, nicht jeder NPC auf der Karte ein feindlicher Soldat wäre und wenn wenigstens bei den verdammten Straßensperren keine neuen Gegner erscheinen würden, dann wäre FC2 ganz gut geworden. So aber war es ein vermurkster Versuch, den auch knapp 15 Jahre später kein Mod von seinen wohl zu tief sitzenden Macken befreien konnte.
Linksammlung 09/2022
Friday, 4. March 2022
Diese Woche fand ich mehr als sonst besonders erwähnenswert, wobei ich auch Links aus der vorherigen Woche nachtragen will. Ich werde trennen zwischen dem nicht ignorierbaren Ukrainekrieg und meinen regulären Themen und dabei die Ukraineartikel teils ausführlicher kommentieren, um nicht unpassend zu verknappen.
Die Ukraine zuerst:
Der Gastkommentar Deutscher Offenbarungseid und das Russlandpolitik-Fiasko verkörpert für mich exemplarisch, welche innenpolitische Gefahr in diesem Krieg liegt. Der Kommentar ist zu einem Teil klug und überzeugend und hat ja schlicht Recht damit, dass Deutschlands Russlandpolitik gescheitert ist. Aber andererseits ist da viel falsches drin und Konsequenzen die unfassbar schädlich wären: Nordstream 2 war doch offensichtlich nicht das Problem, wenn der Krieg vor dessen Inbetriebnahme begann und das Ende des Projekts als Sanktion nichts bewirkte, dass Brandts Einfluss auf den Kalten Krieg verglichen mit Kohls(!) bedeutungslos war ist ahistorischer Unsinn, dass mit Drohnen ein Waffensystem abgelehnt wird, mit dem bisher vor allem von den USA Zivilisten im Nahen Osten ermordet wurden kann man der SPD doch nicht ernsthaft negativ anrechnen. Mit dem militaristischen Deutschland, das dieser Autor anstrebt, will ich nichts zu tun haben.
Der Couchblog schreibt zur Kriegsberichterstattung. Natürlich kein Lügenpresse-Nazigelaber, sondern die treffende Beobachtung, dass die Berichte fern von belastbaren Fakten schwierig einzuordnen und wohl auch zu schreiben sind. Der Effekt ist sehr seltsam, wenn dann verschiedene sich widersprechende Behauptungen achselzuckend nebeneinandergestellt werden.
Passt auch zum ersten Link: Krieg · Grenzen · Lesen · Migration · Atomkraft · Klima ist eigentlich ebenfalls eine Linksammlung, beinhaltet aber auch den Kommentar, dass 100 Milliarden wegen Kriegsgefahr auszugeben und dann AKWs weiterbetreiben zu wollen doch wirklich nicht zusammengeht. Und nur einen Tag später begehen die Russen ein weiteres Kriegsverbrechen und beschießen mit Saporischschja ein Kernkraftwerk.
Status Quo Storno beschreibt ziemlich genau, wie auch ich die Dinge gesehen habe und was sich gerade ändert, trotz ziemlich anderer (zumindest zeitlich versetzter) Historie zwischen ben_ und mir. Ich habe selbst Putins Russland noch zu positiv gesehen, ein Gegengewicht zur USA wohl zu unkritisch begrüßt – davon ist jetzt natürlich kein Funken mehr über.
Wieder ein historisch unterlegtes Modell für die aktuelle Situation liefert Devereaux in How the Weak Can Win – A Primer on Protracted War. Mao schrieb laut ihm die Anleitung für die Strategie, der die Ukraine wohl (stark angepasst) jetzt folgt. Wenn es so kommt wird es ein langer und blutiger Krieg.
Bürgerwerke Wachstumsfinanzierung schlägt den Bogen zu anderen Themen. Nicht ganz ohne Bezug, denn von Gas (und Atomkraft) wegzukommen ist jetzt wohl wichtiger denn je. Die Bürgerwerke sind ein Sozialunternehmen, das Strom aus regenerativen Energiequellen herstellt und ganz regulär als Stromanbieter an Kunden verkauft. Sie sammeln Geld, das dann bis 2029 bei denen mit 5,5% angelegt wäre. Ist wohl nicht unriskant, wenn die Firma pleite geht ist das Geld wahrscheinlich weg, aber vielleicht interessiert es jemanden hier trotzdem.
The Decline and Fall of Java on the Desktop Part 1 (1999-2005) beschreibt einen Abschnitt der Entwicklung von Java, den kaum mitbekommen habe (damals war ich kein Programmierer). Füllte bei mir ein paar Lücken und es ist interessant zu sehen, wie das beschriebene zu den eigenen Wahrnehmungen passt. Java für Anwendungen im Browser sah ich noch vor zwei Jahren im Tagesjob.
Es wird mittlerweile öfter erkannt: SPAs were a mistake. Webseiten unnötig als Javascriptanwendungen zu schreiben negiert die Vorteile von HTML, schafft immer unzählige Nachteile und die theoretischen Vorteile werden fast nie benutzt. HTML mit JS wo nötig sinnvoll unterstützt mit guten Serversystemen wie Ruby/Rack, das war schon immer die bessere Lösung und wird es auf absehbare Zeit bleiben.
Wenn ich mir die Memoirs of an Old Geek V – Catharsis so ansehe frage ich mich, ob ich damals auch bei Apple gelandet wäre. In solchen Berichten steckt oft eine ähnliche Technikbegeisterung wie die, die ich ein paar Jahre später bei meinem Wechsel zu Linux erlebt habe. Wäre wohl am Geld gescheitert.
Wer sich für Steams Deck interessiert und schon Spiele auf Steam hat sollte mal Steams Seite Your Library on Deck aufrufen und sich einloggen. Sie zeigt Valves Testergebnisse, also welche Spiele perfekt laufen, welche mit Einschränkungen funktionieren und welche nicht unterstützt werden. Teilweise widersprechen die Ergebnisse der protondb und auch meinen eigenen Erfahrungen unter Linux, aber mit dem Deck kommen ja auch noch spezifische Hardwareeinschränkungen hinzu.