Spacola_Disks1

SPACOLA Eclipse WIP 0.57

0

Berichte über das Ende von SuccessDenied sind stark übertrieben. Ich hatte in letzter Zeit weder besonders viele Themen über die ich schreiben wollen würde, noch war ich überhaupt in der Stimmung, etwas zu schreiben. Beruflich bin ich zur Zeit unabkömmlich. Hinzu kommt, dass ich seit meiner letzten Erkältung vor über fünf Wochen zwar längst nicht mehr krank bin, aber leider auch nicht richtig gesund. Wieder einmal schleppe ich einen wirklich besonders hartnäckigen, unproduktiven Husten mit mir herum. Mehrmals täglich inhaliere ich daher mit meinem Kompressor-Druckluftinhalator Kochsalzlösung mit Mucosolvan, schmiere mich mit Mentholsalbe ein, trinke Hustenlöser, nehme Tropfen ein – die ganze übliche Palette eben, ohne dass irgendetwas davon irgendwie helfen würde. Mit meinen guten Genen bin ich schon sehr gesegnet.

Aber: Wenn die Gesundheit eines Tages zurückkehrt, bin ich sicher, dass ich auch meine gute Laune zurückerhalten werde. In der Zwischenzeit ein kleines Update zum SPACOLA Eclipse Remake-Projekt. Das Projekt steht ganz und gar nicht still, sondern wird wöchentlich mit Änderungen und Neuerungen versehen. Die aktuelle WIP-Version 0.57 vom Juli bringt wieder viele kleine neue Funktionen mit, und sogar eine größere. Aber auch ein paar Änderungen der vorhergehenden Versionen dürfen hier nicht unerwähnt bleiben. Der nüchterne Screenshot soll einen Einblick in das Debug-Menü geben, das ich um einige Einträge erweitert habe. Beim Testen sind die vielen Kommandos äußerst hilfreich, sonst spielt man sich dumm und dämlich, wenn man zum 50. Mal dieselbe Stelle im Code geändert hat.

spacolaeclipse57

Remake-Technik

Die 2D-Grafikengine zeigt jetzt bei Bedarf ein paar Dinge an, die das Original nicht hatte: Sektorgrenzen, Hüllkreise, Objekttypen, Spielernamen (für den Multiplayer-Modus), außerdem natürlich die Partikeleffekte, Interpolation und Pixelvergrößerung. Mal davon abgesehen, erlaubt es das Remake, einige Limitierungen des Originals aufzuheben, die damals vermutlich aus Performancegründen nötig waren. Beispielsweise Objekte, die sich zu weit vom Spieler entfernt hatten, wurden im Original aus dem Spiel genommen. Heute könnte man diesen Löschmechanismus herausnehmen und dadurch eine persistentere Spielwelt bekommen. Der Dongleware-Fadein/Fadeout-Effekt, den ich vor ungefähr 4 Jahren mühsam implementiert hatte, war leider fehlerhaft. Inzwischen ist er eine absolut pixelgetreue Nachbildung.

Maforianer-Gegner fertig

Es hat lange gedauert und mir sind dabei viele graue Haare gewachsen: Der Maforianer, einer der ersten drei Gegner, ist mehr oder weniger komplett fertig. Das Bewegungsmuster dieses Gegners ist vermutlich eines der einfachsten im Spiel, aber bei weitem nicht so leicht nachzuimplementieren, wie man meinen möchte. Inzwischen bin ich an einem Punkt angelangt, wo mein Ansatz der Vorlage nahe genug kommt, so dass man es vorerst so lassen könnte. Dadurch bin ich auch auf die Spur eines neuen mathematischen Ansatzes für die Schiffsnavigation der Gegner gekommen – und habe zufällig auch die Lösung für das Problem mit dem Magnetismuseffekt gefunden. In der Folge bewegen sich die Gegner jetzt realistischer, und die Anziehung von Containern, Waren und Piraten sieht viel besser aus als vorher. Der Maforianer hetzt jetzt dem Spieler permanent hinterher, jagt ihm nach Möglichkeit die Lieferwaren ab und flieht damit zu seiner Piratenstation. Es ist noch nicht alles hundertprozentig, aber es ist besser als nichts. Fehlen für den ersten Level also nur noch zwei weitere Gegner, mal sehen wann mir das gelingt.

Abspann

Im Remake kann man sich – genau wie im Original – das „Zertifikat“, also die Siegerurkunde ausdrucken lassen, sobald man den letzten Level gewonnen hat. Zusätzlich gibt es im Remake nun einen echten Abspann (die Closing Credits), in dem viele beteiligte Personen genannt und Danksagungen zum Ausdruck gebracht werden. Diese kleine Erweiterung wollte ich in jedem Fall im Remake drin haben, denn sie macht ja schließlich auch nichts kaputt. Mir fällt tatsächlich nun außerhalb des laufenden Spiels nichts mehr ein, das ich noch nicht fertig habe. Eigentlich eine gute Nachricht.

Timings

Timings sind mir seit einigen Monaten ein großes Ärgernis gewesen. Nachdem ich am Anfang meistens gesagt habe „Diese oder jene Animation läuft ungefähr 4 Sekunden“ und das dann auch so eingebaut habe, ging ich nun endlich dazu über, die exakte Anzahl Frames zu zählen. Wenn dann beispielsweise 270 Frames herauskommt, muss ich das wiederum umrechnen auf die Zielframerate von aktuell 50 fps. Das wären dann etwa 187 Frames, damit die Animation genauso lange läuft. Ähnlich verhält es sich mit den Konstanten für Gegnerverhalten: Wenn ein bestimmter Gegner 120 Frames braucht, um sich um 180 Grad zu drehen, dann braucht derselbe Gegner im Remake dafür nur noch 83 Frames. Und da sich die Framerate beliebig einstellen lassen wird, muss diese Berechnung wiederum variabel sein. Zusammengefasst habe ich viel Zeit damit verbracht, die Dinge, die eigentlich schon fertig waren, nun auch bezüglich der Original-Timings anzupassen.

Gegner-Deployment und -Redeployment

Das Deployment und Redeployment von Gegnern ist nun wesentlich näher am Original. Alle paar hundert Frames wird ein Gegner in der Station generiert. Dann beginnt dieser sich zu drehen, und zum Spieler auszurichten. Wenn die Ausrichtung stimmt, gibt er Schub und beginnt die Jagd. Dafür gibt es eine Gegner-Warteschlange, die sich aus den Anweisungen der Gegnerkonfigurationen im Levelskript zusammensetzt, und es gibt die Redeployment-Warteschlange für Gegner, die gestohlene Ware abgeliefert haben. Leider verstehe ich den Zusammenhang mit den Levelskripten noch nicht so ganz, daher ist die Unschärfe hier sehr groß. Ich kann aktuell nur nachbilden was ich sehe, und viel sehe ich nicht.

Es sind wie gesagt viele Kleinigkeiten, die nach und nach besser werden. Das Ziel für den ersten komplett spielbaren Level ist schon sichtbar, jetzt heißt es dranbleiben und das Tempo steigern. Die zwei verbliebenen Gegnertypen (für Level 1) werde ich wohl in Kürze angehen müssen, und mich zur Not auch damit anfreunden, wenn das Ergebnis dann nicht perfekt wird.

ATARI

„The Oxyd Book“ in meiner Sammlung

2

Seit kurzem befindet sich in meiner kleinen privaten Sammlung von Dongleware-Büchern ein Exemplar von „The Oxyd Book“ (General Edition) in der American Edition von 1992. Von der deutschen Ausgabe besitze ich bereits zwei Exemplare, aber aus irgendeinem Grund war ich wohl der Meinung, ich müsste die Sammlung dringend mal wieder erweitern, und so bestellte ich mir kurzerhand dieses schöne Stück aus den USA. Beim vorsichtigen Säubern des sichtlich beschmutzten Bucheinbands fiel mir auf, dass sich nicht allein der Schriftzug von der deutschen Variante unterscheidet, sondern der ganze Farbton des Bucheinbands ein anderer ist. In Deutschland ist er orange, die American Edition dagegen ist gelb. Nach dem Einscannen des Covers und des Klappentextes fürs Archiv wandert das Buch natürlich in meine gedachte, weil leider noch nicht ganz vorhandene Raritäten-Glasvitrine.

The Oxyd Book

Das Buch bei Amazon über einen Drittanbieter war leider nicht so ganz günstig zu bekommen. Auf der anderen Seite des großen Teiches zu bestellen, treibt den Preis scheinbar ziemlich in die Höhe, jedenfalls sind mir keine Schnäppchen aufgefallen. Sei’s drum. Ohnehin war die Bestellung eine recht interessante und witzige Erfahrung für mich, schon da ich nicht so oft international bestelle, so wie manch anderer. Zunächst wusste ich auch gar nicht, ob das Buch tatsächlich erst noch importiert werden muss, da der Händler entweder seinen Sitz in Deutschland hatte, oder zumindest deutsch klang. Ich bildete mir anfangs ein, das Buch sei womöglich schon zuvor eingeflogen worden und müsse nur noch innerhalb Deutschlands verschickt werden.

Jedenfalls war das Päckchen nach fünf Wochen noch nicht eingetroffen. Ich hatte eigentlich nur peripher begonnen, mir Sorgen zu machen, ob da etwas verschüttgegangen sein mochte, aber als selbst der Verkäufer bei mir wohl routinemäßig in schönstem Google-Translate-Deutsch per Textnachricht anfragte, ob denn alles in Ordnung war, und ob er seine Händlerbewertung bitte haben könne, da war das eine geeignete Gelegenheit für mich, durchblicken zu lassen, dass ich noch (geduldig) auf die Lieferung wartete. Die Antwort kam prompt: Das sei natürlich ganz und gar nicht gut, er entschuldigte sich, und ich solle doch bitte kurz bestätigen, ob die hinterlegte Adresse die richtige sei, und auch mal nachsehen, ob das Paket nicht womöglich für mich irgendwo abgegeben worden sein konnte.

Die Adresse bestätigte ich, und die Lieferung wartete ganz sicher auch nicht wochenlang in irgendeinem Erdloch ohne meine Kenntnis auf mich. Der Händler erstattete mir kaum zwei Tage später den gesamten Betrag und entschuldigte sich erneut bei mir. Er konnte leider nicht in Erfahrung bringen, wo die Lieferung sei. Ich war überrascht angesichts soviel Freundlichkeit und der schnellen und völlig unproblematischen Rückerstattung. Ich erwarte ja eigentlich ständig, irgendwann einmal in eine solche blöde Situation zu kommen, in der ich ewig hilflos meinem Geld hinterherrennen muss, und am Ende doch keinen Cent mehr davon sehe.

Ich hatte das Thema längst abgehakt, da steckte das Buch nach deutlich über acht Wochen plötzlich doch noch in meinem Briefkasten. Das war erfreulich und gleichzeitig irgendwie kurios – vor allem die Tatsache, dass ich für das eigentlich recht teure Buch faktisch überhaupt nichts bezahlt hatte, und der Verkäufer die Lieferung auch schon selbst als verloren betrachtete. Nun sollte ich vielleicht die Geschichte erzählen, wie ich eine längere und hitzige Diskussion mit dem Engelchen auf meiner rechten Schulter und dem Teufelchen auf meiner linken Schulter führte, aber so war es gar nicht. Fast sofort begann ich einige Zeilen an den Verkäufer zu schreiben und ihn auf das schließlich doch noch aufgetauchte Paket aufmerksam zu machen. Unehrlich liegt mir irgendwie nicht.

Dafür bedankte sich der Verkäufer bei mir für meine Aufrichtigkeit und für die Bereitschaft, die Rückerstattung rückgängig zu machen. Dazu musste ich jedoch selbst bei Amazon aktiv werden, da einem Verkäufer die notwendigen Mittel dazu fehlen. Ich schrieb also wiederum an den Amazon-Support und bat darum, die Rückerstattung zurückzunehmen, weil das Paket inzwischen doch noch angekommen war. Als Antwort bekam ich von einer netten indischen Supportmitarbeiterin eine weitere Entschuldigung, dafür dass das mit der Rückerstattung noch nicht geklappt hat. Überweisungen dauerten bekanntlich oft länger, und ich solle mich doch bitte einige Tage gedulden und dann gegebenenfalls noch einmal melden, wenn das Geld weiterhin auf sich warten ließe. Die Dame hatte meine Anfrage offensichtlich nicht richtig gelesen.

Nach einer weiteren Nachricht konnte ich das Missverständnis aufklären. Diesmal hatte eine andere indische Supportmitarbeiterin meine Anfrage beantwortet. Erneut bedankte man sich bei mir für soviel Ehrlichkeit, die Zahlungsabteilung würde das Geld demnächst nochmals bei mir abbuchen. Der Dank und die Entschuldigungen waren mir das Geld allemal wert.

Windows

Warum Microsoft mich ankotzt, Teil 2

0

Es könnte alles so einfach sein, würde Microsoft sich nicht entschließen, es unnötig kompliziert zu machen. Es mag Ideen geben, die für die Entwickler auf dem Papier Sinn ergeben, sich in der Praxis aber als ziemliche Scheiße entpuppen. Seit ich mir privat einen zweiten Monitor zugelegt habe, bin ich mein 27-Zoll + 24-Zoll Monitor-Setup gewohnt, und auch beruflich im Büro sind zwei Monitore längst Standard. Die diversen Fenster, die ich normalerweise permanent geöffnet habe, also etwa der Browser, die Softwareentwicklungsumgebung, den E-Mail-Client, den MP3-Player, Bildbearbeitungssoftware, Instant Messenger, Texteditor (und oft noch einige mehr), verteile ich nach meinem ganz eigenen System auf die beiden Monitore. Ich weiß genau wo ich was finde, und was ich möglichst immer gleichzeitig links und rechts sehen will.

multimonitor

Wenn ich mal für ein paar Stunden nicht am Rechner bin, die Kiste aber weiterlaufen soll, schalte ich die Monitore gerne aus. Das hat in der Vergangenheit teilweise funktioniert. Jedenfalls hat es das mit dem zweiten (DVI-)Monitor. Wenn ich den primären – via DisplayPort angeschlossenen – Monitor ausschalte, dann erkennt Windows 7 das Gerät genialerweise als nicht mehr angeschlossen und verschiebt alle meine offenen Fenster ungefragt auf den zweiten Bildschirm. Ich war jedes Mal äußerst dankbar dafür, dass ich meine Fenster alle wieder von Hand umsortieren durfte. Umgekehrt war das bislang kein Thema, weil Windows das Ausschalten über DVI offenbar nicht bemerkt hat. In der Folge durfte ich also nur noch den sekundären Monitor ausschalten, der Primäre musste eingeschaltet bleiben, weil sonst meine Fenster irgendwohin wanderten.

Die Notlösung war der Windows-Energiesparplan, mit dem ich die Monitore nach einer gewissen Zeit softwareseitig abschalten konnte, beide Monitore aber weiterhin als angeschlossen galten. Das hat lange Zeit ganz gut funktioniert. Bis zu einem der letzten Windows 7-Updates oder möglicherweise auch dem letzten Grafikkarten-Treiberupdate, so ganz sicher bin ich mir da nicht mehr. Ich war überrascht, dass fortan auch der DVI-Monitor beim Ausschalten den Windows-Systemton auslöst, den man üblicherweise dann hört, wenn ein Gerät abgestöpselt wird. Beim sofortigen Wiedereinschalten war der zweite Desktop natürlich leer.

Schlimmer war allerdings, dass Windows neuerdings beide Monitore vom System trennt, wenn sie durch den Energiesparplan ausgeschaltet werden. Nach zehn Minuten Inaktivität wurden beide Monitore dunkel und man konnte nun immer jeweils zweimal den Gerät-Entfernt-Systemton hören. Windows trennt intern die beiden Monitore, verschiebt alle Fenster kurzerhand ins Nirvana, und schmeißt sie dann bei erneuter Benutzeraktivität auf den erstbesten Monitor, der zuerst wieder aus dem Tiefschlaf erwacht – begleitet von dem zweimaligen Gerät-Angeschlossen-Systemton. Windows interessiert es nicht, wo die Fenster ursprünglich waren, es wird immer alles auf einen Haufen geworfen. Das ist so dermaßen ätzend, dass ich meine Begeisterung kaum im Zaum halten kann.

Ausschalten ist also nicht mehr drin, wenn ich nicht zufällig Spaß daran habe, mehrmals täglich sämtliche Fenster von neuem zu sortieren. Auch der Energiesparplan fällt so für mich weg. Was bleibt ist einzig der Windows-Bildschirmschoner, wenn ich will, dass die Monitore (halbwegs) dunkel bleiben. Dann werden sie wenigstens nicht sofort sinnlos vom Gerätetreiber ausgehängt, sondern bleiben aktiv. Zu gerne würde ich die automatische Erkennung, ob der Monitor ein- oder ausgeschaltet ist, einfach per Häkchen deaktivieren, doch so einfach macht es uns Microsoft nicht. Diese Erkennung lässt sich natürlich gar nicht abschalten. Meine Recherche hat ergeben, dass dieses „Feature“ aus Sicht von Microsoft richtig und beabsichtigt ist. Also eine wieder einmal an vielen Nutzern vorbeientwickelte Funktion.

Es gibt einen Workaround für den Fall, dass man bereit ist, seine Monitore über HDMI anzuschließen und am Stecker den Pin Nummer 19 abzukleben, der für diese automatische Erkennung nötig ist. Bei DisplayPort-Steckern gibt es einen solchen Pin ebenfalls, ist aber zu klein, um ihn einfach abzukleben. Und auch für Titan-Grafikkarten von Nvidia scheint es einen Workaround zu geben, der mir aber genausowenig hilft. Mit einer simplen Einstellung in den Optionen für die Bildschirmauflösung in der Art wie „Diesen Monitor beim Ausschalten nicht vom System trennen“ wäre das Problem für alle erledigt, doch so denkt Microsoft nicht. Ich bezweifle, dass jemand bei Microsoft hier überhaupt gedacht hat.

Hier einige Links zu dem leider schon recht lange bekannten Problem:

Windows

Warum Microsoft mich ankotzt, Teil 1

0

Nun habe ich erneut etliche Wochen verstreichen lassen, ohne etwas Textliches für meinen Blog hervorzubringen. Das möchte ich heute ändern, indem ich Microsoft-Fans gegen mich aufbringe. Mit dem vorliegenden Beitrag beginne ich eine Mini-Artikelserie über Dinge, die mich an Microsoft-Produkten stören. In letzter Zeit entdecke ich gehäuft Bugs in Software von Microsoft, wobei sich nach längerer Recherche herausstellt, dass der Hersteller überhaupt keine Ambitionen hat, die Probleme, die daraus resultieren, irgendwie zu lösen. Im Gegenteil: Voller Hohn stellt man sich dort immer öfter mit symbolisch verschränkten Armen hin und sagt, dass das eine bewusste Design-Entscheidung sei. Wunderbar! Dann ist es ja in Ordnung, dass nichts richtig funktioniert. Meine Beobachtung möchte ich anhand von Beispielen erläutern, um mir nicht substanzlose Hassbeiträge unterstellen lassen zu müssen. Im Folgenden also ein kleines Beispiel.

Schon vor Jahren fiel mir ein großes Ärgernis in Windows 7 auf: Bei vielen Spielen kommt es vor, dass Windows sich nach 30 Sekunden entscheidet, die visuellen Designs auszuschalten, um die „festgestellte“ beeinträchtigte Leistung des Computers auszugleichen: „Änderung des Farbschemas zum Verbessern der Leistung“ nennt sich das dann. Durch den Warnhinweis wird man von Windows freundlicherweise komplett aus dem Spiel geworfen. Das wäre für das erste Mal gar kein Problem, denn ich kann mich ja bewusst dagegen entscheiden: Keine Ahnung was Windows da genau „festgestellt“ haben will, aber mein Rechner ist definitiv leistungsfähig genug, um Spiele auch flüssig bei aktiviertem Aero auszuführen. Ich kann immerhin auswählen „Aktuelles Farbschema beibehalten und diese Meldung nicht mehr anzeigen“, und damit ist das Thema dann endgültig gegessen.

aeroperformance

Ist es das? Nein, leider doch nicht. Der Bug ist nämlich der, dass Windows den Teil mit „und diese Meldung nicht mehr anzeigen“ komplett ignoriert, so als hätte ich die Alternative ausgewählt, die den Zusatz „aber erneut fragen“ trägt. Diese Option wähle ich bewusst nicht aus, aber es macht überhaupt keinen Unterschied. Windows merkt sich die gewählte Einstellung nicht für das Spiel, und nicht einmal für die laufende Windows-Sitzung. Beim nächsten Spielstart wird Aero nämlich gleich wieder deaktiviert und es erscheint wieder dieselbe doofe Meldung, die ich wieder wegklicken muss. Wieder mit dem Hinweis, dass ich bitte nicht mehr belästigt werden möchte. Es bringt nichts. Windows wirft den Nutzer jedes verdammte Mal raus und fragt jedes Mal nach. Ich kann mich dagegen nicht wehren. Windows 7 ist leider zu alt, Microsoft hat keinen Grund mehr, diesen steinalten Bug zu beheben, also muss ich damit leben.

Microsoft sieht in seinem Betriebssystem auch keine Möglichkeit vor, diesen Warnhinweis komplett abzustellen und die Erkennung von Leistungsproblemen (welcher Art auch immer) einfach zu unterbinden. Wie so oft wird man hier entmündigt und bekommt auch keine Optionen für fortgeschrittene Nutzer angeboten, die wirklich hilfreich wären. Es scheint für einzelne Fälle Workarounds zu geben, und es gibt natürlich die Möglichkeit, visuelle Designs schon proaktiv auszuschalten, damit die Meldung wegbleibt, aber ich will die Designs eigentlich nicht jedes Mal ausschalten müssen, will mich nicht verbiegen müssen für einen Fehler, der eindeutig beim Betriebssystem liegt. Es nervt einfach nur extrem.

Hier einige Links zu dem leider schon recht lange bekannten Problem:

nach oben