Interview mit Soeren Dressler

Webmaster von QMystic

© Thomas Antoni, Mai 2001

Besuchen Sie auch Soerens Webseiten: Per E-Mail erreichen Sie Sören unter soeren01@web.de  
 






Vorwort von Thomas Antoni

Soeren ist für mich weltweit einer der besten QuickBasic Spielprogrammierer. Sein "XBall" und den "Space-Fighter" muss man einfach einmal gesehen haben: Diese Intros, diese professionellen Setup-Routinen, diese butterweichen Animationen, diese majestätische Soundkulisse, diese professionellen, mausgesteuerten Menüs. Soeren zeigt damit, was man alles Unglaubliches aus dem guten alten QuickBasic herausholen kann, wenn man die Multimedia Bibliothek "DirectQB" des Giganten Angelo Mottola verwendet.

Soeren ist wohl auch einer der besten deutschen DirectQB-Kenner und gibt sein Wissen in Form eines DirectQB Kurses weiter. Soerens Spiele findet ihr auf www.QMystic.de und den DirectQB-Kurs im QBasic-Club. Im QBasic-Club gibt es auch Soerens "QuickBasic-Times", ein QB-Magazin voller Tipps und Tricks sowie einem QMidi-Tutorial, einem 3D-Tutorial, Infos über Direkt-Tastenbearbeitung, einem Assembler-Workshop ... und vielem mehr.

Ich habe mir einige von Soerens Spielen genauer angeschaut und kann Euch folgendes darüber berichten:
  • Tetris: Toller Tetris Clone mit butterweichen Animationen und Highscore-Liste. Sehr schön!
  • XBall IV: Der beste Clone des Arkade-Kassikers "Arkanoid", den ich kenne. Schlage mit einer Art Tennisschläger eine Kugel von unten nach oben und schieße in rasanter Aktion bunte Steine ab, die am Himmel schweben. Mit aberwitzig schnell animierter Grafik, Waaahnsinns-Sound, komfortablem Mausmenü und Levelspeicherung. Das Sahnehäubchen ist aber der Leveleditor, mit dem Du Deine eigenen Steingebilde bauen kannst.
    Tipp: XBall benötigt einige MB an erweitertem EMS-Speicher. Das Programm ist daher in der DOS-Box von Windows nur lauffähig, wenn Du im Eigenschaftendialog für Xball4.exe unter "Speicher" ausreichend EMS reservierst (z.B. 4096K EMS und keinen XMS Speicher)
  • Space Fighter: Rasanter vertikaler Space Shooter. Decke Dich in der Waffenkammer zunächst mit Bomben und Raketen ein und starte dann hiermit gerüstet in den Abwehrkampf gegen die feindlichen Raumschiffe. Da geht es nervenzerfetzend zu, und die Detonationen verbreiten eine unglaublich dichte, prachtvolle Soundkulissse. Mit atemberaubend schnellen Grafikanimationen. Dies Spiel macht richtig süchtig. Auch Space Fighter benötigt EMS-Speicher (siehe den obigen Tipp bei XBall)
Space Fighter von Soeren Dressler

Screenshot von "Space Fighter",
einem der besten QB-Spiele überhaupt



Interview

Thomas: Wie alt bist Du und wo wohnst Du?
Sören: Ich bin 19 Jahre alt und wohne in Leipzig.

Thomas: Was machst Du ausbildungs- bzw. berufsmäßig?
Sören: Noch geh' ich zur Schule, aber nicht mehr lange.

Thomas: Was erwartet den Besucher auf Deiner Webseite?
Sören: Zunächst gibt es da meine eigene Homepage QMystic. Dort stelle ich meine eigenen Produkte zum Download bereit und informiere über meine derzeitigen Projekte. Dann gibt es noch die QBasic-Club Homepage, um die ich mich leider nicht mehr kümmern kann.

Thomas: Wie sieht Dein Webdesign-Konzept aus?
Sören: Das ist immer ganz experimentell. Ich weiß vorher nie, wie es aussehen soll. Ansonsten ist das Konzept einfach. Der User soll schnell und einfach das finden, was er sucht.

Thomas: Wie war Dein Werdegang als Programmierer?
Sören: In der 5/6 Klasse besuchte ich einen Computerkurs. Es war eigentlich nur "Arbeiten mit einem PC", aber einmal wurde auch das Programmieren mit QBasic angerissen. Es waren zwar nur einfache Ein- und Ausgabefunktionen mit PRINT und INPUT. Dennoch war ich voll begeistert. Zuhause hab ich mich dann immer vor unseren 486 gesetzt, getüftelt und ausprobiert. Mit der Zeit entstanden auch richtige Spiele. Am Anfang noch textbasierend und später auch mit Grafik. Mein erstes gelungenes Spiel war XBall2.

Irgendwann legten wir uns einen Internetzugang zu. Erst dann habe ich gesehen, was alles mit QBasic möglich war. Man denke dabei nur an DirectQB. Jedenfalls habe ich immer weiter programmiert, und was als letztes dabei heraus gekommen ist, sind die Sachen auf meiner Homepage.

Thomas: Sag doch mal ein paar Worte zu Deinen QBasic-Programmen.
Sören: Da ist als erstes Space-Fighter I. Das ist ein vertikaler Spaceshooter und spielt im Weltraum. Man kann sich in der Waffenkammer mit allerlei Waffen ausstatten. Mein Favorit ist die Zeitbombe, welche alle Gegner auf einen Schlag vernichtet. Durch den Abschuß der Gegner erhält man Punkte, die in der Basis in Credits umgewandelt werden. Für diese kann man sich neue Waffen, Panzerung, Raketen und Munition kaufen.

Als nächstes wäre da Space-Fighter II. Das ist ebenfalls ein Spaceshooter, aber zur Abwechslung aus der Vogelperspektive - ich wollte nicht noch mal dasselbe Spiel programmieren. Es gibt diesmal keine Basis. Der gesamte Nachschub muß auf dem Schlachtfeld aufgesammelt werden, in Form von Power-Ups. Man muß natürlich auch die Gegner plattmachen und ein bisschen überleben. Es geht wärend des Spiels durch verschiedene Welten - grüne Landschaft, Wüste, Eiswelt, Weltraum. Es gibt massenweise Gegner mit unterschiedlichem Verhalten und Endgegner. Man kann sogar cheaten. Da es auch Videosequenzen gibt, ist der Download so groß. Ich hab versucht viele kleine Details einzubauen, z.B.: bewegliche Trümmer bei der Explosion. Das Spiel läuft dank Timersyncronisierung auf jedem Rechner gleich schnell. Nur bei lansameren Modellen kann es bei zu hoher Gegneraktivität zu Rucklern kommen. Aber auf einem 166MHz P1 lief es stabil.

Ein weiteres Spiel ist XBall VI. Das ist ist ein Breakout-Clone. Man muß mit einem Schläger verhindern, dass der Ball auf den Boden kommt. Dabei räumt man die Steine ab, aus denen auch etwas herausfallen kann, was das Spiel erschwert oder erleichert. Manche haben auch eine Teleporterfunktion oder etwas anderes. Mit dem beiliegenden Leveleditor kann man sogar eigene Levels gestalten. Den Quellcode habe ich auf mehrfache Nachfrage auch veröffentlicht. Dann habe ich noch einige ältere Spiele wie XBall III das im wesenlichen ohne DQB arbeitet und auch noch nicht so stabil läuft wie sein Nachfolger. Man kann eigentlich sagen, dass XBall IV nur eine überarbeitete Version von XBall III ist.

Ach ja, Tetris ist da noch zu nennen. Ein einfacher Tetris-Clone mit 3 Spielmodi. Ist aber noch reines QBasic. Den Quellcode habe ich leider nicht mehr.

Neben den Spielen habe ich noch einige Programmierer - Tools geschrieben, unter anderem MousePro32, eine umfangreiche Mouse Library mit vielen Funktionen, Beispielen und einer Dokumentation in HTML. Man kann sogar seinen eigenen Mauscursor erstellen!

Dann wäre da noch dKey, eine schnelle Tastaturabfrage in Echtzeit. Damit weiß QBasic jederzeit welche Tasten gedrückt werden und welche nicht.

Thomas: In welchen Sprachen programmierst Du?
Sören: Nun, ich programmiere in einer Menge von Sprachen: In QBasic, VisualBasic, Assembler, Turbo Pascal, HTML, Perl, DarkBasic und ein paar Scriptsprachen.

Eine lustige Scriptsprache ist LOGO (muß man nicht kennen). Das ist ein graphischer Plotter. Man steuert einen Igel über den Bildschirm, was dann Muster produziert. Das ist ganz simpel. Aber wo der tiefere Sinn liegt, weiß ich nicht. Scriptsprachen sind insgesamt nicht so etwas Feines, denn sie sind immer interpreterabhängig. JavaScript z.B. läuft auf jedem Browser unterschiedlich. Eine auf Webservern weit verbreitete Scriptsprache ist Perl, welches große Ähnlichkeiten mit C hat. Manche Dinge erinnern auch etwas an Basic, z.B: die Textausgabe mit PRINT "text". Wer mehr darüber erfahren will sollte bei www.qb45.com in die CGI-Rubrik schauen.

Thomas: Wo liegen denn eigentlich die Unterschiede zwischen TurboPascal und QB?
Sören: Eigentlich ist TP genauso wie QB. Es hat nur eine andere Syntax, mehr Speicher, mehr Funktionen und ist schneller. Und man kann auch ASM, externen Quellcode und Libraries sehr einfach einbauen. Für den Programmcode gibt es keine 64kB Grenze. TP unterscheidet sich aber noch in anderer Hinsicht von QBasic. So muß nach jeder Zeile ein " ; " stehen. Außerdem ist die Syntax viel stenger als die von QB. Alle Variablen müssen deklariert sein, und zwar richtig. Das hilft, Programmierfehler zu vermeiden. Das Overflow läßt sich ausschalten. Es gibt zwar noch viel mehr Unterschiede, aber ich zähle jetzt hier nicht alle auf. Wer sich für TP interessiert sollte es versuchen. Ich kann es nur empfehlen.

Thomas: Kannst Du einige Worte zu Deinen momentanen Projekten sagen?
Sören: Die Schule frisst momentan meine gesamte Zeit; wenn ich nebenbei doch mal dazu komme, sitze ich an der Programmierung eines EgoShooters a'la Q**** und an einer SVGA-Library für TurboPascal.

Thomas: Der Ego-Shooter ist wohl der "GlasFresser", von dem Du auf Deine Seite sprichst?
Sören: Ja, der GlasFresser - wie bin ich blos auf diesen Namen gekommen ? - ist weder in QB noch in TurboPascal programmiert. Ich sag nur: "DirectX". Die ersten Bilder sind mit DarkBasic gemacht. Aber es gibt dort sehr viele Probleme, daher überlege ich, es in Visual Basic zu schreiben. Das DX SDK von Visual Basic stellt schließlich die Funktionen zur Verfügung. Der Glasfresser ist aber noch im tiefsten Entwickungstadium. Mit der ersten Alfa-Version wird's also frühestens nächtes Jahr etwas.

Thomas: Wie siehst Du die Zukunft von QBasic, QuickBasic und MS-DOS?
Sören: QBasic ist immer noch sehr beliebt, gerade weil es so simpel ist. Große Dinge lassen sich aber damit einfach nicht programmieren, und daher wird es, wie MS-DOS, einfach nach und nach ersetzt werden.

Thomas: Auf welche Windows-Programmiersprache sollte ein QB-Fan aufsteigen a) wenn er nur hobbymäßig programmieren will bzw. b) wenn er einen IT-Beruf anstrebt?
Sören: Übliche Programmiersprachen sind C++, VB und VC++. Ich weiß aber nicht welche man können muß. Dazu gibt es einfach zu viele, und jede hat ihren Zweck.

Thomas: Was rätst Du einem QBasic-Spiele-Programmierer, der Animationen und Sound in seine Spiele hineinbringen will?
Sören: Im Netz gibt es haufenweise Tutorials und Libraries zu diesem Thema. Was die Libraries angeht: Seht mal auf /www.qb45.com nach. Keiner verlangt, dass man die "atomare Programmierung" (in Assembler) beherrscht. Daher sind die Libraries z.B. FutureLib, DirectQB, Dash, Nexus usw. sehr nützlich. Da den Libraries auch sehr viele Beispiele und Beschreibungen beiliegen, kann man auch lernen damit umzugehen, wenn man sich wirklich damit beschäftigt.

Tutorials gibt es besonders auf den englischen Programmierseiten. Verweise zu diesen sind auch auf www.qb45.com zu finden. Grundlagen zur Verwendung von DirectQB sind in meiner QBasic-Times beschrieben, welche auf www.antonis.de zum Download bereitsteht. Eine Mouse Library, die komplett in deutsch ist, gibt es auf meiner Homepage http://qmystic.xxn.de. Es gibt dazu auch Beispiele und eine Dokumentation im HTML-Format.

Tutorials zu Animation und Sound gibt es auch bei http://www.programmersheaven.com/ in den entsprechenden Rubriken. Im Prinzip gibt es nicht die optimale Lösung für Animationen. Jede Lösung ist problemspezifisch. Soll zum Beispiel nur eine kleine Gafik-Figur (Sprite) über den Bildschirm bewegt werden, oder soll es auch noch transparent sein und den Hintergrund nicht zerstören, oder das Problem des Flimmerns, oder soll die Animation nicht ruckeln oder mit stabiler (d.h. Prozessor-unabhängiger) Geschwindingkeit laufen oder synchron zu einem Sound? Oder soll der Sprite über den Bildschirmrand gehen, ohne dass ein Fehler kommt?

Die Lösungen der genannten Probleme sind meist einfacher als man denkt. Flimmern bekommt man durch Page-Flipping weg, d.h. der Verwendung mehrere Bildschirmseiten. Transparente Sprites gibt es in fast allen Libraries die auch das Problem mit dem Rand des Bildschirms nicht haben. Damit der Hintergrund nicht zerstört wird, muß man ihn eben immer wieder neu malen. Synchrone Animationen lassen sich auch mit DirectQB realisieren. Und indem man für die Schleifen eine feste Zeit für die Wiederholung einbaut, bekommt man eine Animationsgeschwindigkeit, die von der Geschwindigkeit des Computers unabhängig ist.

Thomas: Soeren, Du bist ja ein DirectQB-Kenner und Verfasser eines DirectQB Tutorials. Kannst Du uns ein paar Worte zu dieser QB Multimedia - Bibliothek sagen? Und auch über die Verwendbarkeit bei Windows Me?
Sören: Nun, Angelo Mottola hat eine Library für QBasic geschieben, die genau das ergänzt, was man unter QBasic schmerzlich vermisst. Beispiele sind transparente Sprites, Sound, Mouse, Image-Support, editierbares Clipping, Drehen von Sprites, erweiterter Speicher, Palettefunktionen und vieles mehr. Viele sehr gute Spiele sind erst damit entstanden; siehe www.qb45.com.

Kennengelernt habe ich DirectQB in Zusammenhang mit Xeno, der ersten 3D Engine für QBasic. Das war das Programm mit dem Frosch in der 3D Welt. In meinen ersten Programmen habe ich es nur für die Soundausgabe benutzt. Das war in XBall III. Später habe ich dann nach und nach auch die anderen Routinen verwendet. Bei den Updates hatte ich so auch die Übersicht darüber, was neu dazu kam.

Angelo's Dokumentation zu DirectQB enthält leider einige Fehler, was im Vergleich zu der Größe des Dokuments nicht verwunderlich ist. Diese Fehler können einem Programmierer der erst mit DirectQB zu Programmieren beginnt, schwer zu schaffen machen. So arbeiten etwa einige Beispiele nicht richtig, die noch von früheren DirectQB Versionen stammen. Die Library hat auch hier und da noch einige Bugs, z.B. in einigen Sound - Funktionen und den Images.

Im Grossen und Ganzen kann ich sagen: Hätte ich nicht DirectQB gefunden, dann hätte ich schon viel eher mit der QBasic - Programmierung aufgehört. Leider hat Angelo Mottola das auch gemacht (nicht verwunderlich), so dass das sehnsüchtig erwartete DirectQB 2 nicht mehr herauskam. Es hätte sonst Midi, Netzwerk, SVGA, erweiterten 3D Bereich u.v.m. gegeben. Unter Windows ME besteht nun das Problem, dass kein erweiterter EMS-Speicher mehr unterstützt wird, also wie bei NT, 2000 oder XP. Dummerweise basiert DirectQB auf der Verwendung des EMS-Speichers. Es gibt aber Patches mit deren Hilfe man auch auf einem Windows Me System den reinen DOS Modus aktivieren kann. Das ist zwar umständlich aber nicht unmöglich. Selbst ausprobiert hab ich es aber noch nicht, denn ich bin froh, dass mein Rechner mit ME stabil läuft.

Thomas: Wie schafft man sich den nötigen freien Speicherplatz für seine Spiele und überwindet die für QBasic geltende 160 KB Grenze für die max. Länge von Code und Daten?
Sören: Mehr ist nicht drin. Das liegt an der Speicher - Struktur von QBasic. Aber man kann mit Hilfe von DirectQB, FutureLib usw. erweiterten EMS- bzw. XMS-Speicher nutzen. In beiden Fällen wird aber nur Speicher ausgelagert. Man kann also nicht mehr Variablen benutzten. Mein Tipp ist, in diesem Fall auf eine andere Programmierspache umzusteigen.

Thomas: Welche weiteren Ratschläge kannst Du einem QBasic- Einsteiger geben?
Sören: Ich rate dem QB-Einsteiger das Folgende:
  1. Suche Dir so viele Beispielprogramme wie möglich, und versuche, zu verstehen, wie diese arbeiten.
  2. Scheu Dich nicht, erfahrene Programmier um Rat zu fragen, wenn du etwas nicht verstanden hast. Die meisten Programmierer freuen sich über Resonanz und sind auch gerne bereit ihr Wissen weiterzugeben. ABER: Bitte intelligente Fragen stellen! Nicht so etwas wie: "Wie hast du das Progrann xyz gemacht?" oder "Wie programmiere ich einen DVD-Player in QB?".
  3. Nicht aufgeben! Es gibt fast immer eine einfache Lösung für ein schwieriges Problem, und auch professionelle Software ist nicht perfekt.
Thomas: Spiele für Linux - denktst Du über sowas nach?
Sören: Nun, mit Linux ist das so eine Sache. Ich kenne wirklich niemanden, der es zum Laufen bekommen hat. Und ich hatte auch noch nicht das Vergnügen.

Thomas: Spieleprogrammierung in VB oder Delphi - macht das Sinn?
Sören: Mit DirectX schon. Laut Microsoft arbeiten 50% aller Profiprogrammierer mit VB. Ich selbst entwerfe auch damit gelegentlich etwas.

Thomas: Was hast Du für Zukunftsprojekte?
Sören: Eines meiner Zukunftsprojekte ist, wie gesagt, der "GlassFresser". Es ist erstmal nur die Engine geplant. Ob ich das dann in einen Egoshooter einbaue oder in das schon länger geplante Adventure "Lands of Darkness", steht noch nicht fest. Mit QBasic werden ich aber mit höchster Warscheinlichkeit nicht mehr arbeiten.

Thomas: Wie willst Du Dich beruflich entwickeln?
Sören: Ich hatte eigentlich schon vor, Informatik zu studieren. Mal sehen.

Thomas: Warum hört man so wenig von PowerBasic und VB-DOS - im Vergleich zu QuickBasic?
Sören: Die beiden ersten sind wesentlich komplexer als QB. Wie schon gesagt, QBasic ist wegen seiner Einfachheit so beliebt.

Thomas: Hast Du noch andere Hobbies außer Programmieren?
Sören: Natürlich, aber Proggen steht an erster Stelle.

Thomas: Was macht Sören privat?
Sören: Er ist ein absoluter ScienceFiction Fan und macht bei LAN-Partys mit.

Thomas: Du bist also ScienceFiction Fan. Was fesselt Dich besonders? Raumschiff Enterprise, Star Wars usw. ??
Sören: Ja genau, Star Trek. Als noch die Möglichkeit dazu bestand, habe ich jede einzelene Folge gesehen. Besonders gefällt mir Next Generation. Das Beste sind die Kinofilme. Schade, dass es keine Nachfolger mehr geben wird. Ich schau mir aber auch gerne die richtigen Science-Fiction Filme an. Also solche die in einer Katastrophe oder mit etwas Unerwartetem enden. Ich liebe solche Filme, die einem hinterher einfach nicht mehr aus dem Kopf gehen. Ich finde das besser, als wenn man schon zu Beginn des Films weiß, dass die Helden es sowieso schaffen werden. Leider gibt es davon nicht sehr viele. Outer Limits oder Neon Genesis Evangelion waren z.B. sehr schön.

Thomas: Vielen Dank Sören für die höchst aufschlussreichen Antworten. Willst Du noch einen Abschiedsgruß an den Leser richten?
Sören: Wenn jemand zu deinem Projekt sagt: "Das hast du doch nicht alleine gemacht !" , dann fasse es als Kompliment auf, denn er unterschätzt dich dann.

Thomas: Danke Sören für das interessante Interview! Ich bin überzeugt, dass der Leser jetzt erstmal voller Neugier Deine Seite www.QMystic.de ansurfen wird.





[zur Startseite http://www.antonis.de]       [zur framelosen Startseite]