Jump to content

Blitz BASIC

From Wikipedia, the free encyclopedia
(Redirected from Blitz Basic)

Blitz Basic
ParadigmImperative
Designed byMark Sibly
DeveloperAcid Software
Blitz Research
First appeared1990; 36 years ago (1990)
Platform68000, i386
OSAmigaOS
Microsoft Windows
Licensezlib
Filename extensions.bb, .bb2
Websiteblitzresearch.itch.io
Dialects
Blitz2D, Blitz3D, BlitzPlus, BlitzMax, AmiBlitz
Influenced by
BASIC

Blitz BASIC is the programming language dialect of the first Blitz[1] compilers, devised by New Zealand–based developer Mark Sibly. Being derived from BASIC, Blitz syntax was designed to be easy to pick up for beginners first learning to program. The languages are game-programming oriented, but are often found general-purpose enough to be used for most types of applications.

Blitz Basic originated in 1990 on the Commodore Amiga platform. Following the demise of the Amiga as a commercially viable platform, Blitz was released for Microsoft Windows from the year 2000 onwards. The Blitz language evolved as new products were released, with recent incarnations offering support for more advanced programming techniques such as object-orientation and multithreading. This led to the languages losing their BASIC moniker in later years.[2]

Blitz was shelved as a commercial product around 2015 and released as free and open-source software. The original Amiga version continues as an open-source fork AmiBlitz.

History

[edit]

Amiga versions

[edit]

The first iteration of the Blitz language was created by Mark Sibly for the Amiga platform, and published in 1990 by the Australian firm Memory and Storage Technology (M.A.S.T.) It featured an integrated development environment combining an editor, compiler and linker in an 83 KB executable. Its primary competition at the time was AMOS BASIC, similarly a BASIC dialect for Amiga computers with an IDE and focusing on game development.[3][4][5]

Blitz was written in assembly language using HiSoft Devpac, a popular assembler for the Amiga platform.[6] It coincidentally shared its name with the unrelated product "BLITZ!", a BASIC compiler for the Commodore 64 and Commodore 128 platforms sold by Skyles Electric Works in 1985. In both cases, the products were named to emphasize the execution speed improvements of compiled BASIC code, which was generally a slower interpreted language.[7]

In 1993, Blitz Basic 2 was released by Acid Software as a four-disk set. It was available for sale at the World of Commodore show in Sydney in July 1993, and a demo version was distributed on a subscriber disk with magazine Amiga Down Under.[8] A demo version dated October 1993 appeared on Fish Disk #915, while an single-disk version (limited in that it could not produce compiled executables) was also included as a coverdisk with the November 1993 issue of Amiga Format. The issue encouraged readers with the inclusion of a lengthy tutorial, a discount on the full release, and a game development contest, the latter becoming famous in retrospect after one of its failed entries was released as 1995's top Amiga game, Worms.[9][10]

Improvements of Blitz Basic 2 included Intuition support, which allowed the creation of OS-friendly GUI applications, AGA support, and new languages features like structs.[11][12] These features distinguished it from its main competitor, AMOS Professional, as well as its reputation for producing more performant software. However, Blitz was also described as less beginner-friendly.[13][14] Blitz 2 sold in the UK at an RRP of £69.95 (equivalent to $148 in 2025), more expensive than AMOS Pro, but cheaper factoring in the additional cost of AMOS Pro Compiler.[14][15][16]

Blitz Basic 2.1 was released in 1996 for the price of £34.99. New features included AmigaGuide documentation, bug fixes, and improved support for AGA, AmigaOS 3.0, and library handling.[17]

In October 1997, Guildhall Leisure Services released the Ultimate Blitz Basic 2.1 CD-ROM, compiled by the Blitz User International group. featuring the last version of Blitz Basic v2.1, the manual, a Blitz User Magazine archive, and a broad variety of support content including third-party libraries and tutorials.

Plans for a future Blitz Basic 3.0 were shelved due to the withdrawal of Acid Software from the Amiga market, following the demise of the Amiga as a commercially viable platform. The rights were purchased by Red When Excited, developers of the Blitz Support Suite library set. This company was expected to release Blitz Basic 2.6 for Amiga, which also did not come to fruition.[10][17][18]

Blitz2D

[edit]

In 2000, Mark Sibly founded a new company, Blitz Research.[19] Their first product was a Microsoft Windows version of Blitz Basic, was published in October 2000,[20] and distributed in the UK and online by Guildhall Leisure Services, later known as iDigicon. The language included a built-in API for performing basic 2D graphics and audio operations. Minimum system requirements were Windows 95 or better, DirectX 7, a 200 MHZ CPU and 32 MB RAM.[21]

Recognition of Blitz Basic increased when a limited range of "free" versions were distributed in popular UK computer magazines such as PC Format. This resulted in a legal dispute between the developer and publisher, which was eventually resolved amicably.

Following the release of Blitz3D, Blitz Basic was retroactively referred to as Blitz2D. By 2003, Blitz2D was withdrawn due to poor sales.[22]

Blitz3D

[edit]

Blitz3D was released in September 2001.[20] It was sold as a digital download on the Blitz Research website and priced at $100.[23]

Its advances over Blitz2D naturally focused on 3D gaming features, with 3D games dominating the contemporary product lineup. It included support for the Quake engine's .BSP map format, mipmapped textures, transparent textures, boned animation, dynamic level of detail terrain, and reflection effects. It required DirectX 7 or greater.[24]

BlitzPlus

[edit]

In February 2003, Blitz Research Ltd. released BlitzPlus, also for Windows.[20] It largely superseded Blitz2D, which was withdrawn from sale. BlitzPlus sold on the Blitz Research website as a digital product for US$60.[23]

BlitzPlus lacked the 3D engine of Blitz3D, but did bring new features to the 2D side of the language by implementing limited Windows control support for creating native GUIs. Other features included client-server TCP/IP networking support and support for various audio formats.[25]

Backwards compatibility of the 2D engine was also extended, allowing compiled BlitzPlus games and applications to run on systems that might only have DirectX 1.

BlitzMax

[edit]
BlitzMax
Paradigmimperative, object-oriented, modular, reflective
Designed byMark Sibly
DeveloperBlitz Research
First appeared2004; 22 years ago (2004)
Final release
1.51 / 21 September 2015; 11 years ago (2015-09-21)
Typing disciplineStatic, weak, strong (optional)
OSWindows, Mac OS X, Linux
Websitewww.blitzbasic.com
Dialects
Official BlitzMax, bmx-ng
Influenced by
Blitz Basic
Influenced
Monkey

The first BlitzMax compiler was released in December 2004 for Mac OS X.[20] This made it the first Blitz dialect that could be compiled on *nix platforms. Compilers for Microsoft Windows and Linux were subsequently released in May 2005.[20] It sold as a digital product for $80 USD.[23]

BlitzMax brought the largest change of language structure to the modern range of Blitz products by extending the type system to include object-oriented concepts and modifying the graphics API to better suit OpenGL. BlitzMax was also the first of the Blitz languages to represent strings internally using UCS-2, allowing native-support for string literals composed of non-ASCII characters.

BlitzMax's platform-agnostic command-set allows developers to compile and run source code on multiple platforms. However the official compiler and build chain will only generate binaries for the platform that it is executing on. Unofficially, users were able to get Linux and Mac OS X to cross-compile to the Windows platform.

BlitzMax is also the first modular version of the Blitz languages, improving the extensibility of the command-set. Also, all of the standard modules shipped with the compiler are open-source and so can be tweaked and recompiled by the programmer if necessary. The official BlitzMax cross-platform GUI module (known as MaxGUI) allows developers to write GUI interfaces for their applications on Linux (FLTK), Mac (Cocoa) and Windows. Various user-contributed modules extend the use of the language by wrapping such libraries as wxWidgets, Cairo, and Fontconfig as well as a selection of database modules. There are also a selection of third-party 3D modules available namely MiniB3D[26] - an open-source OpenGL engine which can be compiled and used on all three of BlitzMax's supported platforms.

In October 2007, BlitzMax 1.26 was released which included the addition of a reflective programming (reflection) module.[27] BlitzMax 1.32 shipped new threading and Lua scripting modules and most of the standard library functions have been updated so that they are Unicode-friendly.[28]

Blitz3D SDK

[edit]

Blitz3D SDK is a 3D graphics engine based on the engine in Blitz3D. It was marketed for use with C++, C#, BlitzMax, and PureBasic; however, it could also be used with other languages that follow compatible calling conventions.[29] It was priced at $100.[23]

Max3D module

[edit]

In 2008, the source code to Max3D – a C++-based cross-platform 3D engine – was released under a BSD license. This engine focused on OpenGL but had an abstract backend for other graphics drivers (such as DirectX) and made use of several open-source libraries, namely Assimp, Boost, and Open Dynamics Engine (ODE).

Despite the excitement in the Blitz community of Max3D being the eagerly awaited successor to Blitz3D, interest and support died off soon after the source code was released and eventually development halted. There is no indication that Blitz Research will restart the project.

Open-source releases

[edit]

AmiBlitz

[edit]

In November 2001, Bernd Rösch received permission from Acid Software and Red When Excited to release the Amiga version of Blitz Basic 2 for free, and to release its source code under a GNU license. Rösch continued development on the language as an open source project, changing the name to AmiBlitz 2 to avoid confusion with the Windows version.[30][31] The source code was acquired from Simon Armstrong's Amiga 4000 hard disk archives circa 1994/1995, and originally built with HiSoft Devpac.[6]

Changes made in AmiBlitz2 include 68020 and FPU optimizations, dynamic linked lists, redim-able arrays, dynamic function parameters, and escape sequences in strings. Maximum line length in source files is increased from 128 to 250. Requirements were increased from AmigaOS 1.2 to AmigaOS 3.1, and FPU required to use the IDE.[32]

In 2006, Sven Dröge began work modernizing the GUI, converting some assembly language code into AmiBlitz, and adding a new help system. Thilo Koehler contributed include files for various functions, including MP3 playback and internet connectivity.[32]

Following the release of AmiBlitz2 v2.45, the project was renamed AmiBlitz3. Advances over AmiBlitz2 include faster compile times, GUI improvements, automatic FPU support, and localization support. Source files are now fully text-based rather than tokenized, allowing editing with other programs. Requirements for the IDE are a 68020 processor and 8 MB RAM, but software requirements are lowered to AmigaOS 2.x and FPU is no longer required.[32] As of 2026, development of AmiBlitz3 is ongoing.[33]

Windows releases

[edit]

BlitzPlus was released as free and open-source software on 28 April 2014 under the zlib licence on GitHub.[34][35] Blitz3D followed soon after and was released as open-source software on 3 August 2014.[36][37] BlitzMax was later released as open-source software on 21 September 2015.[38]

Examples

[edit]

A "Hello, World!" program that prints to the screen, waits until a key is pressed, and then terminates:

Print "Hello, World!" ; Prints to the screen.
WaitKey()             ; Pauses execution until a key is pressed.
End                   ; Ends Program.

Program that demonstrates the declaration of variables using the three main data types (strings, integers and floats) and printing them onto the screen:

name$        = "John"   ; Create a string variable ($) 
age          = 36       ; Create an integer variable (No Suffix)
temperature# = 27.3     ; Create a float variable (#)

print "My name is " + name$ + " and I am " + age + " years old."
print "Today, the temperature is " + temperature# + " degrees."

Waitkey()               ; Pauses execution until a key is pressed.
End                     ; Ends program.

Program that creates a windowed application that shows the current time in binary and decimal format. See below for the BlitzMax and Blitz Basic versions:

Blitz Basic version BlitzMax version
AppTitle "Binary Clock"
Graphics 150,80,16,3

;create a timer that means the main loop will be
;executed twice a second
secondtimer=CreateTimer(2)
 
Repeat
 	Hour = Left(CurrentTime$(),2)
 	Minute = Mid(CurrentTime$(),4,2)
 	Second = Right(CurrentTime$(),2)

 	If Hour >= 12 Then PM = 1
 	If Hour > 12 Then Hour = Hour - 12
 	If Hour = 0 Then Hour = 12

 	;should do this otherwise the PM dot will be
 	;left up once the clock rolls past midnight!
 	Cls

 	Color(0,255,0) ;make the text green for the PM part
 	If PM = 1 Then Text 5,5,"PM"
 	;set the text colour back to white for the rest
 	Color(255,255,255)

 	For bit=0 To 5
        xpos=20*(6-bit)
        binaryMask=2^bit

        ;do hours
        If (bit<4)
            If (hour And binaryMask)
                Text xpos,5,"1"
            Else
                Text xpos,5,"0"
            EndIf
        EndIf

        ;do the minutes
        If (minute And binaryMask)
            Text xpos,25,"1"
        Else
            Text xpos,25,"0"
        EndIf

        ;do the seconds
        If (second And binaryMask)
 			Text xpos,45,"1"
        Else
 			Text xpos,45,"0"
        EndIf
    Next

    ;make the text red for the decimal time
    Color(255,0,0)
    Text 5,65,"Decimal: " + CurrentTime$()
    ;set the text back to white for the rest
    Color(255,255,255)

    ;will wait half a second
    WaitTimer(secondTimer)

Forever
Import BRL.Timer
Import BRL.TimerDefault
AppTitle = "Binary Clock"
Graphics 145,85

'create a timer that means the main loop will be
'executed twice a second
Local secondtimer:TTimer = CreateTimer(2)
Local Hour:Int
Local Minute:Int
Local Second:Int
Local PM:Int
local bit:Int
local xpos:Int
Local binaryMask:Int

Repeat
    Hour = CurrentTime()[..2].ToInt()
    Minute = CurrentTime()[4..6].ToInt()
    Second = CurrentTime()[6..].ToInt()

    If Hour >= 12 Then PM = 1
    If Hour > 12 Then Hour = Hour - 12
    If Hour = 0 Then Hour = 12

    'should do this otherwise the PM dot will be
    'Left up once the clock rolls 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 Until 6
        xpos=20*(6-bit)
        binaryMask=2^bit

        'do hours
        If (bit < 4)
            If (hour & binaryMask)
                DrawText "1",xpos,5
            Else
                DrawText "0",xpos,5
            EndIf
        EndIf

        'do the minutes
        If (minute & binaryMask)
            DrawText "1", xpos,25
        Else
            DrawText "0", xpos,25
        EndIf

        'do the seconds
        If (second & 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) Then Exit
Forever

Software written using Blitz Basic

[edit]

Reception

[edit]

Blitz Basic 2.1 was well received by Amiga magazines. In March 1996, CU Amiga magazine rated it 91%. It was most highly praised for performance of the software produced, as evidenced by contemporary titles Super Skidmarks and Worms, and for its ability to create AmigaOS compliant applications and games, unlike its competitor AMOS BASIC. At an RRP of £34.99, cheaper than the previous version, it was also given a 95% rating for value for money.[17] Amiga Shopper called it a powerful programming language.[40]

Legacy

[edit]

On 1 March 2011, Blitz Research released a cross-platform programming language called Monkey, followed by its first official module, a lightweight game development framework called Mojo. Monkey has a similar syntax to BlitzMax, but instead of compiling direct to assembly code, it translates Monkey source files directly into source code for a chosen language, framework or platform e.g. Windows, Mac OS X, iOS, Android, HTML5, and Adobe Flash.

In 2015, development of Monkey-X halted in favour of Monkey2, an updated version of the language by Mark Sibly. A third-party fork of Monkey-X continued development, called Cerberus-X.

In 2020, Aminet finally moved Blitz packages from /dev/basic to their own category, /dev/blitz, mirroring the separate category for AMOS.

Notable games produced with Blitz or one of its variants include the Amiga titles Worms, Super Skidmarks, Sound the Space Cadet, and Alien Fish Finger, among others.[41] Crypt of the Necrodancer was produced with Cerberus-X.

The developer of Blitz BASIC, Mark Sibly, died in early December 2024. His passing was acknowledged by the Amiga enthusiast community.[42]

References

[edit]
  1. ↑ The word "Blitz" means "lightning" in German.
  2. ↑ "The Official Blitz Website". blitzresearch.itch.io. Archived from the original on 3 June 2017.
  3. ↑ Schumacher, H.J. (June 1991). "„BLITZ BASIC" - flink wie ein Känguruh" ["Blitz Basic" - as agile as a kangaroo]. Amiga Kickstart. Maxon Computer. pp. 19, 22–23.
  4. ↑ Rings, Siegfried (December 1990). "Brandaktuell aus Australien — Blitz Basic" [Breaking from Australia — Blitz Basic]. AmigaDOS. DMV-Verlag. pp. 11–12.
  5. ↑ Löwenstein, Richard (April 1992). "Alles Über Basic" [All About Basic]. Amiga Joker. p. 117.
  6. 1 2 "README.md". GitHub. 24 January 2019. Retrieved 9 October 2026.
  7. ↑ "Skyles Electric Works Autumn 1986 Catalog". Internet Archive. 1986. Retrieved 9 October 2026.
  8. ↑ Armstrong, Simon (July 1993). "Flights of Fancy". Amiga Down Under. No. 3. pp. 62–63.
  9. ↑ Armstrong, Simon (November 1993). "Blitz Basic". Amiga Format. No. 52. Future Publishing. pp. 7–19.
  10. 1 2 Wingrove, Alexander (9 November 1997). "FAQ v1.0". alt.sys.amiga.blitz. Retrieved 8 October 2026.
  11. ↑ Greenwood, Liam (7 July 1992). "Summary: WOC Sydney". comp.sys.amiga.misc. Retrieved 8 October 2026.
  12. ↑ Smithson, Dave (November 1993). "AMOS AGA - Will it ever happen?". CU Amiga. No. 45. EMAP Publishing. p. 188.
  13. ↑ Holborn, Jason (November 1993). "Ask the Experts". CU Amiga. No. 45. EMAP Publishing. p. 200.
  14. 1 2 Green, Simon (January 1994). "Greased Lightning". Amiga Shopper. No. 33. Future Publishing. pp. 55–56.
  15. ↑ "Hobbyte advertisement". CU Amiga. No. 45. EMAP Publishing. November 1993. p. 50.
  16. ↑ "Get totally Blitzed for only £49.95 - Save £20.00". Amiga Format. No. 52. Future Publishing. November 1993. p. 152.
  17. 1 2 3 Bettinson, Mat (March 1996). "Blitz Basic 2.1". CU Amiga. No. 73. EMAP Publishing. pp. 69–70.
  18. ↑ Wingrove, Alexander (22 November 1997). "Blitz List FAQ v1.0b". Blitz Basic Program Collection. Archived from the original on 16 December 1997. Retrieved 8 October 2026.
  19. ↑ "Who are Blitz Research?". BlitzBasic. Archived from the original on 1 July 2003.
  20. 1 2 3 4 5 Sibly, Mark (8 August 2007). "When was product x released?". Blitz Research. Archived from the original on 8 August 2007. Retrieved 8 October 2026.
  21. ↑ "Who are Blitz Research?". Blitz Basic. Archived from the original on 14 December 2001. Retrieved 9 October 2026.
  22. ↑ Sibly, Mark (16 March 2003). "What on earth happened to Blitz2D?!?". Blitz Research. Archived from the original on 1 July 2003. Retrieved 8 October 2026.
  23. 1 2 3 4 "Blitz Research Products". Blitz Research. 13 August 2007. Archived from the original on 13 August 2007. Retrieved 8 October 2026.
  24. ↑ Sibly, Mark (16 May 2003). "Blitz3D Features". Blitz Research. Archived from the original on 16 May 2003. Retrieved 8 October 2026.
  25. ↑ Sibly, Mark (16 May 2003). "BlitzPlus Features". Blitz Research. Archived from the original on 16 May 2003. Retrieved 8 October 2026.
  26. ↑ "Blitz News". www.blitzbasic.com. Archived from the original on 26 January 2008. Retrieved 12 December 2007.
  27. ↑ "BlitzMax update 1.26 now available!". www.blitzbasic.com. Archived from the original on 26 May 2011. Retrieved 11 January 2011.
  28. ↑ BlitzMax V132 for Windows and MacIntel now up! Archived 26 May 2011 at the Wayback Machine on blitzbasic.com
  29. ↑ "About the Blitz3D SDK". Blitz Research. 17 July 2007. Archived from the original on 17 July 2007. Retrieved 8 October 2026.
  30. ↑ Rösch, Bernd (12 November 2001). "New Blitzbasic2 (now AmiBlitz 2)". amiga-news.de. Retrieved 8 October 2026.
  31. ↑ Rösch, Bernd (18 November 2001). "amibl2src.lha". Aminet. Retrieved 8 October 2026.
  32. 1 2 3 "AmiBlitz3.guide 1.3". GitHub. 8 November 2024. Retrieved 8 October 2026.
  33. ↑ "AmiBlitz3". GitHub. 24 June 2026. Retrieved 8 October 2026.
  34. ↑ BlitzPlus Source Code Released Archived 16 July 2016 at the Wayback Machine by simonh (2014-04-29)
  35. ↑ Blitz3D open sourced! Archived 6 September 2016 at the Wayback Machine on Blitz3D Forums by (2014)
  36. ↑ Blitz3D Now Free and Open Source! Archived 16 July 2016 at the Wayback Machine by simonh (2014-08-03)
  37. ↑ blitz3d on GitHub
  38. ↑ blitzmax on GitHub
  39. ↑ IGN. Worms Blast Preview Archived 18 February 2007 at the Wayback Machine on ign.com
  40. ↑ Overaa, Paul (April 1996). "Blitz Basic 2.1". Amiga Shopper. No. 61. Future Publishing. p. 41. ISSN 0961-7302.
  41. ↑ "Search results". Hall of Light. 8 October 2026. Retrieved 8 October 2026.
  42. ↑ "Mark Sibly (Blitz Basic) passes away". Amiga-News.de. 14 December 2024. Retrieved 24 March 2025.

Further reading

[edit]
  • NRS Developer Book for Blitz Basic, 1997.
NRS Developer Book Vol I - Photo of Book Cover
NRS Developer Book Vol I - Photo of Book Cover
[edit]