Click here to Download the Basic4GL installer for Windows (Vista, 7, 8, 10).
Also see the plugins page.
Basic4GL is a compiler and virtual machine that allows you to write and run programs written in the Basic4GL programming language, a language based on the traditional BASIC syntax, but updated for modern computers.
Basic4GL has builtin support for OpenGL 1.1. Version 1.1 is a bit less relevant now than in 2003 when Basic4GL was first released - in fact it's one of the versions they now refer to as "legacy" OpenGL - but you may find it useful for learning the fundamentals of 3D graphics programming without the setup hassle of creating your own pixel and vertex shaders etc.
Or you can ignore OpenGL entirely, and use Basic4GL's text, sprite, tile-map and sound libraries to create 2D graphics without writing any OpenGL commands at all.
Basic4GL is designed to be a safe, easy to learn programming environment, suitable for creating games and graphical programs, rapid prototyping, or just learning basic programming.
Basic4GL is built around the OpenGL 3D accellerated graphics library. It automatically handles such tasks as creating an OpenGL window and initialising OpenGL for you, so you can skip all the usual linking, header file and initialisation and start writing OpenGL code from line 1. For example, here's an OpenGL program to draw a triangle.
glBegin(GL_TRIANGLES) glVertex3f(0, 10, -30) glVertex3f(8, -4, -30) glVertex3f(-8, -4, -30) glEnd() SwapBuffers()
Vectors and matrices are integrated directly into the Basic4GL language as 1D and 2D arrays respectively. Mathematical operators such as multiplication (*) and addition (+) behave appropriately on vector and matrix types, so you can write vector and matrix notation algebra directly into your programs.
You also get a standard library of trig functions and matrix creation routines (designed to mirror OpenGL's matrix creation routines), which makes trigonometry calculations quick, easy and compact to implement.
If OpenGL isn't your scene Basic4GL has a sprite and tile-map engine for writing 2D scrolling shooters, platformers or whatever takes your fancy.
A few clicks will then convert your program into a stand-alone Windows executable which you can distribute to whoever you want.
All editing takes place within the Basic4GL integrated development environment with a syntax highlighting editor and built-in symbolic debugger.
The Basic4GL programming language is designed to be simple, flexible and very hard to crash! Run-time errors (such as array index out of bounds) are caught cleanly, and all resources (such as textures or file handles) are automatically cleaned up for you when the program finishes.
Basic4GL supports plugins, which allow the language to be extended with new commands and functions. There are a number of existing plugins created by members of the Basic4GL community providing access to many quality third party libraries, such as phyiscs and music/video playback.
C++ programmers can create their own plugins using the Basic4GL plugin SDK.
A brand new Basic4GL release for the first time in 7 years.
The Basic4GL editor has been converted to Qt, GLFW and Open Sourced under the BSD license.
The whole IDE has been given a face lift, and you can build the whole thing yourself using freely available tools (e.g. Visual Studio Community Edition) and libraries.
More details in this blog post.
Because I felt like it :-).
Support for hexidecimal numbers.
dim a = 0xffff, b = -0x2020
Fix run behaviour when double clicking a .gb file. Programs that use include files or plugin DLLs should run correctly now.
Can now use "as" keyword with function and constant declarations. E.g:
function GetString() as string function RandomFloat() as single const pi as single = 3.14159265
Functions can also use structures. E.g:
type TThing name as string end type function GetThing() as TThing
Fixed a small bug that Nicky found that I can't remember off the top of my head :-)
New improved texture loading commands:
With support for transparent colours, non power-of-two frames sizes in image strips. See the Sprite library guide for details.
Extended DrawText command, to allow drawing of just the text, or just the sprites.
Can now dim and assign variables in the same statement. E.g:
dim a = 1, b$ = "Hello" dim m#(3,3) = MatrixIdentity()
Added functions to tweak network connection settings (advanced).
See network guide for more information.