Performance optimization
I've called time on this for now. After getting frustrated by the animated sprite difficulty (the SDK needs easier to use animation functions in future IMO), I tried an experiment just implementing static sprites for coins, to see whether it had a positive performance impact. While I saw some improvement from these, ultimately there were still spikes happening on the level change. Given it was not impacting gameplay much, I decided to move on to the other things below (but I'll circle back on this at the end).
Lives
I worked on adding a bit of animation to getting or losing a life. Initially I wanted something much flashier, where the lives would be physical balls that would kind of curve into position in front of the paddle after losing one, but I ended up settling for some simple animation that drew the eye a little more instead. I'm not totally happy with these but they're good enough for now.
Visual effects
Something I've been wanting to do for a while is for the destructable bricks to have some kind of effect in addition to the displacement that sold the impact better. I finally implemented a simple effects function that I can pass the name of an animated image, and an x/y position, and it'll add it to a table, draw it to screen, and then remove it. I can spin up a bunch of these on hit events etc and it ended up being pretty straightforward. Currently there isn't much variation, but again it's good enough for now that I can move on.
(Ignore the FPS here, for some reason Mirror nearly halves the framerate)
I also experimented with animating the coins in using another animated image. I was having some issues applying the animation offset, but with all the coins animating in at once, I discovered the performance had increased massively. I think initially I assumed that having bricks and coins animate in over multiple frames would sort of spread the per-frame performance cost, but actually it seems like the opposite is true. I put a placeholder animation that was just a reverse of the explosion for now, but it actually looks alright. I'm going to experiment with animations for the other object types as well, maybe a simple dither fade to start, and remove all the offset adding code.
Next: Levels & Tutorials
So now that I'm happier with some of these basic systems, I'm going to shift my focus to two areas. Firstly building up to around 50 multi-phase levels (I have about 17 at the moment), and adding some sort of tutorial to the game.
I'll probably approach the tutorial in different ways, first with a basic slideshow with some animated gifs and text that can be viewed at any time. That'll be MVP, then I can look at ways of adding in tutorials in-game. Ideally I'd like as much as possible to be just encouraged by the level design, and not have to resort to popups and things, but spinning the ball well is a tricky thing that I've seen isn't easy to discover, so we'll see. Should be ready for a little playtesting after those two things are in place.