Happy Arts Tetris Screenshot

13 Jahre Happy Arts Tetris

13 Jahre Happy Arts TetrisAm 30. März 1993 schrieb ich die ersten Zeilen für mein erstes PC-Spiel. Damals waren 286er Rechner mit 16 Bit und 640kb Hauptspeicher mit MS-DOS als Betriebssystem aktuell. Die VGA Karten konnten immerhin 640×480 Bildpunkte darstellen, allerdings nur, wenn man mit vielen Programmiertricks die 64kb Grenze umschiffte. Die Spiele waren sehr viel einfacher als heute und es war meist nicht die Grafik oder der Sound, sondern die Spielidee entscheidend. Zur damaligen Zeit programmierte ich mit Turbo Pascal und Assembler und die Spielidee „Tetris“ war ideal, um mit relativ kleinem Aufwand ein einfaches Spiel zu schreiben.

Ein Jahr später war aus der ersten kleinen Idee ein großes Projekt entstanden. Besonders viel Wert habe ich auf das eigentliche Spiel gelegt. Es sollte flüssig zu spielen sein und auch während der Arbeit kurzweilig ablenken können. Ein Bosskey („B“ im Spiel) zeigt den Screenshot vom 7. April 1994 mit dem Norton Commander für DOS. Große Teile wurden in Pascal geschrieben; die besonders zeitkritischen Routinen sind in Assembler codiert. Speziell das Intro mit seinen 3D-Morphing-Bällen, aber auch nahezu alle Zeichenfunktionen sind in 16 Bit Assembler implementiert. Damals hatten die Rechner 12 bis 16 MHz und die ersten 386SX mit 25 MHz kamen auf den Markt. An einigen Stellen werden auf 32 Bit Befehle benutzt, da die Grenze des 16 Bit Real-Mode erreicht waren. Verschiedene Sinusbrechungen, welche für das Morphing benötigt werden, liegen in vorberechneten Tabellen in der EXE. Ein Berechnen der Werte zur Laufzeit war damals zu langsam. Die Grafiken haben eine Auflösung von 320×200 Bildpunkten mit 256 verschiedenen Farben. Durch die geringe Auflösung ist ein Pageflipping nicht nötig, da das komplette Bild in einen 64kb Fenster passt. Alle Bilder und Ressourcen liegen in einer einzigen Datei (volume.000) gepackt vor. Das war zur damaligen Zeit ungewöhnlich, denn normalerweise wurden die einzelnen Daten einfach als Dateien in das Filesystem gelegt. Das Erstellen dieser Archiv-Dateien übernimmt ein eigenes geschriebener Archiv-Manager. Sogar die beigelegten Readme-Texte liegen noch einmal im Archiv vor und werden restauriert, falls sie gelöscht wurden.

Im Jahr 1994 wurde die erste Betaversion veröffentlicht. Damals kannte noch kaum jemand das Internet, aber es gab schon Online-Medien wie CompuServe. Die ersten öffentlichen Versionen des Tetris wurden im damaligen Magnamedia-Forum von einigen hundert Usern getestet und viele der Vorschläge eingebaut. Besonders aufwendig waren ein korrektes Timing und die Lauffähigkeit unter OS/2 oder anderen ungewöhnlicheren Systembedingungen. Da es keinen einheitlichen Zugriff auf die Soundkarte gab, war das Soundsystem besonders komplex und fehleranfällig. In diesem Jahr wurde das neue Soundsystem von Lutz Röder eingebaut, welches schon mit 32 Bit rechnete und daher MP3 und S3M-Dateien in sehr guter Qualität ausgeben konnte.

Ein Jahr später wurden nur noch kleinere Anpassungen entwickelt. Das Spiel läuft nun auch direkt von einer CD-ROM und das Setup-Programm wurde verbessert. Für das Setup verwendeten wir Object Professional von TurboPower Software.

Yves Hetzer verbesserte 1996 ein paar der Intro-Routinen und entwickelte sogar neue Intro-Teile. Die VESA-Unterstützung wurde ebenfalls an die aktuellen Entwicklungen angepasst.

In den letzten Jahren kamen regelmäßig Anfragen nach einer aktualisierten Tetris-Version, da das geliebte Spiel auf dem neuen Rechner nicht mehr läuft. Grund ist ein Fehler in Borland Pascal. Beim Start des Programms wird die Geschwindigkeit des Rechners gemessen, um diesen Wert dann in weiteren Routinen zu verwenden. Die Routine arbeitet jedoch fehlerhaft, so das diese bei besonders schnellen Rechnern eine Division durch Null erzeugt, die zum Abbruch des Programms führt. Der Fehler wurde Ende 2003 in einer neuen Version beseitigt. Das neue Tetris lief dann auf deutlich mehr Rechnern wieder ohne Probleme. Allerdings erreichten uns immer wieder Anfragen, das auch die neue Version noch nicht sauber läuft. Nach einer ausführlichen Debug-Session stellte sich heraus, das Object Professional (Unit OpCrt) auch einen ähnlichen Fehler enthält. Nachdem dieser in der aktuellen Download-Version 1.25 auch beseitigt ist, sollte das Spiel wieder auf allen neueren Rechnern laufen.

Da das Tetris ein reines MS-DOS-Spiel ist, wird es nicht mehr lange auf den aktuellen Rechnern laufen. Schon jetzt ist es äußerst schwierig, den Sound auch unter Windows zu hören, da die Creative Soundblasteremulation nur unter bestimmten Bedingungen (die so gut wie nie erfüllt sind) läuft. Unter Windows 64 Bit wird es keine DOS-Emulation mehr geben. Nach über 13 Jahren ist die damals modernste Technologie so veraltet, dass sie nur noch unter einer Emulation laufen wird.

Um das Spiel wieder eine Dekade lang zu ‚retten’, überlegen wir, es komplett neu in C# und .NET neu zu schreiben. Der Aufwand ist im Vergleich zu damals sicherlich viel geringer und es würde auch auf deutlich mehr verschiedenen Betriebssystemen wieder zufriedenstellend laufen. Vielleicht findet sich Zeit, ein historisches Projekt am Leben zu erhalten.

Downloadseite auf https://markus-kaemmerer.de

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen