Skip to content

Releases: ppb/pursuedpybear

PyCon Pre-Release

13 May 18:18
a9dc122
Compare
Choose a tag to compare
PyCon Pre-Release Pre-release
Pre-release

This is just a quick alpha for PyCon. Sorry, no change log.

Version 0.12

22 Mar 00:48
0426090
Compare
Choose a tag to compare

This release is less focused than the past because ppb was able to participate in multiple sprints! That means we've had 18 PRs approved and merged with six new contributors!

The biggest new feature is a change to the shapes assets: We now have Rectangle and Ellipse available for use. They work just like their original counterparts Square and Circle, but accept a new keyword argument: aspect_ratio. It accepts a tuple of (width, height) and will render the appropriate shape. Triangle got this power as well, so now you can get new interesting shapes out of that, too! And for completion sake, while Rectangle(r, g, b) still outputs a square, we kept Circle and Square to keep your existing games working as expected!

New

  • Rectangle and Ellipse shape assets added! #576
  • New example demonstrating building a RectangleSprite with an image. #581 (New Contributor!)
  • Module docstring added to default_sprites feature module. #591
  • Module docstring added to systemslib #592
  • Module docstring added to clocks module. #594

Changed

  • Triangle shape asset now accepts an aspect_ratio keyword argument. #576
  • Added a Failer subsystem to some tests. This doesn't break the tests, but protects us from timeouts. #586 #587
  • Renamed BaseScene to Scene. Don't worry, not breaking, but BaseScene is now deprecated. #583 (New Contributor!)
  • Improved the warning thrown by the asset loading system when an image isn't found. #584 (New Contributor!)
  • Removed the use of deprecated attributes in test_gom.py #557

Removed

  • Removed ROADMAP.md (It was stale and we have changed how we determine our roadmap.) #597

Fixed

  • Fixed the position keyword in the external_event_loop_integration example. #572 (New Contributor!)

Docs

  • Fixed the getting started documentation for Windows. We referenced the wrong virtual environment directory! #570 (New Contributor!)
  • Type fixes throughout the documentation. #579 (New Contributor!)
  • Adds documentation for installing the latest ppb code from canon. #540
  • Added a note that some systems have extra install instructions to the README #588
  • Fixed titles casing in the CONTRIBUTING.md #590 (New Contributor!)
  • New cookbook entry demonstrating the basics of using keyword args to run for engine configuration. #598
  • Modify prerequisites to mention 3.7. We still support 3.6 but the end is approaching. #595

Version 0.12 Beta 1

13 Mar 18:08
2a1bd84
Compare
Choose a tag to compare
Version 0.12 Beta 1 Pre-release
Pre-release

This release is less focused than the past because ppb was able to participate in multiple sprints! That means we've had 18 PRs approved and merged with six new contributors!

The biggest new feature is a change to the shapes assets: We now have Rectangle and Ellipse available for use. They work just like their original counterparts Square and Circle, but accept a new keyword argument: aspect_ratio. It accepts a tuple of (width, height) and will render the appropriate shape. Triangle got this power as well, so now you can get new interesting shapes out of that, too! And for completion sake, while Rectangle(r, g, b) still outputs a square, we kept Circle and Square to keep your existing games working as expected!

New

  • Rectangle and Ellipse shape assets added! #576
  • New example demonstrating building a RectangleSprite with an image. #581 (New Contributor!)
  • Module docstring added to default_sprites feature module. #591
  • Module docstring added to systemslib #592
  • Module docstring added to clocks module. #594

Changed

  • Triangle shape asset now accepts an aspect_ratio keyword argument. #576
  • Added a Failer subsystem to some tests. This doesn't break the tests, but protects us from timeouts. #586 #587
  • Renamed BaseScene to Scene. Don't worry, not breaking, but BaseScene is now deprecated. #583 (New Contributor!)
  • Improved the warning thrown by the asset loading system when an image isn't found. #584 (New Contributor!)

Removed

  • Removed ROADMAP.md (It was stale and we have changed how we determine our roadmap.) #597

Fixed

  • Fixed the position keyword in the external_event_loop_integration example. #572 (New Contributor!)

Docs

  • Fixed the getting started documentation for Windows. We references the wrong virtual environment directory! #570 (New Contributor!)
  • Type fixes throughout the documentation. #579 (New Contributor!)
  • Adds documentation for installing the latest ppb code from canon. #540
  • Added a note that some systems have extra install instructions to the README #588
  • Fixed titles casing in the CONTRIBUTING.md #590 (New Contributor!)
  • New cookbook entry demonstrating the basics of using keyword args to run for engine configuration. #598
  • Modify prerequisites to mention 3.7. We still support 3.6 but the end is approaching. #595

v.0.11.0 - Targetable Events

30 Dec 23:03
Compare
Choose a tag to compare

This release is fairly small, but has a much bigger number of new contributors thanks to Hacktoberfest 2020.

The biggest additional feature is targeted events: Provide a list or tuple to the 'targets' keyword of the signal function and the engine will only send the event to those objects. Leave out for existing behavior.

Special thanks to our new contributors!

Example:

signal(MyEvent, targets=[self.sibling1, self.sibling2, self.sibling3])

New

  • Targeted events! (#538)

Changed

  • GameObjects now use deque instead of list for their walk implementation. (#541)

Removed

  • Mouse events no longer have a screen_position attribute. (#535, #539) New Contibutor!
  • We no longer support pos as a keyword argument on sprites. Use position instead. (#543)

Fixed

  • Attempted fix of OGG race condition. (#527) New Contributor!

Docs

  • An update to the docs homepage. (#529) New Contributor!
  • Added maintanence schedule documentation. (#554)
  • Added default branch documentation. (#556)

0.11 beta 1: Lots of clean up and targetable events.

06 Dec 21:49
06643ee
Compare
Choose a tag to compare

It's that time again: We're freezing our feature set for the v0.11.0 release! This release is fairly small, but has a much bigger number of new contributors thanks to Hacktoberfest 2020.

The biggest additional feature is targeted events: Provide a 'targets' keyword to the signal function and the engine will only send the event to those objects. Leave out for existing behavior.

Example:

signal(MyEvent, targets=[self.sibling1, self.sibling2, self.sibling3])

New

  • Targeted events! (#538)

Changed

  • GameObjects now use deque instead of list for their walk implementation. (#541)

Removed

  • Mouse events no longer have a screen_position attribute. (#535, #539) New Contibutor!
  • We no longer support pos as a keyword argument on sprites. Use position instead. (#543)

Fixed

  • Attempted fix of OGG race condition. (#527) New Contributor!

Docs

  • An update to the docs homepage. (#529) New Contributor!
  • Added maintanence schedule documentation. (#554)
  • Added default branch documentation. (#556)

v0.10.0 - Improved Tree

02 Oct 21:16
2ca2874
Compare
Choose a tag to compare

Changelog

We've updated ppb with a new Game Object Model. All objects can now have children that respond to events, including Systems and Sprites.

New

  • Game Object Model (gomlib) (#500)
  • You can now show or hide the cursor using scene.show_cursor attribute. (#504)
  • Improved error when adding a type to GameObject. (#511) New Contributor!

Changed

  • scenes.GameObjectContainer redesigned to be gomlib.Children (#500)
  • BaseScene now inherits from gomlib.GameObject (#500)
  • sprites.BaseSprite now inherits from gomlib.GameObject (#500)
  • systemslib.System now inherits from gomlib.GameObject (#500)
  • _sdl_utils has been renamed sdl_utils (#503)
  • Event loop now walks the GOM (#507)
  • PreRender events now include a time_delta attribute. (#487)
  • GameEngine can now take an instantiated scene as its first scene (#516)
  • GameEngine is now a GameObject with a stack for scene management. (#519)

Docs

  • Fixed indentation in the Getting Started guide. (#494) New contributor!
  • Assets docs fixed (#506)
  • The example in the README.md updated (#505)
  • Improved install documentation for RHEL systems. (#515) New Contributor!

Operational

  • We've started testing ppb against Python 3.9 (#509)
  • Switched to the duckinator/bork container for building wheels. (#499)

v. 0.10.0b1

13 Sep 05:15
fbf738b
Compare
Choose a tag to compare
v. 0.10.0b1 Pre-release
Pre-release

Changelog

This is the first beta for v0.10.0.

Lots of activity: Documentation touch ups, new APIs, improved error messages.

Big thing is the Game Object Model (GOM), which effectively lets us add objects that respond to events at any level of the graph, including as children to sprites!

New

  • Game Object Model (gomlib) (#500)
  • You can now show or hide the cursor using scene.show_cursor attribute. (#504)
  • Improved error when adding a type to GameObject. (#511) New Contributor!

Changed

  • scenes.GameObjectContainer redesigned to be gomlib.Children (#500)
  • BaseScene now inherits from gomlib.GameObject (#500)
  • sprites.BaseSprite now inherits from gomlib.GameObject (#500)
  • systemslib.System now inherits from gomlib.GameObject (#500)
  • _sdl_utils has been renamed sdl_utils (#503)
  • Event loop now walks the GOM (#507)
  • PreRender events now include a time_delta attribute. (#487)
  • GameEngine can now take an instantiated scene as its first scene (#516)
  • GameEngine is now a GameObject with a stack for scene management. (#519)

Docs

  • Fixed indentation in the Getting Started guide. (#494) New contributor!
  • Assets docs fixed (#506)
  • The example in the README.md updated (#505)
  • Improved install documentation for RHEL systems. (#515) New Contributor!

Operational

  • We've started testing ppb against Python 3.9 (#509)
  • Switched to the duckinator/bork container for building wheels. (#499)

ppb 0.9.0: More Rendering Options

20 Jun 17:11
f34fed3
Compare
Choose a tag to compare

Better Rendering

The biggest feature of note is that we now support Text rendering! As part of supporting that, we did a full revamp on the asset loading pipeline, improving the background loading and processing and allowing assets that depend on other assets (ChainedAsset).

We also spend some time fixing the Camera API: You no longer need to calculate your pixel ratios directly! Tell the camera how many game units you want visible in frame and it'll handle the rest. A last minute addition to the feature list is support for opacity and tint on sprites!

Sprites received a long waiting refactor and now we can support both square shaped sprites and rectangle shaped sprites. This means we have ppb.sprites.Sprite and ppb.sprites.RectangleSprite as concrete options when building your games. We removed the Sides magic object that supported Sprite.top.left and replaced it with a more pythonic Sprite.top_left and similar. Our root shape mix-in now is RectangleShapeMixin, but our default sprite is still a square and Sprite.size still works as expected.

Outside of those things, we spent a lot of effort on improving our documentation: a lot more detail on a bunch of new pages. We also added default sprite behaviors in features which allow you to do basic motion without writing your own handlers.

This release is the feature freeze for v0.9.0, no new features will be accepted and only fixes to features included in this release can be accepted.

New

  • Chained Assets (#436)
  • Fonts and Text assets (#443)
  • TargetSprite (#456, #458)
  • RectangleShapeMixin (#376)
  • Ordinal direction named unit vectors (#463)
  • Added Hypothesis profiles for local testing. (#469)
  • Rectangular sprite rendering (#466)
  • Support for Sprite.opacity and Sprite.tint in Renderer (#474)

Changed

  • Assets API changed to support better background loading. (#432)
  • Shape assets now setup in the background (#435)
  • Camera interface has had an entire overhaul. (#439)
  • SquareShapeMixin now extended RectangleShapeMixin (#376)
  • Replaced github actions with Binny (#465)
  • sprite_in_viewport replaced with sprite_in_view (#467)
  • Switched from time.monotonic to time.perf_counter across the library. (#431)
  • We now treat sphinx warning as errors. This should mean less time with broken docs. (#476)

Removed

  • Sides interface (#376)
  • Stale changelog removed from README.md (#472)
  • DoNotRender flag (#477)
  • ppb.BaseSprite finally removed! (#478)

Fixed

  • Asset loading when using REPLs or Jupyter notebooks fixed. (#446)

Docs

  • Better docs about the core ppb name space, including run and make_engine (#451)
  • Text rendering docs (#454)
  • Specific install instructions for RHEL and derivatives. (From a new contributor!) (#455)
  • Improved Event docs (#459)
  • Improved Sprite docs (#471)

v0.9.0rc1: More Rendering Options

13 Jun 21:35
Compare
Choose a tag to compare
Pre-release

Better Rendering

The biggest feature of note is that we now support Text rendering! As part of supporting that, we did a full revamp on the asset loading pipeline, improving the background loading and processing and allowing assets that depend on other assets (ChainedAsset).

We also spend some time fixing the Camera API: You no longer need to calculate your pixel ratios directly! Tell the camera how many game units you want visible in frame and it'll handle the rest. A last minute addition to the feature list is support for opacity and tint on sprites!

Sprites received a long waiting refactor and now we can support both square shaped sprites and rectangle shaped sprites. This means we have ppb.sprites.Sprite and ppb.sprites.RectangleSprite as concrete options when building your games. We removed the Sides magic object that supported Sprite.top.left and replaced it with a more pythonic Sprite.top_left and similar. Our root shape mix-in now is RectangleShapeMixin, but our default sprite is still a square and Sprite.size still works as expected.

Outside of those things, we spent a lot of effort on improving our documentation: a lot more detail on a bunch of new pages. We also added default sprite behaviors in features which allow you to do basic motion without writing your own handlers.

This release is the feature freeze for v0.9.0, no new features will be accepted and only fixes to features included in this release can be accepted.

New

  • Chained Assets (#436)
  • Fonts and Text assets (#443)
  • TargetSprite (#456, #458)
  • RectangleShapeMixin (#376)
  • Ordinal direction named unit vectors (#463)
  • Added Hypothesis profiles for local testing. (#469)
  • Rectangular sprite rendering (#466)
  • Support for Sprite.opacity and Sprite.tint in Renderer (#474)

Changed

  • Assets API changed to support better background loading. (#432)
  • Shape assets now setup in the background (#435)
  • Camera interface has had an entire overhaul. (#439)
  • SquareShapeMixin now extended RectangleShapeMixin (#376)
  • Replaced github actions with Binny (#465)
  • sprite_in_viewport replaced with sprite_in_view (#467)
  • Switched from time.monotonic to time.perf_counter across the library. (#431)
  • We now treat sphinx warning as errors. This should mean less time with broken docs. (#476)

Removed

  • Sides interface (#376)
  • Stale changelog removed from README.md (#472)
  • DoNotRender flag (#477)
  • ppb.BaseSprite finally removed! (#478)

Fixed

  • Asset loading when using REPLs or Jupyter notebooks fixed. (#446)

Docs

  • Better docs about the core ppb name space, including run and make_engine (#451)
  • Text rendering docs (#454)
  • Specific install instructions for RHEL and derivatives. (From a new contributor!) (#455)
  • Improved Event docs (#459)
  • Improved Sprite docs (#471)

Changes since v0.9.0b2

This release is identical to Beta 2.

v0.9.0b2: More Rendering Options

06 Jun 20:51
4351517
Compare
Choose a tag to compare
Pre-release

Better Rendering

The biggest feature of note is that we now support Text rendering! As part of supporting that, we did a full revamp on the asset loading pipeline, improving the background loading and processing and allowing assets that depend on other assets (ChainedAsset).

We also spend some time fixing the Camera API: You no longer need to calculate your pixel ratios directly! Tell the camera how many game units you want visible in frame and it'll handle the rest. A last minute addition to the feature list is support for opacity and tint on sprites!

Sprites received a long waiting refactor and now we can support both square shaped sprites and rectangle shaped sprites. This means we have ppb.sprites.Sprite and ppb.sprites.RectangleSprite as concrete options when building your games. We removed the Sides magic object that supported Sprite.top.left and replaced it with a more pythonic Sprite.top_left and similar. Our root shape mix-in now is RectangleShapeMixin, but our default sprite is still a square and Sprite.size still works as expected.

Outside of those things, we spent a lot of effort on improving our documentation: a lot more detail on a bunch of new pages. We also added default sprite behaviors in features which allow you to do basic motion without writing your own handlers.

This release is the feature freeze for v0.9.0, no new features will be accepted and only fixes to features included in this release can be accepted.

New

  • Chained Assets (#436)
  • Fonts and Text assets (#443)
  • TargetSprite (#456, #458)
  • RectangleShapeMixin (#376)
  • Ordinal direction named unit vectors (#463)
  • Added Hypothesis profiles for local testing. (#469)
  • Rectangular sprite rendering (#466)
  • Support for Sprite.opacity and Sprite.tint in Renderer (#474)

Changed

  • Assets API changed to support better background loading. (#432)
  • Shape assets now setup in the background (#435)
  • Camera interface has had an entire overhaul. (#439)
  • SquareShapeMixin now extended RectangleShapeMixin (#376)
  • Replaced github actions with Binny (#465)
  • sprite_in_viewport replaced with sprite_in_view (#467)
  • Switched from time.monotonic to time.perf_counter across the library. (#431)
  • We now treat sphinx warning as errors. This should mean less time with broken docs. (#476)

Removed

  • Sides interface (#376)
  • Stale changelog removed from README.md (#472)
  • DoNotRender flag (#477)
  • ppb.BaseSprite finally removed! (#478)

Fixed

  • Asset loading when using REPLs or Jupyter notebooks fixed. (#446)

Docs

  • Better docs about the core ppb name space, including run and make_engine (#451)
  • Text rendering docs (#454)
  • Specific install instructions for RHEL and derivatives. (From a new contributor!) (#455)
  • Improved Event docs (#459)
  • Improved Sprite docs (#471)

Changes since v0.9.0b1

  • Fixed Text rendering when sharing the same Font object.