Blitz BASIC: Difference between revisions

Content deleted Content added
Further reading: Rather merging both entries together
 
(183 intermediate revisions by more than 100 users not shown)
Line 1:
{{short description|Programming language of the first Blitz compilers}}
'''Blitz BASIC''' is a commercial [[compiler]] for the [[BASIC programming language]]. Originally developed on the [[Amiga]], Blitz BASIC compilers are now available on several [[Platform (computing)|platforms]]. The Blitz products are mainly designed for programming games but also feature support for graphical user interfaces and general applications.
{{Use dmy dates|date=January 2016}}
The term '''Blitz BASIC''' is often used to refer to the general syntax used in the entire range of Blitz languages, as well as the original product that started them.
{{Infobox software
| title = Blitz Basic
| name = BlitzBasic <!--space in name needed to match other template names-->
| logo = BlitzBasicLogo.gif
| logo size = 300px
| logo caption =
| screenshot = <!-- [[File: ]] -->
| caption =
| collapsible =
| author =
| developer = [[Blitz Research]]
| released = <!-- {{Start date|YYYY|MM|DD|df=yes/no}} -->
| discontinued = Yes
| latest release version =
| latest release date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| latest preview version =
| latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| operating system = [[AmigaOS]]<br />[[Microsoft Windows]]
| size =
| language = [[English language|English]]
| genre = [[Game creation system]]
| license = [[zlib License]]
| alexa =
| website = {{URL|https://blitzresearch.itch.io/}}
}}
 
'''Blitz BASIC''' is the [[programming language]] dialect of the first Blitz<ref>The word "[[:de:Blitz|Blitz]]" means "lightning" in German.</ref> 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 application. The Blitz language evolved as new products were released, with recent incarnations offering support for more advanced programming techniques such as [[object-oriented programming|object-orientation]] and [[Thread (computing)#Single-threaded vs multithreaded programs|multithreading]]. This led to the languages losing their BASIC moniker in later years.<ref>{{cite web|url=https://blitzresearch.itch.io/|title=The Official Blitz Website|website=blitzresearch.itch.io/|url-status=live|archive-url=https://web.archive.org/web/20170603205639/http://www.blitzbasic.com/|archive-date=3 June 2017|df=dmy-all}}</ref>
== History ==
 
==History==
The first Blitz language that was designed by Mark Sibly was for the [[Amiga]] computer and published by the [[Australia | Australian]] company Memory and Storage Technology.
The first iteration of the Blitz language was created for the [[Amiga]] platform and published by the [[Australia]]n firm Memory and Storage Technology. Returning to [[New Zealand]], Blitz BASIC 2 was published several years later (around 1993 according this press release <ref>{{cite web |url=http://www.amigareport.com/ar115/p1-5.html |website=AmigaReport |access-date=30 April 2020 |title=Blitz Basic 2 |archive-date=31 March 2022 |archive-url=https://web.archive.org/web/20220331051337/https://www.amigareport.com/ar115/p1-5.html |url-status=dead }}</ref>) by Acid Software, a local Amiga game publisher. Since then, Blitz compilers have been released on several [[computing platform|platforms]]. Following the demise of the Amiga as a commercially viable platform, the Blitz BASIC 2 source code was released to the Amiga community. Development continues to this day under the name AmiBlitz.<ref>{{Cite web|url=https://github.com/AmiBlitz|title=AmiBlitz|website=[[GitHub]]}}</ref>
 
===BlitzBasic===
After returning to [[New Zealand]], Blitz2 was published several years later by Acid Software (a local 90's Amiga game publisher).
[[Idigicon]] published BlitzBasic for [[Microsoft Windows]] in October 2000. The language included a built-in API for performing basic 2D graphics and audio operations. Following the release of Blitz3D, BlitzBasic is often synonymously referred to as Blitz2D.
 
Recognition of BlitzBasic 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.
=== BlitzBasic ===
Otherwise known as Blitz2D, '''Blitz Basic''' was released in October 2000 for [[Microsoft Windows]] and allowed only 2D graphics. It was published by [[Idigicon]].
 
===BlitzPlus===
Recognition of Blitz Basic increased when a limited range of "free" versions were distributed on popular UK computer magazines such as [[PC Format]]. This resulted in a legal dispute between the developer and publisher which was eventually amicably resolved.
In February 2003, Blitz Research Ltd. released BlitzPlus also for Windows. It 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 [[graphical user interface|GUIs]]. 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.
 
=== Blitz3D BlitzMax===
{{Infobox programming language
'''Blitz3D''' was released in September 2001, competing with other similar PC game-development languages of the time (such as [[Dark Basic]]). Blitz3D extended Blitz Basic's command-set with the inclusion of a brand-new 3D engine, providing a BASIC style API for creating, manipulating and rendering three-dimensional objects. Blitz3D is built on top of [[DirectX 7]] and as such was released solely for [[Microsoft Windows]].
| name = BlitzMax
| logo =
| paradigm = [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[modular programming|modular]], [[reflection (computer programming)|reflective]]
| year = 2004
| designer = Mark Sibly
| developer = Blitz Research
| discontinued = Yes
| latest release version = 1.51
| latest release date = {{Start date and age|df=yes|2015|09|21}}
| typing = [[Static typing|Static]], [[Weak typing|Weak]], [[Strong typing|Strong]] (optional)
| implementations =
| dialects = Official BlitzMax, bmx-ng
| influenced_by = BlitzBasic
| influenced = Monkey
| operating_system = [[Windows]], [[Mac OS X]], [[Linux]]
}}
 
The first BlitzMax compiler was released in December 2004 for [[Mac OS X]]. 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. 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.
Although originally Blitz3D's distribution rights were owned by [[Idigicon]], Blitz Research Ltd. later signed a deal with the firm so as to allow Blitz Research Ltd. to distribute Blitz3D themselves. In return, Idigicon were granted full rights to distribute Blitz Basic and to clear any outstanding stock copies of Blitz 3D.
 
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 have been able to get Linux and Mac OS X to cross-compile to the Windows platform.
=== BlitzPlus ===
In February 2003, Blitz Research Ltd. released '''BlitzPlus''' also for [[Microsoft Windows]]. It does not have the 3D engine of Blitz3D, but does bring new features to the 2D side of the language by implementing limited Microsoft Windows control support for creating native [[GUI]]s. Backwards compatibility of the 2D engine was also extended, allowing compiled BlitzPlus games and applications to run on systems that might only provide [[DirectX]] 1 support.
 
BlitzMax is also the first [[modular programming|modular]] version of the Blitz languages, improving the extensibility of the command-set. In addition, 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]] [[graphical user interface|GUI]] module (known as MaxGUI) allows developers to write GUI interfaces for their applications on Linux ([[FLTK]]), Mac ([[Cocoa (API)|Cocoa]]) and Windows. Various user-contributed modules extend the use of the language by wrapping such libraries as [[wxWidgets]], [[Cairo (graphics)|Cairo]], and [[Fontconfig]] as well as a selection of database modules. There are also a selection of third-party 3D modules available namely MiniB3D<ref>{{cite web|url=http://www.blitzbasic.com/Community/topics.php?forum=119|title=Blitz News|website=www.blitzbasic.com|access-date=12 December 2007|archive-url=https://web.archive.org/web/20080126114117/http://www.blitzbasic.com/Community/topics.php?forum=119|archive-date=26 January 2008|url-status=dead|df=dmy-all}}</ref> - an open-source OpenGL engine which can be compiled and used on all three of BlitzMax's supported platforms.
=== BlitzMax ===
 
In October 2007, BlitzMax 1.26 was released which included the addition of a [[reflection (computer programming)|reflection]] module.<ref>{{cite web|url=http://www.blitzbasic.com/Community/posts.php?topic=72891#814878|title=BlitzMax update 1.26 now available!|website=www.blitzbasic.com|access-date=11 January 2011|archive-url=https://web.archive.org/web/20110526130312/http://www.blitzbasic.com/Community/posts.php?topic=72891#814878|archive-date=26 May 2011|url-status=dead|df=dmy-all}}</ref> BlitzMax 1.32 shipped new [[thread (computing)|threading]] and [[Lua (programming language)|Lua]] scripting modules and most of the standard library functions have been updated so that they are [[unicode]] friendly.<ref>[http://www.blitzbasic.com/Community/posts.php?topic=83917#947391 BlitzMax V132 for Windows and MacIntel now up!] {{Webarchive|url=https://web.archive.org/web/20110526130325/http://www.blitzbasic.com/Community/posts.php?topic=83917#947391 |date=26 May 2011}} on blitzbasic.com</ref>
{{Infobox programming language
| name = BlitzMax
| logo =
| operating_system = [[Microsoft Windows]], [[Mac OS X]], [[Linux]]
| paradigm = [[Object-oriented programming|object-oriented]], [[Imperative programming|imperative]], [[Modular programming|modular]], [[reflection (computer science)|reflective]]
| year = 2004
| designer = Mark Sibly
| developer = Blitz Research Ltd. [http://www.blitzbasic.com/]
| latest release version = 1.41
| latest release date = August 2010
| typing = [[static typing|Static]], [[Weak typing|Weak]]
| implementations =
| dialects =
| influenced_by = BlitzBasic
}}
 
===Blitz3D SDK===
BlitzMax is the most recent language released by Blitz Research Ltd. Unlike previous Blitz products, code can be compiled on *nix platforms too. The [[Mac OS X]] compiler was released first in December 2004, followed by compilers for [[Microsoft Windows]] and [[Linux]] in May 2005. BlitzMax brought the largest change of language structure to the modern range of Blitz products by adding [[object-oriented programming|object-oriented]] concepts and adapting the graphics layer to better suit [[OpenGL]]. BlitzMax is also the first of the Blitz languages to represent strings internally using [[UCS2]], allowing programmers to write applications that use characters outside the standard [[ASCII]] character set.
Blitz3D SDK is a 3D graphics engine based on the engine in Blitz3D. It was marketed for use with [[C++]], [[C Sharp (programming language)|C#]], BlitzMax, and [[PureBasic]], however it could also be used with other languages that follow compatible calling conventions.
 
===Max3D module===
BlitzMax is also the first [[Modularity (programming)|modular]] version of the Blitz languages, improving the extensibility of the commandset. In addition, 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 (API)|Cocoa]]) and Windows. Various user-contributed modules extend the use of the language by wrapping such libraries as [[wxWidgets]], [[cairo (graphics)|Cairo]], [[FontConfig]] as well as a selection of database modules. There are also a selection of third-party 3D modules available for BlitzMax, such as MiniB3D [http://www.blitzbasic.com/Community/topics.php?forum=119] - an open-source OpenGL engine which can be compiled and used on all 3 of BlitzMax's supported platforms.
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 [[Open Asset Import Library|Assimp]], [[Boost (C++ libraries)|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 came to a halt. There is no indication that Blitz Research will pick up the project again.
BlitzMax is capable of producing cross-platform applications, as BlitzMax source code is designed to be platform agnostic. As such code developed on one platform should behave similarly when recompiled on any of the other supported platforms. However the official compiler and build chain will only generate binaries for the platform that it is executing on. Unofficially, users have been able to get Linux and Mac OS X to cross-compile to the Window platform.
 
===Open-source release===
In October 2007, BlitzMax 1.26 included the addition of a [[Reflection (computer science)|reflection]] module <ref>http://www.blitzbasic.com/Community/posts.php?topic=72891#814878</ref>. BlitzMax 1.32 ships with new [[Thread (computer science)|threading]] and [[Lua (programming language)|Lua Scripting]] modules and most of the standard library functions have been updated so that they are [[unicode]] friendly <ref>http://www.blitzbasic.com/Community/posts.php?topic=83917#947391</ref>.
BlitzPlus was released as [[open-source software|open-source]] on 28 April 2014 under the [[zlib license]] on [[GitHub]].<ref>[http://www.blitzbasic.com/Home/_index_.php BlitzPlus Source Code Released] {{Webarchive|url=https://web.archive.org/web/20160716133612/http://www.blitzbasic.com/Home/_index_.php |date=16 July 2016}} by simonh (2014-04-29)</ref><ref>[http://www.blitzbasic.com/Community/posts.php?topic=102907 Blitz3D open sourced!] {{webarchive|url=https://web.archive.org/web/20160906075242/http://www.blitzbasic.com/Community/posts.php?topic=102907 |date=6 September 2016}} on Blitz3D Forums by (2014)</ref> Blitz3D followed soon after and was released as Open Source on 3 August 2014.<ref>[http://www.blitzbasic.com/Home/_index_.php Blitz3D Now Free and Open Source!] {{Webarchive|url=https://web.archive.org/web/20160716133612/http://www.blitzbasic.com/Home/_index_.php |date=16 July 2016}} by simonh (2014-08-03)</ref><ref>[https://github.com/blitz-research/blitz3d blitz3d] on GitHub</ref> BlitzMax was later released as Open Source on 21 September 2015.<ref>[https://github.com/blitz-research/blitzmax blitzmax] on GitHub</ref>
 
=== Blitz3D SDK =Reception==
Blitz Basic 2.1 was well received by Amiga magazines. ''CU Amiga'' highlighted its ability to create [[AmigaOS]] compliant applications and games (unlike [[AMOS (programming language)|AMOS Basic]])<ref name="CU Amiga 73">{{cite magazine |last=Bettinson|first=Mat|date=March 1996 |title=Blitz Basic 2.1|magazine=CU Amiga |publisher=EMAP Images|issn=0963-0090|issue=73|pages=69–70}}</ref> and ''Amiga Shopper'' called it a powerful programming language.<ref name="Amiga Shopper 61">{{cite magazine |last=Overaa|first=Paul|date=April 1996 |title=Blitz Basic 2.1|magazine=Amiga Shopper |publisher=Future Publishing|issn=0961-7302|issue=61|page=41}}</ref>
The latest product from Blitz Research Limited, a 3D graphics engine based on the engine in Blitz3D. It is designed to be used with [[C++]], [[C Sharp (programming language)|C#]], BlitzMax and [[PureBasic]], however it can be used with other languages.
 
==Examples==
=== Max3D module ===
A [["Hello, World!" program]] that prints to the screen, waits until a key is pressed, and then terminates: <syntaxhighlight lang="blitzbasic">
Print "Hello, World!" ; Prints to the screen.
WaitKey() ; Pauses execution until a key is pressed.
End ; Ends Program.
</syntaxhighlight>Program that demonstrates the declaration of variables using the three main data types ([[String (computer science)|strings]], [[Integer (computer science)|integers]] and [[Floating-point arithmetic|floats]]) and printing them onto the screen:<syntaxhighlight lang="blitzbasic">
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."
In 2008 Blitz Research released the source code to Max3D under a BSD license, a cross-platform 3D engine purported to have been in development for quite some time.
print "Today, the temperature is " + temperature# + " degrees."
Max3D was written in C++ and made use of several open source libraries, namely Assimp, Boost and ODE. The engine focused on OpenGL, but had an abstract backend for other graphics drivers (such as DirectX).
Interest and support died off over time, and eventually development came to a halt. There is no indication that Blitz Research will pickup the project again.
 
Waitkey() ; Pauses execution until a key is pressed.
==Sample code==
End ; Ends program.
The following code creates a windowed application that shows the current time in binary and decimal format. This code is written in Blitz Basic, but will compile and run in both Blitz3D and BlitzPlus. See below for the same example written in BlitzMax.
</syntaxhighlight>
 
Program that creates a windowed application that shows the current time in binary and decimal format. See below for the BlitzMax and BlitzBasic versions:
<source lang="BlitzBasic">
<!-- Copy, modify and redistribute these sources with no limit -->
AppTitle "Binary Clock"
{| class="wikitable nowrap"
Graphics 150,80,16,3
! BlitzBasic version
;Copy, modify and redistribute this source as much as you like
! BlitzMax version
|-style="vertical-align:bottom"
|
;#####################################################
<syntaxhighlight lang="BlitzBasic">
; MAIN LOOP
AppTitle "Binary Clock"
;#####################################################
Graphics 150,80,16,3
 
;create a timer that means the main loop will be
;create a timer that means the main loop will be
;executed twice a second
;executed twice a second
secondtimer=CreateTimer(2)
secondtimer=CreateTimer(2)
Repeat
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 yourthe PM dot wouldwill be
;left up once the clock rolledrolls 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
 
binaryMask=2^bit
;do hours
If (bit<4)
;do hours
If (hour And binaryMask)
If (bit<4)
Text xpos,5,"1"
If (hour And binaryMask)
Else
Text xpos,5,"1"
Text xpos,5,"0"
Else
EndIf
Text xpos,5,"0"
EndIf
 
EndIf
;do the minutes
If (minute And binaryMask)
;do the minutes
Text xpos,25,"1"
If (minute And binaryMask)
Else
Text xpos,25,"1"
Text xpos,25,"0"
Else
EndIf
Text xpos,25,"0"
 
EndIf
;do the seconds
If (second And binaryMask)
;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
</source>
 
;make the text red for the decimal time
BlitzMax version of the above clock:
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
<source lang="BlitzBasic">
WaitTimer(secondTimer)
AppTitle = "Binary Clock"
Graphics 145,85
secondtimer = CreateTimer(2)
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 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 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
</source>
 
Forever
==Notable software written using Blitz Basic ==
</syntaxhighlight>
|
<syntaxhighlight lang="BlitzMax">
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
</syntaxhighlight>
|}
 
==Software written using BlitzBasic==
<!-- Please read [[WP:EL]] and do not add non-notable links here. Spam will be removed and warnings left on user talk pages. -->
*''[[Eschalon: Book I]]'' – BlitzMax
*''[[Eschalon: Book II]]'' – BlitzMax
*''[[Fairway Solitaire]]'' – BlitzMax
*''[[GridWars]]'' – BlitzMax
*''TVTower (open source clone of MadTV)'' – BlitzMax
*''[[Platypus (video game)|Platypus]]'' – Blitz2D (Mac port, BlitzMax)
*''[[SCP – Containment Breach]]'' – Blitz3D
*''[[Worms (1995 video game)|Worms]]'' – originally titled ''Total Wormage'' and developed in Blitz Basic on the Amiga before its commercial release<ref>IGN. [http://uk.ps2.ign.com/articles/136/136825p1.html Worms Blast Preview] {{Webarchive|url=https://web.archive.org/web/20070218115258/http://uk.ps2.ign.com/articles/136/136825p1.html |date=18 February 2007 }} on ign.com</ref>
 
==Legacy==
*''[[Eschalon: Book I]] - BlitzMax
In 2011, BRL released a cross-platform programming language called Monkey and its first official module 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]].
*''[[Eschalon: Book II]] - BlitzMax
*''[[Fairway Solitaire]] - BlitzMax
*''[[Grid Wars]] - BlitzMax
*''[http://qbix.arowx.com/index.html Qbix] - BlitzMax
*''[[Platypus (game)|Platypus]] - Blitz2D (Mac port, BlitzMax)
*''[[Worms (computer game)|Worms]]'' - originally titled ''Total Wormage'' and developed in Blitz Basic on the Amiga before its commercial release <ref>IGN. [http://uk.ps2.ign.com/articles/136/136825p1.html Worms Blast Preview]</ref>
*''[http://www.greyaliengames.com/oz.php Wonderful Wizard of Oz]'' - BlitzMax
*''[http://www.bigfishgames.com/download-games/4677/unwell-mel/index.html Unwell Mel]'' - BlitzMax
 
Since 2015 development of Monkey X has been halted in favour of Monkey 2, an updated version of the language by Mark Sibly.
==References==
<references/>
 
The developer of Blitz BASIC, Mark Sibly, died in early December 2024.<ref>{{Cite web |last=GCRedditor136 |date=2024-12-12 |title=Mark Sibly, creator of BlitzBasic, has died :( |url=https://www.reddit.com/r/amiga/comments/1hciyzy/mark_sibly_creator_of_blitzbasic_has_died/?rdt=64869 |access-date=2025-03-24 |website=r/amiga}}</ref><ref>{{cite news |url=https://www.amiga-news.de/en/news/AN-2024-12-00066-EN.html|title=Mark Sibly (Blitz Basic) passes away|publisher=Amiga-News.de|language=|date= 14 December 2024|access-date=24 March 2025}}</ref>
== See also ==
 
==References==
*[[Protean IDE]] - An IDE for BlitzBASIC/Plus/3D
{{Reflist|30em}}
*[http://www.fungamesfactory.com/ IDEal] - An advanced IDE for Blitz+ and Blitz3D.
 
*[http://www.blide.org/ BLIde] - A .Net IDE for BlitzMax.
==Further reading==
*[http://sourceforge.net/projects/blitzmax-ide/ MaxIDE Community Edition] - An open source branch of the default IDE maintained by some members of the Blitzmax Community.
*NRS Developer Book for Blitz Basic, 1997.
*[http://www.projectstudioide.com/ Project Studio] - A discontinued .Net IDE for Blitz3d/Basic and BlitzMax.
[[File:NRS Developer Book for Blitz Basic Volume 1.jpg|alt=NRS Developer Book Vol I - Photo of Book Cover|thumb|NRS Developer Book Vol I - Photo of Book Cover]]
 
==External links==
*[httphttps://wwwblitzresearch.blitzbasicitch.comio/ Blitz Research subsite] Officialon site[[itch.io]] of(BlitzPlus, Blitz the3D, BlitzBasicMonkey authorX, &Monkey distributor2)
**[https://blitzresearch.itch.io/monkeyx Monkey X subsite] (open source)
*[http://wxmax.googlecode.com/ wxMax for BlitzMax] Brucey's wxWidgets language binding for BlitzMax
**[https://blitzresearch.itch.io/monkey2 Monkey 2 subsite]
*[http://maxmods.googlecode.com/ MaxMods for BlitzMax] Brucey's mods for BlitzMax
*[https://github.com/blitz-research blitz-research (Mark Sibly)] on [[GitHub]] (BlitzPlus, BlitzMax, Blitz3D, Monkey, BlitzMax, Blitz3D for MSVC-CE 2017)
*{{dmoz|Computers/Programming/Languages/BASIC/BlitzBasic}}
*[https://web.archive.org/web/20170603205639/http://www.blitzbasic.com/ Blitz Research website] (archived 3 June 2017)
*[http://c2.com/cgi/wiki?BlitzBasic BlitzBasic on WikiWikiWeb]
*[https://web.archive.org/web/20170715134814/http://monkey-x.com/ Monkey X website] (archived 15 July 2017)
*[http://www.pantson.com/mods?BlitzBasic Modules for BlitzMax]
*[http://www.blitz3dfr.com Official site of the french Blitz Basic community]
*[http://www.blitzbasic.de German Blitz Basic site]
*[http://socoder.net/index.php Socoder] A friendly coding community
*[http://blitzetc.blitzmax.ru Russian electronic BlitzBasic-related magazine "Blitz Et Cetera"]
*[http://www.blitzcodebase.co.uk/ BlitzBASIC codebase] Code archive
*[http://www.blitzmonkeys.com/ Blitzmonkeys] Indie Coders Community Forums
*[http://www.greyaliengames.com/framework.php Grey Alien BlitzMax Game Framework] (No longer for sale)
*[http://www.pantson.com/mods Misc BlitzMax modules] a selection of useful modules for BlitzMax including Theora movie playback
*[http://www.blitzforum.de Blitzforum.de] German portal inclusive forum and German command reference
*[http://www.icc.webd.pl BitBrothers Team Site] Polish portal of BlitzBasic language
*[http://www.dbfinteractive.com/ Dark Bit Factory & Gravity] Demoscene coding site
*[http://www.bettiesart.com/tc/blitz/ T-C's Blitz Tutorials] Learn making games using Blitz
*{{fr}} Site non officiel : http://blitz3d.serveur.free.fr/
 
{{BASIC}}
==Books on Blitz Basic==
*''Learn to Program 2D Games in Blitz Basic'' by John "Krylar" Logsdon, (2003)
*''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
*''3D Game Programming for Teens, 2nd edition'' by Maneesh Sethi, (2009) ISBN 1598638432
 
[[Category:Amiga development software]]
[[Category:Articles with example BASIC code]]
[[Category:Object-oriented programming languages]]
[[Category:Video game creation software]]
[[Category:Amiga software]]
[[Category:BASIC compilers]]
[[Category:BASIC programming language family]]
 
[[Category:Formerly proprietary software]]
[[af:Blitz BASIC]]
[[Category:Free game engines]]
[[de:Blitz Basic]]
[[Category:Object-oriented programming languages]]
[[es:Blitz BASIC]]
[[Category:Software using the zlib license]]
[[fr:Blitz Basic]]
[[Category:Video game development software]]
[[it:Blitz BASIC]]
[[nlCategory:BlitzVideo Basicgame IDE]]
[[Category:Video games developed in New Zealand]]
[[no:BlitzBasic]]
[[pl:Blitz Basic]]
[[pt:Blitz Basic]]
[[ru:Blitz BASIC]]
[[fi:Blitz BASIC]]
[[sv:Blitz Basic]]