Publisher's description - BlitzMax
BlitzMax is the new, next generation game programming language from Blitz Research. BlitzMax retains the BASIC roots of Blitz3D and BlitzPlus, but adds a ton of cool new features and abilities.
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
-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 MacOS X, Windows and Linux PC's. The BlitzMax license is 'all in one' - buy BlitzMax once and run your programs on all 3 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. Max2D is based on OpenGL, 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:
bglCreateContext 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
bglSwapBuffers
Wend
In addition, a module based on the popular 'Glew' library provides support for all OpenGL extensions.