REALbasic logo

REALbasic Open Source

These files are for use with the REALbasic development environment. Charcoal Design is not affiliated with REALbasic or REAL Software.

Feedback

If you have anything you'd like to say about any of our open source offerings, or if you have an improvement or bug-fix that you would like to submit, please use the form below:

(optional)
(optional)

Donations

If you find our open source offerings useful, please support us by making a small donation. Your funding will help to ensure continued development of these tools.

Libraries

These are code libraries of useful functions and functionality to extend REALbasic. They are mostly documented and tested on RB2009R2. We have aimed to make these libraries fully cross-platform and minimally reliant on plugins for their functionality. They may not work on the latest RB versions and we no longer officially support them, but if you have any issues then contact us or submit a bug report and we'll do our best to help.

RBZ icon

Dictionary Upgrade

Enhanced versions of the standard REALbasic Dictionary class that handle case sensitivity and preserve insertion order.

RBGL icon

GL Declares

The GL Declares library makes the power of OpenGL available to REALbasic. Unlike RBGL, our other OpenGL project, the GL Declares library makes no attempt to hide the complexity of OpenGL, and instead provides low-level access to all its features. We've included a simple cross-platform GLCanvas class to get you started, but the rest is up to you.

JSON code

JSON Dictionary

JSON is a syntax for storing structured data in a text file. The JSON syntax is derived from the JavaScript language. This project contains a module that can convert a JSON string to and from a REALbasic Dictionary. The project also includes a class for fast string concatenation and a class for displaying Dictionary contents in a ListBox.

Tokenizer icon

Parser

The Parser class complements the Tokenizer by providing semantic analysis of strings of language tokens. Its functionality is similar to the YACC library from the Unix world. The Parser, in conjunction with the Tokenizer can be used to form the complete front end for a compiler, or other syntax processing tool.

RBGL icon

RBGL

A simple interface for drawing using OpenGL that works on Mac OS and Windows using pure REALbasic code without any plugins. Includes easy-to-use OpenGL Canvas and Graphics classes that exactly replicate the built-in REALbasic objects, making it easy to port existing projects.

RBGL3D icon

RBGL3D

The RBGL3D library is a re-implementation of the deprecated REALbasic RB3DSpace control. RBGL3D is still in the early stages, but eventually we hope to replicate all the original RB3DSpace functionality.

RBGLSprites icon

RBGLSprites

The RBGLSprites module is a complete re-implementation of the REALbasic SpriteSurface using the RBGL classes as a base. Like the RBGLCanvas and RBGLGraphics classes, RBGLSpriteSurface is designed to mimic the behaviour of the existing control. Includes examples.

RBZ icon

RBZ Library

A collection of classes for creating, manipulating and expanding ZIP archives. These functions require the MBS plugin for performing compression and expansion using the Deflate algorithm, however they can be used without the plugin for creating ZIP-compatible uncompressed archives.

REALunit icon

REALunit

A simple unit testing framework for use with REALbasic.

Tokenizer icon

Tokenizer

The Tokenizer class is designed for splitting text into tokens according to a set of regular expressions you specify. Tokenizer can be used for a variety of purposes - for parsing data files, or even as part of the first stage for a programming language parser. Its functionality is similar to the LEXX library from the Unix world.

Example Projects

These are a collection of games, technology demos and experiments conducted using REALbasic over the years. They are mostly undocumented and in various stages of completenes, however they have all been tested to compile and work correctly on RB2008r2.

A Bezier curve

Bezier Curves

A general implementation of the Bezier function. Can be used for an arbitrary number of dimensions, and with an arbitrary number of off-curve control points. Includes an optimised version of the algorithm for curves with two control points - the most common kind.

Explosion

Explosion Generator

This is a 2D particle-based explosion generator. It generates near-photo-realistic explosions complete with debris particles and smoke. The explosion is rendered in real time using OpenGL.

A fractal texture

Fractal Generator

This is a fractal cloud texture generator. It uses the Diamond Square algorithm to generate pseudorandom textures which are suitable for a number of purposes, such as generating 3D landscapes or clouds.

Simple Paint

Simple Paint

This is a simple paint program written in REALbasic. The main purpose is to demonstrate how to create a buffered, scrolling and zooming Canvas control, and a number of useful Canvas subclasses are included in the project, however the project also shows how to implement simple line drawing and flood fill, as well as custom cursors.

A Tetris block

Tetris

A no-frills implementation of Tetris. The game is fully playable but there is no high scores system.

Wireframe tanks

VecTanks

Vectanks is a 3D tank game, similar to Battlezone. This is a technology demo rather than a full game and has no scoring system or levels. It uses pure RB code to implement a 2.5D wireframe graphics engine, and does not rely on any external libraries, such as OpenGL or Quesa.

Plugins

A collection of REALbasic plugins. These require Metrowerks Codewarrior 8.0 (now discontinued) to compile and may require some work to get running. We do not offer any support for these plugins unless otherwise stated.

Memory Utils plugin icon

Memory Utils

This plugin gives access the the malloc, calloc and realloc commands, and allows for faster memory allocation and access than REALbasic's Memoryblock, array and string functions. This is mainly due to reduced overhead from clearing memory unnecesarily and performing garbage collection, nil pointer checking, etc.

PCRE plugin icon

PCRE Plugin

This gives direct access to PCRE (the Perl Compatible Regular Expressions library) from REALbasic. This is actually the same library used by RB anyway, but the plugin allows access to some advanced features such as "anchored mode", and can allow for better performance.

Donations

If you find our open source offerings useful, please support us by making a small donation. Your funding will help to ensure continued development of these tools.