BlitzMax

From GPWiki
Jump to: navigation, search

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.

Tutorials and Source

Blitz Max Community

External Links

Blitz Basic Homepage

BlitzMax Homepage

German Blitz Basic / BlitzMax Homepage