Release early, release often
Yesterday, I spent all day working hard on my Haskell game – I was so busy that I didn't have time to blog about it!
Luckily, this has been very productive. If you can compile Haskell code, check out the current version of my game! I've also put up a Linux executable, but that'll only work if your computer is sufficiently similar to mine (Ubuntu Linux on a Pentium T3400, although I don't know anything about binary compatibility...). The Linux executable is here (3MB). If you can compile Haskell and you're running a different operating system, could you upload your binaries somewhere so that I can link to them for the other people?
Right now, the game is about flying around as a green circle in an infinitely large world, and shooting out the walls. Use the arrow keys to move, and click (and hold) the mouse to shoot lasers.
So far, the trickiest part of this project was making an infinite world that would remember all the changes you made to it, without making the game get really slow as the world got bigger.
Amusingly, after I said I wasn't going to keep working on my collision detection stuff, most of the work of this project has been on collision detection stuff. There's a lot of things that could be improved about it (like the fact that I've duplicated a lot of work between ZOrderCollisions.hs and ZTree.hs), but there you go; I'm going to make those improvements next, anyway!
I've released the game under the GNU General Public License (GPL), which means that you can freely copy it, modify it, and release modified versions, as long as you make all the code you add to it available under the same license.