30 July 2009

Swankified in the Summer Sun

Been a while since my last post, mostly because I've been vacationing up in Nilsiä and there hasn't been much to say. I completed my annual ritual of reading Miyazaki's Nausicaä of the Valley of Wind, then read The Return of the King (I'd started re-reading LotR a few years before, but got sidetracked somehow, as is too often the case). The weather's been much nicer than last year, but, as usual, I've done much less creative stuff than I'd like.

But onwards to the main topic: I've written before about using StumpWM. Last night I finally got around to setting it up so that it runs the Swank module, the Lisp-side component of SLIME, Emacs's Lisp editing mode. This makes it possible to connect to the running Lisp process from Emacs and edit the code interactively, while the software is running! This interactive development style is, of course, one of the main features of Lisp.

Now, whether I'll actually use this potential is another matter entirely. At the very least it'll make editing the configuration file easier (since that is just Lisp code same as the rest of the software). It was possible to load new or modified elements before using a simple StumpWM Emacs mode provided, but this was much more limited. But whether I'll have the guts or inspiration (or simply the energy) to delve into the depths of StumpWM is a whole other matter...

9 July 2009

Doomed to Go Paddy

Doom. The most legendary of all FPS games. And even after 16 years it still manages to entertain me. In fact, it's one of the very few FPS games I've ever had any real interest in. Obviously I don't play it all year round, but I enjoy returning to it every now and then, in one form or another.

A year ago I wrote about playing the Doomsday Engine version of the game, with updated graphics and modern, Quake style mouse controls. This summer I'm trying something a little different. As you might know, earlier this year I switched from Mac OS X back to Debian GNU/Linux. I discovered the only Doom port available in Debian's package repositories was PrBoom. Worth a try, I thought, before I try my hands at compiling another port.

PrBoom takes a fairly different approach from Doomsday Engine. While there are numerous bug fixes and improvements to the engine, on the surface it looks and feels much more like the original game. Only the original sprites are used (although there are options for smoothing the graphics) and there are no modern control features like jumping or free aiming with the mouse. I briefly tried the mouse control it has, and couldn't really play with it (I'm not a 100% sure it couldn't be tweaked to behave better, though, I didn't really spend much time looking into it). While back in the 90's when I first played Doom I naturally used the keyboard controls, I found them impossible to return to after growing accustomed to the agility of mouse control.

So I decided to look into a possible third option: a game pad. The first try was disappointing. While PrBoom, like the original Doom, supports joysticks, the controls aren't really configurable, and no more agile than keyboard control. I would need something more akin to modern console FPS games: using one thumb for moving forwards and backwards, and strafing left and right, while using another thumb for aiming (turning) and a shoulder trigger for firing. (I use PlayStation controllers with a USB adapter.) I wasn't hopeful at first, but after a little digging I discovered a little application that converts joystick input into keyboard input (called joy2key). And, a little to my surprise, it worked perfectly, allowing me to freely configure my game pad controls.

And I must say, while I've always been somewhat sceptical about console FPS games, this control scheme works quite well with Doom. It's simple, fairly agile, and fun to play. I don't mind the old school graphics. Quite the contrary, in fact. Doom was an awesome game for its time and there's really no reason to mess with it any more than is necessary.

I've also been trying out some of the many mods available for the first time. I might write more about them in another post.