# S TEVE'S P ORTABLE G AME L IBRARY.

And Lo, the Lion and the Sheep shall lie down together - but the Sheep won't get much Sleep.
-- Woody Allen

## What's Inside PLIB?

PLIB is comprised of a number of semi-autonomous libraries that you can pretty much mix and match - using as much or as little PLIB as you need. The components libraries are:

Picoscopic User Interface Library (PUI) | A fully portable set of GUI widgets that need OpenGL and C++ to operate. Useful for games because rendering these widgets is performed very quickly by your 3D hardware.
Sound Library (SL) | A fully portable Audio driver suited to C++, GLUT and realtime applications that need low latency. Includes a simple 'MOD' music loader/player.
Standard Geometry Library(SG) | A set of matrix and vector math functions that was specifically written to simplify the writing of efficient OpenGL programs. You need to include this code into any SSG applications. Widely used within PLIB itself.
Simple Scene Graph Library (SSG) | A scene graph library layered on top of OpenGL. Also contains code to load and save lots of 3D file formats.
PUI Auxiliary Library (PUAUX) | Additional functionality layered onto PUI - not every PUI program will need these but they can perhaps save you some effort.
SSG Auxiliary Library (SSGA) | Additional functionality layered onto SSG - not every SSG program will need these but they can perhaps save you some effort.
Joystick wrappers (JS) | Supports more Joysticks with more axes and buttons than GLUT.
Fonts'n'Text Library (FNT) | Supports text output in OpenGL using texture mapped fonts. These are much faster to render than GLUT's fonts.
Utility Library (UL) | A simple portability library to hide basic operating system incompatibilities. Widely used within PLIB itself.
Pegasus Network Library (NET) | Pegasus is a C++ library for assist you in adding networking to your games.
PLIB Scripting Language (PSL) | A very lightweight, stackless C-like scripting language.
PLIB Windowing Library (PW) | A lightweight windowing library. This is a very basic library - it only supports a single, double-buffered RGB OpenGL window - with support for keyboard and mouse. Simple though it is, it's usually plenty for OpenGL games and other simple OpenGL applications.

## Goodies: Samples and Demo's

There are quite a few example programs that each show off one aspect of PLIB's use. We also distribute a set of demonstration programs. These tend to be more complete and usable applications - some games, some tools. These also show off PLIB's features - but in a more holistic way than the example programs.

## Documentation.

All documentation is available online (click on the package name in the section above) and distributed with PLIB in HTML.

There are some interdependencies between the PLIB components - all need the common utility library - many need the standard geometry library for matix operations:

- PW is independent
- UL is independent
- JS depends only on UL
- SL depends only on UL
- SG depends only on UL
- NET depends only on UL

- FNT depends on UL and SG
- SSG depends on UL and SG
- SSGAUX depends on UL, SG and SSG
- PUI depends on UL, SG and FNT
- PUAUX depends on UL, SG, FNT and PUI
- PSL depends on UL, SG and SSG