First off, an apology: I've been suffering from debilitating migraines for the past few days and haven't been able to do much in the way of game-rating. Sorry about that. I'm feeling better today, plus it's the weekend, so I should have time to catch up on my backlog.
For now, though, it's time for my traditional post delving under the hood of my entry, and the tricks and techniques that went into making it. If you haven't played Fruit Fall already, please do! I'd like to make it to 20 reviews sooner rather than later.
It's a small game after all...
Fruit Fall is the smallest game I've ever made for Ludum Dare, in terms of both code size (8.9 KB) and cartridge size (42.7 KB). I didn't do anything in particular to make it this small -- I could probably crunch the code down significantly if I felt like it. All I did was keep the concept as simple as possible. It also helps that there's no storyline, and hence, no dialogue to bloat the code size.
So there's not much under the hood for me to analyse, but the hood itself is nicely polished:
The visuals
With less time spent on coding, I was able to spend more time on graphics. Carrying on from LD51, I tried to experiment with larger, more detailed sprites. I'm quite proud of the results:

This is the first Ludum Dare game where I've had to adjust TIC-80's default colour palette, as the apples were the same colour as the tree and were blending into it. I had two shades of blue that I wasn't using, so I swapped them for two shades of brown, which made the tree look much nicer and also allowed me to shade the inside of the wicker basket. I also tweaked a couple of the other colours just to make them pop a little bit more.
I couldn't think of a way to distinguish rotten fruit from good fruit, so eventually I just made the rotten fruit grey. Then I thought, "wait, colour-blind people might not be able to tell the difference!" Since I had plenty of time, I was able to create a "Colour-Blind Mode" option where the rotten fruit have a dark splodge on them, making them more obvious:

One final thing of note is the dithering pattern for the sky, which was based on the first level of Sonic Triple Trouble:

The bouncing
Now, this is simple enough in theory: take the distance between the centre of the fruit and the centre of the trampoline, multiply it, and use that as the angle of the fruit's new trajectory. Simple -- wait, why are they bouncing at random angles?!

You see, when programming, I always calculate angles in degrees, because they're easier for me to work with. But TIC-80 doesn't use degrees, it uses radians! 1 degree of difference isn't much, but 1 radian of difference is a lot, hence the seemingly random angles. So you gotta throw a math.rad() in there and...

Much better! But it still feels... off somehow. The fruit feel weightless, and are hard to aim. So let's reduce their momentum by 20% each time they hit the trampoline.

Perfect! It's still something that takes a bit of practice, but the momentum loss makes it easier to aim. On a related note:
Difficulty
My previous arcade-style entries have been endless games, where you keep going until you die, but I struggled with getting the difficulty to escalate properly. For Fruit Fall, I opted to take a different approach and broke it up into levels, with the difficulty scaling each time you beat you a level. To be exact:
- The target score increases by 20% up until Level 5, then by 10% for each subsequent level
- The percentage of rotten fruit starts at 0% and rises by 3% each level, maxing out at 24% from Level 9 onwards
- The rate at which fruit spawn increases starting at Level 3, and maxes out at Level 20
In theory, the game just keeps going forever, but in practice it becomes impossible somewhere around Level 10. I haven't had any complaints about the difficulty, so I think I did a good job.
One other comment regarding the difficulty is that the collision detection for the basket and bin is deliberately naive: fruit can pass through the sides as well as falling in from above. This gives you more of a target to aim at and makes the game a bit less frustrating than it might be otherwise.
There's a couple of other things I wanted to mention, but I think this post has gone on long enough. I'm gonna get on with the game-rating, and I'll be back next weekend to do the post-mortem. In the meantime, if there’s anything more you’d like to know about the game, or its creative process, feel free to ask in the comments!