Progress report on long-term plan
My long-term plan, at present, is to take a longish break from writing free software and to relax and do nothing much. I am here to report that in the past week I have written one (1) new piece of free software, and thus my progress on the long-term plan is actually negative.
In pursuit of the general idea of doing nothing much,
xanna helpfully suggested last week that now might be a good time to take up NetHack again. I periodically attempt not to suck at it, but with little success so far. This time it occurred to me that what I could really do with was to watch a couple of games being played by more competent people, just so I could get a general idea of what kinds of things they were doing differently from me but without completely spoiling the fun of working out for myself when it was a good idea to do what.
alt.org contains a large number of ttyrec recordings of NetHack games, many of which ended in ascension and can therefore be safely assumed to be performed by far better players than me. So I downloaded a couple of these plus a player application, and got about half way through watching one before completely losing my temper with the fact that the player didn't permit me to rewind when something interesting flashed up on the screen and I didn't manage to press Pause fast enough. The trouble is that ttyrecs are fundamentally not designed for easy random access; the normal player application simply alternates between sleep(2) and write(2), with only minor changes to support speed adjustment and pausing.
In order to support rewinding, you'd have to actually run the entire file through a terminal emulator and read off the resulting screen states in such a way as to be able to randomly access them thereafter. This involves considerably more high technology than the average programmer is conveniently able to get their hands on, so it's not surprising that it hadn't already been done; but fortunately I was the right person for the job, since I just happen to have sufficiently intimate knowledge of a piece of terminal emulation software to be able to adapt it quickly into this sort of application, and also a sufficiently good feel for random-access data structures to be able to store the resulting data reasonably efficiently. So, in only a couple of hours, my new ttyrec player sputtered into life, and within the first ten minutes of use it had more than paid off the coding time in lack of massive annoyance.
It's at about this point that my conscience reasserted itself and pointed out that I was doing a very bad job of not writing software. So I've left the job half-finished: the current state of the program is that it works provided you build it against ncurses on Linux, but completely lacks a sensible build system and portability framework to adapt it to other Unices and/or curses implementations. Therefore, I'm kind of hoping someone else will send me some patches that do things with autoconf, ‘make install’ and other such amenities. To say nothing of a few more configurable options and features, and definitely some documentation as well.
Still, on the plus side, my NetHack has definitely improved. Last week I got a couple of characters all the way down to the bottom of the Gnomish Mines and back up in one piece, and although both of them subsequently died avoidably, I'm certainly playing better NetHack right now than I ever have before.
no subject
no subject
http://www.chiark.greenend.org.uk/~sgtatham/ipbt/
no subject
the dark sidenethack! (ipbt and some decent recordings seem to be *exactly* what I didn't know I needed in order to get better...)no subject
(I'm also finding that routinely recording my own games seems to be helping, simply because it permits me to retrospectively analyse my errors without the analysis being distorted by poor memory... Of course, the ulterior motive for that is that
ifwhen I actually manage to ascend I'll have a record of my first success :-)no subject
no subject
no subject
Er,
no subject
I'm interested in principle by the general idea of adding scripting to strategy games, though. My strategy game of choice is Starcraft; I keep thinking it would be interesting to allow Starcraft players to provide scripts which kept track of background jobs while the player concentrated on something else, and which automated some of the tedious micro-management during battle by doing things like intelligent target selection. (Of course a script-enabled player would have to compete against other script-users; using scripts against an unaided human would certainly count as cheating.) The general idea is that computers are good at performing simple and boring tasks very quickly and not missing things by accident, whereas humans are good at long-range strategic planning, emergency response and improvisation, and ideally a good Starcraft player needs to be a fusion of both, so you let the computer do what it's good at while the human does what they're good at.
Advanced Chess is probably relevant to this theme as well.
no subject
no subject
no subject
no subject
I think you might have just discovered you're a free software author ;)
no subject
My first thought about "Dead Again" was that it would rather aptly describe my NetHack play as well :-)
no subject
no subject
It took about 6 minutes to load a 22MB file on my Dual 2Ghz G5 (although I note its single threaded).
I've friended you btw - although I don't expect you to friend me back, but I thought I'd mention it. I'm a friend of
no subject
6 minutes is roughly consistent with the results I've been seeing on my 2GHz P4 (about 10 seconds per input megabyte). It is a pain, but I find lack of rewind to be an incomparably greater pain. (And anyone who doesn't knows where to find a lower-tech player :-)
no subject
no subject
For example, on 29th November "firemonkey" ascended a Valkyrie. So we look up their ttyrecs, and we find that 2005-11-29.18:48:31.ttyrec is the end of that game - and the previous twelve files before that are also parts of the same game, so that the very start is 2005-10-26.16:41:42.ttyrec. (In fact there are a few thousand turns missing in the middle of this game, which is a bit annoying; I assume some sort of recording glitch, since one of the files cuts off without the usual "Really save?" / "Be seeing you" business.)
no subject
PS. Watch out for that floating eye!
no subject
Floating eyes I don't have a problem with any more (except that they keep not leaving corpses, grr). What got me this evening was that the Minetown altar wasn't my alignment. That wouldn't have been a problem in itself - there was a random coaligned altar just above the Mines entrance - but being half asleep I managed to forget the Minetown altar was cross-aligned and sacrificed at it anyway. Cue one extremely upset priest and one messily dead Valkyrie. And it was going so well.
no subject
no subject
no subject