DarkBASIC
Please help improve this article by expanding it. Further information might be found on the talk page. (January 2007) |
DarkBASIC is a commercial game creation programming language released by The Game Creators. The language is a structured form of BASIC and is similar to AMOS on the Amiga. The purpose of the language is game creation using Microsoft's DirectX from a BASIC programming language.
DarkBASIC
Darkbasic is a programming language that specializes in the creation of games. It can create both 2D and 3D games using a lot less code than the equivalent program would take by using more powerful languages such as C++ due to the included libraries. It is often referred to as DarkBASIC Classic to avoid confusion with DarkBASIC Professional. It consists of an IDE, Debugger and interpreter, and an engine built on DirectX 7. The compiler emitted Bytecode that is appended to an interpreter to create a stand alone executable. The current version is 1.21, released on 14th August 2008. Since the introduction of Darkbasic Professional, The Game Creators have stated that there will be no further updates to the language, although it will still be sold.
Features of DarkBASIC
Audio/Video | Extension | Save |
---|---|---|
Wave | WAV | Yes |
Windows Media | WMA | |
Mpeg Layer 2 | MP2 | |
Mpeg Layer 3 | MP3 | |
MIDI Playback | MIDI | |
RMI | RMI | |
Scream tracker | S3M | |
Fast Tracker | XT | |
Impule Tracker | IT | |
SoundTracker | MOD | |
CD Audio | CDA | |
2D | Extension | Save |
Bitmap | BMP | Yes |
Run Length Encoded BMP | RLE | |
Device Independent Bitmap | DIB | |
Portable Network Graphics | PNG | |
JPEG | JPG | Yes |
DirectDraw Surface | DDS | |
Targa | TGA | |
PCX | PCX | |
PhotoShop | PSD | |
Tagged Interchange Format | TIFF | |
3D | Extension | Save |
3D Studio | 3DS | |
DirectX | X | Yes |
Dark Basic Object | DBO |
DarkBASIC is a wide language which covers all areas of game development typical of its time, hence it also includes a wide range of file formats typically used in games. Extra features such as multiplayer and EAX support became available in an expansion pack.
Display
- Automated Double Buffering
- Full-Screen Display Modes
- Gamma Control
Input/Output
- Mouse, Keyboard and Gaming controller input.
- Force-Feedback Control
- System Handling
- File Handling
Video and Audio
- Video Animation Control
- Audio Control
2D
- Super-Fast 2D blitting
- Mirror, Stretch, Blur and Fade
- Screen-Sized and animated sprites
- Transparency
- Fast pixel perfect Collision
- 2D Drawing Functions
3D
- Landscape Terraforming
- Built-in 3D Primitives
- Polygon Collision Detection
- Full Model Manipulation
- Model Animation
- Ambient lighting
- Directional Lighting
- Texture filtering
- Alpha blending
- Fogging
DarkBASIC Professional
Developed as a replacement for DarkBASIC. As with DarkBASIC it consisted of an IDE, debugger and compiler. Unlike DarkBASIC, the DarkBASIC Professional compiler outputs Machine Code. The engine originally used DirectX 8.1 but has been updated to use DirectX, 9.0c. The language is essentially the same as DarkBASIC with a few additions. Notably types which allow combining simple data types into a composite data type similar to Structs in C. Other features include the use of shaders, 3D maths commands and vertex editing commands. The current version is 1.0.6.9 released 1. July 2008.
File:Wiki letter w.svg | This section requires expansion. |
Plugin architecture
Plugins allow extra commands to be added to the language. Plugins are DLLs with an embedded string resource detailing the routines implemented in the dll[1]. At compile time the compiler bundles the relevant plugin dlls into the executable[2].
Interestingly built-in commands are also implemented in the same way. This allows third party plugins access to built-in commands by calling the correct function in the relevant dll.
Currently available plugins provide a wide range of addition commands from language extensions and utility functions[3]. to integration with physics engines[4] or accessing a Database.
DarkGDK
Formerly know as Dark Game SDK, DarkGDK is the DarkBASIC Professional engine packaged up for use with Visual C++ or Microsoft .NET. It has been publicized as released with Visual C++ 2008, and is specially designed with IntelliSense for this edition. The DarkGDK can be used with Visual C++ and is available as a free download, Games created with DarkGDK can be distributed for free, however, in order to sell your game made with DarkGDK, you must purchase a license about $499 USD. DarkGDK.NET product is available for purchase and allows access to the DarkBASIC engine from C# and VB.NET. In DarkGDK.NET, there has not been a license created for creating commercial games, but is said to be available soon. however, information about DarkGDK.NET is not available on the Game Creators website.
File:Wiki letter w.svg | This section requires expansion. |
PureGDK
PureGDK is an implementation of the DarkBASIC Professional engine for the PureBasic programming language. Like DarkGDK, PureGDK supports many of the same features and runs on DirectX 9[5]. An additional license for the commercial PureBasic language is required to use it.
The software comes in two editions: PureGDK Upgrade and PureGDK Complete. PureGDK Upgrade is designed to accommodate existing users of DarkBasic Professional by offering a low-cost upgrade path. PureGDK Complete is a stand-alone product for users who don't already own the engine by providing licenses for both DarkBasic Professional and PureGDK. Either solution still requires the user to own or purchase a license for PureBasic.
Sample code
Hello world[6]
PRINT "Hello world." WAIT KEY END
Simple Rotating Cube[7]
REM 3D rotating cube demo SYNC RATE 60 MAKE OBJECT CUBE 1,100 DO XROTATE OBJECT 1,OBJECT ANGLE X(1)+0.3 YROTATE OBJECT 1,OBJECT ANGLE Y(1)+0.5 SYNC LOOP END
Rotating Cube in DarkGDK[8]
#include "DarkGDK.h" void DarkGDK ( void ) { // set sync on and sync rate to 60 frames per second dbSyncOn ( ); dbSyncRate ( 60 ); // make a cube dbMakeObjectCube ( 1, 10 ); // loop until the escape key is pressed while ( !dbEscapeKey ( ) ) { // Turn the cube left dbTurnObjectLeft ( 1, 6 ); // update screen dbSync ( ); } }
Rotating Cube in PureGDK
; Open a PureBasic window OpenWindow(0,0,0,640,480,"DarkBasic Professional - PureGDK",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) ; Initialize the PureGDK screen as a child of window ID 0 OpenDBWnd(WindowID(0),0,0,640,480) ; Set the sync rate to 60 frames per second dbSyncRate(60) ; Make a cube dbMakeObjectCube(1,3) ; Loop until the escape key is pressed or the window is closed Repeat dbXRotateObject(1,dbObjectAngleX(1)+0.3) dbYRotateObject(1,dbObjectAngleY(1)+0.5) dbSync() Until WindowEvent()=#PB_Event_CloseWindow Or dbKeyState(#VK_ESCAPE)
See also
- Multimedia Fusion 2
- DarkBASIC Professional
- DarkMATTER, a set of models released by The Game Creators for use with DarkBASIC
References
- ↑ Third Party Commands SDK
- ↑ Darkbasic pro and classic exe format information.
- ↑ Matrix1Utils plugins collection.
- ↑ NewtonDBPro - Newton Game Dynamics plugin.
- ↑ http://puregdk.com
- ↑ Darkbasic Professional user manual
- ↑ TheGameCreators.com darkBASIC codebase
- ↑ Dark Game SDK user manual
External links
- The Game Creators website - http://www.thegamecreators.com
- DarkBASIC - http://darkbasic.thegamecreators.com
- DarkBASIC Professional home page - http://darkbasicpro.thegamecreators.com
- The Game Creators' Forums - http://forum.thegamecreators.com/
- Dark Basic Games - A showcase of games made using DarkBASIC Classic and Professional - http://www.darkbasicgames.com
- The Code Brewers - A selection of games made using DarkBASIC Professional - http://www.thecodebrewers.com
- WikiBooks - Learn how to Program DarkBASIC - http://en.wikibooks.org/wiki/DarkBASIC_Programming
ca:DarkBASIC de:DarkBASIC fr:DarkBASIC it:Darkbasic hu:DarkBASIC nl:DarkBASIC pl:DarkBASIC ru:DarkBASIC simple:DarkBASIC fi:DarkBASIC sv:DarkBASIC zh:DarkBASIC
If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...