|
Further assorted waffling about puzzles I spent the weekend working on my puzzle games (again). This time I arranged for Net to guarantee a unique solution, and also wrote code to print out Net puzzles so you can solve them on paper. The latter was a crazy idea I had on Saturday, but actually seemed quite playable once I'd got used to the idea and tweaked the graphic design a bit. If anyone's interested, I've put up a sample sheet (one wrapping and one not) at http://www.tartarus.org/~simon/20050523-netsample.pdf. I was staggered by the low quality of the competition I'm up against in the desktop-puzzle-games niche. I discovered this week that there are several more implementations of the Net concept than mine and the one I pinched the idea from; quite a lot of the others go by the name of ‘NetWalk’ or trivial variations on same, and I count two or three Linux versions and a Windows one. The Windows one is particularly impressive: as far as I could tell from the website, it has no ability to generate its puzzles automatically, relying instead on a large stored database of them. Once you use up the database, you're stuffed, unless you design your own by hand – at which point you're apparently encouraged to submit them back to the authors for inclusion in the next version. And for this privilege they charge you $10 for a copy (and I wouldn't be surprised if they also charge for upgrades and extra puzzle designs), while all the free versions generate an endless supply of random puzzles. That's the Windows world for you. Also it occurred to me recently that writing solvers and generators for puzzle games is a field in which I feel extremely at home, for some reason. I think it hits a sweet spot between several of my skills. I'm first and foremost a programmer, but also I have maths training, which means I'm well placed to be able to prove properties of the puzzles I'm working with and thus simplify my code. Also, writing solvers is about half algorithms – a particular interest of mine – and the other half is figuring out how to write an automated solver for the puzzle in question in the first place, which seems to me to be a self-awareness thing: solve one by hand and pay attention to the things you're thinking as you do it. And self-awareness itself is something that's always interested me. As a result, when I'm been doing this sort of stuff, I get extremely absorbed and enthused by it and it's a terrible let-down to come back to (say) work, at which I usually get to use at most one or two of my core skills at any one time. Oh well. I'd better get back to work anyway… |