I feel like I've had an epiphany. I was at a low, and now I've seen the light.
I'd spent an hour or so on one of my games (Passenger) trying to optimise the map so that if there were (say) four mapsquares next to each other, all of the same type, it just drew one big square. For various reasons it was taking far longer than I expected. (This is always bad news - one thing I've found guaranteed to get me annoyed is when a task takes much longer than anticipated. That's why I now always assume everything is going to take ages).
Anyway, I suddenly thought: "Why am I spending my time doing this? Writing open-source games? I'm not actually enjoying it, I don't get paid, and (to be brutally honest with myself) I don't even play my own games myself, and I don't think anyone else does."
Basically I'd just become fed up with fiddling around with games, trying to fix bugs, optimise graphics etc. etc. The best part of writing a game is before you start, when you have a blank canvas in front of you, and an image in your mind of how amazing the game is going to be. Once reality sets it, it all comes crashing down after you've spent several hours (or days, or weeks) of your time. Even if a game is finished, then what? There are a million games out there all vying for attention. Why should players spend any time on mine, when it's obvious to anyone that there are better games out there?
Anyway, after a few days of thinking about it, I have come to a solution - Casual Gaming(tm)! Casual Games are much easier to write, and also it means I can play against my colleagues at work, and gain instance gratification to know that the game has brightened up their lives.
My first casual game was (another) version of Tower Defence (yes, not very original). It only took about 3 hours to write, and being a Java applet, it means it's very accessible. In fact, you can play it here. (You do need to log into the website I'm afraid though, but I may change that).
Programming "casual games" means that I can spend far more time designed and tweaking the games and far less time on boilerplate programming and sorting out bugs. And get back to enjoying writing games.