**Blitz BASIC** 'n programmeertaal gebaseer op die rekenaartaal BASIC. Dit was in ongeveer 1991 eers op die Commodore-Amiga beskikbaar. Tans is Blitz BASIC vir diverse ander bedryfstelsels beskikbaar, o.m. vir Linux, Apple Mac en Windows. Blitz BASIC is hoofsaaklik geskik om spelletjies te ontwikkel. Die taal het veel ingeboude funksies om met geluid en beelde om te gaan.

Geskiedenis
-----------

Die eerste Blitz BASIC is in Nieu-Seeland deur *Acid Software* vir die Amiga ontwikkel. Alhoewel Blitz BASIC die algemeen bekende term is, is daar die afgelope paar jaar nuwe variasies van Blitz BASIC op die mark gekom:

* Blitz BASIC
* BlitzPlus
* Blitz3D
* BlitzMax

### Blitz BASIC

**Blitz Basic** is in Oktober 2000 op Windows beskikbaar gestel. Toe Blitz BASIC met enkele uitgawes van Engelse rekenaartydskrifte versprei is, het dit heelwat nuwelinge gelok. Die oorspronklike Blitz BASIC word nie verder ontwikkel nie. Die advies is om die gratis verkrygbare BlitzMax te gebruik.

### Blitz3D / BlitzPlus

Dit is 'n versie van BlitzPlus met ekstra 3D-moontlikhede, en is 'n direkte mededinger van Dark Basic. Blitz3D gebruik nog steeds DirectX7 en daardeur kan Blitz3D spelletjies op ou rekenaars gespeel word.

### BlitzMax

BlitzMax is die moderne en mees onlangse OOP-weergawe (objek-georiënteerde programmering) van Blitz BASIC. BlitzMax- ("BMX") programme wat in Windows ontwikkel word, is geskik om in Linux gespeel te word. Die randvoorwaarde is dat die program eers op Linux oorgebou word. Dit behels bloot dat die kode in die IDE oopgemaak word, en dan in die Linux-weergawe van BlitzMax die "build"-knop te druk.

BMX is 'n modulêre taal. Mens kan self nuwe modules byprogrammeer om sodoende kodebiblioteke uit te bou, of biblioteke van eksterne mense in 'n program oorneem.

In Oktober 2007 het Blitz Research Ltd. 'n bygewerkte weergawe 1.26 beskikbaar gestel. Tewens kan mens 'n toetsweergawe van BlitzMax aflaai om self programmeervaardighede te toets.

### Blitz3D SDK

Dit is die mees onlangse toevoeging waarmee Blitz3D vanuit die C#, C++-tale gebruik kan word. Op die oomblik is daar nog enkele tegniese probleme met die SDK. Verdere inligting is op die amptelike forum bekend (Blitz3D SDK Bug Reports).

Voorbeeld kode
--------------

So skryf jy Hallo Wêreld in BlitzMax op die skerm:

```
 AppTitle$ = "Wikipedia voorbeeld"
 Graphics 800, 600, 0

 While(Not KeyHit(Key\_ESCAPE))
   Cls();
   DrawText("Hallo Suid-Afrika", 5, 20);
   Flip();
 Wend

```

En hier een OOP-voorbeeld van Hallo Wêreld in BlitzMax:

```
'// hier begin jou kode.  Kopieer-en-plak na die BlitzMax IDE.
Global hallo1:HalloWorldClass = New HalloWorldClass;
hallo1.Main();

Type HalloWorldClass
 Method Main()
   AppTitle$ = "Wikipedia voorbeeld";
   Graphics(800, 600, 0);

   While(Not KeyHit(Key\_ESCAPE))
     Cls();
     DrawText("Hallo Suid-Afrika", 5, 20);
     Flip();
   Wend
 End Method
EndType

```

Vervolgens 'n eenvoudige BlitzMax-voorbeeld waarmee die huidige tyd in binêre en desimale formaat vertoon word.

```
 AppTitle$ = "Binary Clock"
 Graphics 145,85, 0
 
 secondtimer = CreateTimer(2)
 Repeat
 
         Hour = Left(CurrentTime$(),2).ToInt()
         Minute = Mid(CurrentTime$(),4,2).ToInt()
         Second = Right(CurrentTime$(),2).ToInt()
         
         If Hour >= 12 Then PM =1
         If Hour > 12 Then Hour = Hour - 12
         If Hour = 0 Then Hour = 12
                 
         'should do this otherwise your PM dot would be 
         'Left up once the clock rolled past midnight!
         Cls 
 
         SetColor(0,255,0) 'make the text green For the PM part
         If PM  = 1 Then DrawText "PM",5,5
         'set the text colour back To white For the rest
         SetColor(255,255,255)
         
         For bit=0 To 5
                 xpos=20\*(6-bit)
                 binaryMask=2^bit
                 'do hours
                 If (bit<4)
                         If (hour And binaryMask)
                                 DrawText "1",xpos,5
                         Else
                                 DrawText "0",xpos,5
                         EndIf
                 EndIf
                
                 'do the minutes
                 If (minute And binaryMask)
                         DrawText "1", xpos,25
                 Else
                         DrawText "0", xpos,25
                 EndIf
                 
                 'do the seconds
                 If (second And binaryMask)
                         DrawText "1",xpos,45
                 Else
                         DrawText "0",xpos,45
                 EndIf
         Next
        
         'make the text red For the decimal time
         SetColor(255,0,0)
         DrawText "Decimal: "+ CurrentTime$(),5,65
         'set the text back To white For the rest
         SetColor(255,255,255)
 
 	 Flip
 
         'will wait half a second
         WaitTimer(secondTimer)
 	 If KeyHit(KEY\_ESCAPE) Exit
 Forever

```

Spelletjies wat in Blitz Basic geskryf is
-----------------------------------------

* *Master of Defense Geargiveer 5 November 2007 op Wayback Machine - Blitz 3D*
* *Grid Wars - Blitz Max*
* *Treasure Fall - Blitz Plus*
* *Inca Quest Geargiveer 27 Oktober 2007 op Wayback Machine - Blitz Max*
* *Naked War - Blitz 3D*
* *Platypus - Blitz 2D (Mac port, Blitz Max)*
* *Sphere Racer Geargiveer 11 Augustus 2016 op Wayback Machine - Blitz 3D*
* *Oh No More Invaders From Space - Blitz 3D*
* *SpongeBob SquarePants Obstacle Odyssey - Blitz 3D*
* *Super Gerball - Blitz 3D*
* *Bruce Lee - Blitz 2D*
* *Worms* - oorspronklike titel *Total Wormage* en ontwikkeld in Blitz BASIC op die Amiga voor die kommersialisering deur

Blitz Basic boeke
-----------------

* *Learn to Program 2D Games in Blitz Basic* by John "Krylar" Logsdon, (2003) website of creater  Geargiveer 25 November 2007 op Wayback Machine
* *Game Programming for Teens* by Maneesh Sethi, (2003), ISBN 1-59200-068-1
* *Games Programming for the Absolute Beginner with Blitzmax* by Sloan Kelly, ISBN 0-9553771-0-2
* *3D Game Programming for Teens* by Eric Grebler, (2006) ISBN 1-59200-900-X