Long Shot - The techy stuff
As always, it's time for me to pop the hood and show some of the tricks and techniques that went into making my Ludum Dare 51 entry, Long Shot. I enjoy providing these little insights, and hopefully they prove helpful and informative. First - as always - I'd like to say a massive thank you to everyone who's played and reviewed Long Shot so far, and I promise I'll review your games in turn before the jam ends!
The visuals
I designed the player's ship very carefully, to try and visually communicate the player's hitbox. Only the cockpit, which is a nice bright blue, can be hit, while the wings are a darker colour than the fuselage, both to make them stand out and to indicate that that they're immune to bullets. To make things easier, this is not the case for enemies, which have simple square hitboxes covering their entire sprite - they retain the same visual design, however, for the sake of consistency. In fact, some of them are just palette-swaps of the player's ship:

I'm particularly proud of the game's logo, with the angular shapes, diagonal gradients, and the glowing bullets in the centres of the two "O"s. The "O"s themselves look a little off, but other than that, I honestly think it might be the best logo I've ever drawn for a game.
Then there's the starfield, which I'm also extremely proud of. Each time you start a game or return to the main menu, the game generates 64 particles, piggy-backing off my existing particle system. Each particle moves downwards at a random velocity, and its colour is tied to its speed, creating a parallax effect where slower stars appear to be dimmer and hence further away. Each time a star reaches the bottom of the screen, it's removed, and a new one is spawned at the top of the screen. Together with the logo, Long Shot definitely has the best-looking title screen I've ever made:

A few weeks ago, I got to play the excellent Terra Nova Pinball, a working pinball game made in PICO-8. For Long Shot, I copied a tiny piece of visual polish from it: namely, that the padding zeroes on the high-score table are drawn in a slightly darker colour. It's such a minor detail, but it really makes the high-scores pop.

The random waves
The game's waves are stored in one big array, with a new wave being selected at random after the previous wave ends. Each wave has an array of different move paths it can take, and a range of positions it can appear from, adding extra variety.
There are plenty of ways I can make this more intricate, such as guaranteeing that you won't get the same wave twice in a row, or storing the boss waves separately and having them only appear every N waves, or even randomising which enemies are part of the wave. Those are all things to look at later on down the line.
Shooting
At first, I was going to have the player's ship fire automatically every 10 seconds, as most entries I've seen have done. It just didn't feel right, however. You could end up firing automatically at a wave that's already out of range, and then have to watch helplessly as a boss scrolls by while you're unable to shoot at it. So I kept the 10-second charge time, but instead allowed the player to shoot whenever they're ready.

Being able to line up and time your shots makes the game a lot more strategic and satisfying, and I've had multiple reviews to that effect, so I'm glad my approach has paid off, even if it's a little less faithful to the theme!
References
From LD42 to LD45, I kept up a tradition of having each of my entries contain a reference to my previous entry, often in the form of a returning character. I stopped doing it after that, but to celebrate my 10th Ludum Dare entry, I've revived the tradition by including the boss of my very first entry - the "Closed Heart" from Love is a Battlefield - as a boss character. It's worth 41,000 points, referring to its debut in Ludum Dare 41 - and by sheer coincidence, it even occupies sprite index 41 on the spritesheet!

There's another, much harder-to-find reference as well. You can earn up to 5 bonus lives by reaching certain points thresholds; the final threshold is at 41 million.
That's all for today! I'll be back at the weekend to do the game's post-mortem. If there's anything more you'd like to know about the game, or its creative process, feel free to ask.