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:
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.
Dictionary Upgrade
Enhanced versions of the standard REALbasic Dictionary class that handle case sensitivity and preserve insertion order.
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 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.
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
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
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
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 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.
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.
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 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.
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
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.
Tetris
A no-frills implementation of Tetris. The game is fully playable but there is no high scores system.
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
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
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.