[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Oops, forgot the attachment



Hmm, said I'd post the overview to the list, but I forgot to attach it.
So here it is.
Sorry.
Title: PenguinPlay Overview

Introduction

The PenuginPlay project is an attempt at creating a free (open source), comprehensive, cross platform toolkit for developing games and other multimedia software. Our goal is to make it easy to produce a broad variety of high quality games and deploy them across platforms. (While our primary development platform is Intel based Linux, we indent to port to other Unices and Win32. DOS, MacOS and Beos are possible too).

PenguinPlay is only embryonic, it does not really exist. Throughout this document however, I will pretend it exists since this simplifies writing. The purpose of this document is for you to see our plans and suggest improvements, before flawed plans become flawed realities.

<TOC>
</TOC>

APPROPRIATE TITLE HERE

Scope of PenguinPlay

PenuginPlay provides support for the basics of 2 and 3d graphics, sound, networking and user input. It also provides for a portable, generalized I/O subsystem, and a subsystem to handle threads, alarms & timing, system signals and other similar issues in a robust and portable way. [??? Mention things like GameSpace, and possible physics engines???].

Design Philosophy ???is that the right title???

This broad scope makes for a large toolkit. Developers would find certain PPlay components unnecessary or inappropriate for certain tasks. So, as far as possible, the different components do not depend on each other. [???Mention things like SDL & GGI here???].

In the same vein, PPlay is neither a high, nor low level toolkit. It exists at different levels of abstraction. PPlay provides a high level framework for speedy development, but it also provides low level tools giving the developer more freedom.

This philosophy allows developers to leverage 3rd party toolkits or existing in house code, as well as allowing people to "do their own thing" if they need to.

Design of PenguinPlay

PPlay is divided into two conceptual layers. Layer P (Procedural), and layer O (Object Oriented). The idea is:

Layer P makes it possible.

Layer O makes it easy. (Well..., less hard anyway).

Layer P

Layer P is a C API which provides all the core functionality in a platform neutral way.

Not all of layer P is part of the PPlay project. As far as possible layer P will consist of existing tools like, OpenGL, ???GGI??? and other open, third party components. PPlay itself will "plug up the gaps". Some layer P components are be:

Layer O

Layer O is a higher level, more integrated, C++, API written at least partially on top of layer P (it will go "down to the metal" where that makes sense). Layer O is not a C++ wrapper of layer P. Instead it provides new services which are better designed in an object oriented manner. Layer O tools will not be necessary for creating high quality, portable games, but they will make it easier. Some layer P components are: