Software Development Manual
January 2004
Thank you for your interest in the Pandora Development Engine. This development manual will provide you with a detailed guide on programming within the Pandora environment, including coverage of all application programming interfaces and standards that are present in the system. If you have any questions about the documentation or wish to alert us to any errors, write to documentation@rocklyte.com with your comments. The manual is designed to be printable, so you may print out each section for reading in hard-copy format, or you can choose to read it with your favourite HTML viewer if you prefer.
The Pandora Engine is an object oriented development system that is not restricted to any one platform. It is significantly different to other multi-platform environments as it uses a 100% pure implementation of Modular Object Orientation, also known as MOO. Unlike Java and other object oriented development platforms, the Pandora Engine is not a language, but a vast set of binary files and shared libraries. There is no restriction on what language you wish to use when writing a Pandora based program, so long as the necessary "include files" exist for it. Furthermore, the environment presented by the Pandora Engine is fully self-contained, which makes it possible for you to compile your software for one or more platforms without having to make extensive changes. The Pandora Engine manages almost all aspects of the system - this includes files, I/O ports, graphics, audio, even tasks, threads, memory and devices. Because it is modular the system is fully scalable, making it possible to downgrade the system to work on small embedded devices, or upgraded for bigger and more powerful computer systems.
The "engine" behind Pandora is known as the Object Kernel, which is a central interface for managing all of the objects and other allocations within the system. The object kernel is not a kernel in the traditional sense - it is actually designed to extend the functionality of the many traditional, procedural kernels already available. For example, it can be said that the object kernel extends the functionality of the Linux kernel by providing MOO features to application programs. A more detailed explanation of MOO and object management is provided in the section Modular Object Orientation Explained.
The following diagram illustrates where the Pandora Engine sits in relation to the rest of the system environments that it is typically implemented on. Because Pandora can run on standard system kernels (e.g. Unix, QNX, Linux) you will notice that it sits in the middle of the diagram. This is an important note as Pandora is typically implemented as a "middle-tier" architecture, the only exception being embedded systems where it may run as a low-level interface. There are many system kernels and software drivers in the existing market, so in many cases low-level implementations of the Pandora Engine are not necessary.
As a Pandora developer you will be working solely within the developer space shown in the diagram, either creating the necessary modules, scripts and classes to generate an object oriented program, or you can choose to write a straight executable program. If you are creating a truly modular and object-oriented piece of software then you will need to work within Athene, which means you will need to write object scripts to generate the program interface. If you are creating an executable then you can work with or without Athene as the end-result will be a stand-alone program.
In order to get a full installation working you will require: The correct Pandora binaries for your development system; a language compiler; and the manual that you are reading now. Note that only C/C++ header files are officially supported, so if you choose a different language you may need to seek third party support for it. For more information on the installation process, refer to the Installation Procedure section of this manual.
It is important to note that even if you are an experienced developer, learning how to use the Pandora Engine may take some time unless you already have some working knowledge of the methodologies used to create it. If you are using Pandora to create programs for Athene, be prepared to reserve a few extra days for self-education as the program development process is significantly different to other existing systems. Make sure that you read this manual thoroughly, and remember to check the technical documents if you need a more thorough understanding of how any part of the system works. Also, please note that you don't have to do it alone - if you have trouble, join the Pandora Engine's developer mailing list to seek help and discuss your experiences with the system.
Next: Modular Object Orientation Explained