Click here to Download the Basic4GL installer for Windows (98, XP, Vista, 7).
Also see the plugins page.
Basic4GL is a free programming language for Windows computers with built in support for the OpenGL graphics library.
Based on traditional BASIC, it is designed to be an easy to learn, easy to use language for writing 3D programs, games, demos and utilities without all the setup hassle associated with most language compilers.
Basic4GL can be used:
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.
Because I felt like it :-).
Support for hexidecimal numbers.
E.g:
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:
LoadTex()
LoadTexStrip()
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.
Minor bug fixes.
"dim a," will no longer cause the IDE to crash.
Allocating too many network connections will no longer cause the IDE to crash.
Russian translation of the Basic4GL help files (v2.5.3).
Thanks to Popov Evgeniy Alekseevich.
Contains fixes/features for plugin DLL writers.
Unless you're writing or using a new plugin, you probably wont notice much difference between this and the previous release.
Changes:
Fix bug in standalone exe startup sequence, that was preventing plugin DLLs from registering data structures properly.
Plugins can now compile and execute arbitrary code. (See IB4GLCompiler in Basic4GLStandardObjects.h).
Plugins can now access files embedded in standalone exes. (See IB4GLFileAccessor in Basic4GLStandardObjects.h).