fbpx
Wikipedia

Blitz BASIC

Blitz BASIC is the programming language dialect of the first Blitz 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-orientation and multithreading. This led to the languages losing their BASIC moniker in later years.[1]

BlitzBasic
Developer(s)Blitz Research
Written inCompiled to C++, but the languages are dialects of BASIC
Operating systemAmigaOS
Microsoft Windows
Available inEnglish
TypeGame creation system
Licensezlib license
Websitewww.blitzbasic.com[dead link]

History edit

The first iteration of the Blitz language was created for the Amiga platform and published by the Australian firm Memory and Storage Technology. Returning to New Zealand, Blitz BASIC 2 was published several years later (around 1993 according this press release [2]) by Acid Software (a local Amiga game publisher). Since then, Blitz compilers have been released on several 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.[3]

BlitzBasic edit

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.

BlitzPlus edit

In February 2003, Blitz Research Ltd. released BlitzPlus also for Microsoft Windows. It lacked the 3D engine of Blitz3D, but did bring new features to the 2D side of the language by implementing limited Microsoft Windows control support for creating native 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.

BlitzMax edit

BlitzMax
Paradigmimperative, object-oriented, modular, reflective
Designed byMark Sibly
Developer
First appeared2004
Final release
1.51 / 21 September 2015; 8 years ago (2015-09-21)
Typing disciplineStatic, Weak, Strong (optional)
OSMicrosoft Windows, Mac OS X, Linux
Websitewww.blitzbasic.com
Dialects
Official BlitzMax, bmx-ng
Influenced by
BlitzBasic
Influenced
Monkey

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.

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.

BlitzMax is also the first 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 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[4] - 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 reflection module.[5] 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.[6]

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.

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

Open-source release edit

BlitzPlus was released as open-source on 28 April 2014 under the zlib license on GitHub.[7][8] Blitz3D followed soon after and was released as Open Source on 3 August 2014.[9][10] BlitzMax was later released as Open Source on 21 September 2015.[11]

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 BlitzBasic versions:

BlitzBasic 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 BlitzBasic edit

Legacy edit

In 2011, BRL released a new 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.

Since 2015 development of Monkey X has been halted in favour of Monkey 2, an updated version of the language by Mark Sibly.

References edit

  1. ^ . www.blitzbasic.com. Archived from the original on 3 June 2017.
  2. ^ . AmigaReport. Archived from the original on 31 March 2022. Retrieved 30 April 2020.
  3. ^ "AmiBlitz". GitHub.
  4. ^ . www.blitzbasic.com. Archived from the original on 26 January 2008. Retrieved 12 December 2007.
  5. ^ . www.blitzbasic.com. Archived from the original on 26 May 2011. Retrieved 11 January 2011.
  6. ^ BlitzMax V132 for Windows and MacIntel now up! 26 May 2011 at the Wayback Machine on blitzbasic.com
  7. ^ BlitzPlus Source Code Released 16 July 2016 at the Wayback Machine by simonh (2014-04-29)
  8. ^ Blitz3D open sourced! 6 September 2016 at the Wayback Machine on Blitz3D Forums by (2014)
  9. ^ Blitz3D Now Free and Open Source! 16 July 2016 at the Wayback Machine by simonh (2014-08-03)
  10. ^ blitz3d on GitHub
  11. ^ blitzmax on GitHub
  12. ^ IGN. Worms Blast Preview 18 February 2007 at the Wayback Machine on ign.com

External links edit

  • Blitz Research subsite on itch.io (BlitzPlus, Blitz 3D, Monkey X, Monkey 2)
    • Monkey X subsite (open source)
    • Monkey 2 subsite
  • blitz-research (Mark Sibly) on GitHub (BlitzPlus, BlitzMax, Blitz3D, Monkey, BlitzMax, Blitz3D for MSVC-CE 2017)
  • (archived 3 June 2017)
  • (archived 15 July 2017)

blitz, basic, programming, language, dialect, first, blitz, compilers, devised, zealand, based, developer, mark, sibly, being, derived, from, basic, blitz, syntax, designed, easy, pick, beginners, first, learning, program, languages, game, programming, oriente. Blitz BASIC is the programming language dialect of the first Blitz 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 orientation and multithreading This led to the languages losing their BASIC moniker in later years 1 BlitzBasicDeveloper s Blitz ResearchWritten inCompiled to C but the languages are dialects of BASICOperating systemAmigaOSMicrosoft WindowsAvailable inEnglishTypeGame creation systemLicensezlib licenseWebsitewww wbr blitzbasic wbr com dead link Contents 1 History 1 1 BlitzBasic 1 2 BlitzPlus 1 3 BlitzMax 1 4 Blitz3D SDK 1 5 Max3D module 1 6 Open source release 2 Examples 3 Software written using BlitzBasic 4 Legacy 5 References 6 External linksHistory editThe first iteration of the Blitz language was created for the Amiga platform and published by the Australian firm Memory and Storage Technology Returning to New Zealand Blitz BASIC 2 was published several years later around 1993 according this press release 2 by Acid Software a local Amiga game publisher Since then Blitz compilers have been released on several 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 3 BlitzBasic edit 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 BlitzPlus edit In February 2003 Blitz Research Ltd released BlitzPlus also for Microsoft Windows It lacked the 3D engine of Blitz3D but did bring new features to the 2D side of the language by implementing limited Microsoft Windows control support for creating native 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 BlitzMax edit BlitzMaxParadigmimperative object oriented modular reflectiveDesigned byMark SiblyDeveloperBlitz Research Ltd First appeared2004Final release1 51 21 September 2015 8 years ago 2015 09 21 Typing disciplineStatic Weak Strong optional OSMicrosoft Windows Mac OS X LinuxWebsitewww wbr blitzbasic wbr comDialectsOfficial BlitzMax bmx ngInfluenced byBlitzBasicInfluencedMonkeyThe 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 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 BlitzMax is also the first 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 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 4 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 reflection module 5 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 6 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 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 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 Open source release edit BlitzPlus was released as open source on 28 April 2014 under the zlib license on GitHub 7 8 Blitz3D followed soon after and was released as Open Source on 3 August 2014 9 10 BlitzMax was later released as Open Source on 21 September 2015 11 Examples editA 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 BlitzBasic versions BlitzBasic version BlitzMax versionAppTitle 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 gt 12 Then PM 1 If Hour gt 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 lt 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 gt 12 Then PM 1 If Hour gt 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 lt 4 If hour amp binaryMask DrawText 1 xpos 5 Else DrawText 0 xpos 5 EndIf EndIf do the minutes If minute amp binaryMask DrawText 1 xpos 25 Else DrawText 0 xpos 25 EndIf do the seconds If second amp 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 ForeverSoftware written using BlitzBasic editEschalon Book I BlitzMax Eschalon Book II BlitzMax Fairway Solitaire BlitzMax GridWars BlitzMax TVTower open source clone of MadTV BlitzMax Platypus Blitz2D Mac port BlitzMax SCP Containment Breach Blitz3D Worms originally titled Total Wormage and developed in Blitz Basic on the Amiga before its commercial release 12 Legacy editIn 2011 BRL released a new 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 Since 2015 development of Monkey X has been halted in favour of Monkey 2 an updated version of the language by Mark Sibly References edit The Official Blitz Website www blitzbasic com Archived from the original on 3 June 2017 Blitz Basic 2 AmigaReport Archived from the original on 31 March 2022 Retrieved 30 April 2020 AmiBlitz GitHub Blitz News www blitzbasic com Archived from the original on 26 January 2008 Retrieved 12 December 2007 BlitzMax update 1 26 now available www blitzbasic com Archived from the original on 26 May 2011 Retrieved 11 January 2011 BlitzMax V132 for Windows and MacIntel now up Archived 26 May 2011 at the Wayback Machine on blitzbasic com BlitzPlus Source Code Released Archived 16 July 2016 at the Wayback Machine by simonh 2014 04 29 Blitz3D open sourced Archived 6 September 2016 at the Wayback Machine on Blitz3D Forums by 2014 Blitz3D Now Free and Open Source Archived 16 July 2016 at the Wayback Machine by simonh 2014 08 03 blitz3d on GitHub blitzmax on GitHub IGN Worms Blast Preview Archived 18 February 2007 at the Wayback Machine on ign comExternal links editBlitz Research subsite on itch io BlitzPlus Blitz 3D Monkey X Monkey 2 Monkey X subsite open source Monkey 2 subsite blitz research Mark Sibly on GitHub BlitzPlus BlitzMax Blitz3D Monkey BlitzMax Blitz3D for MSVC CE 2017 Blitz Research website archived 3 June 2017 Monkey X website archived 15 July 2017 Retrieved from https en wikipedia org w index php title Blitz BASIC amp oldid 1208636422, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.