# 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 wurde vom Autor Mark Sibly auf dem Heimcomputer Amiga erschaffen. Nach dem Untergang der Heimcomputer wurde Blitz Basic für PCs mit dem Betriebssystem Windows portiert. Mittlerweile sind die aktuellen BlitzMax-Ableger auch macOS und Linux verfügbar und dadurch berücksichtigt. Aus der Familie Blitz Basic stammen mittlerweile folgende Sprachvarianten ab: Blitz2D, Blitz3D, BlitzPlus und BlitzMax. Keine der Varianten wird mehr vom Sprachgründer Mark Sibly betreut oder weiterentwickelt, allerdings wird der Quelltext weiterhin von ihm auf GitHub bereitgestellt.

## 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 beschäftigt bei 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 die Codes sehr schnell 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, welche man für 2D Spiele braucht. Da DirectX abwärtskompatibel ist, kann Blitz Basic zum jetzigen Zeitpunkt auf allen Windows-Versionen verwendbar, welchen DirectX 7.0 oder höher zur Verfügung steht. Dementsprechend ist es irrelevant auf welcher Windows-Version mit welcher Blitzbasic-Version ein Programm geschrieben wird, da es auf jedem Windows-PC mit DirectX 7.0 oder höher ohne Anpassungen lauffähig ist; sofern das Programm keine Windows-Funktionen aufruft, welche eine Windows-Version erforderlich macht.

### 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 dabei einzig die Unterstützung von 3D-Objekten. Auch Manipulationen der 3D-Umgebung sind dementsprechend möglich. Wie bei Blitz2D kommt DirectX 7.0 zum Einsatz, wodurch die Kompatibilität zu aktuelleren Versionen gewährleistet ist. Eine gewisse Einarbeitungszeit ist hier allerdings schon vonnöten, zudem sollte ein prinzipielles Grundwissen über 3D-Game-Design vorhanden sein. 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 zusätzlich noch Befehle zur Erzeugung einer GUI. Zudem kann auch auf die Windows-API zugegriffen werden, was die Entwicklung moderner und komplexer Anwendungen ermöglicht. BlitzPlus beinhaltet fast alle Blitz2D-Befehle, ist allerdings nicht 3D-fähig. Im Gegensatz zu Blitz2D wird es aber noch heute im Handel 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. Allerdings soll es bereits rund seit zwei Jahren zuvor, kostenlos verfügbar gewesen sein.
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 von Entwicklern geschätzt, welche früher Batches (Stapelverarbeitung) programmiert haben; da durch die Benutzeroberfläche welche BlitzPlus zur Verfügung stellt; sich Stapelverarbeitungen besonders einfach handhaben lassen, insbesondere im Vergleich zu den früheren .BAT-Dateien, Deshalb kann das System auch von ungelernten Anwender einfach bedient werden. 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).
Das Archiv von BlitzMax wurde am 4. November 2023 auf den Lesemodus gesetzt.

### 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.