Template:Langstub
BlitzMax is the new, next generation game programming language and programming environment from Blitz Research. BlitzMax retains the BASIC roots of Blitz3D and BlitzPlus, but adds a ton of cool new features and abilities.
The latest installment of the Blitz suite of languages is BlitzMAX, a language which supports PC, Linux and Mac installations. BlitzMAX brought the largest change of language structure to the modern range of Blitz products by adding object-orientation concepts and switching the graphics layer to favour OpenGL.
BlitzMAX is also the first truly modular version of the language, allowing complete plugins to be written for the language. This has opened up new possibilities for programmers to configure the language, as well as to purchase improved components from Blitz Research Limited. Blitz Research has now completed their 3D engine module Blitz3D SDK, which implements features common to modern 3D engines and middleware. The Blitz3D SDK works with many languages in addition to their own BlitzMax, such as C++, C# and purebasic. However it is currently only compatible with Microsoft Windows systems.
Enhanced BASIC language[]
BlitzMax is BASIC...but with a few twists, including:
- Function pointers
- Fully dynamic arrays
- Inheritance and polymorphism
- 'By reference' function parameters
- Byte, Short, Int, Long, Float and Double numeric data types
- Array and string slicing
- Flexible 'collection' system for dealing with linked lists etc
- Low level pointer handling
- UTF16 strings
- The ability to 'Incbin' binary data and access it as easily as if it were a regular file
- Reflection
- External language support for interfacing with C/C++/ObjectiveC or assembly code
Multiplatform support[]
BlitzMax has been designed from the ground up for multiplatform support, and BlitzMax programs can be compiled for Windows, MacOS X (PPC and Intel) and Linux. The BlitzMax license is 'all in one' - buy BlitzMax once and run Blitzmax (and consequently your programs) on all of these platforms!
Modular design[]
BlitzMax is largely based around the idea of modules, collections of commands stored in special files. You can add your own modules to the system, allowing you to cleanly reuse code in your own projects. Modules are also a great way to distribute libraries of commands, and Blitz Research have many weird and wonderful modules lined up for future release!
Easy to use 2D command set[]
BlitzMax includes the Max2D module which contains a set of very easy to use 2D commands. On MacOS X and Linux, Max2D uses the OpenGL API, while on Windows PCs you have the option of using either the OpenGL or DirectX APIs. Both OpenGL and DirectX use 3D hardware to draw graphics to the screen, allowing for advanced effects such as realtime blending, rotation and scaling.
Intelligent build system[]
BlitzMax allows you to split a project up into multiple source files which can be pre-compiled to massively reduce development time. This process is handled automatically by the included BMK ('Blitz make') utility and is completely transparent to the developer.
IDE and Debugger[]
The BlitzMax package includes an 'integrated development environment' (IDE), which is used to enter your programs, and a debugger for tracking down bugs.
Direct OpenGL support[]
Thanks to the OpenGL module, you can use BlitzMax for direct OpenGL programming. Writing an OpenGL program is now as simple as:
GLGraphics 640,480 While Not KeyHit( KEY_ESCAPE ) glClear GL_COLOR_BUFFER_BIT glBegin GL_TRIANGLES glVertex2i 0,1 glVertex2i 1,-1 glVertex2i -1,-1 glEnd Flip Wend
In addition, a module based on the popular 'Glew' library provides support for all OpenGL extensions.
Tons of source code included[]
Most BlitzMax modules are written in...BlitzMax! When you buy BlitzMax, you will receive the source code to all the BlitzMax modules (distributed under blitz's Shared Source license), allowing advanced users the opportunity to enhance the BlitzMax system, or tweak it for their own needs.