||This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. (February 2016) (Learn how and when to remove this template message)|
1.8.5/ November 2006
PLIB includes sound effects, music, a complete 3D engine, font rendering, a simple windowing library, a game scripting language, a GUI, networking, 3D math library and a collection of utility functions. All are 100% portable across nearly all modern computing platforms. Each library component is fairly independent of the others to encourage replacement with other libraries like SDL or FLTK.
PLIB has been used by many projects (not all games, and not all open-source), but has not kept pace with technical developments that happened after its original conception (e.g., shader technology), so it is currently outdated and rarely used for new projects. While nowadays there are better portable and open-source replacements for all of its components are available, a similar comprehensive suite of libraries is still missing.
PLIB comprises 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 3D accelerator 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++ networking library for 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.