Blitz Basic

Blitz Basic (oft auch BlitzBasic oder kurz BB) ist eine Programmiersprache, die sich an der Syntax von BASIC orientiert und sich vor allem zum Programmieren von PC-Spielen eignet.

Blitz Basic entstand auf dem Amiga. Nach dem Untergang der Heimcomputer beschloss der Autor Mark Sibly, Blitz Basic auf den PC für Windows zu portieren. Mittlerweile wird beim aktuellen BlitzMax-Ableger auch macOS und Linux berücksichtigt. Aus dieser Familie stammen folgende Sprachvarianten: Blitz2D, Blitz3D, BlitzPlus und BlitzMax. Keine der Varianten wird mehr von Mark Sibly betreut oder weiterentwickelt. Der Quellcode wurde aber von ihm auf GitHub veröffentlicht.

Amiga

Blitz Basic 
Blitz Basic ist ein Dialekt der BASIC-Programmiersprache. Der Compiler kam Anfang der 1990er Jahre für den Amiga auf den Markt. Mark Sibly von Acid Software in Neuseeland hatte ihn im Hinblick auf die Programmierung von Computerspielen entwickelt. Er enthält zusätzliche Sprachelemente und Funktionen, die es erlauben, ohne größere Vorkenntnisse Multimediaanwendungen und Spiele zu schreiben. Der Vorteil von Blitz Basic im Bereich der Spieleprogrammierung ist, dass der Compiler im grafischen Bereich sehr schnellen Code erzeugt.

Blitz Basic 2 
Mit Blitz Basic 2 konnte man später noch Workbench-Anwendungen schreiben, außerdem wurden eine Menge neue Befehle hinzugefügt. Blitz Basic 2 wurde gegen Ende des Amigas zur Open Source AmiBlitz, welche immer noch intensiv weiterentwickelt wird.

PC

Blitz2D 
Anfang 2000 begann dann die Entwicklung von Blitz Basic für den PC, einer 2D-Spieleprogrammiersprache basierend auf DirectX 7.0 mit einer Menge Features.

Hiermit kann man die Basic-Grundsyntax benutzen (beispielsweise If-Statements sowie For- und While-Schleifen).
Man kann 2D-Grafiken und Sound ausgeben. Es basiert auf DirectX 7.0, welches die meisten Befehle zur Verfügung stellt, die man für 2D Spiele braucht. Da DirectX abwärtskompatibel ist, ist Blitz Basic zum jetzigen Zeitpunkt unter allen Windows-Versionen verwendbar, welchen DirectX 7.0 oder höher zur Verfügung steht. Also egal auf welcher Windows-Version mit welcher Blitzbasic-Version ein Programm geschrieben wird, es ist auf jedem Windows-PC mit DirectX 7.0 oder höher ohne Anpassungen lauffähig. (sofern das Programm keine Windows-Funktionen aufruft, die eine Windows-Version erforderlich machen)

Blitz3D 

Blitz3D (kurz auch B3D) kam nach ca. 68 Updates (bis v1.68) neu hinzu. Es fügte Blitz Basic mehr als 200 3D-Befehle hinzu. Mit dem Update 1.78 wurde der Compiler von der IDE getrennt. Die derzeit neuste Version von Blitz3D ist 1.108c.

Auch hier kann die Basic-Grundsyntax benutzt werden. Grundsätzlich steht der volle Sprachumfang von Blitz2D zur Verfügung. Neu hinzugekommen ist die Unterstützung von 3D-Objekten. Auch Manipulationen der 3D-Umgebung sind möglich. Wie bei Blitz2D kommt DirectX 7.0 zum Einsatz, wodurch Kompatibilität zu aktuelleren Versionen gewährleistet ist. Einarbeitungszeit ist hier allerdings vonnöten. Außerdem sollte man sich schon prinzipiell mit 3D-Game-Design beschäftigt haben. Die GUI-Befehle der BlitzPlus-Version sind nicht enthalten, allerdings gibt es für Blitz Basic und Blitz3D mittlerweile BlitzUI, eine kostenlose Erweiterung, welches die Sprachen um GUI-Funktionen erweitert.
Die BlitzUI („Blitz User Interface“) für Blitz3D und BlitzBasic ermöglicht eine Annäherung an die Windows-typische Benutzeroberfläche wie unter anderem Menüleisten und Dropdown-Menüs, verwendet jedoch im Gegensatz zu BlitzPlus nicht die Windows Standard-GUI.
Obwohl Blitz3D eigentlich keine Updates mehr erhalten sollte, veröffentlichte Mark Sibly eine Version, die Fehlerbehebungen für Nutzer von Windows 8 enthielt.

Blitz3D ist seit dem 3. August 2014 Open Source und auf GitHub erhältlich. Es wurde in Microsoft Visual C++ Version 6 programmiert.

Blitz3D SDK 
Das Blitz 3D SDK gibt die Funktionen von B3D für andere Sprachen wie C++ oder auch BlitzMax frei. Da nicht alle B3D Befehle enthalten sind, gibt es keine Lösung für das Problem BlitzMax/3D. Zudem ist das SDK an Windows gebunden (Grafik- und Audioanweisungen laufen nur unter DirectX).

BlitzPlus 

BlitzPlus (kurz auch B+ oder BP) kam 2003 als Download-Version hinzu und löste somit Blitz Basic ab. BlitzPlus beinhaltet neben dem Befehlssatz von Blitz Basic noch Befehle zur Erzeugung einer GUI.
BlitzPlus beinhaltet fast alle Blitz2D-Befehle, allerdings ist es nicht 3D-fähig. Im Gegensatz zu Blitz2D wird es allerdings heute noch vertrieben. Dennoch wird diese Sprache nur von sehr wenigen verwendet.
Seit dem 29. April 2014 ist BlitzPlus Open Source und steht unter der zlib/libpng-Lizenz. Bereits rund seit zwei Jahren zuvor war es kostenlos verfügbar.

Zur Programmierung aufwändigerer Anwendungen stehen Programmiersprachen wie z. B. Visual Basic von Microsoft oder Delphi von Borland zur Verfügung. BlitzPlus hingegen wird wegen der Möglichkeit, auf einfachste Weise eine Windows-typische Benutzeroberfläche zu integrieren, zunehmend geschätzt von Entwicklern, die früher Batches (Stapelverarbeitung) programmiert haben, da durch die Benutzeroberfläche die mit BlitzPlus einfach zu erstellenden Stapelverarbeitungen im Gegensatz zu den früheren .BAT-Dateien auch vom ungelernten Anwender einfach bedient werden können. BlitzPlus ist somit eine Programmiersprache für Entwickler, für welche die Anwendungsentwicklung nicht die Hauptaufgabe ist, sondern ein zusätzliches Hilfsmittel, das in erster Linie die Anforderungen schneller Erlernbarkeit und effizienter, komprimierter Sprachgrammatik stellt, so wie sie der Grundgedanke aller BASIC-Dialekte ursprünglich implizierte.

BlitzPlus selber wurde in Microsoft Visual C++ Version 6 programmiert.

Multiplattform

BlitzMax 

BlitzMax (kurz auch BMax) erschien im Dezember 2004. Damit lassen sich nicht nur Spiele (mit OpenGL oder DirectX), sondern auch Anwendungen unter Windows, macOS und Linux erstellen. Der Quelltext kann oft ohne Änderungen auf allen unterstützten Plattformen kompiliert werden. Ganz neu sind die Möglichkeiten, objektorientiert zu programmieren und Zeiger zu nutzen. Die Programmiersprache wird vom BlitzMax-Compiler in Assemblersprache übersetzt und nutzt den Flat assembler, um Maschinensprache zu generieren. Externe Assembler- sowie C/C++-Quelltexte können eingebunden werden. Für C/C++-Dateien sind die entsprechenden GNU Compiler erforderlich (auf Windows z. B. durch MinGW).

Einer der wichtigsten Aspekte von BlitzMax ist die Möglichkeit, vorkompilierte Module einzubinden und selbst Module zu erstellen und zu kompilieren. Die gesamte Sprache ist somit modular aufgebaut; es gibt sowohl von Blitz Research Ltd. selbst geschriebene Module, als auch solche, die die BlitzBasic-Community hervorgebracht hat. Zu vielen Modulen wird der Quelltext mitgeliefert, so dass Modifikationen durch den Programmierer möglich sind.

BlitzMax stellt den jüngsten Spross der Blitz-Familie dar. Es beherrscht mit einigen Ausnahmen auch 2D- und die BB-Grundsyntax (mit minimalen Abweichungen). Außerdem unterstützt es OpenGL und DirectX.
Das wichtigste an BlitzMax ist die Kompatibilität mit Windows, Linux und Mac ohne Quellcodeänderung. Dieser muss lediglich auf jeder Plattform kompiliert werden.
Zum jetzigen Zeitpunkt ist keine offizielle 3D-Erweiterung verfügbar, eine 3D-Engine auf OpenGL-Basis ist allerdings momentan noch in Arbeit.

Bereits erschienen hingegen ist das offizielle GUI-Modul MaxGUI, mit dem sich ähnlich wie in BlitzPlus Anwendungen erstellen lassen, allerdings mit den allgemeinen Vorteilen von BlitzMax. Weitere wichtige Funktionalitäten sind das Reflexion-Modul, das in BlitzMax 1.26 hinzugefügt wurde, sowie die Lua- und Thread-Module, die in Version 1.32 dazu kamen.

Am 21. September 2015 wurde der Quelltext von BlitzMax komplett unter der zlib-Lizenz freigegeben. Der letzte Teil des Pakets, der bislang nicht verfügbar war, war der BlitzMax-Compiler (bcc).

Monkey 

Monkey wurde am 1. März 2011 von Blitz Research Ltd. veröffentlicht. Im Gegensatz zu den anderen Programmiersprachen der Blitz-Familie gibt es mehr als einen Compiler, Monkey kann theoretisch in jede Programmiersprache übersetzt werden.

Umfang 

Blitz Basic ist eine umfangreiche Programmiersprache mit gleichnamiger Entwicklungsumgebung. Seit BlitzMax lassen sich auch Programme für macOS und Linux erstellen. Geeignet ist Blitz Basic sowohl für 2D- als auch für 3D-Grafiken und kann damit auch für anspruchsvolle Applikationen ohne technische Einschränkungen eingesetzt werden.

Da man bereits mit BlitzPlus u. a. auch auf die Windows-API zugreifen kann, ist Blitz Basic auch für alltägliche Anwendungen nutzbar, kommt aber im Vergleich zu Sprachen wie Visual Basic oder Delphi seltener zum Einsatz.

Literatur 
 René Meyer: Jetzt lerne ich Spiele programmieren mit Blitz Basic. Blitzschnell zum eigenen Spiel. Markt und Technik, München 2003, ISBN 3-8272-6544-4 (Behandelt hauptsächlich die 2D-Programmierung.)
 René Meyer: Hack ’n’ play – Spiele programmieren. Markt und Technik, München 2002, ISBN 3-8272-6317-4 (Behandelt nur die 2D Programmierung.)

Weblinks 
 Deutsche Seite
 Deutsche Portalseite inklusive Forum und deutscher Befehlsreferenz
 Deutsche AMIBLITZ³ Supportseite

Einzelnachweise 

BASIC
Amiga-Programmiersprache
Objektorientierte Programmiersprache