Package: ppb
PursuedPyBearstable:canon:PursuedPyBear, also known asppb, 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 EngineAt its core,ppbprovides a number of features that make it perfect
for video games. TheGameEngineitself provides a pluggable subsystem
architecture where adding new features is as simple as subclassing and
extendingSystem. Additionally, it contains a state stack ofScenessimple 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 type to the system is as
simple as firing an instance of your new event class withsignal.
Instead of a publisher system, the engine knows everything in its own scope
and only calls objects with appropriate callbacks. The most basic event isUpdateand your handlers should match the signatureon_update(self, update_event, signal).Guiding PrinciplesBecauseppbstarted to be a game framework great for learning with,
the project has a few longterm goals:Education FriendlyNon-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.Idiomatic PythonA project built onppbshould 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 Drivenppbgames are built out of instances of objects. Each object only has enough
information to respond to the event provided, which always includes the currentScene. Becauseppbdoesn't have a master list of events, you can
provide new ones simply to add more granular control over your game.Hardware Library AgnosticBecauseppbstrongly tries to be extensible and pluggable, each
hardware extension can provide its own hooks toppb, and you can
nearly seamlessly switch between various Python libraries.FunOne of the maintainers put it best:If it’s not fun to use, we should redo itppb 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.Try itInstall ppb in the standard method:pipinstallppbppbprovides arunfunction that makes it simple to start single
screen games.To make a very simple game, make a directory and add an image file
calledship.pngto it. Then add the following to a python file and
run it.importppbfromppb.features.default_spritesimportTargetSpriteclassShip(TargetSprite):target=ppb.Vector(0,40)defsetup(scene):scene.add(Ship(position=(0,-7)))ppb.run(setup=setup)Depending on your operating system,
you may need to install additional packages
(seeinstallation guide).Compatibilityppbis guaranteed compatible with Python 3.6 or later.Get InvolvedThe fastest way to get involved is to check out theongoing
discussions.If you're already usingppbfeel free to report bugs, suggest
enhancements, or ask for new features.If you want to contribute code, definitely read the relevant portions
of Contributing.MD