DarkBASIC
The original 1999 game-creation BASIC from Dark Basic Software: a Windows-only language that hid DirectX behind plain-English commands so a beginner could load, light and animate a 3D model in a handful of lines.
Created by Lee Bamber, at Dark Basic Software Limited (later The Game Creators), with Richard Vanner on the commercial side
DarkBASIC is a BASIC for Windows that exists to do one thing: let somebody who has never programmed put a moving 3D object on screen before they give up. Written by Lee Bamber and sold by his company Dark Basic Software from the end of 1999, it wrapped Microsoft’s DirectX in a vocabulary of plain-English commands - MAKE OBJECT CUBE, LOAD BITMAP, PLAY SOUND - and bundled an editor, a help system full of examples, and a way to save the result as a single executable. It was the starting point for a product family that later included DarkBASIC Professional, The 3D Gamemaker, FPS Creator and AppGameKit, and once its successor arrived in 2002 it became known informally as DarkBASIC Classic.
A note on the year
DarkBASIC is usually dated to 2000 - that is the year given in Wikipedia’s article on The Game Creators, and the year in this site’s own master list. The archived news page of the official website tells a slightly earlier story:
- 1 August 1999 - the website launches as “a low profile launch whilst we continue alpha development”.
- 12 November 1999 - “the public release of the Dark Basic Beta Version”.
- 16-18 December 1999 - three V1.0 candidate builds in three days, the last described as final, with later fixes to come as patches “to the full version available shortly on CD”.
- 21 December 1999 - the company warns that forum replies will be slow because it will be “processing quite a few orders over the next few weeks”.
- 1 February 2000 - the V1.01 patch.
The vendor’s own awards page later referred to the awards DarkBASIC had received “since its release in 1999”. This page therefore uses 1999 for first appearance. The 2000 date is not wrong so much as a description of when most people first met the product: 2000 was the year of the first seven patches, the download edition, and the company’s trip to E3, and boxed retail copies did not reach UK shops until April 2001.
History and Origins
According to the company page on the 2000 website, Dark Basic Software was formed in March 1999 by Lee Bamber “to provide a solid foundation for the long term development of DarkBASIC”. Bamber was the director and programmer; Richard Vanner, a producer by trade, was the commercial lead; Malcolm Bamber and Christopher Bamber were credited as lead designer and lead artist. The same page noted that the project was part funded by the European Union. Product copy from mid-2000 says the team had decided “over two years ago” to build it, which would put the start of work around 1998 or a little earlier.
The motivation was stated plainly in that copy. Early home computers booted into BASIC, and players “would almost stumble into programming” by breaking into a game’s listing and changing it. The PC of the late 1990s offered no such on-ramp: making a 3D game meant C or C++ and the DirectX SDK. DarkBASIC was pitched against two alternatives at once - against C++, as far less work, and against “no programming required” game-making kits, as a tool that would not confine you to producing a clone.
The language invites comparison with AMOS on the Amiga, which occupied a similar niche a decade earlier: a BASIC whose appeal lay in its built-in sprite, sound and screen commands rather than in the language itself. Wikipedia’s article on the company describes DarkBASIC as “similar to AMOS”. That is a comparison, not a source; this page does not claim a documented line of influence.
Growth in the first year was by word of mouth. In July 2000 the site claimed that “without advertising, promotion or marketing the DarkBASIC community has grown into a user base of thousands”. Retail followed in 2001: UK trade magazine CTW reported in January that publisher FastTrak had signed the product, and on 6 April 2001 the site announced “UK Launch day”, noting that it had been Bamber’s dream “to be able to walk into a store and see his own creation on sale”. Publishing deals for other European countries were in place by then as well, and translated editions of the interface - German, French, Dutch, Swedish, Italian and Spanish betas - had been appearing since mid-2000.
Design Philosophy
The premise is that the hard part of game programming for a beginner is not loops and conditionals. It is the wall of setup between wanting a cube on screen and seeing one. DarkBASIC removes the wall by making everything a command. The vendor’s own introductory example is four lines long:
| |
Line 1 creates a cube 100 units on a side and calls it object 1. The loop then rotates it about two axes. There is no window to create, no device to initialise, no render loop to write.
Two design decisions follow from this and shape everything else.
Resources are numbered, not named. Objects, bitmaps, sprites, sounds and so on are identified by integers the programmer chooses. Object 1 is object 1 everywhere in the program. This is simple to explain and needs no notion of references or handles, at the cost that in a large program the bookkeeping is entirely the programmer’s problem.
Commands read as English. The official site invited newcomers to guess what these did:
| |
Multi-word command names with spaces in them are unusual in programming languages and are the most recognisable feature of the DarkBASIC family.
The environment was built around the same idea of immediacy. Alongside the editor, DarkBASIC had a Command Line Interface - the CLI - that let the user type a command and have it run instantly, which the vendor promoted as a way to experiment without rerunning a whole program. According to the 2000 product page it shipped with a sample game specifically so that users could break into its source and change the rules, and with “over a hundred example programs”.
Key Features
The language
The BASIC underneath is deliberately conventional. It has three data types, distinguished by the variable’s name: integers with no suffix, real numbers with a trailing #, and strings with a trailing $. Control flow is the familiar structured set, including FOR/NEXT loops, IF/THEN, GOSUB subroutines and user-defined functions, with arrays and DATA sequences for storing values - the topics that fill the first half of the Premier Press textbook. What it does not have is equally characteristic: there are no user-defined record types and nothing object-oriented. User-defined types arrived only with DarkBASIC Professional.
The command library
The feature list published in 2000 gives a fair picture of what the first version could do:
| Area | Capabilities listed by the vendor |
|---|---|
| General | Automatic double buffering, full-screen display modes, AVI playback, MIDI music, 3D sound |
| 2D | BMP loading, fast blitting, mirror/stretch/blur/fade, screen-sized sprites, transparency, collision |
| 3D | .X and .3DS model loading, landscape terrain, built-in primitives, polygon collision detection, model animation, ambient and directional lighting, texture filtering, alpha blending, fog |
| Input and system | Mouse, keyboard, joystick and force-feedback devices, file and system handling |
| Editor | Integrated help, examples and tutorials, the CLI, “Save As Single Executable” |
Later patches widened it. V1.03 added 27 file commands; V1.04 a new set of sprite commands; V1.07, whose public beta was announced with 52 new commands, brought 3D lighting, with free-flight rotation and CD-audio playback also on its published work list; and by 2003 the product page was also listing MP3 music and support for ten image formats.
Standalone executables
A finished program could be saved as a single .exe with its graphics and sound packed inside, and the vendor stressed that games made with DarkBASIC were licence and royalty free. Technically the program was not compiled to machine code: the 2000 product page says programs “are compiled into optimised scripts”, and Wikipedia describes the mechanism as bytecode appended to a copy of the interpreter. The same product page claimed these scripts ran “almost as fast as ‘C’”. That is a marketing statement with no benchmark, workload or baseline behind it, and should be read as such; the move to a true compiler was one of the headline changes in DarkBASIC Professional.
The Enhancement Pack
The largest single extension came bundled with DarkMATTER, a collection of 3D models and textures whose development was announced in May 2001 and which was on sale by early 2002. Its DarkBASIC Enhancement Pack, in the words of the later product page, added “over 190 new commands to V1.08” (the same site’s sidebar advertised 130) in six areas:
- DLL support -
LOAD DLLandCALL DLL, the first route for extending the language from outside - Memblocks - raw memory blocks that could be converted to and from bitmaps, images, meshes and sounds
- Multiplayer - commands for creating and joining LAN and internet games and exchanging messages
- Back buffer access - locking the display buffer and reading its pointer, pitch and dimensions
- Registry access - reading and writing the Windows registry
- Environmental audio - EAX effects
The pack was later sold separately as a download and, by 2008, included free with the electronic edition.
Platform
DarkBASIC was a Windows product only. The 2000 requirements were Windows 95 or 98, a 233 MHz Pentium, 32 MB of RAM and a DirectX-compatible 3D accelerator with at least 4 MB; Windows ME compatibility was confirmed in October 2000, and Windows XP users were later advised to install the free V1.13 upgrade. The later official requirements page listed a 300 MHz Pentium II, 64 MB of RAM and Windows 95, 98, 2000, ME or XP with DirectX 8.1 or newer, and was blunt about everything else: the product “will not run on any variety of Apple hardware or on Linux even under PC emulation”, and programs could not be converted for games consoles. Windows Vista support was the stated goal of V1.20.
Evolution
DarkBASIC’s first two years were a period of rapid, free patching, with the community closely involved - the winners of the Christmas 2000 and Easter 2001 competitions were each allowed to choose a new command for the next release.
| Version | Date | Notes |
|---|---|---|
| Public beta | 12 November 1999 | Numbered beta patches up to Beta #7 (15 December) |
| V1.0 | December 1999 | Candidate builds 16-18 December; full version sold on a Limited Edition CD |
| V1.01 | 1 February 2000 | First patch, for both free and full versions |
| V1.03 | 3 April 2000 | 27 new file commands; requires DirectX 7.0a |
| V1.05 | 25 May 2000 | Bug fixes; source for the Tank, Iced and Jetski demos |
| V1.07 | 30 October 2000 | 3D lighting; “pure DX7” engine code |
| V1.08 | 17 April 2001 | Released with the redesigned website |
| V1.13 | 24 January 2002 | Recommended upgrade for Windows XP; date per the upgrade page |
| V1.20 | 12 October 2007 | Windows Vista compatibility; material commands |
| V1.21 | 14 August 2008 | Final version; changes not documented in the sources consulted |
The upgrade page dates V1.13 to 24 January 2002, although the company’s own October 2007 newsletter remembered it as arriving “at the end of 2001”. After it the company’s attention moved to DarkBASIC Professional, which was on sale by late September 2002. Professional was a new product rather than an upgrade - a real compiler, a newer DirectX generation, a richer type system - and the two were sold side by side, the original at a lower price. In February 2008 the company’s order pages listed the electronic edition of DarkBASIC at $39.99 against $69.99 for Professional; a cut-down DarkBASIC Lite offered the full command set without the ability to save executables, and could be upgraded to the full edition for $14.99. Dark Basic Software itself took the name The Game Creators during this period; the product site was carrying the new name by August 2003.
The late revival is the most unusual part of the story. In October 2007, more than five years after V1.13, The Game Creators’ newsletter announced that “DarkBASIC Classic is Revitalised”. Version 1.20 was finalised not by the original team but by Ron Erickson, known for his DarkBASIC Professional plugins, working with the developer of the Star Wraith games, who was still shipping commercial titles in the old language. Its main purpose was Windows Vista: it removed the engine’s dependency on DirectX retained mode, which Vista did not provide, and changed where temporary files were written so that programs no longer needed administrator rights. It also added SET OBJECT DIFFUSE, SET OBJECT AMBIENT, SET OBJECT SPECULAR and SET OBJECT EMISSIVE. The migration notes published alongside were candid about the breakage - font sizes rendered differently, and ambient lighting became a per-object property rather than a global one.
Version 1.21 followed on 14 August 2008. From the day V1.20 appeared, however, the upgrade page had carried a notice that development of DarkBASIC had stopped and that no new version would be released. The notice stayed in place after V1.21, and this time it held. What V1.21 changed is not recorded in the pages consulted for this article.
Current Relevance
DarkBASIC is a historical language. It has had no release since 2008. It was still on sale from the vendor’s product site in early April 2010; archived captures from later that month onwards show only a redirect, eventually to a company home page that no longer lists the product. Unlike DarkBASIC Professional, whose source The Game Creators published on GitHub under the MIT licence, no open-source release of the original DarkBASIC could be confirmed while researching this page.
Its descendants are another matter. DarkBASIC Professional carried the command-library idea through the DirectX 9 era, and AppGameKit took it to mobile and cross-platform targets with a scripting language recognisably in the same family. Anyone curious about the original today is best served by the archived official site, the Premier Press textbook, and the DarkBASIC Professional source, which preserves the shape of the command set if not the original engine.
Why It Matters
DarkBASIC arrived at a moment when the route into game programming had narrowed. The 8-bit and 16-bit home computers had put a BASIC prompt in front of every owner; the Windows PC of 1999 put a C++ compiler and a thick SDK between a beginner and a triangle. DarkBASIC’s bet was that the earlier arrangement could be recreated on top of DirectX - that a language with three data types and a numbered-object model was a fair price for getting a textured, animated model on screen in the first five minutes.
The bet paid off well enough to sustain a company and a product line for many years, to put a small British team’s language on shop shelves in several European countries, and to give a great many hobbyists their first working 3D program. Its limitations were real, and its successor addressed most of them. But the basic bargain it struck - hide the API, give every operation an obvious name, and let the result be shared as a single file - is the same one that beginner-oriented game tools have been offering ever since.
Timeline
Notable Uses & Legacy
StarWraith 3D Games
The commercial user the vendor itself pointed to. The independent studio's Star Wraith space-combat games were written in DarkBASIC - the product site noted Star Wraith 3 being featured on PC Zone magazine's discs "for a number of months running" - and The Game Creators' October 2007 newsletter presented Evochron Renegades as a showcase for DarkBASIC Classic 1.20, a release developed in conjunction with the studio.
PC Gamer UK 24-hour Game Making Day
On 16 September 2000 the Dark Basic Software team took on a challenge set by PC Gamer UK to build a complete game in 24 hours, in a genre the magazine chose on the day; the models, textures and sounds from the event were afterwards released for users to reuse, and the magazine ran a follow-up reader contest for games written with the trial version.
Beginner's Guide to DarkBASIC Game Programming
A 700-plus-page textbook by Jonathan S. Harbour and Joshua R. Smith, published by Premier Press in its game development series (ISBN 1-59200-009-6), which used DarkBASIC and DarkBASIC Professional to teach programming fundamentals from variables and loops through to 3D graphics and a multiplayer game.
Schools and colleges
In April 2001 Dark Basic Software offered free copies of the language to educational establishments that wanted to use it in their curriculum, outside the countries covered by its publishing deals; a 'free for your school' offer was still advertised on the product site in 2003.
Hobbyist game and demo scene
The official site's Gallery, later a Showcase divided into games, graphical demos, applications and retro games, collected user-made work, alongside community tools written for the language such as Guy Savoie's DarkEDIT editor and, later, TDK's MatEdit landscape editor and DarkIDE; the company also ran coding competitions, and the winners of its Christmas 2000 and Easter 2001 contests were each invited to choose a new command for a coming patch.