Skip to content

v0.1.12 RC3

Compare
Choose a tag to compare
@Gadgetoid Gadgetoid released this 25 Mar 18:07
· 947 commits to master since this release
250f6ae

RC3PO

How many release candidates does it take to make a final version?

This release includes yet more fixes and improvements, notably @Daft-Freak and @ali1234 have shaken up multiplayer support. This includes improvements to the SDL multiplayer that make it easier to develop multiplayer games without needing two 32blits handy.

Operating On Operators

@santtu has swept in and added some more comparison operators for Point and Rect. These are slowly making their way across the API and are super useful for simplifying your game code. In a similar vein you can also easily convert a Point to a Vec2 thanks to @Daft-Freak.

No More Sudden Loud Sounds

32blit has gained something of a reputation for demos that explode with loud sounds out of the blue, I've quelched this from audio-test now, making it quieter and slightly better. My composition skills still leave much to be desired though, ha!

Launcher Swooshes

Launcher swooshes now no longer render behind the credits screen or the screenshot browser, getting frame times to a more reasonable level. You'll probably never notice the difference!

Launcher swooshes have been modified, dropping the scanlines and optimising the draw to use h_span and draw in N-pixel chunks. They now - hopefully - look more intentional and less like a display glitch.

The launcher now has a frame-time meter you can toggle on in the credits screen by pressing "Y" (the left button). This helped identify where the frame time needed some tweaking and should help keep us more cognizant of frame times in the launcher... which is, after all, a critical feature of 32blit!

Optimisations

@Daft-Freak's attempt to make a game (a cool Mode7 cart racer) keeps pivoting to API improvements, optimisations and fixes.

Notably TileMap has seen some performance tweaks which you can read more about here: #626

Solid fills/blends are also optimised and TileMap can skip the "empty" tile.

Scaled sprite and surface blits have been sped up, too, by blending multiple batches of horizontal pixels.

What's The Time, Mr Wolf?

The microsecond timer has now been exposed with a now_us API function, there's also a handy us_diff for getting the difference between two times. For example, getting the elapsed time in microseconds since a previous time:

uint32_t elapsed = us_diff(start_time, now_us());

us_diff will attempt to handle overflows and give you a valid time difference.

On device now_us uses DWT->CYCCNT and should be good for measuring times up to ~8.94 seconds with microsecond accuracy.

MP3 Improvements

@Daft-Freak has made some just-in-time MP3 improvements for @ThePythonator to add sound to Super Square Bros. This includes a reduced buffer size to be more memory friendly, tweaks to avoid allocating unecessary buffers and bugfixes to fix the bugs these changes inevitably revealed.

Installing Blits

The .blit file install process has been tweaked slightly to avoid constant restarts of the running application. Games will now flash "in the background" regardless of what application is running, and resetting to the flashed application is optional.

SDL --help

SDL builds now have a --help and a --credits argument. These will print command line help information, and the full list of user credits in turn.

--help gives better visibility to sekret super SDL multiplayer debug features:

./examples/scrolly-tile/scrolly-tile --help
Rainbow Ascent v1.1.0
Powered by 32Blit SDL2 runtime - github.com/32blit/32blit-sdk

Usage: ./examples/scrolly-tile/scrolly-tile <options>

 --connect <addr> -- Connect to a listening game instance.
 --listen         -- Listen for incoming connections.
 --position x,y   -- Set window position.
 --credits        -- Print contributor credits and exit.
 --info           -- Print metadata info and exit.

There's also an --info command that will print the game metadata, eg:

./examples/scrolly-tile/scrolly-tile --info
Rainbow Ascent v1.1.0
Powered by 32Blit SDL2 runtime - github.com/32blit/32blit-sdk

The Dark Souls of procedurally generated vertical jumping puzzles. Good luck.

 Category: game
 Author:   pimoroni
 URL:      https://github.com/32blit/32blit-sdk

Misc Fixes & Tweaks

  • Z invert bug fixed on Vec3::transform
  • More constexpr and const
  • Less uint8_t to avoid conversions
  • Metadata with quotes is less explodey
  • SDL video recording (yes, it exists!) now saves with an .mp4 extension
  • @ahnlak has cleaned up TileMap::offset to avoid a redundant duplication

As is the custom, find a complete list of changes here: v0.1.11...v0.1.12