BlitzBasic
   HOME

TheInfoList



OR:

Blitz BASIC is the
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
dialect of the first Blitz compilers, devised by New Zealand–based developer Mark Sibly. Being derived from
BASIC Basic or BASIC may refer to: Science and technology * BASIC, a computer programming language * Basic (chemistry), having the properties of a base * Basic access authentication, in HTTP Entertainment * Basic (film), ''Basic'' (film), a 2003 film ...
, 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 Object-oriented may refer to: * Object-oriented programming, a programming paradigm ** Object-oriented analysis and design ** Object-oriented database ** Object-oriented operating system ** Object-oriented role analysis and modeling *** Object-orie ...
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 produced by Commodore International, Commodore from 1985 until the company's bankruptcy in 1994, with production by others afterward. The original model is one of a number of mid-1980s computers with 16-b ...
platform and published by the
Australia Australia, officially the Commonwealth of Australia, is a country comprising mainland Australia, the mainland of the Australia (continent), Australian continent, the island of Tasmania and list of islands of Australia, numerous smaller isl ...
n firm Memory and Storage Technology. Returning to
New Zealand New Zealand () is an island country in the southwestern Pacific Ocean. It consists of two main landmasses—the North Island () and the South Island ()—and List of islands of New Zealand, over 600 smaller islands. It is the List of isla ...
, 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 Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
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 ''PC Format'' was a computer magazine published in the United Kingdom by Future plc, and licensed to other publishers in countries around the world. In publication between 1991 and 2015, it was part of Future plc's ''Format'' series of magazines ...
''. 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 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 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 macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
. This made it the first Blitz dialect that could be compiled on *nix platforms. Compilers for Microsoft Windows and
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
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 Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
. BlitzMax was also the first of the Blitz languages to represent strings internally using
UCS-2 UTF-16 (16-bit Unicode Transformation Format) is a character encoding that supports all 1,112,064 valid code points of Unicode. The encoding is variable-length as code points are encoded with one or two ''code units''. UTF-16 arose from an earli ...
, allowing native-support for string literals composed of non-
ASCII ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
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 Module, modular and modularity may refer to the concept of modularity. They may also refer to: Computer science and engineering * Modular design, the engineering discipline of designing complex devices using separately designed sub-components ...
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 Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
GUI Gui or GUI may refer to: People Surname * Gui (surname), an ancient Chinese surname, ''xing'' * Bernard Gui (1261 or 1262–1331), inquisitor of the Dominican Order * Luigi Gui (1914–2010), Italian politician * Gui Minhai (born 1964), Ch ...
module (known as MaxGUI) allows developers to write GUI interfaces for their applications on Linux (
FLTK Fast Light Toolkit (FLTK) is a cross-platform widget (graphical control element) library for graphical user interfaces (GUIs), developed by Bill Spitzak and others. Made to accommodate 3D graphics programming, it has an interface to OpenGL, but ...
), 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 wxWidgets (formerly wxWindows) is a widget toolkit and tools library for creating graphical user interfaces (GUIs) for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with no s ...
,
Cairo Cairo ( ; , ) is the Capital city, capital and largest city of Egypt and the Cairo Governorate, being home to more than 10 million people. It is also part of the List of urban agglomerations in Africa, largest urban agglomeration in Africa, L ...
, and
Fontconfig Fontconfig (or fontconfig) is a free software program library designed to provide configuration, enumeration and substitution of fonts to other programs. Fontconfig was originally written and maintained by Keith Packard, and is currently maint ...
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 Reflection or reflexion may refer to: Science and technology * Reflection (physics), a common wave phenomenon ** Specular reflection, mirror-like reflection of waves from a surface *** Mirror image, a reflection in a mirror or in water ** Diffuse r ...
module. 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 Unicode or ''The Unicode Standard'' or TUS is a character encoding standard maintained by the Unicode Consortium designed to support the use of text in all of the world's writing systems that can be digitized. Version 16.0 defines 154,998 Char ...
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 PureBasic is a commercial software, commercially distributed procedural programming, procedural computer programming language and integrated development environment based on BASIC and developed by Fantaisie Software for Microsoft Windows, Windo ...
, 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 BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
. 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 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 An ode (from ) is a type of lyric poetry, with its origins in Ancient Greece. Odes are elaborately structured poems praising or glorifying an event or individual, describing nature intellectually as well as emotionally. A classic ode is structu ...
. 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 and view the source code, design documents, or content of the product. The open source model is a decentrali ...
on 28 April 2014 under the
zlib license The zlib license is a permissive software license which defines the terms under which the zlib software library can be distributed. It is also used by many other open-source packages. The libpng library uses a similar license, libpng license, s ...
on
GitHub GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
. 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.


Reception

Blitz Basic 2.1 was well received by Amiga magazines. ''CU Amiga'' highlighted its ability to create
AmigaOS AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions ...
compliant applications and games (unlike
AMOS Basic AMOS BASIC is a dialect of the BASIC programming language for the Amiga computer. Following on from the successful STOS BASIC for the Atari ST, AMOS BASIC was written for the Amiga by François Lionet with Constantin Sotiropoulos and published by ...
) and ''Amiga Shopper'' called it a powerful programming language.


Examples

A
"Hello, World!" program A "Hello, World!" program is usually a simple computer program that emits (or displays) to the screen (often the Console application, console) a message similar to "Hello, World!". A small piece of code in most general-purpose programming languag ...
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 An integer is the number zero (0), a positive natural number (1, 2, 3, ...), or the negation of a positive natural number (−1, −2, −3, ...). The negations or additive inverses of the positive natural numbers are referred to as negative in ...
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 Fairw ...
'' – BlitzMax *'' GridWars'' – BlitzMax *''TVTower (open source clone of MadTV)'' – BlitzMax *''
Platypus The platypus (''Ornithorhynchus anatinus''), sometimes referred to as the duck-billed platypus, is a semiaquatic, egg-laying mammal endemic to eastern Australia, including Tasmania. The platypus is the sole living representative or monotypi ...
'' – Blitz2D (Mac port, BlitzMax) *''
SCP – Containment Breach ''SCP – Containment Breach'' is an indie horror game developed by Finnish game developer Joonas "Regalis" Rikkonen. It is based on stories from the SCP Foundation collaborative writing project. In the game, the player controls a human test sub ...
'' – Blitz3D *''
Worms The World Register of Marine Species (WoRMS) is a taxonomic database that aims to provide an authoritative and comprehensive catalogue and list of names of marine organisms. Content The content of the registry is edited and maintained by scien ...
'' – originally titled ''Total Wormage'' and developed in Blitz Basic on the Amiga before its commercial release


Legacy

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 In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
for a chosen language, framework or platform e.g. Windows,
Mac OS X macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
,
iOS Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
, Android,
HTML5 HTML5 (Hypertext Markup Language 5) is a markup language used for structuring and presenting hypertext documents on the World Wide Web. It was the fifth and final major HTML version that is now a retired World Wide Web Consortium (W3C) recommend ...
, and
Adobe Flash Adobe Flash (formerly Macromedia Flash and FutureSplash) is a mostly discontinuedAlthough it is discontinued by Adobe Inc., for the Chinese market it is developed by Zhongcheng and for the international enterprise market it is developed by Ha ...
. Since 2015 development of Monkey X has been halted in favour of Monkey 2, an updated version of the language by Mark Sibly. The developer of Blitz BASIC, Mark Sibly, died in early December 2024.


References


External links


Blitz Research subsite
on
itch.io Itch.io (stylized in all lowercase) is a website for users to host, sell and download indie video games, indie role-playing games, game assets, comics, zines and music. Launched in March 2013 by Leaf Corcoran, the service hosts over 1,000,000 ...
(BlitzPlus, Blitz 3D, Monkey X, Monkey 2)
Monkey X subsite
(open source)
Monkey 2 subsiteblitz-research (Mark Sibly)
on
GitHub GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
(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 Object-oriented programming languages Software using the zlib license Video game development software Video game IDE Video games developed in New Zealand