|Developer(s)||Dream Design Entertainment Software|
|Stable release||10.x / 13th Sept 2011|
|Platform||Windows, Intel/PowerPC Mac, Linux (and XBox Linux), OS-X, PocketPC, GP32, GP2X/GP2X Wiz, iPhone, iPad, Palm Pre/Pixi, HP WebOS devices (HP Touchpad, Pre2/3, Veer), OpenPandora, Palm Pre 2/Tablet, Android|
|License||2D Free version for Windows, Mac and Linux (can also be used to compile time-limited versions for other supported platforms), Commercial version, Free School Version|
GLBasic is a commercial BASIC programming language, that can compile to various platforms, including Windows, Linux, Mac OS X, as well as some handheld devices. The language is designed to be simple and intuitive.
GLBasic started as an interpreted language with 2D commands but now uses the GCC compiler for many different platforms to achieve fast, native code results. The GLBasic precompiler "GPC" converts the simple BASIC language into C++ code and compiles that later. Thus, the user can extend GLBasic using the INLINE command to mix C/C++ code directly with GLBasic source code. Due to this, GLBasic can easily access third-party dynamic libraries on all platforms. The GLBasic SDK comes with an IDE, debugger and a graphics engine built on OpenGL (or OpenGL|ES) for the platforms Windows, Linux, Mac OS X, iOS and WebOS. For handheld devices (Windows Mobile, GP2X and GP2X Wiz), GLBasic uses its own close-to-hardware routines for fast graphics.
To compile for the iPhone or iPad, you will need an iMac (on which to compile the generated code - to comply with Apple's requirements) and the latest version of Xcode, which is a free download from Apple.
To be able to actually run the program on an iPhone or iPad (GLBasic programs will not work on the emulator), you need to be a member of the iPhone Apple Developer Connection.
Since the release of the 8.054 beta, it became possible to compile for the Open Pandora machine as well. However, with the lack of Windows programming tools half of the compiling process is performed on Windows, and the other half on the actual machine. Since version 10, the IDE directly builds packages on Windows for the Pandora.
Version 8.230 and above can compile for the WebOS devices like the Palm Pre without additional hardware or developer program membership requirements. Support for the HP TouchPad was added in September 2011 via a web-update.
Version 10.057 added support to build application packages running on Android devices.
GLBasic comes with numerous examples.
 App Store / Online Shop acceptance
iPhone created programs can be sold perfectly legitimately at the AppStore, with the review process might take up to two weeks.
Palm's WebOS App Catalog does accept GLBasic programs. The review process takes around 5 days.
Google's Android Market accepts packages created with GLBasic. There's no review process delay so far.
GLBasic has a wrapper for the Intel AppUp Center SDK as well.
GLBasic has the following features:
- Programs are written in BASIC.
- String and numbers are automatically converted between types.
- Arrays can be fixed size or dynamic.
- Sound, graphics and data can be compressed into a single file.
- User can define their own types. Types within type and dynamic arrays are allowed.
- C code can be included by putting appropriate code between a starting and ending command, or can be included during compilation. In addition, for Windows, functions within DLLs can be called.
- A few features are PC format only.
- Programs for the iOS can use OpenFeint.
 3D Features
- The 3D engine is simple to use and maintains fast processing of objects
- Objects can be animated
- Works with most of the common 3D formats
- Objects can have shadows
- An Entity System is available as a free open source library package
 2D Features
- Sprites can be rotated and scaled, and take account of blending and tinting values.
- Lines, filled rectangles and other shapes can be drawn.
 Network Features
- TCP/IP and UDP/IP sockets are available, as well as a higher-level library built atop the IP-sockets.
- The compiler is cross-platform. You do need an Intel Mac to compile the generated iPhone code though, as per Apple's legal requirements.
- The editor is Windows only, but can run at a decent speed in most virtual machines. With Wine though, you can only compile for windows. Crossover/Mac support is given since version 10.
- A third-party editor for the Mac is being worked on.
 GUI system
GLBasic comes with the source code to DDgui, an easy-to-use GUI system, allowing all supported platforms to have the same look at feel across all platforms. For Windows, Linux and Mac GLBasic has ported a Tcl/Tk wrapper that offers a native OS look.
GLBasic has gone through the following revisions :
- Version 1.2 - The first version of GLBasic (also known as The DiNGS Game Basic sequel)
- Version 2.4 - This introduced PocketPC support
- Version 3.0 - (Codename: Behemoth) added TYPEs
- Version 4.0 - Introduced the ability to interface with Window's DLLs and introduced compiling for the Xbox (if Linux is installed on it). It should also run on standard Linux, although there is no hardware acceleration, so programs run much slower.
- Version 5.0 - Introduced compiling for the Apple Mac as a Universal application
- Version 6.0 - Introduced integers into GLBasic for the first time. Previously variables could either be floating-point or strings
- Version 7.0 - Introduced the ability to compile for Apple iPhone and iPod Touch devices.
- Version 8.2 - Introduced the ability to compile for Palm Pre and Palm Pixi devices.
- Version 10.057 - Introduced the ability to compile for Android
- Version 10.109 - Added support for WebOS pads like the HP TouchPad
 Sample code
// this is a comment // Print "Hello World" to the screen position 0,0 (top, left) PRINT "Hello World", 0,0 // swap backbuffer and visible screen, prepare backbuffer for next rendering SHOWSCREEN // wait for a key to be pressed KEYWAIT
 Limited Object Oriented Scope
With Version 8, GLBasic added basic object oriented commands to the TYPE command. This allows structures to access itself (using the 'self' command) and to have functions within TYPEs
 Simple OOP Test
TYPE Tvec x;y;z FUNCTION null: self.x = 0; self.y=0; ENDFUNCTION
FUNCTION add: v AS Tvec INC self.x, v.x INC self.y, v.y INC self.z, v.z ENDFUNCTION ENDTYPE
LOCAL vec AS Tvec, vec2 AS Tvec
vec.null() vec.x=50 vec2.x = 100 vec.add(vec2)
Version 8 also has the ability to encrypt (using 128-bit Blowfish) and decrypt strings.
 See also
- SdlBasic, an interpreted BASIC for GP2X
- Fenix Project, an interpreted language intended to be easier to learn than C++
- DarkBASIC Professional, a Windows-only BASIC compiler
- This article is based on content taken from GP2X wiki, which is available under the terms of the GFDL.
- The GLBasic website
- GP2X games written for the GLBasic/gp2x.de competition 2008
- External Language Reference Guide
- External Official Language Reference Guide (in English)
- The GLBasic Official Forum
- The GLBasic Wiki