Skip to content

v0.9.0b2: More Rendering Options

Pre-release
Pre-release
Compare
Choose a tag to compare
@pathunstrom pathunstrom released this 06 Jun 20:51
4351517

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.