Blitz BASIC is the
programming language dialect of the first Blitz compilers, devised by
New Zealand-based developer Mark Sibly. Being derived from
BASIC
BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
, 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.
History
The first iteration of the Blitz language was created for the
Amiga
Amiga is a family of personal computers introduced by Commodore in 1985. The original model is one of a number of mid-1980s computers with 16- or 32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and significantly improved graphi ...
platform and published by the
Australia
Australia, officially the Commonwealth of Australia, is a Sovereign state, sovereign country comprising the mainland of the Australia (continent), Australian continent, the island of Tasmania, and numerous List of islands of Australia, sma ...
n firm Memory and Storage Technology. Returning to
New Zealand, Blitz BASIC 2 was published several years later (around 1993 according this press release ) 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.
BlitzBasic
Idigicon
CDS Software (also known as CDS Micro Systems for its earlier titles) was an independent publisher and developer of computer game software based in Doncaster, South Yorkshire, UK.
History
The company was founded by Ian Williams, a computer prog ...
published BlitzBasic for
Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
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
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
Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct", ...
1.
BlitzMax
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
OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
. 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
Cocoa may refer to:
Chocolate
* Chocolate
* ''Theobroma cacao'', the cocoa tree
* Cocoa bean, seed of ''Theobroma cacao''
* Chocolate liquor, or cocoa liquor, pure, liquid chocolate extracted from the cocoa bean, including both cocoa butter and ...
) 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 - 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. BlitzMax 1.32 shipped new
threading and
Lua
Lua or LUA may refer to:
Science and technology
* Lua (programming language)
* Latvia University of Agriculture
* Last universal ancestor, in evolution
Ethnicity and language
* Lua people, of Laos
* Lawa people, of Thailand sometimes referred t ...
scripting modules and most of the standard library functions have been updated so that they are
unicode friendly.
Blitz3D SDK
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
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
Open Asset Import Library (Assimp) is a cross-platform 3D model import library which aims to provide a common application programming interface (API) for different 3D asset file formats. Written in C++, it offers interfaces for both C and C++. ...
,
Boost
Boost, boosted or boosting may refer to:
Science, technology and mathematics
* Boost, positive manifold pressure in turbocharged engines
* Boost (C++ libraries), a set of free peer-reviewed portable C++ libraries
* Boost (material), a material b ...
, 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
BlitzPlus was released as
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
on 28 April 2014 under the
zlib license on
GitHub. Blitz3D followed soon after and was released as Open Source on 3 August 2014. BlitzMax was later released as Open Source on 21 September 2015.
Examples
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
String or strings may refer to:
*String (structure), a long flexible structure made from threads twisted together, which is used to tie, bind, or hang other objects
Arts, entertainment, and media Films
* ''Strings'' (1991 film), a Canadian anim ...
,
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:
Software written using BlitzBasic
*''
Eschalon: Book I'' - BlitzMax
*''
Eschalon: Book II'' - BlitzMax
*''
Fairway Solitaire
''Fairway Solitaire'', alternatively titled ''Fairway'' is a casual video game based on the classic card game solitaire and developed by Big Fish Studios. The game is digitally distributed and is available from Big Fish Games.
Gameplay
Fairwa ...
'' - 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
[IGN]
Worms Blast Preview
on ign.com
Legacy
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.
Development of Monkey X has been halted in favor of Monkey 2, an updated version of the language by Mark Sibly.
References
External links
Blitz Research subsiteon
itch.io
Itch.io (stylized as itch.io) is a website for users to host, sell and download indie games. Launched in March 2013 by Leaf Corcoran, the service hosts over 500,000 games and items (assets, ebooks, music) .
Itch.io also allows users to host ...
(BlitzPlus, Blitz 3D, Monkey X, Monkey 2)
Monkey X subsite(open source)
Monkey 2 subsiteblitz-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)
{{BASIC
Amiga development software
Articles with example BASIC code
BASIC compilers
BASIC programming language family
Formerly proprietary software
Free game engines
Free software
Object-oriented programming languages
Software using the zlib license
Video game development software
Video game IDE