Demo and Benchmark Documentation Engines
Demo and Benchmark Documentation Engines
» Introduction » Install Instructions »»Windows install instructions »»Generic install instructions » Developer Documentation » Simple Example »»A simple PAL example. » Graphics Engine Integration Examples »»Getting started with Irrlicht and PAL (Terrain example) »»Getting started with Horde3D and PAL (Ragdoll example) » PAL Developer Documentation »»A closer look at the PAL factory. »»A brief outline on adding another physics engine to PAL. » PAL Publications


Please refer to the PAL wiki for recent changes Although PAL is a very easy to use package it always helps to look at some examples and to understand the basic concepts. The "Simple Example" and Doxygen documentation are the best starting points.

PAL is built on top of an abstract pluggable factory. (See abstract factory pattern from wikipedia). A factory simply allows the creation of an object without specifying the exact class of object that will be created. In this way we can ask the PAL factory to create a "Box" object, and it will decide whether to create an ODE Box or a Bullet Box.

To tell PAL which physics engine you wish to use you must first call PF->SelectEngine() and pass in the name of the physics engine you wish to use.

After that you can create any object you want by calling the appropriate method. In this case: PF->CreateBox(). Alternatively, you can create it directly via the name the object provided to the factory: PF->CreateObject("palBox").

To simplify the use of the abstract pluggable factory a set of macros are provided that are discussed in more detail here. This information is important if you wish to extend PAL's functionality (discussed here), or wish to work with the underlying physics engine directly via PAL.

^ top

Install Instructions

Windows install instructions

Generic install instructions

To install PAL you will need to compile it for your compiler and operating system. If you are using windows then you just need to run the "configure.exe" in the base PAL directory. (See Windows install instructions)

For other systems, for example Linux, BSD or Mac OS X you need to download premake, and edit the premake_generic.lua file. (See Generic install instructions)

^ top

Developer Documentation

The developer documentation is available here (SVN PAL Doxygen Documentation). The documentation is auto-generated from the latest SVN with doxygen and latex, and thus may be in a state of flux at times. Due to a problem with our web hosting, we can not auto-generate the documentation. You can generate the documentation yourself using LaTeX(only needed for the formulas) and Doxygen. Note: Temporary partial documentation without equations sometimes available here.

^ top

Simple Example

A simple PAL example.

This demonstrates an example of dropping an object on the ground. Instructions on getting started are included and the basics of PAL usage are covered.

^ top

Graphics Engine Integration Examples

Getting started with Irrlicht and PAL (Terrain example)

Getting started with Horde3D and PAL (Ragdoll example)

This demonstrates how to incorporate PAL with a graphics engine and sharing mesh data. (Note: you may also wish to look at the 'game engine' test example that loads a Quake 3 BSP map using SDLGL, as well as the PAL Benchmark, which uses Irrlicht). We will be using various graphics engines, including the Irrlicht engine, and Horde3D. You will need to configure and build PAL first.

^ top

PAL Developer Documentation

A closer look at the PAL factory.

A brief outline on adding another physics engine to PAL.

This section contains information of some of the more in-depth aspects of PAL useful for developers who wish to modify or extend PAL functionality. Otherwise, check the PAL documentation.

^ top

PAL Publications

Evaluation of real-time physics simulation systems.

Overview: Contains a comparison and evaluation of several physics engines, and a description of the PAL architecture.

Abstract: We present a qualitative evaluation of a number of free publicly available physics engines for simulation systems and game development. A brief overview of the aspects of a physics engine is presented accompanied by a comparison of the capabilities of each physics engine. Aspects that are investigated the accuracy and computational efficiency of the integrator properties, material properties, stacks, links, and collision detection system.

SubSim: An autonomous underwater vehicle simulation package
See also,
Design, modelling and simulation of an autonomous underwater vehicle

Overview: Contains a decription of PAL hydrodynamics, buoyancy, actuators and sensors.

Abstract: This article describes the design and modeling of an autonomous underwater vehicle (AUV), together with a simulation system for AUVs with arbitrary propulsion and sensor systems. The use of a simulation system allows to rapidly test AUV designs, e.g. different propulsion systems or different sensor configurations. Different AUV designs can be compared re. their suitability for a given task before they even have been built. Therefore, the use of a simulation system can advance and speed up the design process of an AUV.