Lakritze: Fazer Salmiakki Cola-Ginger
Als ich in Helsinki war habe ich mir eine breite Auswahl an Lakritzbonbons gekauft. Die möchte ich nun ab und an kurz ins Blog bringen, als unregelmäßige Serie. Heute: Fazer Salmiakki Cola-Ginger.
Das schmeckte besser als erwartet, wobei ich mit etwas fürchterlichem rechnete. Doch die Mischung funktioniert erstaunlich gut. Der Ingwer-Geschmack ist da, aber nicht übermächtig. Die Cola ist auch klar herausschmeckbar und angenehm süß. Die Lakritze ist nur leicht im Hintergrund, aber noch präsent, sodass es nicht ganz ein Zuckerbonbon wird.
Wertung: Hätte ich mehr von kaufen sollen.
Reacher
Die Amazonserie sollte einfach nur das kostenlose Prime-Abo füllen, in das ich für einen nicht anders bewerkstelligbaren Amazonkauf gerutscht war. Nur solide mittelmäßige Unterhaltung braucht es dafür, genau das dürfte hier doch geboten werden, ähnlich wie bei den okayen (aber eben nicht guten) Filmen. Da schockte mich die sehr positive IMDB-Bewertung (~8.0) etwas, die auf eine viel bessere Serie verwies.
Ich würde behaupten, Mittelmäßigkeit zu erwarten war angemessener als die hohe Bewertung. Reacher startet immerhin geschickt mit einem Verweis auf die Filme, wenn der (nun hünenhafte) Ex-Militär Jack wieder in einem amerikanischem Diner verhaftet wird. Dann beginnt eine Verschwörungsstory mit vielen Actionszenen. Beides ist teils sehr brutal, beides schwankt in seiner Qualität. Stellenweise sind die Actionszenen super, unzerschnitten, brutal und realistisch – dann explodiert ein Haus und Jack läuft direkt nach der Explosion raus, gibt es wieder die Tom-Cruise-typische Scientology-Auferstehungsszene unter Wasser, können die Protagonisten durch dichten Feuerqualm laufen ohne auch nur Anzeichen einer Rauchvergiftung, läuft Jack so stocksteif eine Straße entlang, dass mehr als Vorwärtszulaufen von ihm zu erwarten absolut unrealistisch erscheint. Die Verschwörungsstory ist fesselnd genug um die Staffel zuende schauen zu wollen, gibt den Protagonisten überzeugende Motivation und wirkt durchaus gefährlich – dann sind Teile von ihr von Anfang an vorhersehbar, ist das Handeln so mancher Person völlig überzogen, gibt es nicht so viele Psychopathen auf der ganzen Welt wie in dieser Kleinstadt.
Die Besetzung gefiel mir. Alan Ritchson spielt Reacher mit einem ähnlich limitierten Repertoire wie Tom Cruise, gibt ihm aber als Bodybuilder (der natürlich die ganze Serie über keine Minute trainieren muss) eine andere Präsenz. Die übertriebene Intelligenz seiner Figur scheint dazu null zu passen, das macht sie aber eher interessant. Malcolm Goodwin wiederholt seine Rolle aus iZombie, ich mochte ihn hier wie dort, er wirkt sympathisch und kann seine Szenen tragen. Schließlich ausgerechnet die im Vergleich winzige Willa Fitzgerald als Reachers mögliche Herzensdame zu platzieren hat was, weil die Story ihr auch ausreichend eigenen Charakter und Fähigkeiten verleiht. Die Bösewichte dagegen bleiben komplett blass.
Aber das passt dann ja auch, interessante und mehr als gerade noch kompetent gespielte Gegenspieler zu erwarten wäre zu viel gewesen. Es ist eben doch nur solide, etwas überzogen brutale und auf IMDB massiv überbewertete Unterhaltung. Wieder: Kann man schauen, muss man nicht unbedingt, ich fühlte mich aber durchaus unterhalten.
Linksammlung 47/2022
Das große Thema der Woche war natürlich die Veröffentlichung der neuen Serendipity-Version. Ansonsten fand ich diese Woche noch erwähnenswert:
Es sei A Rocky Launch: Gamers Are Not Buying Nvidia's RTX 4080. Man kann nur hoffen, dass die Kaufzurückhaltung existiert und Nvidia wehtut, sonst wird der Preis für neue Hardware immer weiter steigen.
Die neue Version des Ruby-Webframeworks wurde veröffentlicht, Hanami 2.0: Better, Faster, Stronger. Der Ansatz mit den alternativen Gems als Grundlage gefällt mir. Alternativ meint hier alternativ zu Rails, aus dessen Umfeld normalerweise die populären Libraries kommen.
Solarized ist ein von mir gern genutztes Farbschema für den Editor, davon gibt es jetzt mit OKSolar eine weitere Variante. Bei ihr wurde versucht, mittels einem dafür geeigneten Farbmodell den Kontrast der verschiedenen Textfarben anzugleichen.
Ein ganz anderes Spiel mit Farben ist das Named Colors Wheel, bei dem nur benannte HTML-Farben verwendet wurden. Sieht erstaunlich gut aus; Es könnte eine angenehme Disziplinübung sein, die Farbauswahl bei einem Webprojekt mal hierdrauf zu beschränken.
Twitters Untergang hat unerwartete Auswirkungen. Mastodons zunehmende Popularität war ja fast zu erwarten, aber mit Tumblr Gets the Last Laugh hätte ich nie gerechnet.
Serendipity 2.4.0 ist draußen (das stabile Release für PHP 8.0)
Hier lief schon eine Weile die Beta der nun als Version 2.4.0 fertiggestellten neuen Serendipityversion, die jetzt auch hier der neuen Version weichen musste.
Hauptthema PHP 8
Was hat sich seit der Beta getan? Ein paar Beispiele:
Stephan hatte erkannt, dass das automatische Speichern des Editorinhalts kaputt war. Der Fix folgte. Matthias reparierte einen Fehler im Installer. Markus beschleunigte die Permalinkerstellung. Hanno machte die Artikelseite Spec-konformer. Mich nervte, dass beim Speichern von Templatekonfigurationen dessen Cache nicht immer neu erstellt wurde, und änderte das.
Aber der Fokus lag klar auf dem PHP-Support, wozu es auch seit Betabeginn noch einige Fixes gab. Im Kern und bei den Plugins.
Denn PHP 7.4 wird bei vielen Hostern nun abgeschaltet, deswegen auch das Release jetzt. Wir hätten ansonsten länger warten können und sicher noch mehr Bugs gefunden, nach Fehlerberichten mehr Plugins zum Laufen gebracht. Aber nun ging Warten nicht mehr und es ist auch gut, dass irgendwann der Zahn gezogen wird.
Führt euch bitte kurz vor Augen, was das für ein Projekt war und damit, was das für ein Release ist. PHP 8.0 hat vielen alten PHP-Code invalid gemacht, als altes Projekt besteht Serendipity zu 100% aus alten Code. Praktisch jede Codedatei schmiss nun Warnungen, es war anfangs erschreckend überfordernd. Im Kern wurden schließlich in einer gemeinsamen Anstrengung alle solchen Vorkommnisse angepasst, aber bei den Plugins war das illusorisch: Weder kennen wir alle Plugins, noch haben auch nur alle Spartacus-Plugins aktive Maintainer (hier wird Hilfe gebraucht!). Daher werden diese zumeist irrelevanten Warnungen nun unterdrückt (nur bei Beta und stabilen Versionen von Serendipity), was allerdings bei einem Serendipity-Teammitglied nicht zuverlässig funktioniert. Wenn es funktioniert macht es automatisch viele Plugins wieder kompatibel, ohne störende Warnmeldungen.
Allerdings hatte PHP 8.0 auch komplett inkompatible Änderungen, z.B. wenn von PHP-Kernfunktionen die Reihenfolge der Parameter geändert wurde. Das könnte gerade noch manche weniger populäre Plugins betreffen, die trotz der langen Betalaufzeit nicht getestet wurden und dann echte Fehler werfen. Da hilft nur Fehler melden, Fehler reparieren oder das Plugin zu löschen.
Ich wünsche viel Spaß mit der neuen Version und viel Erfolg beim Upgrade. Aktualisiert alle Plugins, deaktiviert das Kommentar-Seitenleistenplugin (wegen diesem Bug), habt während des Upgrades PHP 7.3 oder PHP 7.4 am Laufen. Das Upgrade sollte kein Problem sein (außer vll, wenn MySQL benutzt wird und die Beta noch nicht lief, wegen der utf8mb4-Umstellung, da braucht es dann ein Datenbankbackup), kritischer wird der dann folgende Test mit PHP 8.0. Wenn es dabei Probleme gibt hilft das Forum, aber bei inkompatiblen Plugins sollte wer kann die Ärmel hochkrempeln und sie (per Pull-Request im Github-Repo) für alle reparieren.
Tatsächlich freu ich mich riesig, dass dieses Release nun erschienen ist und auch über die drumherum gesehene Projektaktivität :) Auf dieser Grundlage wird das nächste Release (für PHP 8.1?) wohl wesentlich einfacher werden.
Linksammlung 46/2022
Diese Woche fand ich besonders erwähnenswert:
Ich bin nicht ganz sicher, ob ich den Ansatz in Resolving the Great Undo-Redo Quandary richtig verstehe. Aber Redos nicht mehr verlieren zu können ist verlockend, generell ein faszinierendes Usability-Problem.
Die Schilderung in Warum Starbuntu klingt toll. Die Distro scheint einen Test wert zu sein und die beschriebenen Bugs einfach selbst anzugehen ist eine bewundernswerte Initiative. Toll auch, dass dem ganzen in meinem Sinne ein eigener Desktop zusammengestellt wurde.
Estudiantes mexicanos denuncian agresiones racistas en Alemania ist mal wieder ein Thema, anlässlich dem anderswo ausführlich über Deutschland diskutiert wird, was es hier aber nichtmal in die Nachrichten schafft. Mexikanische Studenten erleben Naziangriffe in Cottbus, die Polizei unternimmt nichts, daher haben sie mexikanische Stellen eingeschaltet und das landete dann in der mexikanischen Presse. Es ist furchtbar, dass der Osten so naziverseucht ist, dass man den Studenten nur raten kann schnellstmöglich von dort wegzugehen.
Wer auch RSS-Feeds abonniert sollte die RSS-Bridge im Blick haben, die im verlinkten Artikel kurz vorgestellt wird. Die Kommentare erwähnen Alternativen.
Unverstelltes Routing in Flutter: NamedRoutes mit Animationen
Wie man in Flutter von einer Seite zur nächsten wechselt ist nicht ganz einfach, obwohl es eigentlich doch ganz simpel ist. Der Navigationsaufruf ist schnell geschrieben. Doch primär definiert man keine Seiten, sondern Widgets, und ob die jetzt alleine angezeigt werden oder nur als Teil eines anderen Widgets hängt einzig von ihrer Verwendung ab – schon das ist verwirrend. Dazu gibt es nicht den einen Weg, das Routing aufzusetzen, sondern viele: Das Flutter-Projekt selbst kennt mit dem Navigator (1.0), dem Router (2.0) und jetzt mit dem go_router (2.0+ ?) direkt drei offizielle Möglichkeiten, wobei sich hinter dem Navigator gleich mehrere Möglichkeiten verbergen und der Router 2.0 komplett vage ist. Dazu kommen die vielen Routing-Plugins auf pub.dev, alle mit ihren eigenen Vor- und Nachteilen.
Dieser Artikel wird nicht alle diese Möglichkeiten vorstellen. Stattdessen zeige ich einen Weg, wie man völlig ohne Plugins strukturiert die Routen anlegen und ihre Übergänge animieren kann. Dazu gehört dieses Git-Repo, in dem der Code komplett nachvollzogen werden kann.
Das Grundlagenbeispiel
Ich werde hier mit einer einfachen Flutter-Anwendung mit einer main.dart und drei Widgets view[123].dart benutzen. Die drei Widgets sollen jeweils als eigene Seiten aufgerufen werden. Sie sind so definiert:
import 'package:flutter/material.dart'; class View2 extends StatelessWidget { const View2({super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text('View 2')), body: const Center( child: Text('View 2'), ), ); } }
Und der Startbildschirm zeigt drei Buttons untereinander in einer Reihe:
class MyHomePage extends StatelessWidget { final String title; const MyHomePage({super.key, required this.title}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text(title)), body: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ Center( child: Padding( padding: const EdgeInsets.all(8.0), child: ElevatedButton( onPressed: () => null, child: const Text('View 1')), ), ), Padding( padding: const EdgeInsets.all(8.0), child: ElevatedButton( onPressed: () => null, child: const Text('View 2')), ), Padding( padding: const EdgeInsets.all(8.0), child: ElevatedButton( onPressed: () => null, child: const Text('View 3')), ), ], ), ); } }
v0.1: Simple NamedRoutes
Diese drei Buttons sollen nun jeweils zu ihrem Widget navigieren.
Schauen wir uns also erstmal an, wie einfache NamedRoutes funktionieren. Den Namen entsprechend bekommt hier eine Route einen Namen und wird darüber aufgerufen, ähnlich einer URL. Man erstellt dafür eine routes.dart mit einem solchen Inhalt:
import 'package:flutter/material.dart'; import 'package:flutter_navigation/view1.dart'; import 'package:flutter_navigation/view2.dart'; import 'package:flutter_navigation/view3.dart'; final routes = { '/view1': (BuildContext context) => const View1(), '/view2': (BuildContext context) => const View2(), '/view3': (BuildContext context) => const View3(), };
Die muss nun der Flutteranwendung zugewiesen werden:
class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: const MyHomePage(title: 'Flutter Demo Home Page'), routes: routes, // genau hier ); } }
Und schon können die Buttons eine Funktion bekommen:
ElevatedButton( onPressed: () => Navigator.of(context).pushNamed('/view2'), child: const Text('View 2'), )
Navigator.of(context)
holt sich den Navigator, pushNamed
navigiert zum zuvor angelegten Widget. Mit einem Navigator.of(context).pop()
würde man wieder zurückkommen, es gibt hier also einen Navigations-Stack.
v0.2: NamedRoutes mit Argumenten
Was aber, wenn bei der Navigation auch Daten an das Widget gegeben werden sollen?
Dafür gibt es Argumente. Um genau zu sein gibt es ein Arguments-Objekt, in das alles beliebige gespeichert werden kann. Zum Beispiel hier eine Map mit einem String, den das Widget dann anzeigen soll:
ElevatedButton( onPressed: () => Navigator.of(context).pushNamed('/view1', arguments: { 'content': 'Dynamic text', }),
Damit das Widget es auch bekommt, müssen wir seine Route in der routes.dart ändern:
'/view1': (BuildContext context) { final args = ModalRoute.of(context)!.settings.arguments as Map<String, dynamic>; return View1( content: args['content']!, ); },
Wir machen uns hier zunutze, dass Dart (zumindest seit der Version für Flutter 3) mit den Typen recht flexibel umgehen kann, sodass content
nicht manuell in einen String umgewandelt werden muss. Das Widget kann mit dem Parameter direkt arbeiten:
import 'package:flutter/material.dart'; class View1 extends StatelessWidget { final String content; const View1({super.key, required this.content}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('View 1'), ), body: Center( child: Text(content), ), ); } }
Das Widget kann nun dynamisch bei jedem Navigationsaufruf mit einem anderen Text befüllt werden.
Schön an diesem Ansatz ist der geringe Aufwand. Es braucht keine eigene Klasse für die Widget-Argumente, weil sie einfach in eine Map gepackt werden. Und da bei der Map der Value-Typ auf dynamic
gesetzt wurde kann beliebiges übertragen werden. Eine automatische Codegenerierung wie bei auto_route hier draufzusetzen scheint unnötig.
v0.3: NamedRoutes mit wählbaren Animationen (und Argumenten)
Die Animationen anpassen zu können dagegen wird für manche Anwendungen nötig sein. Ich zeige einen erweiterbaren Ansatz. Er wird mit onGenerateRoute
der MaterialApp arbeiten.
Das ist jetzt viel auf einmal:
return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: const MyHomePage(title: 'Flutter Demo Home Page'), onGenerateRoute: (settings) { if (routes.containsKey(settings.name)) { final args = settings.arguments as Map<String, dynamic>?; return PageRouteBuilder( settings: settings, pageBuilder: (context, animation, secondaryAnimation) => routes[settings.name]!(context), transitionsBuilder: (context, animation, secondaryAnimation, child) { switch (args?['transition']) { case Transitions.scale: return ScaleTransition(scale: animation, child: child); case Transitions.fade: return FadeTransition(opacity: animation, child: child); default: return SlideTransition( position: Tween<Offset>( begin: const Offset(0.0, 1.0), end: Offset.zero, ).animate(animation), child: child, ); } }); } // Unknown route return MaterialPageRoute(builder: (context) => Container()); }, );
Also, was ist hier passiert:
Zuerst wurde der routes:
-Parameter entfernt. Wäre er noch da, hätte er Priorität und unser neuer Code in onGenerateRoute
würde ignoriert.
Der nächste Kniff ist pageBuilder: (context, animation, secondaryAnimation) => routes[settings.name]!(context)
. Hiermit wird beim Seitenbau in routes
nach einer Route gesucht. So kann die alte routes.dart weiterbenutzt werden, sie muss nichtmal editiert werden. Gut so, denn dadurch behalten wir einen festen Ort für übersichtliche Routendefinitionen.
Es folgt der transitionsBuilder
. Der schaut, ob bei dieser Navigation das Argument transition
übergeben wurde. Wenn ja und es einen bestimmten Wert hat, wird eine der vordefinierten Übergangsanimationen gesetzt. Dafür wurde ein bislang nicht gezeigtes Enum angelegt:
enum Transitions { scale, fade }
Die Navigation mit Animationsauswahl sähe nun nicht viel anders aus als zuvor:
ElevatedButton( onPressed: () => Navigator.of(context).pushNamed('/view1', arguments: { 'content': 'Dynamic text', 'transition': Transitions.scale }), child: const Text('View 1')), ),
Das ginge natürlich auch anders – so hatte ich eine Variante mit dem Plugin page_transition entwickelt, die brauchte aber Änderungen an der routes.dart.
Dieser Artikel und Ansatz ist ein Nebenprodukt meiner Analyse von Flutters Routingsituation. Die vielen Lösungen waren chaotisch präsentiert, viele erschienen mir auch unnötig kompliziert. NamedRoutes stachen direkt als klar verständliche Lösung heraus, aber wie sie gut zu benutzen sind, samt Argumenten und Animationen, sah ich nicht erklärt. Ob sie dazu überhaupt taugen? Sie tun es, wie hoffentlich deutlich wurde.
Laut Dokumentation sollen NamedRoutes Nachteile haben – bei Push-Benachrichtigungen würden sie immer ihr Ziel öffnen, selbst wenn es schon offen sei (ist das in der onGenerateRoute wirklich nicht abfangbar?) und bei Webanwendungen als Kompilierziel der Vorwärtsbutton im Browser mit ihnen nicht funktionieren (kein Problem für mich, da ich Flutter für Webanwendungen ungeeignet finde). Wer darüber stolpern würde sollte sich wahrscheinlich als zweitbeste Lösung den go_router ansehen.
Linksammlung 45/2022
Diese Woche fand ich besonders erwähnenswert:
Allen Kunden soll gekündigt werden: Diese deutsche Bank wird in Kürze aufgelöst heißt es über Fidor. Auch ein Zeichen der Zeit, dass die vorher so boomenden Onlinebanken jetzt pleite gehen. Alle Geschäftsmodelle ohne direkten Profit sterben gerade.
Musk’s First Email to Twitter Staff Ends Remote Work kam raus und beerdigt Twitter endgültig. Entwickler lassen so nicht mit sich umgehen, nur noch absolut verzweifelte oder unfähige werden bei der Firma bleiben. Selbst wenn es durch die Krise jetzt noch eine Weile genug Twitter-Sklaven gibt, kann kein Entwickler unter solchen Bedingungen etwas vernünftiges produzieren. Das meint nicht die Arbeit im Büro, sondern die geforderten Arbeitszeiten, die Feindseligkeit und den Druck.
Das wird auch Auswirkungen auf den Rest der Welt haben: FTC Restores Rigorous Enforcement of Law Banning Unfair Methods of Competition. Apple beispielsweise kann seinem Appstore-Monopol Adieu sagen.
Als politisch denkender Mensch kann man an Deutschlands Gesellschaft nur verzweifeln, man kann sie nur kurzfristig verstehen. Das ist eine historische Konstante und wird als Phänomen derzeit in Die letzte Irritation wieder sichtbar.
Beinahe hätte auch Intel etwas beerdigt, keine Firma, sondern ihre Grafikkarten. Laut
Intel Clarifies HECI Usage For Arc Graphics' GSC haben sie gerade nochmal die Kurve gekriegt. Initial hatten sie geschrieben, Firmwareupdates nur mit Intelprozessoren möglich zu machen. Bei einem sowieso ziemlich desaströsen Start wären solche Plattformsperenzchen das Ende gewesen, der derzeit völlig unterlegene Herausforderer kann sich nicht wie ein Monopolist à la Apple gebären.
Baldur's Gate Enhanced Edition
Etwa bei der Hälfte meines ersten Durchgangs der mir neuen Enhanced Edition von Baldur's Gate kam mir ein Gedanke: Ich spiele dieses Spiel vielleicht falsch. An allen Ecken und Enden gibt es neue Gefährten, die oft einen konkreten Anlass haben um meiner Gruppe beitreten zu wollen. Die aber ist voll, besetzt von ewigen Favoriten wie Jaheira. Wäre es nicht viel sinnvoller, im Kern eine Mini-Gruppe zu haben – nur den Haupt-Charakter und Imoen, oder gar ganz alleine unterwegs zu sein – und dann die Gefährten nur für ihre spezielle Geschichte mitzunehmen?
Dass ich darauf nicht direkt kam liegt am von mir damals zuerst gespielten zweiten Teil. Dort bieten die Gefährten längere Beziehungen, selbst die nicht-romantischen, entwickeln sie sich im Spielverlauf weiter. Das scheint in diesem nun aufgehübschten Vorgänger aber noch weniger das Konzept gewesen zu sein
Manche Aspekte der Spielregeln unterstützen diesen mir neuen Wechselansatz. Denn die gewonnene Erfahrung wird aufgeteilt unter den Gruppenmitgliedern. Je kleiner die Gruppe, je schneller der Levelaufstieg, was gerade bei diesem bei Stufe 1 beginnenden AD&D-System einen enormen Stärkesprung verschafft. Andererseit ist das Spiel selbst nicht darauf ausgelegt, kann doch keine Klasse wirklich alle Herausforderungen meistern. Es braucht einen Dieb zum Entschärfen von Fallen, einen Magier für die späteren Gegner, einen Kleriker zum Heilen und einen Kämpfer zum Tanken der Gegner. Oder?
Solche Überlegungen anstellen zu müssen passt nur zu gut zu diesem Spiel. Das erste Baldur's Gate ist ein ungelenkes Computer-Rollenspiel, altmodisch und toleranzbedürftig. Die "Enhanced Edition" mag ein paar Kanten abschleifen, vor allem aber erweitert sie das Spiel. Diese Erweiterungen sind einerseits toll, andererseits beseitigen sie die Grundprobleme nicht.
Zurück zum Beginn: Was ist Baldur's Gate?
Baldur's Gate ist in meinen Augen der Vorgänger des größten CRPGs. Bioware erreichte 2000 mit Baldur's Gate 2 den Höhepunkt der isometrischen 2D-Rollenspiele, der Vorgänger von 1998 war zwar schwächer, aber bereits ziemlich großartig. Die kleine Rollenspiel-Renaissance vor kurzem mit Pillars of Eternity bezog sich auf nichts anderes als Baldur's Gate 1 und 2, Bioware kam hiermit in die Lage erst Dragon Age, etwas später das unglaubliche Mass Effect zu entwickeln – und das Bioware, das Baldur's Gate ablieferte, hätte niemals das Ende der Trilogie vermurkst und damit die Firma beerdigt.
Baldur's Gate war genauso ein isometrisches 2D-Rollenspiel, man steuerte also seine Charaktere in einer Draufsicht von schräg oben. Mindestens der Hauptcharakter wird zu Beginn selbst ausgewürfelt und zusammengestellt, die anderen Charaktere können im Spielverlauf gefunden werden. Das Spiel ist dann aufgeteilt in viele zu bereisende Einzelkarten, es gibt Gegner und Schätze, vor allem aber Quests zu erledigen und eine Fantasy-Geschichte zu erleben.
Typisch für die Zeit war die Verwendung eines existierenden Rollenspielsystems, AD&D. Nicht alle Eigenheiten des Systems passten zu einem Computerspiel, es so gut wie möglich in eine spielbare Form zu pressen war die große Herausforderung. BG1 meisterte das mit seinem pausierbaren Echtzeitkampfsystem, bei dem die Runden und Würfelwürfe fast unmerklich im Hintergrund ausgeführt wurden.
Mehr als nur Spielregeln gab das Universum dem Spiel einen Rahmen, von Monstern zur Spielwelt zu Gegenständen bis Zaubersprüchen, wobei BG1 darin den Anfang einer unverschämt größenwahnsinnigen Geschichte erzählte. Wie üblich in Pen&Paper-Rollenspielen geht es im Spiel um eine gesamte Heldengruppe, hier nur eben kontrolliert komplett von einem Spieler, anders als in der analogen Variante ist in BG1 der eigene erstellte Charakter definitiv der Hauptcharakter. Die anderen Charaktere blieben jedoch nicht stumm, was meines Wissens revolutionär war; Mit Charakteren wie Minsc und seinem Miniatur-Riesenweltraumhamster wurden sogar ewige Klassiker erschaffen. Die völlige Ausgestaltung des Gefährtensystems mit Gesprächen, Charakterquests und Liebesaffären zu einer Bioware-Erfolgsformel folgte jedoch erst im zweiten Teil.
BG1 war dabei eine fast noch geerdete, klassische Fantasygeschichte, deren weitere Auswirkungen ebenfalls für den zweiten Teil aufgespart wurden. Der zu Beginn aufwändig erstellte Hauptcharakter lebt ein ruhiges Leben abgeschottet in einer Burg voller Mönche und Bücher. Doch sein Vater, der Magier Gorion, wittert nun Gefahr. Das Zusammensuchen der eigenen Ausrüstung und die Vorbereitung auf die Flucht ist das Tutorial. Die Flucht scheitert tragisch, der Spieler findet sich alleine im Wald wieder – Gefährten zu finden und dem Verfolger zu entkommen oder ihn zu stellen wird das Spielziel. Was nichts für jetzt ist, auf Stufe 1 ist je nach Charakterklasse sowieso noch der schwächste Gegner eine echte Herausforderung, sondern nach vielen Umwegen und Levelaufstiegen etwas für später.
Erweiterungen durch die Enhanced Edition
Die Enhanced Edition (EE) umfasst alle Aspekte des Originals, modernisiert es angelehnt an Baldur's Gate 2 und erweitert es dann noch um eigene Elemente. Sie unterstützt dabei Windows, Mac und Linux – hier wurde nicht gekleckert.
Erstmal bietet sie weiterhin das Grundspiel, dessen Ablauf nahezu unangetastet ist. Es gab für BG1 aber damals schon die Erweiterung Tales of the Sword Coast, die vier neue optionale Gebiete voller Quests für eine Gruppe nahe dem Spielende einbaute und das Erfahrungspunktemaximum fast verdoppelte. Die ist hier enthalten.
Dann ist das Spiel in vielen Punkten modernisiert worden. So werden höhere Auflösungen unterstützt, samt dadurch notwendiger Hochskalierung des ansonsten zu kleinen Interfaces. Die UI wurde gleich ausgewechselt, das neue bewahrt die Grundstruktur, zeigt aber mehr vom Bild. Es hat auch eine neue Item-Aufsammelleiste und veränderte Menüs wie beim Charakterübersichtsbogen und dem nun durchsuchbaren Tagebuch. Die Grafik sieht erst wie früher aus, ist es im Detail aber nicht, sie ist wie die Charakterportraits beim Hochskalieren geglättet und pixelige Elemente wie die Charakterstatuskreise wurden ausgewechselt.
Dazu kommen die weiteren Änderungen, die nicht alle von mir gewürdigt werden können, zu lange ist mein letzter Kontakt mit dem Original her. Aber es müssen zuerst viele Bugs gefixt, dabei auch für die Balance und Konsistenz Details von Quests geändert worden sein. Bei der Charakterauswahl gibt es mehr Auswahl an Klassen und Kits, neue Stimmen und Charakterportraits.
Und schließlich sind da die neuen Inhalte: Drei neue mögliche Begleiter, deren Vertonung weit ausführlicher ist als die Vertonung der originalen Begleiter, sind nur der Anfang. Dazu kommt mit der Erweiterung Siege of Dragonspear eine an das Ende anknüpfende neue Kampagne, ein Thron des Bhaals für BG1, das die Lücke zwischen dem ersten und zweiten Teil schließen soll. Was übrigens dem von mir 2010 nicht empfohlenen Big World Setups ähnelt, einer Modsammlung, die ebenfalls die Lücke füllen wollte und daran kolossal scheiterte. Ob der Entwickler Beamdog es besser macht soll aber nicht Teil dieses Artikels sein, die originale Kampagne ist Thema genug. Denn es gibt viel zu diskutieren.
Wieviele Macken das Spiel doch hat
Aller Nostalgie und allen positiv gewerteten Erweiterungen zum Trotz muss hier auch stehen, dass BG1 kein perfektes Spiel ist. Teils liegt das an der AD&D-Grundlage, teils an Limitierungen der Entwickler bzw der Technik, ansonsten an Macken in der Handlung und schließlich Problemen mit der versuchten Modernisierung. Doch der Reihe nach.
Das Problem mit AD&D
Ich lehne mich mal direkt aus dem Fenster: AD&D ist schlicht keine gute Grundlage für ein gutes Computerrollenspiel. Was überraschend ist, warum war es (bzw D&D davor) dann so oft die Grundlage für sie? Doch die modernen Rollenspiele der gleichen Machart, die aber eben auf diese Grundlage verzichteten – allen voran Pillars of Eternity und Tyranny, auch Spiele mit alternativen Systemen wie Torment: Tides of Numenera und Shadowrun Returns könnte man zählen – zeigen das nur zu deutlich.
Das Problem beginnt direkt bei den Klassen: Kämpfer sind hier schlicht langweilig, weil sie nichts können. Mit ihnen klickt man auf den Gegner, dann schlägt der Kämpfer zu bis der Gegner tot ist, die Steuerungsmöglichkeiten erschöpfen sich beim Einwurf eines Tranks und der richtigen Waffenauswahl. Den Kämpfer auszurüsten und zu spezialisieren macht trotzdem noch Spaß, das gilt aber für alle anderen Klassen mindestens genauso. Der Vorteil dieser Klassenwahl ist, wie viel einfacher sie den Spielbeginn macht.
Ihr Gegensatz sind Magier: Sie sind ziemlich interessant, weil hier AD&D so viele und mächtige Zaubersprüche bereitstellt. Doch dafür brauchen sie in jedem Kampf Babysitting, muss entschieden werden welche Zauber eingesetzt werden sollen. Die sich dann auch noch bis zur nächsten Rast verbrauchen, was eine Gruppe mit Magiern (und genauso Priestern) ständig zu spielflussstörenden Pausen zwingt. Noch dazu sind Magier gerade zu Beginn furchtbar schwach und können von jeder Ratte umgehauen werden. Ihr Vorteil ist wie stark sie auf höheren Stufen werden, wenn normale Kämpfer ohne Spezialausrüstung gegen Magier gar nichts mehr ausrichten können.
Wie viel Sinn macht solch ein Gegensatz bei einem Spiel, das auf Stufe 1 beginnt? Das gleichzeitig ein so geringes Levellimit hat, das Magier nie wirklich stark werden können? Das aber in einen zweiten Teil mit wesentlich höheren Levellimit führt, in das der Hauptcharakter exportiert werden kann, sodass dies bei Klassenwahl mitbedacht werden muss? Und bei dem die Spielergruppe zu Beginn nur aus dem Hauptcharakter besteht, diese Limitierungen also voll durchschlagen?
Es macht gar keinen Sinn. Selbst wenn man doch meistens eine komplette Gruppe steuert, die man entlang dieser Limitierungen ausbalancieren kann: Ein gutes Computerrollenspielsystem würde alle Klassen interessant und immer relevant halten, ihnen nur ihren eigenen Ausprägungen und Spezialisierungen geben. Und was ich hier anhand von Kämpfern und Magiern beschreibe gilt genauso für alle anderen Klassen, mit Klerikern nahe den Magiern, Dieben irgendwo zwischendrin; Der Rest besteht sowieso nur aus Spezialvarianten dieser Grundklassen.
AD&D war eben beim Balancing nicht für Computerspiele gemacht. Sondern für Pen&Paper-Rollenspielrunden, bei denen der Spielmeister um ihre übelsten Auswirkungen herumarbeiten kann und sie sich ansonsten immerhin fürs aktive Rollenspiel eignen. Wobei, auch da ist es kein Zufall, dass moderne Varianten von D&D die Unterschiede beim Kampf zwischen Magiern und Kämpfern mittels aktiver Fähigkeiten minimieren, und das obwohl kein Computerspiel mehr auf dem System aufbaut.
Dazu kommt das Magiesystem. Die Zaubersprüche mit ihren absurden Namen zu lernen ist unabdingbar, aber selbst von den Namen abgesehen sind nicht gerade selbsterklärend. Warum skalieren manche Zauber mit dem Charakterlevel, andere nicht? Was braucht es, um welche negativen Statuseffekte zu heilen? Welche Schutzzauber sind effektiv, wie sind sie zu knacken, wie erkennt man welche Schutzzauber beim Gegner aktiv sind? Welche Gegner sind gegen welche Schadensarten empfindlich? Man muss das alles wissen bzw mühsam lernen. Was ich vor 20 Jahren halbwegs getan habe und jetzt immer noch zurechtkomme, aber das ist doch keine dem Spiel zuzurechnende Qualität.
Genauso ist es eigentlich mit den Monstern: Dass gewisse Monster bestimmte Gegenmittel brauchen, versteinernde Basilisken z.B. einen bestimmten Zauber oder magischen Trank, kann vor der Begegnung mit ihnen erfahren werden. Kann aber auch leicht verpasst werden und ist für neue Spieler sicher nicht offensichtlich.
Zum Problem wird das Ganze wegen der Balance des Spiels selbst. Zuerst ist der Anfang schwierig, je nach Charakterwahl sogar sehr schwierig. Dann wird das Spiel mit gefundenen Begleitern und ersten Aufstiegen wesentlich leichter. Das Ende wird dann aber durch die starken Buffs der Endgegner (das gilt sowohl für den regulären Endgegner sowie für die optionalen) wieder sehr schwierig, wo dann eine gut ausbalancierte Gruppe mit optimaler Ausrüstung sowie völliges Durchschauen des AD&D-Magie- und Kampfsystems vorausgesetzt wird. Teils ist selbst dann noch etwas kreative Nutzung von Macken im Gegnerverhalten notwendig, wenn sie die eigene Gruppe beispielsweise nicht verfolgen oder Schutzzauber mit der Zeit verfliegen, die Gruppe rasten und sich regenerieren kann, der Gegner seine Zauber dabei nicht erneuert und dann schutzlos ist. Es gibt noch einige andere solcher "cheesigen" Strategien, ein Zeichen eines fordernden und fairen Kampfsystems ist ihre Existenz nicht.
Die technischen Limitierungen
Ein Spiel, das im Grunde von 1998 ist, ist natürlich technisch limitiert. Heute treten diese Limitierungen aber voll zutage.
Ausrüstung ist am Charakter zu sehen, aber nur teilweise. Wenn ein Charakter einen Umhang anlegt passiert beispielsweise gar nichts. Sowieso, die Charaktere sind so futzelig klein, dass selbst beim Heranzoomen die Ausrüstung kaum zu erkennen ist. Ähnlichkeiten zum Charakterportrait sind pure Einbildung. Animationen sind minimal, Effekte ebenso und der Feuerball schon der Höhepunkt, außer gelegentlich herumlaufenden NPCs und Monstern bewegt sich wenig auf den (trotzdem ja hübsch gezeichneten!) Spielgebieten. Aber gut: 1998.
Für mich trotz dem Alter kritikwürdig sind die Reaktionen auf ungewöhnliche Abläufe. Wenn mich eine Frau ausschickt, ihren Mann in einer Mine zu finden, ich aber schon in der Mine war und seinen Dolch im Inventar habe, warum muss dann erst dieser Quest angenommen werden und sie zum Erledigen desselben dann nochmal angesprochen werden? Fast immer fehlt die Antwortoption "Oh, das habe ich bereits getan, hier nimm".
Wenn Charaktere nach einem Gespräch verschwinden sollen, laufen sie zu irgendeiner Tür oder in den Kriegsnebel. Völlig unabhängig davon, ob die eingeschlagene Richtung eine sinnvolle ist. Wäre es unmöglich gewesen, dafür glaubwürdige Pfade in den Gebieten vorzugeben?
Wie man mit den Gebieten richtig umgeht ist auch so eine Sache. Man muss als Spieler lernen, dass es Teil des Spiels ist, die verschiedenen Abschnitte immer ausführlich zu erkunden. Nur so stolpert man über alle Quests und alle versteckte Ausrüstung. Das wird im Laufe der Zeit fast schon nervig, weil gerade außerhalb der Stadt die Gebiete oft belanglos erscheinen. Die Gebiete sind aber alle gleich groß, nicht skaliert gemäß ihrer Relevanz. Das bedeutet viel Herumlaufen mit einigen Kämpfen und nur gelegentlichen interessanteren Begegnungen. Genauso ist die Stadt in Abschnitte unterteilt, die angesichts ihrer harten Kanten überraschenderweise scheinbar aber so nicht vorgesehen waren.
Was mich aber wirklich überrascht hat: Questgeber beschrieben ihre Aufträge oft nicht ordentlich. In der Stadt gibt es beispielsweise einen Zauberer, der von Konflikt zweiter Nekromanten berichtet den er beenden will, wofür der Spieler zwei Gegenstände stehlen soll. Er erwähnt mit keinem Wort wo diese Nekromanten sich aufhalten, nichtmal das Stadtviertel. Ihre Häuser sind nicht auf der Karte markiert, was bei einigen anderen Quests die Rettung ist. Das Internet hilft heute, Internet hatte man 1998 im Zweifel nicht.
Als nicht ordentlich umgesetzt empfinde ich auch die Gefährten. Es gibt viele davon, die Erstbegegnung und ihre späteren Kommentare sind oft toll. Doch es fehlen – abseits der Spezialcharaktere der EE - die Gefährtenquests und die Gespräche mit ihnen, sodass sie recht blass bleiben, obwohl manche mit ihren initialen Zielen Ansätze davon haben und dann auch entsprechend handeln. Der großartige Ansatz ist also da, aber leider nicht durchgezogen. Auch gibt es eben zu viele Gefährten um sie alle zu erleben, was aber aufgrund der notwendigen Gruppenbalance und dem Gesinnungssystem sowieso nicht ginge. Mehrfach durchspielen also, die Spielzeit ist ja nur ~70 Stunden…? Werden Gruppenbeitrittsgesuche abgelehnt verschwinden die Personen auch noch für immer, stattdessen muss man sie aufnehmen und direkt wieder aus der Gruppe entfernen, was kompletter Irrsinn ist. Dabei hätte es mehrere gute Sammelorte gegeben.
Die Orte der Erweiterung Tales of the Sword Coast gehören da nicht dazu, denn sie sind leicht verpassbar folgt man der Haupthandlung, nach der sie nicht nachholbar sind. Erkundet man andererseits gründlich die Weltkarte kann man mit dem Turm über einen Hauptdungeon der Erweiterung stolpern und ihn lösen, ohne vorher im ganz woanders liegenden zugehörigen Dorf die Quest und Hilfsmittel dafür zu finden. Davor warnt einen nichts und niemand, obwohl da eine passende Person herumsteht, mir ist das prompt passiert. Erreicht man danach das Dorf doch ist dies nicht vorgesehen, fehlen wieder die passenden Antwortoptionen um vom schon befreiten Turm direkt zu berichten.
Man sieht: So kompetent BG1 auf manchen Ebenen auch ist, auf anderen fehlte den Entwicklern eindeutig Erfahrung, Können oder zumindest Zeit.
Die Macken der Handlung
Bei den Macken der Handlung würde ich es nicht auf die Zeit schieben wollen. BG1 erzählt einfach eine komplett seltsam konstruierte Geschichte. Leichte Spoilerwarnung!
Es erschafft mit Sarevok einen Antagonisten, der direkt zu Spielbeginn tätig wird. Danach wird er bis zum Spielende nicht mehr gesehen. Sein Kontakt zum Spieler und Hauptcharakter beschränkt sich auf findbare Briefe, in denen dann ein Marek einen Morak anweist doch bitte den Spieler zu töten, damit Murok einen ausgetüftelten Plan zur Monopolisierung eines Marktes umsetzen kann. Komplett charakterlose Personen, denen man allen nur einmal begegnen wird. BG2 umschiffte das teilweise dadurch, dass in Ingame-Zwischensequenzen das Wirken des Antagonisten und mancher NPCs gezeigt wurde, BG1 kam darauf noch nicht. Die Briefe sind kein brauchbarer Ersatz (der Punkt könnte auch oben als technische Limitierung passen).
Es gibt eine größere Hintergrundgeschichte um einen Gott, was als Motivation und große Enthüllung dient. Was das für den betroffenen Hauptcharakter bedeutet bleibt komplett vage, weil es in das nächste Spiel verlagert wurde. Ja, das Ausblenden dieser Geschichte verschafft dem ersten Teil Bodenhaftung, aber es macht die Geschichte auch inkomplett. Die Schilderung der Auswirkungen des Endes fehlt gar komplett. Baldur's Gate wäre so ohne den zweiten Teil eine große Enttäuschung gewesen, das merkt man beim Spielen auch jetzt noch etwas.
Dazu fehlen Handlungsalternativen. Es gibt ein paar kleinere Weggabelungen in der Haupthandlung und viele Nebenquests können auf unterschiedlichen Wegen gelöst werden. Doch die Handlung komplett umzudrehen geht nicht, selbst für böse Spielercharaktere gibt es kein alternatives Ende. Und es gibt einige vertane Chancen im Kleinen: Wenn mich ein Monsteranführer anspricht, warum ich grundlos seine Schützlinge angreife, wäre das wesentlich wirkungsvoller wenn das denn stimmen würde (und nicht stattdessen sie als Minimal-KI bei Sichtkontakt schreiend auf meine Gruppe zurennen) und es dann wirklich die Möglichkeit gäbe, mit den Monstern Frieden zu schließen. Die gibt es nicht.
Monster sind auch in der Haupthandlung relevant. Immer wieder spielen da Gestaltwandler eine Rolle, die Organisationen unterwandern. Man sollte meinen, eine Gesellschaft mit solchen Wesen würde damit rechnen, sich davor schützen und vor allem die Möglichkeit immer in Betracht ziehen. Warum diese Wesen überhaupt dem Oberbösen helfen wird nicht erklärt, wenn doch nicht deutlich genug und ich habe es verpasst.
Generell passt nicht zusammen, welche Beweise man wie früh findet und wie wenig man damit unternehmen kann. Warum glaubt die Stadtführung der Gruppe nicht direkt, warum braucht es mehr Beweise als die vielen gefundenen Briefe?
Die Probleme der Enhanced Edition
Schließlich gibt es auch noch Probleme mit der Enhanced Edition. Keine, die sie mich negativ sehen lassen, aber ausgespart werden sollen sie nicht.
Baldur's Gate hatte für die Zeit typische Rendersequenzen als (zu seltene) Zwischensequenzen. Die EE wechselt die mit gezeichneten Videosequenzen aus. Die sehen besser aus, klar. Aber sie haben andere Details, verändern teilweise wie sie auf den Spieler wirken. Warum sind sie nicht optional zurückwechselbar?
Ich redete oben vom moderneren Interface, doch ist es eben nicht das originale BG1- oder BG2-Interface. Warum ist das keine Option? Warum kann das Originalinterface nicht ausgewählt werden, so hässlich das erste auch war? Gleiches gilt für die Änderungen bei den Charakterbögen, die so chaotisch früher sicher nicht aussahen.
Mir gefiel die vollständigere Vertonung der neuen Begleiter (ich hatte nur eine davon in der Gruppe, aber auch die anderen tauchten auf und redeten etwas), aber ihr Gegensatz macht diesen eben auch sichtbar. Neue Inhalte sind so fühlbar anders, was die alten stummer wirken lässt als ohne die Präsenz der neuen. Unvermeidbar, wenn man nicht alles komplett vertont, aber das wäre ja sowieso ein (dann zwingend optionales) Ideal gewesen.
Zu diesem Ideal hätten auch noch mehr Bugfixes gehört. Im Gegenteil war ich überrascht, wieviele Bugs noch im Spiel sind. Zwei besonders nervige: Mein mit einem Dolch bewaffneter Hauptcharakter bleibt gerne direkt vor Gegnern hängen, er zittert dann vor und zurück, greift aber nicht an. Schade auch, weil Dolche rechnerisch im Spiel wohl gute Waffen wären, durch diesen Bug aber unbrauchbar sind. Und meine Diebin schaltet KI-gesteuert immer in den Fallensuchmodus, was gut ist, bricht dabei aber manchmal ihre Bewegungsaktion ab, bleibt also einfach stehen. Wenn beim Anschalten des Suchmodus ein Container offen ist geht dieser zu, was extrem nervig ist und reproduzierbar nach ein paar Sekunden jedes mal passiert.
Abgesehen von Bugfixes ist es ein schmaler Grat, wieviele Änderungen von Fans der Vorlage akzeptiert worden wären (wie bei der oben erwähnten vollständigeren Sprachausgabe), aber ich zumindest hätte mir noch mehr Grafikverbesserungen gewünscht. Alle Ausrüstungsgegenstände am Charakter sichtbar, den dazu weniger pixelig zu haben und die Effekte der Zaubersprüche sowie die Animationen zu verbessern wäre doch nur positiv gewesen. Ich denke da an die Modernisierung von Diablo 2, die viel besser aussieht, aber jederzeit nahtlos zur Originalgrafik schalten kann. Sowas wäre toll gewesen.
Wie toll das Spiel doch ist
Thema toll: Diese überlange Liste an Kritikpunkten verdeckt völlig, wie toll und spannend Baldur's Gate 1 auch heute noch ist und wieviel es durch die Enhanced Edition gewinnt.
AD&D bringt viele Stärken
Das AD&D-System ist überkomplex und nicht balancierbar. Gleichzeitig macht es das interessant. Wenn Kämpfer nur anfangs stark sind und Magier später dominieren, warum dann nicht als Kämpfer anfangen und ihn zum Magier umskillen? Das System kann das als Dualklasse, es hat Nachteile und macht das Spiel nicht weniger komplex, aber gibt eben doch eine Lösungsmöglichkeit zur Hand. Wobei das nur mit Menschen geht, andere Rassen können dafür direkt als dann langsamer sich auflevelnde Multiklassen anfangen.
Generell ist es eine Herausforderung, das System verstehen zu lernen und für sich selbst zu nutzen. Und auch zu schauen, welche Lösung vielleicht nicht optimal ist, aber zum Durchspielen mit der passenden Gruppe völlig ausreicht.
Das System ist auch ein Hauch Heimat. Was ich als Anfänger mühsam lernen müsste und objektiv kritisieren sollte ist in Wirklichkeit längst im Kopf verankert. Wie was die Zaubersprüche machen und ihr Zusammenspiel, welche Monster es gibt und was die typischen magischen Items sind. Für Spieler damals könnte das ebenfalls gegolten haben, wenn sie von anderen CRPGs schon mit (A)D&D konfrontiert worden waren und hier auf ihr altes Wissen zurückgreifen konnten.
In AD&D bei Stufe 1 anzufangen ist eine große Hürde am Anfang, hat aber auch etwas positives: Man wird in Baldur's Gate 1 sehr schnell sehr viel stärker und kann gleichzeitig seinen Charakter sowie die Gefährten von Grund auf anpassen. So gelangt man schnell an eine gut zusammenspielende Gruppe und erfreut sich daran, nun problemlos durch vorher schwierige Gegnergruppen sich durchschnetzeln zu können.
Baldur's Gates Geschichte, Welt und Gefährten sind klasse
Für solche Kämpfe gibt die Spielwelt und auch die Geschichte viel Anlass. Die Story mag absurd sein, aber sie ist gleichzeitig passend für ein Rollenspiel. Man kann sich vorstellen eine so ähnliche Geschichte mit Freunden als Pen&Paper-Rollenspiel als Kampagne zu spielen (ohne den Gottbezug), vielleicht auch als Fantasybuch zu lesen (mit mehr zwischenmenschlichen Details). Sie führt auch gut durch diese Spielwelt und gibt reichlich Möglichkeiten, die stärker werdende Heldengruppe sich direkt stark fühlen zu lassen, geschickt Plan um Plan der Bösen zu durchkreuzen.
Und dabei sind nicht alle Aktionen zwingend! Zwar sagt das Spiel die nächsten Stationen deutlich an, durch Gespräche und Journaleinträge. Doch können die auch ignoriert und stattdessen die Landschaften erkundet werden. BG1 ist keine komplett lineare Geschichte, die Spielerfreiheit führt dazu den eigenen Fortschritt als Leistung zu empfinden, als Handeln in einer komplexen Welt. Eine Illusion, klar, aber eine gut gemachte.
Doch was sind schon System und Story, sind die eigentlichen Höhepunkte nicht die Gefährten? Liebenswürdig der stotternde Kahlid und seine rauhe Frau Jaheira, Minsc mit seinem Hamster und seiner Hexe, absurd der tatsächlich chaotisch böse Gnom Tiax mit seinem Welteroberungsanspruch. Wenn die dann auch noch ein initiales Ziel haben bekommen sie Charakter, so wie wenn Minsc seine Hexe befreien will und ansonsten die Gruppe verlässt. Dass dann leider nicht mehr viel kommt ist schade, doch sind selbst die gelegentlichen Kommentare angenehm. Ich muss hier aufpassen, nicht zuviel mit BG2 zu vermischen, wo die Gefährten noch weiter ausgebaut sind. Immerhin bringt die EE deren Formel für die drei neuen Gefährten auch nach BG1 und damit mehr Gespräche und Reaktionen, was ich wirklich als bereichernd empfand.
Baldur's Gate 1 hat auch abseits der Gefährten einiges an Humor, mehr als ich mich erinnern konnte. Teils als versteckte Eastereggs, wie die leicht verpassbarenden singenden Priester im Tutorial, die völlig überraschend tatsächlich die folgende Geschichte prophezeien. Oft in Form von seltsamen Begegnungen, wie die autogrammgebenden drei Gnome mit den Namen der Bioware-Gründern. Ähnlich mit der Spielebene brechend war das junge Mädchen, das auf die typische Rollenspielsprechgesprächsoption mit "Du spricht ja komisches Zeug" antwortet. Und als im (ansonsten nur als leichter Regen sichtbare, aber klar hörbare) Gewitter tatsächlich ein Blitz in Khalid einschlug und tötete war ich so amüsiert wie baff – und froh, dass ich alle paar Sekunden speichere.
Die Enhanced Edition verbessert vieles
Und dann ist da die Freunde an der Enhanced Edition. Dass es sie gibt, dass hier offensichtlich mit viel Liebe an diesem Klassiker gearbeitet wurden. Die vielen kleinen und größeren Verbesserungen sind superangenehm zu sehen. Und es war für mich eine Chance, vorher verpasste Inhalte (insbesondere der Originalerweiterung) nachzuholen, wofür ich dankbar bin.
Man darf dabei auch gerade die Grafikverbesserungen nicht zu geringschätzen. Die Grundgrafik mit ihren Zeichnungen mag die gleiche sein, aber sie ist doch geglättet worden. Das Interface weniger altbacken zu haben irritiert mich nur wegen der Alternativlosigkeit – ich möchte wirklich das alte als Option sehen – trotzdem ist auch das eine starke Verbesserung.
Schließlich sind da die reparierten Bugs. Ich erinnere mich, damals mit einigen gekämpft zu haben. Das mag teilweise an der Version gelegen haben, ich spielte Baldur's Gate 1 nach dem zweiten Teil mittels eines inzwischen aufgegebenen Projekts im BG2-Interface. Aber auch ohne diesen Faktor wurde wohl viel ausgebessert, denn viele Wikieinträge erklären nachträglich die Unterschiede und zeichnen ein Bild vieler grundlegender Fixes.
Neben den Bugfixes ist besonders angenehm, dass sich durch die Inhaltsfülle das Balancing verbessert. Es war im Original zu leicht, chancenlos unterlevelt mit ungenügender Ausrüstung vor dem finalen Bossgegner zu stehen. Auch jetzt kann das noch passieren, nimmt man nicht genügend der neuen Gebiete mit oder stellt man die Gruppe etwas unglücklich zusammen. Aber die Chance dafür ist minimiert, so viele Möglichkeiten zum Aufleveln und so gute magische Ausrüstungsgegenstände im Spiel nun zu finden sind.
Fazit
Was bleibt? Ein fesselndes Spiel, vollgestopft bis zum Gehtnichtmehr, das Levellimit wird mit etwas Sorgfalt garantiert lange vor dem Ende erreicht. Ein Wiedersehen mit alten Bekannten, wenn auch bei mir leicht veränderten Bekannten, kenne ich doch den zweiten Teil besser und sind die Gefährten dort durchaus etwas anders – was nicht an den Änderungen der Enhanced Edition liegt, sondern schon immer so war. Von den Modernisierungen der EE ist vieles gelungen, überraschend viel eigentlich, besonders auffällig und einnehmend waren für mich die erweiterten Charaktervertonungen der neuen Begleiterin. Gleichzeitig wiegt gegen all das positive der immer wiederkehrende Gedanke, dass diese und jene Situation ein modernes Spiel doch wesentlich besser gelöst hätte. Ähnliches gilt für die Änderungen der Enhanced Edition, bei der mir auf der einen Seite die Neuerungen nicht weit genug gehen (bei den grafischen Verbesserungen z.B.), andererseits manche der Änderungen mir nur deswegen nicht gefallen, weil sie nicht per Optionsmenü rückgängig machbar sind.
Nach der originalen Geschichte ist das Spiel noch nicht vorbei, sondern beginnt mit Siege of Dragonspear eine neue Erweiterung. Wie gut die ist folgt in einem eigenen Artikel. Denn ich möchte jetzt sowieso mit dem gleichen Charakter die gesamte Serie durchspielen. Derzeit ein Kämpfer mit Armbrust und Langstab, soll er bei Stufe 9 auf die Magierkarriere umsteigen, was geht weil ich für ihn bei Spielbeginn unheimlich gute Werte gewürfelt habe. In Baldur's Gate 1 begleitete ihn übrigens dann doch weiterhin eine feste Gruppe, Imoen (als Diebin im Fernkamp), Jaheira (Druide/Kämpfer und bei mir Fernkämpferin sowie Heilerin), Khalid (als zweiter Nahkämpfer), Kivan (Ranger, Bogen-Fernkampf) und Neera (die neue Magierin aus der EE).
Ein großes Danke an Thomas für das Spiel. Sein Review, das interessanterweise ein anderes Interface zeigt, findet sich in seinem Blog.
Linksammlung 44/2022
Diese Woche fand ich besonders erwähnenswert:
What happened to signal-desktop? Ganz einfach: Signal hat mit einem wohl illegalen DMCA-Takedown das Snap gekillt, der Snapstore hat das umgesetzt ohne den Paketverwalter zu informieren. Damit sind alle letzte Woche via dem CEO-Interview gesammelten Punkte verloren, mehr als das: Signal ist vollends nicht vertrauenswürdig. Und Snap steht auch nicht gut da.
In der Wochenschau 44/2022 beschreibt der Autor treffend, warum die Aufregung über die Blockade der letzten Generation heuchlerisch ist.
The fastest way to build Flutter apps in Python sei flet (via). Die grafischen Anwendungen des Crossplattform-Framework Flutter muss man ansonsten mit Dart schreiben, was eine extra für Flutter geschaffene Sprache ist und daher nur wenige bereits kennen. Überraschenderweise ist Dart aber eine extrem gute Programmiersprache geworden und noch dazu schnell zu lernen, der Umweg über Python ist völlig unnötig.
Mir gefiel I made outlines for KDE Breeze window decoration. Zum einen ist das Ergebnis hübsch und nützlich, zudem zeigt es schön, welche Überlegungen beim Bau solcher Anpassungen nötig sind.
Zur Verteidigung von LibreWolf
Sören kritisiert in seinem Blog LibreWolf, eine dieser alternativen Firefoxkonfigurationen. Er hat nicht völlig unrecht mit seiner Kritik, ich möchte aber zweien seiner Argumente dagegenhalten.
Das fehlende Projektimpressum
Sören schreibt:
Nun wirbt also ein Projekt um Vertrauen, welches nicht einmal ein Impressum auf der eigenen Website hat. Die Argumentation, dass im Land des Betreibers ggfs. keine gesetzliche Impressumspflicht besteht, könnte zu kurz greifen, da hier ein Produkt auch innerhalb der Europäischen Union angeboten wird. Letztlich schafft es aber auch vollkommen unabhängig von der rechtlichen Perspektive nicht unbedingt Vertrauen, wenn darauf verzichtet wird. Denn auch wenn es sich hier um ein Community-Projekt handelt, so muss es am Ende des Tages eine Person geben, welche gesamtverantwortlich für den Browser sowie Inhalte der Website ist.
Er verkennt hier in welcher Softwarewelt wir uns bewegen. Jeder von uns benutzt täglich Software, dessen Autor wir nicht kennen. Ist das tatsächlich mal anders, benutzen trotzdem die Entwickler der Software Abhängigkeiten deren Autor sie nicht kennen. Die FOSS-Welt ist auf eine andere Basis aufgestellt als die einer Internet-Impressumspflicht, einer rein deutschen Erfindung deutscher Weltregulierungsbürokraten. Schon bei Webseiten ist diese lächerlich, bei FOSS-Softwareprojekten völlig unbekannt. Klar, viele große Softwareprojekte lassen sich einzelnen Firmen oder speziell für sie gegründeten Vereinigungen zuordnen, die Regel ist das aber nicht.
Dementsprechend ist es keinesfalls so, dass für Browser oder Webseite des Projekts eine einzelne Person gesamtverantwortlich sein muss. Selbst wenn gewisse Juristen und Politiker das gerne so hätten.
Nebenbei, eine gesetzliche Impressumspflicht für solch eine private Hobbyseite besteht auch in Deutschland nicht. Edit: Diese meine Auffassung wird in den Kommentaren von fachkundiger Seite allerdings bestritten. Ich bleibe dabei, dass ein Projekt an solchen juristisch-bürokratischen Maßstäben zu messen keine gewinnende Strategie ist.
Das harmlose DRM
Sören schreibt:
Interessant ist auch die Begründung, mit der LibreWolf standardmäßig Digital Rights Management (DRM) abgeschaltet hat: Dies sei eine Limitierung der Nutzer-Freiheit. Das ist natürlich völliger Quatsch, denn im Gegenteil erlaubt DRM dem Nutzer den Konsum von Filmen, Serien und Sportveranstaltungen, sowohl kostenlos als auch kostenpflichtig, die anders überhaupt nicht angeboten werden könnten und was für den Nutzer auch überhaupt keinen Nachteil besitzt, während es das LibreWolf-Projekt ist, welches sich hier eine standardmäßige Einschränkung seiner Nutzer anmaßt – wohlgemerkt während gleichzeitig groß mit Freiheit geworben wird.
Die Aktivierung von DRM (Digital Restriction Management) in Browsern wie Firefox ist keinesfalls ohne Nachteile für die Nutzer, denn es propagiert die Nutzung dieser Technologie. Mit DRM aber kontrollieren Firmen, was die Menschen mit ihren Rechnern machen können. Dann werden Bücher aus der Ferne gelöscht, das Abspielen auf dem gewünschten Anzeigegerät verboten, das Anfertigen von Screenshots für Kritiken verhindert, das völlig legale Verleihen unterbunden; Kurz: Jedwede nicht komplett vorgesehene Nutzung der Inhalte wird verhindert. Als Firefox damals DRM aktivierte war es eine Niederlage für die Freiheitsrechte von uns allen, es in einem relevanten Browser nicht aktivieren zu können wirkte vorher gegen die weitere Verbreitung.
Natürlich kann jeder für sich abwägen, ob in einem bestimmten Kontext wie z.B. für Netflix das DRM nicht doch akzeptabel ist. Aber das sollte definitiv ein Opt-In und nicht standardmäßig an sein und ist wie ausgeführt nicht grundsätzlich eine nachteilslose Geschichte.
Das waren nur die zwei Argumente, die bei mir den größten Widerspruch provozierten. Mit den anderen Argumenten haben ich weniger Probleme, aber die Gesamtkritik findet mein Gefallen nicht.
Denn ich denke zwar insgesamt auch, dass ein Projekt wie LibreWolf natürlich Nachteile hat. Gerade Updates etwas später zu erhalten ist nicht ideal. Dazu laufen solche Projekte tatsächlich in die Gefahr, Sachen zu deaktivieren, die im Großen und Ganzen positiv sind. In diese Richtung geht der Großteil Sörens Kritik. Aber sie ist mir zu negativ, zu einseitig, das Projekt wegen seiner vermeintlichen Gefährlichkeit sogar nicht zu Verlinken empfinde ich als überzogen und wirkt auf mich kindisch. Denn erstmal ist es doch eine gute Sache, wenn alternative Konfigurationen von Firefox ausprobiert werden, wenn es ein Korrektiv für Mozillas teils eben durchaus fragwürdige Entscheidungen gibt.
Das ist immerhin die Firma, die bei der Überarbeitung der Androidversion Erweiterungen unter großem Protest deaktivierte und forkverhindernd ihre rasche Wiedereinführung versprach, was mittlerweile jahrelanges Verschleppen als Lüge entlarvt hat und nichtmal den eigenen Entwicklern erklärt wird. Besonders bei einem solchen Akteur ist Diversität eine Stärke, so ist auch LibreWolfs Existenz zu begrüßen. Ich vermute daher auch, dass die heftige Kritik weniger gegen das Projekt geht als gegen das durch das Projekt durchscheinende negative Bild von Mozilla – ob dem Autor das jetzt bewusst ist oder nicht.