Welcome to PursuedPyBear’s documentation!¶
PursuedPyBear, also known as
ppb, exists to be an educational resource. Most
obviously used to teach computer science, it can be a useful tool for any topic
that a simulation can be helpful.
A Game Engine¶
At its core,
ppb provides a number of features that make it perfect
for video games. The
GameEngine itself provides a pluggable
subsystem architecture where adding new features is as simple as
subclassing and extending
System. Additionally, it contains a state
Scenes simple containers that let you organize game scenes
and UI screens in a simple way.
The entire system uses an event system which is as extensible as the
rest of the system. Register new values to existing event types, and
even overwrite the defaults. Adding a new event system is as simple as
Engine.signal with a new datatype. Instead of a publisher
system the engine knows everything in its own scope and only calls
objects with appropriate callbacks. The most basic event is
and your handlers should match the signature
on_update(self, update_event, signal).
ppb started to be a game framework great for learning with,
the project has a few longterm goals:
Non-technical educators should feel comfortable after very little training. While some programming knowledge is required, the ability to think in objects and responses to events allows educators to only focus on their lessons.
A project built on
ppb should look like idiomatic Python. It also
should look like modern Python. As such, we often add new language
features as soon as they’re available, letting a new user always know
ppb runs on the latest Python.
Object Oriented and Event Driven¶
ppb games are built out of instances of objects that inherit from
EventMixin. Each object only has enough information to respond to
the event provided, which always includes the current
ppb doesn’t have a master list of events, you can provide
new ones simply to add more granular control over your game.
Hardware Library Agnostic¶
ppb strongly tries to be extensible and pluggable, each
hardware extension can provide its own hooks to
ppb, and you can
nearly seamlessly switch between various Python libraries.
One of the maintainers put it best:
If it’s not fun to use, we should redo it
ppb is about filing off the rough edges so that the joy of creation and discovery are both emphasized. A new user should be able to build their first game in a few hours, and continue exploring beyond that.