Twinoid

1994, zu (un)seeligen DOS-Zeiten, habe ich nicht nur – wie schon so oft – angefangen, ein Spiel zu programmieren, sondern das Ganze tatsächlich auch mal zu Ende gebracht. Es ist ein vertikal scrollender Breakout-Clone entstanden, den ich nach dem damals verbreiteten Shareware-Modell veröffentlich habe: Twinoid.

Hier hat der Spieler Pech gehabt, sein Schläger wurde verkleinert.
Hier hat der Spieler Pech gehabt, sein Schläger (rechts oben) wurde verkleinert.

Der Ausgangspunkt war ein Buch („Basic – Profitechniken und Tools“ von Ethan Winer), das einige interessante Tricks zeigte, darunter weiches vertikales Scrolling für den damals aktuellen Grafikstandard VGA. Daraus habe ich ein scrollendes Breakout gemacht, mit einem Schläger oben und einem unten. Das Programm wurde in QuickBASIC und später Visual Basic für DOS(!) geschrieben. Kleine Teile sind in Assembler programmiert, darunter die Scroll-Routine und die Abfrage für die Tastatur (da nur so mehrere Tasten gleichzeitig zuverlässig erkannt werden konnten).

Die beiden Schläger können vom selben Spieler gesteuert werden oder auch von verschie­denen. Wobei die Steuerung per Maus schon praktischer ist als mit der Tastatur (die nur zwei Geschwindigkeitsstufen kennt), wirklich gut kann man das Spiel daher nur alleine spielen. Ziel ist es, alle zerstörbaren Steine (die flachen) kaputtzukriegen, in dem man sie oft genug mit der Kugel trifft. Hinter zufällig ausgewählten Steinen verstecken sich Extras wie ein extra großer oder kleiner (siehe Bild) Schläger, eine schnellere oder langsamere Kugel, eine Explosion, die umgebende Steine zerstört (auch solche, die anders nicht zerstörbar sind), umgedrehte Steuerung (so dass der Schläger nach links geht, wenn man nach rechts steuert, und umgekehrt), eine durchschlagende Kugel, ein „klebriger“ Schläger oder ein schießender Schläger.

Jeden fünften Level bekommt man ein Passwort, mit dem man dort wieder einsteigen kann. Insgesamt gibt es 100 Level. Abgesehen davon, dass es anstrengend war, ein Spiel mal wirklich zu Ende zu programmieren, war die Erstellung von 100 Leveln und 100 Hintergrund­grafik(ch)en eine ziemliche Fleißarbeit. Dazu kam, dass ich bei jedem Level ausführlich getestet habe, dass die Kugel nicht in eine Endlosschleife geraten konnte. Sicherheitshalber habe ich dann noch ein „Rütteln“ eingebaut, wie man es vom Flipper kannte, mit dem man die Kugel gegebenen­falls aus solch einer Situation befreien könnte. Teil des Spiels ist der Level-Editor, den ich auch selbst verwendet habe.

Die Shareware-Version hatte 20 Level. Wer alle 100 spielen wollte, musste die Vollversion kaufen. Um die 100 Kunden hatte ich damals, die mir dafür jeweils 20 Mark geschickt haben und dafür einen Brief mit einer Diskette zurückbekamen. Einer schrieb mir, dass seine Töchter das Spiel so gerne spielen… Den Karton mit den Briefen habe ich heute noch. Ich war stolz.

twin_005
Der zweite Spieler ist dran.

Das Spiel passt sich an die Geschwindigkeit des Rechners an, was zu dieser Zeit selbst für professionelle Spiele keine Selbstverständlichkeit war. Defender of the Crown, damals bekannt für seine bahnbrechende Grafik auf dem Amiga, konnte das zum Beispiel noch nicht. Leider ist bei dieser Routine ein Schnitzer passiert, der dafür sorgt, dass das Programm trotzdem auf heutigen Rechnern nicht einfach so läuft: Es wird in einer Schleife gemessen, wie lang eine gewisse Zahl von Schritten braucht, die das Spiel durchlaufen muss. Leider hatte ich die Zahl der Schritte festgelegt und dazu die Zeit gemessen. Dann wird durch die Zeit geteilt, um herauszufinden, wie lang ein Schritt dauert. Auf einem modernen Rechner geht das aber leider so schnell, dass die Zeit in der gegebenen Messgenauigkeit 0 ist. Division durch Null, und fertig ist der Programmabsturz.

Trotzdem kann man das Spiel auch auf heutigen Rechnern spielen. Man benötigt dazu allerdings DosBox, eine Umgebung, die einen Rechner der Neunziger nachahmt. Unter Linux konnte ich es einfach mit “dosbox TWIN.EXE‘ starten. Unter Windows gibt es verschiedene grafische Benutzeroberflächen für DosBox. Ausprobiert habe ich D-Fend Reloaded, damit läuft das Spiel gut. Beim Schwierigkeitsgrad merkt man aber deutlich: Früher war mehr Lametta! Beim Ausprobieren für diesen Beitrag wollte ich wenigstens mal zwei Level schaffen. Es hat mir schweißnasse Hände beschert.

Twinoid herunterladen

PS: Bitte keine 20 D-Mark an die im Programm angegebene Adresse schicken! ;-)

10 Gedanken zu „Twinoid“

  1. Hi eike. Für twinoid gabs auch extra Level. Man könnte dir auch welche zuschicken. Ich glaub das war so. Fiel mir gerade ein.

    1. Es ist ein tolles Gefühl, wenn sich jemand nach über 20 Jahren noch daran erinnert – vielleicht sogar besser als ich. Ich weiß noch, dass es einen Level-Editor gab (derselbe, mit dem ich auch die 100 Original-Level gebaut habe). Ob ich dazu aufgerufen habe, mir selbstgebaute Level zu schicken, kann ich gar nicht mehr sagen…

  2. Ha, ich meine mich zu erinnern, dass ich es sogar gespielt habe (in der Sharewareversion). DotC sowieso, aber Twinoid auch. Diese Hintergrundgrafik! War der Name auch deine Idee?

    1. Im Ernst, du hast das gekannt?!? X)
      Die Hintergrundgrafik war wohl von Ereignissen wie denen in Rostock-Lichtenhagen inspiriert.
      Der Name ist auf meinem Mist gewachsen, „-oid“ wir Arkanoid und co, und „Twin“, weil sich das irgendwie nach zwei Leuten anhörte…

      1. ’s könnte natürlich auch ähnliches Spiel mit gleicher Hintergrundgrafik gewesen sein, was ich aber für unwahrscheinlich halte.
        twinoid.com kennst du?

        1. Die Hintergrundgrafik im ersten Level dürte doch ziemlich einmalig sein. Ich hatte damals sogar einen Brief bekommen von einem,
          der das in den falschen Hals bekommen hatte und schrieb, dass Hakenkreuze ja nun nicht so doll sind…

          Macht mich schon stolz, jemanden zu treffen, der sich an mein Spiel erinnert! (Ohne es, wie Nancy, persönlich „aufgedrückt“ bekommen zu haben. ;o) )

          twinoid.com ist mir beim Googeln begegnet. Gleich mal auf 100 Millionen verklagen, die Purschen!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.