v0.1.12 RC3
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
andconst
- 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