Rock Band: Beatles is a video game by Harmonix, the latest in their Rock Band series, released with the assistance and oversight of Apple Corps. It is groovy and psychedelic.
Groovy describes the music; psychedelic describes the accompanying visuals, which should surprise exactly no one. It's not complete — notable songs missing, hopefully to be offered for sale later, include "Maxwell's Silver Hammer", "Eleanor Rigby", "Nowhere Man", "I'll Follow the Sun", "Magical Mystery Tour", and "Yesterday". (In fact I can confirm that "Maxwell's Silver Hammer" is intended to be offered for sale via the various online distribution channels on either October 20 or November 20 of this year.) A complete list of the songs that are included is here, courtesy of Gamespot.
I'm not terribly fond of the guitar included with the game: the keys near the head don't rebound to full extension the way a Guitar Hero controller's do. It's difficult to tell when one is actually pressing the keys as opposed to pressing blindly on the solid plastic below them. (I played briefly with a GH-style controller at the game store where I purchased it, and did much better than with the Rock Band guitar.) One could probably argue that this makes it more like playing an actual guitar, but if I cared about that I'd just learn to play, y'know, an actual guitar. Gripe, grumble.
As for the vocals: it is, I suppose, nice to have concrete, objective data concerning just how badly I sing. (This apparently being "very badly indeed".) I've noticed that my score goes up measurably when I just sing 'Aaaah' rather than the lyrics, so probably at least part of my problem is a failure to project properly: the white-noise of unvoiced stops and fricatives is registering as much on the vocals-measurement as does the portion of my vocalization with a meaningful primary frequency. (The fact that I have a tin ear composes`{::}^1` the other nine-tenths of my failure.)
The drums I fail at not so much due to a lack of rhythm (DDR is good for a few things!) as because of a lack of off-hand (or rather, off-arm) coordination.
Still and all, it's 1:47 in the morning as I type this, and I've spent the last I don't-know-how-long pretending I have something vaguely like musical ability. On a scale of 1 to 1, I'll have to rate it a gas. ^_^
`{::}^1` Pun only vaguely intentional.
Friday, September 11, 2009
Saturday, September 5, 2009
Capsaicin + Eyeballs = ?
If you answered "PAIN", you're right!
Having your eyes have a Scoville rating is no fun at all.
Having your eyes have a Scoville rating is no fun at all.
Tuesday, August 4, 2009
New Orleans (day 3 of 7)
(This post has been backdated, from 2009-08-06.)
Tuesday was more productive than Monday. It's also more abbreviable, so let me first lay out SIGGRAPH's general schedule for clarity.
Every day has essentially four segments: I 8:30 to 10:15, II 10:30 to 12:15, III 1:45 to 3:30, and IV 3:45 to 5:30. Some sessions span I and II or III and IV; and there are dozens of smaller gatherings or sessions or activities that don't respect the segments listed above, such as FJORG! or the various BOFs, or the Computer Animation Festival showings, which mostly come after IV.
Anyway, for me, I was occupied by Real-Time Illumination for Dynamic Scenes, which was interesting and useful; it primarily focused on screen-space methods, which aren't of much use to me in my current job (we try for photorealism, although we only occasionally succeed) but at least had shiny algorithms.
Contrasting this, in II I attended a presentation of technical papers grouped together as Perception andDeception Depiction. I admit that toward evaluating lighting design interface paradigms for novice users was useful -- not in the particular, although I cede that the concept of a light-painting interface was interesting`{::}^1` -- but in the fact that it actually collected hard, reproducible data about HCI, which hardly ever seems to happen, and that it laid out its method and methodology for collecting the data. However, I still probably shouldn't have attended, since it was a Technical Papers presentation-collection, and those are all included on the DVD I got with the full-conference admission ticket. (Well, that my employer got with my ticket, anyway.)
So leaving that session early, somewhere in the middle of evaluating human color perception in high-luminance conditions, meant I got to head to the Exhibition Hall and collect swag for the rest of II and the lunch break. Alas, there was little swag to collect -- or, from a less self-centered position, the exhibition hall was strangely small compared to last year's SIGGRAPH, with fewer interesting exhibitors. (Also those exhibitors that were present were much more aggressive about scanning the barcodes of my badge without first asking permission to flood me with their e-mail advertisements.)
... also I had what purported to be a muffaletta from the exhibition hall food dispensary. I have officially learned my lesson concerning food from within the convention-hall (that lesson being DON'T).
III and IV were taken up by a course on OpenGL, updated to use OpenGL 3.1. Alas, I am not sure what its intended audience was: the OpenGL 3.1 material did not make up much of the course, that being instead almost entirely taken up by a rehash of my college Computer Graphics course -- very basic 'how rendering works' stuff. I thought it was intended for artists who wanted to get into programming, but an one such artist considered it beneath him, and a second artist (less interested in programming) found the entire talk to have been over his head. I'm still not sure what the intended audience of the talk was. It may have been a set of people unlikely to attend SIGGRAPH.
`{::}^1` However, the primary conclusion of the paper was that 'interesting' doesn't imply 'useful' here, so don't get too enraptured with the concept. Even manually positioning the lights turned out to be more usable than that.
Tuesday was more productive than Monday. It's also more abbreviable, so let me first lay out SIGGRAPH's general schedule for clarity.
Every day has essentially four segments: I 8:30 to 10:15, II 10:30 to 12:15, III 1:45 to 3:30, and IV 3:45 to 5:30. Some sessions span I and II or III and IV; and there are dozens of smaller gatherings or sessions or activities that don't respect the segments listed above, such as FJORG! or the various BOFs, or the Computer Animation Festival showings, which mostly come after IV.
Anyway, for me, I was occupied by Real-Time Illumination for Dynamic Scenes, which was interesting and useful; it primarily focused on screen-space methods, which aren't of much use to me in my current job (we try for photorealism, although we only occasionally succeed) but at least had shiny algorithms.
Contrasting this, in II I attended a presentation of technical papers grouped together as Perception and
So leaving that session early, somewhere in the middle of evaluating human color perception in high-luminance conditions, meant I got to head to the Exhibition Hall and collect swag for the rest of II and the lunch break. Alas, there was little swag to collect -- or, from a less self-centered position, the exhibition hall was strangely small compared to last year's SIGGRAPH, with fewer interesting exhibitors. (Also those exhibitors that were present were much more aggressive about scanning the barcodes of my badge without first asking permission to flood me with their e-mail advertisements.)
... also I had what purported to be a muffaletta from the exhibition hall food dispensary. I have officially learned my lesson concerning food from within the convention-hall (that lesson being DON'T).
III and IV were taken up by a course on OpenGL, updated to use OpenGL 3.1. Alas, I am not sure what its intended audience was: the OpenGL 3.1 material did not make up much of the course, that being instead almost entirely taken up by a rehash of my college Computer Graphics course -- very basic 'how rendering works' stuff. I thought it was intended for artists who wanted to get into programming, but an one such artist considered it beneath him, and a second artist (less interested in programming) found the entire talk to have been over his head. I'm still not sure what the intended audience of the talk was. It may have been a set of people unlikely to attend SIGGRAPH.
`{::}^1` However, the primary conclusion of the paper was that 'interesting' doesn't imply 'useful' here, so don't get too enraptured with the concept. Even manually positioning the lights turned out to be more usable than that.
Monday, August 3, 2009
New Orleans (day 2 of 7)
So today was almost entirely taken up by SIGGRAPH. Which is reasonable, as it's why I'm here, but it does mean I'm putting in longer hours than I would if I were back in Houston, actually coding.
The day started at 8:30, which is reasonable enough, with a complete waste of time, which wasn't. One of the topics of this year's SIGGRAPH is "Informational Aesthetics" — a perfectly reasonable concept, especially in the context of HCI, but unfortunately this opening talk was... notsomuch, and I'll cover it in detail simply because I'm in an exceedingly lousy mood.
The talk opened with a description of the construction of various visualizations of a graph of the intercitations of articles published in various scientific journals. (An overview is at well-formed.eigenfactor.org, if you're curious.) The speaker referred to this as a "graph of science," which grated on my nerves — use of "science" to refer to the social phenomenon of the interaction of scientists, rather than the abstract process of learning about the world possible in a social vacuum, has never sat well with me. (On a similar note, he referred to the emergence of the discipline of 'neuroscience' — shown on one graph as a recategorization of journals originally from several distinct disciplines (1997) into a distinct cluster not previously extant (2005) — as a "story." This sets off all sorts of alarm bells.)
This was the most relevant talk of the three.
The next speaker presented this. While it was a reasonable application of computer graphics to augment dance, I'm not convinced it was very useful to non-choreographers. There didn't seem to be any analysis done; it was all representation and re-presentation of the data, as far as I saw. Once upon a time, this would possibly have been suitable for a video presentation, but while this may represent the cutting edge of choreography, it doesn't seem to be much of a SIGGRAPH topic.
The final speaker of the talk ... may have had potential, but did not use it. He had simply taken the output of the electricity-usage monitors in the Dartmouth undergraduate dorms and hooked them up to a gauge instantiated as the hand-drawn animated image of a polar bear — depicted as happy when usage is low, and in danger when usage is high. (Apparently this has measurably reduced electricity consumption in the dorms.) This is all well and good, but hardly seems to be SIGGRAPH material. Apparently there was some novelty, or at least nontriviality, to his data processing (determining what constituted 'low' and 'high' respectively). It might have been better if he'd gone into more detail about that...
At any rate, while fragments might possibly become useful in unforeseen future days, apparently I should have been attending Advances in Real-Time Rendering, where there was hard math to be had. Alas, when I entered around 10:00, the presenter said she was done with the integrals and filter equations and would now pass the stand to another. Indeed, the rest of the talk was relatively useless — there was a description of a deferred-lighting engine, and then a read-from-the-slides talk about light volumes (?) in Crysis.
I ate lunch between those two, around 11:00. This becomes relevant later.
After that, I wandered around upstairs, looking at the Emerging Technologies and Art sections, groups which tended to shade into one another at times. I note specifically, and with some fondness, the Funbrella — an electric motor / kinetic sensor mounted on an umbrella, allowing the wielder to feel the recorded sensations of spaghetti, marbles, and plush toys raining down upon them. More serious was the installation Hylozoic Soil, which is (as one attendee put it) "terrifying and beautiful" — a jungle made out of plastic and actuators that moves on its own in ways a (Terran?) jungle shouldn't. The creaking and buzzing vibrations that pervaded the setup (from the plastic and actuators respectively) were as much what brought it to life as the motions were, though.
The technical portion of the conference got back underway at 13:45. For me, that meant part II of the Real-Time Rendering talks, which started off with essentially an hour-long advertisement for Disney Interactive's Pure (racing game) and Split/Second (racing game with explosions explosions with a racing game attached). To be fair, Pure's segment described in reasonable detail their foliage-drawing methods... although their sort-avoidance algorithm seems kind of silly, given that you can "sort" the points in a regular lattice in a square by distance from any point not in the square in constant time. (Go old-school; think Bresenham's algorithm.)
Split/Second's segment had no such redeeming qualities, though. It was an ad.
After that, things picked up relatively quickly: the remainder of the talk had actual substance, covering depth-of-field, antialiasing, real-time raytracing (on two-generation-old hardware, no less!), and concluding with a detailed analysis and explication ("postmortem") of the graphics engine for Little Big Planet. (Note to non-PS3 owners: yeah, don't expect this to come out for any other platform anytime soon. The engine viciously exploits not merely the SPEs — essentially the entire vertex portion of the graphics pipeline is performed there — but specific quirks of the nVidia RSX's MSAA implementation.)
As this wound to a close, I went upstairs to the Sandbox, where a number of games were on display: Flower, most notably, but there were several, most being independent titles such as Akrasia and ... damn, I don't remember any of the others' names. There was an Xbox360 boxing game, a vaguely Silent-Hill-esque third-person game involving a goth girl running around in a foggy forest that I only got to see over someone's shoulder, and a game involving being a sphere that consumes other spheres by touch -- the only real mechanics for the last are 'momentum is conserved', 'large spheres consume small spheres' and 'you can eject very tiny spheres at high speed in any direction'. Fun. Also frustrating at the level I found myself playing. (Edit 2009-08-06: These are, respectively, Fight Night: Round 4, The Path, and... okay, I still don't know the last one.)
This was just to kill time in between the last talks and the previews of the Technical Papers, which lasted from 18:00 to 20:00. Two full hours of 50-second previews for some four-fifths of the papers to be presented. At least this lets me have some sense of which presentations to avoid on the grounds that their presenters will just be reading off of their slides, and whose papers I could as easily absorb without their presence.
I'm going to give those three at the beginning some credit -- none of them did that.
So I came to the convention center at 8:30; I left eleven and a half hours later; and I promptly staggered northward to the first restaurant I found, one Mulate's. (Which, for the record, had better music than food. Which is not to say the food was bad; it was just nothing to write home about. So I won't.)
To close the day, which had already been long enough that I should probably have had the sense to throw in the towel for the night, I headed to the ACM SIGGRAPH party, at the Generations Hall -- a fairly standard club, and a fairly standard party, and therefore as much of a waste of time for me as the day's opening had been. (It was worth a shot, I suppose.)
Tomorrow will hopefully be less full than today.
The day started at 8:30, which is reasonable enough, with a complete waste of time, which wasn't. One of the topics of this year's SIGGRAPH is "Informational Aesthetics" — a perfectly reasonable concept, especially in the context of HCI, but unfortunately this opening talk was... notsomuch, and I'll cover it in detail simply because I'm in an exceedingly lousy mood.
The talk opened with a description of the construction of various visualizations of a graph of the intercitations of articles published in various scientific journals. (An overview is at well-formed.eigenfactor.org, if you're curious.) The speaker referred to this as a "graph of science," which grated on my nerves — use of "science" to refer to the social phenomenon of the interaction of scientists, rather than the abstract process of learning about the world possible in a social vacuum, has never sat well with me. (On a similar note, he referred to the emergence of the discipline of 'neuroscience' — shown on one graph as a recategorization of journals originally from several distinct disciplines (1997) into a distinct cluster not previously extant (2005) — as a "story." This sets off all sorts of alarm bells.)
This was the most relevant talk of the three.
The next speaker presented this. While it was a reasonable application of computer graphics to augment dance, I'm not convinced it was very useful to non-choreographers. There didn't seem to be any analysis done; it was all representation and re-presentation of the data, as far as I saw. Once upon a time, this would possibly have been suitable for a video presentation, but while this may represent the cutting edge of choreography, it doesn't seem to be much of a SIGGRAPH topic.
The final speaker of the talk ... may have had potential, but did not use it. He had simply taken the output of the electricity-usage monitors in the Dartmouth undergraduate dorms and hooked them up to a gauge instantiated as the hand-drawn animated image of a polar bear — depicted as happy when usage is low, and in danger when usage is high. (Apparently this has measurably reduced electricity consumption in the dorms.) This is all well and good, but hardly seems to be SIGGRAPH material. Apparently there was some novelty, or at least nontriviality, to his data processing (determining what constituted 'low' and 'high' respectively). It might have been better if he'd gone into more detail about that...
At any rate, while fragments might possibly become useful in unforeseen future days, apparently I should have been attending Advances in Real-Time Rendering, where there was hard math to be had. Alas, when I entered around 10:00, the presenter said she was done with the integrals and filter equations and would now pass the stand to another. Indeed, the rest of the talk was relatively useless — there was a description of a deferred-lighting engine, and then a read-from-the-slides talk about light volumes (?) in Crysis.
I ate lunch between those two, around 11:00. This becomes relevant later.
After that, I wandered around upstairs, looking at the Emerging Technologies and Art sections, groups which tended to shade into one another at times. I note specifically, and with some fondness, the Funbrella — an electric motor / kinetic sensor mounted on an umbrella, allowing the wielder to feel the recorded sensations of spaghetti, marbles, and plush toys raining down upon them. More serious was the installation Hylozoic Soil, which is (as one attendee put it) "terrifying and beautiful" — a jungle made out of plastic and actuators that moves on its own in ways a (Terran?) jungle shouldn't. The creaking and buzzing vibrations that pervaded the setup (from the plastic and actuators respectively) were as much what brought it to life as the motions were, though.
The technical portion of the conference got back underway at 13:45. For me, that meant part II of the Real-Time Rendering talks, which started off with essentially an hour-long advertisement for Disney Interactive's Pure (racing game) and Split/Second (
Split/Second's segment had no such redeeming qualities, though. It was an ad.
After that, things picked up relatively quickly: the remainder of the talk had actual substance, covering depth-of-field, antialiasing, real-time raytracing (on two-generation-old hardware, no less!), and concluding with a detailed analysis and explication ("postmortem") of the graphics engine for Little Big Planet. (Note to non-PS3 owners: yeah, don't expect this to come out for any other platform anytime soon. The engine viciously exploits not merely the SPEs — essentially the entire vertex portion of the graphics pipeline is performed there — but specific quirks of the nVidia RSX's MSAA implementation.)
As this wound to a close, I went upstairs to the Sandbox, where a number of games were on display: Flower, most notably, but there were several, most being independent titles such as Akrasia and ... damn, I don't remember any of the others' names. There was an Xbox360 boxing game, a vaguely Silent-Hill-esque third-person game involving a goth girl running around in a foggy forest that I only got to see over someone's shoulder, and a game involving being a sphere that consumes other spheres by touch -- the only real mechanics for the last are 'momentum is conserved', 'large spheres consume small spheres' and 'you can eject very tiny spheres at high speed in any direction'. Fun. Also frustrating at the level I found myself playing. (Edit 2009-08-06: These are, respectively, Fight Night: Round 4, The Path, and... okay, I still don't know the last one.)
This was just to kill time in between the last talks and the previews of the Technical Papers, which lasted from 18:00 to 20:00. Two full hours of 50-second previews for some four-fifths of the papers to be presented. At least this lets me have some sense of which presentations to avoid on the grounds that their presenters will just be reading off of their slides, and whose papers I could as easily absorb without their presence.
I'm going to give those three at the beginning some credit -- none of them did that.
So I came to the convention center at 8:30; I left eleven and a half hours later; and I promptly staggered northward to the first restaurant I found, one Mulate's. (Which, for the record, had better music than food. Which is not to say the food was bad; it was just nothing to write home about. So I won't.)
To close the day, which had already been long enough that I should probably have had the sense to throw in the towel for the night, I headed to the ACM SIGGRAPH party, at the Generations Hall -- a fairly standard club, and a fairly standard party, and therefore as much of a waste of time for me as the day's opening had been. (It was worth a shot, I suppose.)
Tomorrow will hopefully be less full than today.
Sunday, August 2, 2009
New Orleans (day 1 of 7)
So as I stepped off the plane, I thought instantly: "Hm. Smells like New Orleans."
Once I got down to the baggage claim, it started sounding like New Orleans too: in front of the carousel was a four-man jazz band, advertising SIGGRAPH 2009.
So, after taking a cab to my hotel (which I learned later was a total waste of money, as there was an airport shuttle which stopped by my hotel), I spent most of the rest of the day wandering first around New Orleans, a few blocks from the convention center, and second around the convention center itself. The Ernest N. Morial Convention Center is large enough for SIGGRAPH, which by now is astonishingly large.
New Orleans -- at least the part where I am -- looks basically like any other city of my acquaintance, if a bit more obviously worn and suffering from urban decay. (Not hopelessly so, mind. There is clearly growth, and not in the 'mold' sense: there's a 24-floor building that'll be going up soon, not a mile from where I sit, and some buildings and shells are clearly undergoing construction and destruction.) The only restaurant I've eaten at so far -- the Sun Ray Grill -- is essentially a tourist trap; I may go back there the last day of the trip, but not sooner. (A tip for the management: sweet-potato crisps? Not so good when served lukewarm-to-cold.)
The setup phase of SIGGRAPH, at least, was in full swing; registration had already started, and I was able to get my badge and conference DVD relatively quickly. SIGGRAPH is no longer actually printing full programs, in order tosave money be more eco-conscious, so I've spent most of the rest of Sunday reading the .pdf of the program on this netbook. (Hopefully next year they won't stick with their customary design; it was nearly unreadable on a 1024x600 screen, even sideways in full-screen mode. Pro tip: the plurality-of-vertical-columns layout that's so suited to printing on an 8.5" x 11" page is an absolute bitch to read on a small horizontal monitor, and is still a headache even on vertical ones.)
Once I got down to the baggage claim, it started sounding like New Orleans too: in front of the carousel was a four-man jazz band, advertising SIGGRAPH 2009.
So, after taking a cab to my hotel (which I learned later was a total waste of money, as there was an airport shuttle which stopped by my hotel), I spent most of the rest of the day wandering first around New Orleans, a few blocks from the convention center, and second around the convention center itself. The Ernest N. Morial Convention Center is large enough for SIGGRAPH, which by now is astonishingly large.
New Orleans -- at least the part where I am -- looks basically like any other city of my acquaintance, if a bit more obviously worn and suffering from urban decay. (Not hopelessly so, mind. There is clearly growth, and not in the 'mold' sense: there's a 24-floor building that'll be going up soon, not a mile from where I sit, and some buildings and shells are clearly undergoing construction and destruction.) The only restaurant I've eaten at so far -- the Sun Ray Grill -- is essentially a tourist trap; I may go back there the last day of the trip, but not sooner. (A tip for the management: sweet-potato crisps? Not so good when served lukewarm-to-cold.)
The setup phase of SIGGRAPH, at least, was in full swing; registration had already started, and I was able to get my badge and conference DVD relatively quickly. SIGGRAPH is no longer actually printing full programs, in order to
Thursday, June 4, 2009
Monday, June 1, 2009
the white chamber
The White Chamber is the name of two distinct games. One is a rather lackluster Flash-based one-room puzzle game by FASCO-CS; the other, and the subject of this review, is a psychological horror/adventure game by Studio Trophis.
I'm going to spoil this game, in a way: I won't reveal any plot points, imagery, or even the solutions to any puzzles, but I will discuss one of the tricks it uses to set up the atmosphere of horror, and it may ruin much of the feel of the game. The following text has therefore been ROT13'd for the casual reader's safety.
Irel rneyl ba va gur tnzr, jura lbh fbyir gur svefg chmmyr, lbh cresbez na veeribpnoyr npgvba naq ybfr npprff gb gur svefg ebbz bs gur tnzr. Gurer'f abguvat vzcbegnag yrsg va gung ebbz — ol gur gvzr lbh jnyx bhg, lbh'ir frra rirelguvat lbh cbffvoyl pna frr gurer. Ohg vg'f fhqqra, naq wneevat, naq lbh'er tvira gur vzcerffvba gung gur tnzr vf, ba gur Zarfian scale, anfgl.
Guvf vf nyzbfg ragveryl n snyfr vzcerffvba: nyzbfg rirel bgure chmmyr va gur tnzr vf npghnyyl zrepvshy. Ab 'zbir' be 'hfr' pbzznaq pna pnhfr gur tnzr gb raq be orpbzr hajvaanoyr. (Gurer vf n tbbq raqvat naq n onq raqvat, naq gur jnl gur pubvpr bs raqvat vf qrpvqrq vf Mnesvna-pehry, ohg guvf qbrfa'g nssrpg lbhe novyvgl gb trg gb gur raqvat.) Gur bayl jnl gb qvr vf gb sbbyvfuyl nafjre "Ab" gb n dhrfgvba jubfr cebcre nafjre nf "Lrf" fubhyq or boivbhf. (Naq lbh trg gb fnir orsber lbh nafjre, naljnl.)
Oh, but make sure you take the axe. Some puzzles and events seem to assume you have it; I haven't tested to see if this is actually a problem, though. [sic]
I approve of the main character's appearance for several reasons, mostly because it subtly plays with viewers' expectations. The climax and denouement make it clear that she's not what she looks like — but not in the tomato-in-the-mirror sort of way you'd expect from reading that sentence; it's just that her appearance and outfit is styled to give an impression which, in the context provided by the epilogue, is plainly false simply because said epilogue quietly and nonchalantly rebukes several assumptions most people will not even be aware of making. Unlike the above, this is not a spoiler because I am almost entirely certain you will not realize what I mean by that until you see it at the end.
The voice acting did not make me want to jab my ears out with a rusty knife, which is always a plus; I did usually interrupt her, but I am impatient and can read faster than anyone speaks. (I did find it curiously jarring that our protagonist spoke with an American accent, but was subtitled in British English.)
As for the horror aspects, I can only compare this game to Silent Hill 3 — that being the only other graphical psychological-horror game I've played (though of course it's also rather similar to many an amnesiac-protagonist IF game: Babel comes to mind). The FPS-ish elements present in SH3 (or other games referred to as "survival horror") are obviously absent. As a whole, it's not quite as creepy as SH3, but this is largely due to its much shorter length. (There's probably slightly less gore per minute, but not by very much.)
The game is actually very short — five or six hours' play, perhaps. Ten if you go slowly. There's no hunt-the-magic-pixel difficulty here — all the interactible-with objects are fairly obvious, and if you're still having trouble there's a configuration option which allows you to use Ctrl-Tab to cycle through the mouse-sensitive areas of the screen, the way you can in some Flash games. Its use takes nothing away from the game. (By contrast, FASCO-CS's rather annoying puzzle game relies almost entirely on this sort of fake difficulty, being one of the sorts that disables Flash's built-in use of Tab to cycle through sensitive areas of the screen.)
The artwork is quite good; the animation is, at worst, occasionally a little stiff, but not unforgivably so.
Altogether I can rate the game 1/1, and express some sorrow that Studio Trophis hasn't released anything else. They've supposedly been working on a game entitled For the Game — "Rest assured we are still working on this project and would like to stake our reputations that you'll finally get to try For The Game yourself before the end of 2008." ... yyyyeah. Ah well; c'est la vie.
I'm going to spoil this game, in a way: I won't reveal any plot points, imagery, or even the solutions to any puzzles, but I will discuss one of the tricks it uses to set up the atmosphere of horror, and it may ruin much of the feel of the game. The following text has therefore been ROT13'd for the casual reader's safety.
Irel rneyl ba va gur tnzr, jura lbh fbyir gur svefg chmmyr, lbh cresbez na veeribpnoyr npgvba naq ybfr npprff gb gur svefg ebbz bs gur tnzr. Gurer'f abguvat vzcbegnag yrsg va gung ebbz — ol gur gvzr lbh jnyx bhg, lbh'ir frra rirelguvat lbh cbffvoyl pna frr gurer. Ohg vg'f fhqqra, naq wneevat, naq lbh'er tvira gur vzcerffvba gung gur tnzr vf, ba gur Zarfian scale, anfgl.
Guvf vf nyzbfg ragveryl n snyfr vzcerffvba: nyzbfg rirel bgure chmmyr va gur tnzr vf npghnyyl zrepvshy. Ab 'zbir' be 'hfr' pbzznaq pna pnhfr gur tnzr gb raq be orpbzr hajvaanoyr. (Gurer vf n tbbq raqvat naq n onq raqvat, naq gur jnl gur pubvpr bs raqvat vf qrpvqrq vf Mnesvna-pehry, ohg guvf qbrfa'g nssrpg lbhe novyvgl gb trg gb gur raqvat.) Gur bayl jnl gb qvr vf gb sbbyvfuyl nafjre "Ab" gb n dhrfgvba jubfr cebcre nafjre nf "Lrf" fubhyq or boivbhf. (Naq lbh trg gb fnir orsber lbh nafjre, naljnl.)
Oh, but make sure you take the axe. Some puzzles and events seem to assume you have it; I haven't tested to see if this is actually a problem, though. [sic]
I approve of the main character's appearance for several reasons, mostly because it subtly plays with viewers' expectations. The climax and denouement make it clear that she's not what she looks like — but not in the tomato-in-the-mirror sort of way you'd expect from reading that sentence; it's just that her appearance and outfit is styled to give an impression which, in the context provided by the epilogue, is plainly false simply because said epilogue quietly and nonchalantly rebukes several assumptions most people will not even be aware of making. Unlike the above, this is not a spoiler because I am almost entirely certain you will not realize what I mean by that until you see it at the end.
The voice acting did not make me want to jab my ears out with a rusty knife, which is always a plus; I did usually interrupt her, but I am impatient and can read faster than anyone speaks. (I did find it curiously jarring that our protagonist spoke with an American accent, but was subtitled in British English.)
As for the horror aspects, I can only compare this game to Silent Hill 3 — that being the only other graphical psychological-horror game I've played (though of course it's also rather similar to many an amnesiac-protagonist IF game: Babel comes to mind). The FPS-ish elements present in SH3 (or other games referred to as "survival horror") are obviously absent. As a whole, it's not quite as creepy as SH3, but this is largely due to its much shorter length. (There's probably slightly less gore per minute, but not by very much.)
The game is actually very short — five or six hours' play, perhaps. Ten if you go slowly. There's no hunt-the-magic-pixel difficulty here — all the interactible-with objects are fairly obvious, and if you're still having trouble there's a configuration option which allows you to use Ctrl-Tab to cycle through the mouse-sensitive areas of the screen, the way you can in some Flash games. Its use takes nothing away from the game. (By contrast, FASCO-CS's rather annoying puzzle game relies almost entirely on this sort of fake difficulty, being one of the sorts that disables Flash's built-in use of Tab to cycle through sensitive areas of the screen.)
The artwork is quite good; the animation is, at worst, occasionally a little stiff, but not unforgivably so.
Altogether I can rate the game 1/1, and express some sorrow that Studio Trophis hasn't released anything else. They've supposedly been working on a game entitled For the Game — "Rest assured we are still working on this project and would like to stake our reputations that you'll finally get to try For The Game yourself before the end of 2008." ... yyyyeah. Ah well; c'est la vie.
Tuesday, May 26, 2009
Programming jokes
I've been saving up a few random programming jokes. Since I no longer care about post lengths, I shall post them now! Warning: they are all horrible, vile puns.
1. “... and, since the language was essentially a combination of Perl and Haskell, we of course decided to call it Blaise.”
2. The following four (?) lines of code are potentially legal (if probably useless) C++, even in the absence of preprocessor defines. (Writing a prologue to actually make it compilable and executable is left as an exercise for the reader.)
3. Loosely related to the above: one of the things I love about working with computer graphics is the fact that I'm working specifically with 3D graphics. This means I get far too many opportunities to write the following:
4. “So this guy walks into a pipe...”
1. “... and, since the language was essentially a combination of Perl and Haskell, we of course decided to call it Blaise.”
2. The following four (?) lines of code are potentially legal (if probably useless) C++, even in the absence of preprocessor defines. (Writing a prologue to actually make it compilable and executable is left as an exercise for the reader.)
o.o ^_^x <_< n_n >_> z_z ;_; ~_~ -_- *_*
<(o_o)>~~~ o_O; x.x <3 +_+ 9.9 >_<!!!
(T.T )( T.T) ._. H_H ^o^ '_' %_% x_X;
3. Loosely related to the above: one of the things I love about working with computer graphics is the fact that I'm working specifically with 3D graphics. This means I get far too many opportunities to write the following:
for (size_t i = 0; i<3u; i++) { ... }
4. “So this guy walks into a pipe...”
Sunday, May 24, 2009
Okay, that's enough.
No, really. The towel is thrown in, and I am done, thank you.
It's not that I absolutely can't continue. If nothing else, I think, I've shown that I can consistently keep writing; the second half-year woludn't be any more difficult than the first in that regard. It may seem like I've been scraping the bottom of the barrel recently, but if I'm honest about it, it never was all that much better.
The fact that it doesn't seem to be any better now, though, that bothers me.
The biggest problem was that the original goal I set myself — to write more quickly — has been a complete failure: the time it takes me to compose a post is, frankly, absurd. I doubt a single one has taken me less than a full hour, and far more often they take two to three. (This post was no exception.) I've never had more than a day's buffer of scheduled posts, and I've never had that even that much buffer for more than a day.
Doing this (and, worse, avoiding doing this) basically eats up all of my time, and gives nothing back. (Most people do it for the joy of feedback; but if I had a million followers, it wouldn't matter — that was never the point.)
I bought a copy of Soul Calibur IV just before I started this nonsense. I've played it all of twice. I haven't seen a single episode of Fushigi no Umi no Nadia since November. I haven't gotten any farther in Eternal Sonata. (I was in the bonus dungeon — I still have the GameFAQs page for it open in Firefox!) The last time I studied music theory was at SIGGRAPH, when I brought along a book for the plane trip and airport wait. Never mind kanji practice or type-theory papers or looking into vocal lessons.
So yeah. No more daily posts, no more post restrictions, no more anything else but random whimsy. If I come up with something to post, I'll post it; but it'll be as long or as short as it needs to be, and not measured.
But tomorrow — tomorrow, there will be no post, and no explanation nor apology for it.
It's not that I absolutely can't continue. If nothing else, I think, I've shown that I can consistently keep writing; the second half-year woludn't be any more difficult than the first in that regard. It may seem like I've been scraping the bottom of the barrel recently, but if I'm honest about it, it never was all that much better.
The fact that it doesn't seem to be any better now, though, that bothers me.
The biggest problem was that the original goal I set myself — to write more quickly — has been a complete failure: the time it takes me to compose a post is, frankly, absurd. I doubt a single one has taken me less than a full hour, and far more often they take two to three. (This post was no exception.) I've never had more than a day's buffer of scheduled posts, and I've never had that even that much buffer for more than a day.
Doing this (and, worse, avoiding doing this) basically eats up all of my time, and gives nothing back. (Most people do it for the joy of feedback; but if I had a million followers, it wouldn't matter — that was never the point.)
I bought a copy of Soul Calibur IV just before I started this nonsense. I've played it all of twice. I haven't seen a single episode of Fushigi no Umi no Nadia since November. I haven't gotten any farther in Eternal Sonata. (I was in the bonus dungeon — I still have the GameFAQs page for it open in Firefox!) The last time I studied music theory was at SIGGRAPH, when I brought along a book for the plane trip and airport wait. Never mind kanji practice or type-theory papers or looking into vocal lessons.
So yeah. No more daily posts, no more post restrictions, no more anything else but random whimsy. If I come up with something to post, I'll post it; but it'll be as long or as short as it needs to be, and not measured.
But tomorrow — tomorrow, there will be no post, and no explanation nor apology for it.
Saturday, May 23, 2009
De lupis
(I am so, so sorry.)
Werewolves, of course, can't generally support themselves in the Muggle world. Finding steady employment that allows for full moons off isn't easy in the best of times; finding a job that pays enough for a sturdy cage and repairs to it — let alone for Wolfsbane! — is essentially impossible. The few werewolves that are forced out into the Muggle world typically turn to a life of crime almost immediately, and rarely last a full month: either circumstances are mysterious, and the Ministry of Magic intervenes; or circumstances are not mysterious, in which case the Muggle police typically have no problem catching someone who doesn't know what fingerprints are, much less closed-circuit television.
Remus Lupin considered himself very lucky in this regard. Unpleasant as it was, he hadn't actually been forced out of the magical world after James and Lily's death. He was quite able to support himself well enough to afford a cage, and even the occasional dose of quietly-purchased Wolfsbane. In the unlikely event that the Ministry cared enough to know where he was and what he was doing, they couldn't legally do a thing to him as long as he didn't use magic —
— click —
— and, he thought to himself as the safe swung open, the Yard were unlikely to have the resources to catch him. Assuming they even realize, he thought as he cheerfully removed stacks of fifty-pound notes from the safe; that I'm not cousin Arsène.
Werewolves, of course, can't generally support themselves in the Muggle world. Finding steady employment that allows for full moons off isn't easy in the best of times; finding a job that pays enough for a sturdy cage and repairs to it — let alone for Wolfsbane! — is essentially impossible. The few werewolves that are forced out into the Muggle world typically turn to a life of crime almost immediately, and rarely last a full month: either circumstances are mysterious, and the Ministry of Magic intervenes; or circumstances are not mysterious, in which case the Muggle police typically have no problem catching someone who doesn't know what fingerprints are, much less closed-circuit television.
Remus Lupin considered himself very lucky in this regard. Unpleasant as it was, he hadn't actually been forced out of the magical world after James and Lily's death. He was quite able to support himself well enough to afford a cage, and even the occasional dose of quietly-purchased Wolfsbane. In the unlikely event that the Ministry cared enough to know where he was and what he was doing, they couldn't legally do a thing to him as long as he didn't use magic —
— and, he thought to himself as the safe swung open, the Yard were unlikely to have the resources to catch him. Assuming they even realize, he thought as he cheerfully removed stacks of fifty-pound notes from the safe; that I'm not cousin Arsène.
Friday, May 22, 2009
Night at the Museum: Battle of the Smithsonian
So let me talk about cell phones for a moment.
The Motorola [motorola.com] company was founded in 1928 by Paul and Joseph Galvin, as the Galvin Manufacturing Company. It was renamed to Motorola, a portmanteau of motor and Victrola, when the company began to manufacture radios for automobiles in 1930. Later, it —
Wait, roll back. Let me talk about cell phones in movies.
The thing that sticks out most in my mind about Journey to the Center of the Earth — I make no apologies for spoilers; the movie was awful, 3D or no 3D — was the scene where the kid's cell phone rings while he's in the middle of the sea in bad weather and uncounted miles below the surface of the earth.
Conversely, Hoshi no Koe — or by its English name, the equally poetic* Voices from a Distant Star — revolves around a not-technically-impossible text-message "conversation", but a decidedly implausible one. (I suppose the Lysithea could have acted as a relay.) Since this really is the central plot device of the movie, it and its associated concepts get a free pass as the one unicorn in the garden.
The cell-phone bit in Battle of the Smithsonian, on the other hand, was completely arbitrary, utterly gratuitous, and yet managed not to worry me in the least. (The movie is about figures in a museum coming to life due to ancient Egyptian magic. The premise easily subsumes a multitude of lesser sins.)
The rest of the movie was also largely hilarious, especially the sequence where the three monkeys essentially acted out a Three Stooges skit. I have spoiled nothing.
Downside: the reference to π grated on my historical and mathematical sensibilities, for multiple reasons — here, have a link. (Sure, I'd have used π, but I'd have gone a lot farther than a lousy eight digits; you can go 32 before you hit a zero. Oh, and it's terribly convenient that the numbers happened to be in telephone arrangement, rather than (say) boustrophedonically... I should really just relax, shouldn't I.)
Other downside: the romantic subplot. It was fine for most of the movie (the putti notwithstanding), usually adding directly to the comedy, but the last bit was kind of depressing, really. No, after that; the bit that the movie closed on.
Still, it didn't exactly pretend to be high art, nor educational; and unlike your average so-called "romantic comedy" or the abomination they've made out of Land of the Lost, it was genuinely funny. It gets a 1/1, and a lack of impassioned rant.
* I mean this quite literally: "Hoshi no Koe" is potentially the first line of a haiku, while "Voices from a Distant Star" fits nicely into either iambic or trochaic pentameter. (And no, I don't care that the official translation uses of in the title rather than from.)
The Motorola [motorola.com] company was founded in 1928 by Paul and Joseph Galvin, as the Galvin Manufacturing Company. It was renamed to Motorola, a portmanteau of motor and Victrola, when the company began to manufacture radios for automobiles in 1930. Later, it —
Wait, roll back. Let me talk about cell phones in movies.
The thing that sticks out most in my mind about Journey to the Center of the Earth — I make no apologies for spoilers; the movie was awful, 3D or no 3D — was the scene where the kid's cell phone rings while he's in the middle of the sea in bad weather and uncounted miles below the surface of the earth.
Conversely, Hoshi no Koe — or by its English name, the equally poetic* Voices from a Distant Star — revolves around a not-technically-impossible text-message "conversation", but a decidedly implausible one. (I suppose the Lysithea could have acted as a relay.) Since this really is the central plot device of the movie, it and its associated concepts get a free pass as the one unicorn in the garden.
The cell-phone bit in Battle of the Smithsonian, on the other hand, was completely arbitrary, utterly gratuitous, and yet managed not to worry me in the least. (The movie is about figures in a museum coming to life due to ancient Egyptian magic. The premise easily subsumes a multitude of lesser sins.)
The rest of the movie was also largely hilarious, especially the sequence where the three monkeys essentially acted out a Three Stooges skit. I have spoiled nothing.
Downside: the reference to π grated on my historical and mathematical sensibilities, for multiple reasons — here, have a link. (Sure, I'd have used π, but I'd have gone a lot farther than a lousy eight digits; you can go 32 before you hit a zero. Oh, and it's terribly convenient that the numbers happened to be in telephone arrangement, rather than (say) boustrophedonically... I should really just relax, shouldn't I.)
Other downside: the romantic subplot. It was fine for most of the movie (the putti notwithstanding), usually adding directly to the comedy, but the last bit was kind of depressing, really. No, after that; the bit that the movie closed on.
Still, it didn't exactly pretend to be high art, nor educational; and unlike your average so-called "romantic comedy" or the abomination they've made out of Land of the Lost, it was genuinely funny. It gets a 1/1, and a lack of impassioned rant.
* I mean this quite literally: "Hoshi no Koe" is potentially the first line of a haiku, while "Voices from a Distant Star" fits nicely into either iambic or trochaic pentameter. (And no, I don't care that the official translation uses of in the title rather than from.)
Thursday, May 21, 2009
Random things on the Internet (Issue 2)
An Essay on Criticism II, by Alexander Pope er, Geoff Nunberg; being a lamentation on the state of the language.
Inaugural Embedding, some notes on the language of the state. (And similar.)
Neon Genesis Evangelion: Gakuen Datenroku. Apparently Gainax has been reduced to selling alternate-universe doujinshi. (I just might get the first volume anyway; it sounds at least vaguely interesting, and I could use the practice.)
...of course, they do sell stranger things.
An advertisement-video for a Twitter application on the iPhone. It should be noted that I care nothing for the iPhone, and indeed have nothing but antipathy towards Twitter: I just want to know what that music in the background is. It sounds familiar — I could swear I'd heard it in a PC game of ages past, or possibly as a .MOD file, but I can't place it.
One of the worst puns ever to grace RPG.net (and I can assure you that that's saying something.)
A music video for a popular-ish song. Not even a fan-creation — the author's original. I mention it only because it (the video) is clever, and because the melody has been running through my head off and on for the past week.
Inaugural Embedding, some notes on the language of the state. (And similar.)
Neon Genesis Evangelion: Gakuen Datenroku. Apparently Gainax has been reduced to selling alternate-universe doujinshi. (I just might get the first volume anyway; it sounds at least vaguely interesting, and I could use the practice.)
...of course, they do sell stranger things.
An advertisement-video for a Twitter application on the iPhone. It should be noted that I care nothing for the iPhone, and indeed have nothing but antipathy towards Twitter: I just want to know what that music in the background is. It sounds familiar — I could swear I'd heard it in a PC game of ages past, or possibly as a .MOD file, but I can't place it.
One of the worst puns ever to grace RPG.net (and I can assure you that that's saying something.)
A music video for a popular-ish song. Not even a fan-creation — the author's original. I mention it only because it (the video) is clever, and because the melody has been running through my head off and on for the past week.
Wednesday, May 20, 2009
Negative quarters
Negative quarters are relatively large coins, each worth -25¢.
A negative quarter appears to the eye to be the as a mirror image of an ordinary quarter, made out of some obsidian-like substance. It has a date (usually in the future) and sometimes a reversed mint-mark. It may have scratches and dents, although it never acquires new ones, and on rare occasion may lose the ones it has — the fact has been confirmed, but the process has never been observed directly. To the touch it feels much like an ordinary quarter, in both texture and heat-capacity.
When a negative quarter is allowed to come into contact with a positive quarter, the two quietly mutually annihilate. (Unlike the case of a matter-antimatter reaction, there is no release of radiation involved.) Similarly, negative quarters can be produced (along with a corresponding normal, "positive" quarter) out of nothing.
Spontaneous paired production/destruction events happen all the time: every monetary transaction involves the creation of a number of 'virtual currency pairs', although under normal circumstances these pairs are too short-lived to be observed directly. However, an existing negative quarter can easily be used to disrupt the destruction event, reifying the virtual pair.
`(-25¢) stackrel(delta)(->) 2(-25¢) + (25¢)`
(Note that, by symmetry, the mirror operation `(25¢) stackrel(-delta)(->) (-25¢) + 2(25¢)` is also possible; however, physical negative transactions are rather rarer, and usually of lower absolute value.)
Without an existing negative quarter it is more difficult to disrupt the virtual pair destruction event, but it is still possible. The usual process is to perform perform many thousands of long-distance, high-speed transactions near small objects of high value. The first negative coinage was produced by researchers in Switzerland, using Faberge eggs; since then negative quarters have also been independently produced using antimatter, common sense, and the kidnapped daughter of Bill Gates (later returned unharmed, with the demanded ransom unpaid).
In order to remove negative currency from their declared assets, banks have been known to surreptitiously hire construction companies to dispose of stacks of negative coins within the concrete of a building's foundation.
A negative quarter appears to the eye to be the as a mirror image of an ordinary quarter, made out of some obsidian-like substance. It has a date (usually in the future) and sometimes a reversed mint-mark. It may have scratches and dents, although it never acquires new ones, and on rare occasion may lose the ones it has — the fact has been confirmed, but the process has never been observed directly. To the touch it feels much like an ordinary quarter, in both texture and heat-capacity.
When a negative quarter is allowed to come into contact with a positive quarter, the two quietly mutually annihilate. (Unlike the case of a matter-antimatter reaction, there is no release of radiation involved.) Similarly, negative quarters can be produced (along with a corresponding normal, "positive" quarter) out of nothing.
Spontaneous paired production/destruction events happen all the time: every monetary transaction involves the creation of a number of 'virtual currency pairs', although under normal circumstances these pairs are too short-lived to be observed directly. However, an existing negative quarter can easily be used to disrupt the destruction event, reifying the virtual pair.
(Note that, by symmetry, the mirror operation `(25¢) stackrel(-delta)(->) (-25¢) + 2(25¢)` is also possible; however, physical negative transactions are rather rarer, and usually of lower absolute value.)
Without an existing negative quarter it is more difficult to disrupt the virtual pair destruction event, but it is still possible. The usual process is to perform perform many thousands of long-distance, high-speed transactions near small objects of high value. The first negative coinage was produced by researchers in Switzerland, using Faberge eggs; since then negative quarters have also been independently produced using antimatter, common sense, and the kidnapped daughter of Bill Gates (later returned unharmed, with the demanded ransom unpaid).
In order to remove negative currency from their declared assets, banks have been known to surreptitiously hire construction companies to dispose of stacks of negative coins within the concrete of a building's foundation.
Tuesday, May 19, 2009
Review: Kikan (2/2)
(continued from last time)
So Kikan is, in fact, a complete and completed game (rather than a demo, a prologue, an introduction, or a “Part 1 of `n`” [for `n >= 2`]). This is an astonishing rarity amongst indie RPGs: most are only ever partially released, as many authors or groups never complete a game; and many of those who do release only the first portion for free, as teaserware. (And then there are those all-too-common individuals and works that fall into both categories. But I digress.)
Considered specifically as a console-style RPG, it is also a complete narrative; each part flows into the next sensibly. (With some bits of Fridge Logic, granted, but Fridge Logic rather than Wallbangers.) Though it is short, it does not appear particularly rushed; I would actually go so far as to prefer the adjective 'polished': I encountered exactly zero bugs. (This is rare enough in a professionally published game — much less an independent one made with a freeware game creation system!) There are also very few typos and misspellings.
There is also a sense of game balance; the game is neither awkwardly difficult nor absurdly easy. The level cap is 25, which is reasonable for the duration; it would perhaps have been nice to have it a few levels higher for the last sequence, but this was not actually necessary. (I cede that I have a tendency to overlevel in JRPGs.) The bosses are perhaps better described as ‘tedious’ than as ‘difficult’ — the bonus boss took an hour and two Megalixirs to defeat (although I could probably have gotten by with only one).
(As a negative: The Judgement Line — part of the combat system, requiring the spacebar to be pressed at certain times — is annoying in ways similar to Legend of Dragoon's system. I was mostly able to tolerate it (DDR is good for something, at least), but I did finally get fed up with it at the end, during the several-hours'-worth of boss battles.)
The puzzles are well-designed. One particularly fiendish Sokoban-style puzzle is optional, allowing you to bypass a boss if solved. There are also three optional minigames, all of relatively high quality. (One of them, being as it was a derivative of Tapper, sucked me in for an hour or two despite yielding at most very modest in-game rewards.)
The graphics are exactly as they should be, up to the limits of the system; they are notable as much for what isn't there (easily-added distracting frippery) as what is (individual enemy attack animations; just enough random variation in floor and wall texture to look believable).
Bonus points: the Blarney Stone is an equippable item. (And then minus half, for incorrectly referring to it as limestone.)
There are a number of in-jokey references made to other media (console JRPGs, ZZT/MegaZeux games, anime, etc.) — enough that I would find them grating in most media, but far, far fewer than would be expected in a MegaZeux game. (After the first section, fortunately, they almost vanish.)
The ending... the ending was basically what it should have been, given the game, and given the main character. I understand that. As an atheist, though, I don't really appreciate being expected to implicitly affirm the existence of God or positive qualities of faith-in-the-divine in order to complete the game. (I do give it credit that, unlike most such messages of this flavor, it was not a heavy-handed, sola-fide-based Christian-specific message. The protagonist was mentioned to have been a habitual churchgoer, but in this AU he could just as plausibly have been Discordian.)
So, eh. It cost me nothing but a bit of time — this has to factor into any review — but would I recommend this over the many other games available at the same price? Rrf. I would, if you're designing an RPG yourself, or interested in game design in general; it provides a number of positive examples. To anyone else... well, you have enough information by now to know what you would think. In the end, I'll have to simply rate it a 1/1, and move on.
So Kikan is, in fact, a complete and completed game (rather than a demo, a prologue, an introduction, or a “Part 1 of `n`” [for `n >= 2`]). This is an astonishing rarity amongst indie RPGs: most are only ever partially released, as many authors or groups never complete a game; and many of those who do release only the first portion for free, as teaserware. (And then there are those all-too-common individuals and works that fall into both categories. But I digress.)
Considered specifically as a console-style RPG, it is also a complete narrative; each part flows into the next sensibly. (With some bits of Fridge Logic, granted, but Fridge Logic rather than Wallbangers.) Though it is short, it does not appear particularly rushed; I would actually go so far as to prefer the adjective 'polished': I encountered exactly zero bugs. (This is rare enough in a professionally published game — much less an independent one made with a freeware game creation system!) There are also very few typos and misspellings.
There is also a sense of game balance; the game is neither awkwardly difficult nor absurdly easy. The level cap is 25, which is reasonable for the duration; it would perhaps have been nice to have it a few levels higher for the last sequence, but this was not actually necessary. (I cede that I have a tendency to overlevel in JRPGs.) The bosses are perhaps better described as ‘tedious’ than as ‘difficult’ — the bonus boss took an hour and two Megalixirs to defeat (although I could probably have gotten by with only one).
(As a negative: The Judgement Line — part of the combat system, requiring the spacebar to be pressed at certain times — is annoying in ways similar to Legend of Dragoon's system. I was mostly able to tolerate it (DDR is good for something, at least), but I did finally get fed up with it at the end, during the several-hours'-worth of boss battles.)
The puzzles are well-designed. One particularly fiendish Sokoban-style puzzle is optional, allowing you to bypass a boss if solved. There are also three optional minigames, all of relatively high quality. (One of them, being as it was a derivative of Tapper, sucked me in for an hour or two despite yielding at most very modest in-game rewards.)
The graphics are exactly as they should be, up to the limits of the system; they are notable as much for what isn't there (easily-added distracting frippery) as what is (individual enemy attack animations; just enough random variation in floor and wall texture to look believable).
Bonus points: the Blarney Stone is an equippable item. (And then minus half, for incorrectly referring to it as limestone.)
There are a number of in-jokey references made to other media (console JRPGs, ZZT/MegaZeux games, anime, etc.) — enough that I would find them grating in most media, but far, far fewer than would be expected in a MegaZeux game. (After the first section, fortunately, they almost vanish.)
The ending... the ending was basically what it should have been, given the game, and given the main character. I understand that. As an atheist, though, I don't really appreciate being expected to implicitly affirm the existence of God or positive qualities of faith-in-the-divine in order to complete the game. (I do give it credit that, unlike most such messages of this flavor, it was not a heavy-handed, sola-fide-based Christian-specific message. The protagonist was mentioned to have been a habitual churchgoer, but in this AU he could just as plausibly have been Discordian.)
So, eh. It cost me nothing but a bit of time — this has to factor into any review — but would I recommend this over the many other games available at the same price? Rrf. I would, if you're designing an RPG yourself, or interested in game design in general; it provides a number of positive examples. To anyone else... well, you have enough information by now to know what you would think. In the end, I'll have to simply rate it a 1/1, and move on.
Monday, May 18, 2009
The Oracle
She smiles serenely.
Her hundred perfect likenesses follow her, passing through one another though each is solid to the eye. Some try to cling to her robes; some cringe at her feet in fear; some pull away, though remain as though held by chains. Some whisper hatefully in her ears; some plead tearfully; some scream in wordless rage or terror. The sound is no more than a faint sussurus, though their hoarse words may be made out by any who choose to listen.
Her hair and her robes remain unruffled, except by the occasional draft.
She is served by a small group of people, of various ages. In times of prosperity, she may have as few as five servants, and those generally older; in times of ill fortune, she may have as many as twenty. All wear the same style of white robe that she (and her images) wear; they can and do speak freely, though they tend towards silence. They do not accompany her during an audience; those are kept private.
To each visitor, she herself voices only one phrase: a greeting, in the listener's native language, in what they consider to be an educated but familiar accent. (This has included sign languages.) All other conversation is carried out by telepathy (when words are required) or telempathy (where not); she seems to prefer the latter.
She has never exhibited anger, or even displeasure.
Edit 2009-05-19: Inserted horizontal rule. Everything below it is useless — or everything above it is box text.
Her hundred perfect likenesses follow her, passing through one another though each is solid to the eye. Some try to cling to her robes; some cringe at her feet in fear; some pull away, though remain as though held by chains. Some whisper hatefully in her ears; some plead tearfully; some scream in wordless rage or terror. The sound is no more than a faint sussurus, though their hoarse words may be made out by any who choose to listen.
Her hair and her robes remain unruffled, except by the occasional draft.
Her Servants
The Oracle is often petitioned by people who have suffered some loss, or who desire an unattainable redemption, or who simply have no direction in life. Sometimes they will ask her, — What shall I do? — and to this she will sometimes respond, — You shall serve me.
She chooses her servants as she does all else: wisely.
She is served by a small group of people, of various ages. In times of prosperity, she may have as few as five servants, and those generally older; in times of ill fortune, she may have as many as twenty. All wear the same style of white robe that she (and her images) wear; they can and do speak freely, though they tend towards silence. They do not accompany her during an audience; those are kept private.
To each visitor, she herself voices only one phrase: a greeting, in the listener's native language, in what they consider to be an educated but familiar accent. (This has included sign languages.) All other conversation is carried out by telepathy (when words are required) or telempathy (where not); she seems to prefer the latter.
She has never exhibited anger, or even displeasure.
Edit 2009-05-19: Inserted horizontal rule. Everything below it is useless — or everything above it is box text.
Sunday, May 17, 2009
Review: Kikan (1/2)
Kikan, by Luke Drelick, is a 2008 remake of a 2006 JRPG-style game for MegaZeux; it is available from the author's website, here.
I am of violently mixed opinion about this game.
For a MegaZeux game, it is uniformly excellent, and probably among the top in the medium. What problems I do have with it are largely problems endemic thereto — which is understandable considering that a) the culture surrounding MegaZeux is largely derived from the culture that surrounded ZZT, and b) the culture that surrounded ZZT was largely derived from America Online in its heyday. (I should know; I was there.)
But this review is supposed to be about Kikan, not MegaZeux.
Let me provide context. Kikan is set, at least for the most part, in a curious alternate-universe New York City. The boroughs are renamed with acronyms: BX, BK, QNS, MHT, SI, and the unseen but named LI (context: an alcoholic drink, "LI Iced Tea"). Only the term "Bronx" is ever actually used, and then only to refer to to the Bronx Zoo.
There is also gratuituous use of fanboy Japanese, except there is some implication that it's perfectly normal in-universe. The Twin Towers are called the Towers of Dub, rendered 「塔のダブ」. "Shoshinkai" (the historical name of a Nintendo trade show now called Nintendo Space World, even in Japanese) is shown as being held in NYC, and features banners for the XBox, Playstation, Square-Enix, Sega and Konami. The phrase 「デュキTV」 appears on almost every television set, and most of those have Sega Dreamcasts.
(As the title, Kikan, is not an in-world entity, it has no such excuse. Unfortunately it's not a single Japanese word, but about twenty different homophonic ones. The kanji provided (造機) are actually read zouki; the probable intended meaning of kikan is "Engine," as the author has also released another MegaZeux work by that name. Likewise unexcused is the use of Ougi (rather than, say, Tech) to denote special techniques and/or magic, and the セーブ on save-points.)
There is running political commentary, which may or may not be in-universe — but probably isn't entirely so, even though the political situation appears to be somewhat different than in OTL. The Nintendo Revolution's controller has just been introduced at the aforementioned Shoshinkai, presumably placing the time at around late 2005, but the economy is currently in a recession. The FARC is a threat to US national security and operates partially on U.S. soil (albeit only as drug-runners). The name Al-Qaeda isn't mentioned. (Fundamentalist Islam is mentioned in one of two strange conspiracy-theory diatribes, offered by random NPCs, which are "left-wing" only in the sense that the people whom they vilify are right-wing, or at least right-of-center.)
... and that last paragraph implies most of why I don't like Kikan. So, on to the parts I did like!
(Actually, since this post is getting a bit long, that's been postponed untiltomorrow later.)
Edit 2009-05-19: "Tomorrow". Ha.
I am of violently mixed opinion about this game.
For a MegaZeux game, it is uniformly excellent, and probably among the top in the medium. What problems I do have with it are largely problems endemic thereto — which is understandable considering that a) the culture surrounding MegaZeux is largely derived from the culture that surrounded ZZT, and b) the culture that surrounded ZZT was largely derived from America Online in its heyday. (I should know; I was there.)
But this review is supposed to be about Kikan, not MegaZeux.
Let me provide context. Kikan is set, at least for the most part, in a curious alternate-universe New York City. The boroughs are renamed with acronyms: BX, BK, QNS, MHT, SI, and the unseen but named LI (context: an alcoholic drink, "LI Iced Tea"). Only the term "Bronx" is ever actually used, and then only to refer to to the Bronx Zoo.
There is also gratuituous use of fanboy Japanese, except there is some implication that it's perfectly normal in-universe. The Twin Towers are called the Towers of Dub, rendered 「塔のダブ」. "Shoshinkai" (the historical name of a Nintendo trade show now called Nintendo Space World, even in Japanese) is shown as being held in NYC, and features banners for the XBox, Playstation, Square-Enix, Sega and Konami. The phrase 「デュキTV」 appears on almost every television set, and most of those have Sega Dreamcasts.
(As the title, Kikan, is not an in-world entity, it has no such excuse. Unfortunately it's not a single Japanese word, but about twenty different homophonic ones. The kanji provided (造機) are actually read zouki; the probable intended meaning of kikan is "Engine," as the author has also released another MegaZeux work by that name. Likewise unexcused is the use of Ougi (rather than, say, Tech) to denote special techniques and/or magic, and the セーブ on save-points.)
There is running political commentary, which may or may not be in-universe — but probably isn't entirely so, even though the political situation appears to be somewhat different than in OTL. The Nintendo Revolution's controller has just been introduced at the aforementioned Shoshinkai, presumably placing the time at around late 2005, but the economy is currently in a recession. The FARC is a threat to US national security and operates partially on U.S. soil (albeit only as drug-runners). The name Al-Qaeda isn't mentioned. (Fundamentalist Islam is mentioned in one of two strange conspiracy-theory diatribes, offered by random NPCs, which are "left-wing" only in the sense that the people whom they vilify are right-wing, or at least right-of-center.)
... and that last paragraph implies most of why I don't like Kikan. So, on to the parts I did like!
(Actually, since this post is getting a bit long, that's been postponed until
Edit 2009-05-19: "Tomorrow". Ha.
Saturday, May 16, 2009
On Hubris
So I may have recently mentioned something about my uptime.
Should've kept my mouth shut, shouldn't I?
So I'm invoking the computer failure clause while I get this system patched and cleaned and updated and virus-scanned and so forth. There's no way to tell for sure, of course, but I suspect that the crash was due to a faulty video driver; apparently the system couldn't handle the loads that MegaZeux was putting on it. (Ha.) Among the patches is a new driver, though, so that should help; I may even be able to play some of the games I've been putting off playing.
Should've kept my mouth shut, shouldn't I?
So I'm invoking the computer failure clause while I get this system patched and cleaned and updated and virus-scanned and so forth. There's no way to tell for sure, of course, but I suspect that the crash was due to a faulty video driver; apparently the system couldn't handle the loads that MegaZeux was putting on it. (Ha.) Among the patches is a new driver, though, so that should help; I may even be able to play some of the games I've been putting off playing.
Friday, May 15, 2009
A World, Inverted*
So, here we are in the world inside the world. Beneath your feet is rough terrain: to your left is a wormy, brainlike structure which, after a moment, you realize is the inverse of an ant mound.
Overhead, there is the sky, which is the center of the earth. As one proceeds farther up (which is in), the 'air' pressure increases to unsurvivable levels. People don't generally do that. There's a little bit of heat radiating from it, but not much. Somewhere within there is a distant twinkling, as of moving water; perhaps within sight is a tremendous, slow-pouring waterfall.
There is a day/night cycle of sorts. Co-photons pass through the Earth, striking the far side from the sun, which is thereby illuminated. On the far side, the sky is dark, but the ground glows brightly; on the near side, the ground is dark, but the far side (seen dimly through three or four thousand miles of intervening worldspace) generally provides enough light to see by, weather permitting. The undersides of particularly dense objects on the near side sometimes glimmer. (Their historical analogue to geocentrism was that the world floated in a sea of hot liquid, and spun. They did eventually figure out where the sun actually was, based on light-angles and parallax; this came as quite a shock.)
* (With apologies to Christopher Priest... wait a minute. I've used this title before, haven't I?)
Overhead, there is the sky, which is the center of the earth. As one proceeds farther up (which is in), the 'air' pressure increases to unsurvivable levels. People don't generally do that. There's a little bit of heat radiating from it, but not much. Somewhere within there is a distant twinkling, as of moving water; perhaps within sight is a tremendous, slow-pouring waterfall.
There is a day/night cycle of sorts. Co-photons pass through the Earth, striking the far side from the sun, which is thereby illuminated. On the far side, the sky is dark, but the ground glows brightly; on the near side, the ground is dark, but the far side (seen dimly through three or four thousand miles of intervening worldspace) generally provides enough light to see by, weather permitting. The undersides of particularly dense objects on the near side sometimes glimmer. (Their historical analogue to geocentrism was that the world floated in a sea of hot liquid, and spun. They did eventually figure out where the sun actually was, based on light-angles and parallax; this came as quite a shock.)
* (With apologies to Christopher Priest... wait a minute. I've used this title before, haven't I?)
Thursday, May 14, 2009
Topological inversion (continued)
(continued from last post)
Note that large quantities of goods must often be transported to specific locations in A-side or B-side — to select a relevant example, shopping malls. Since A-side shopping malls must receive many goods, they can reduce the cost of transportation by installing a cross-boundary transport facility to receive them directly from B-side.
A B-side shopping mall, however, also has to receive many goods. Since B-side transportation is cheaper, it's going to act much like an ordinary real-world mall, receiving many large shipments.
(I seem to have kind of wandered away from the original point — all of this actually applies to a world-behind-the-mirror, too, assuming it's coherent enough to have an economy rather than running entirely on whimsy and/or madness.)
This sole bit of commonality between the two — receipt of many B-side deliveries — is probably sufficient to justify building an A-side and B-side mall in the same location. Not to mention that if they're owned and managed by the same company you get savings in administrative costs; construction is probably cheaper (only one structure to build); and individual stores can possibly be transboundary if they sell things that both worlds want to buy. (There almost certainly must be some such things; otherwise, in what worthwhile currency can A-side pay its transportation fees?)
So a shopping mall can, and probably will, exist in two worlds at once. (Whether this is 'any arbitrary shopping mall' or 'some specific shopping mall' is likely to depend on how long crossboundary travel has been available.) Consider the architecture of a mall that is intended to provide service to more than one world. For mirrors this is probably simple, since you would just have the same architecture duplicated and reflected, but a people-in-the-walls scenario is more interesting. One or the other of the two malls would probably be "underground" (likely the B-side mall, to make deliveries simpler).
(TBC: never mind day-to-day life, what does the world look like?)
Note that large quantities of goods must often be transported to specific locations in A-side or B-side — to select a relevant example, shopping malls. Since A-side shopping malls must receive many goods, they can reduce the cost of transportation by installing a cross-boundary transport facility to receive them directly from B-side.
A B-side shopping mall, however, also has to receive many goods. Since B-side transportation is cheaper, it's going to act much like an ordinary real-world mall, receiving many large shipments.
(I seem to have kind of wandered away from the original point — all of this actually applies to a world-behind-the-mirror, too, assuming it's coherent enough to have an economy rather than running entirely on whimsy and/or madness.)
This sole bit of commonality between the two — receipt of many B-side deliveries — is probably sufficient to justify building an A-side and B-side mall in the same location. Not to mention that if they're owned and managed by the same company you get savings in administrative costs; construction is probably cheaper (only one structure to build); and individual stores can possibly be transboundary if they sell things that both worlds want to buy. (There almost certainly must be some such things; otherwise, in what worthwhile currency can A-side pay its transportation fees?)
So a shopping mall can, and probably will, exist in two worlds at once. (Whether this is 'any arbitrary shopping mall' or 'some specific shopping mall' is likely to depend on how long crossboundary travel has been available.) Consider the architecture of a mall that is intended to provide service to more than one world. For mirrors this is probably simple, since you would just have the same architecture duplicated and reflected, but a people-in-the-walls scenario is more interesting. One or the other of the two malls would probably be "underground" (likely the B-side mall, to make deliveries simpler).
(TBC: never mind day-to-day life, what does the world look like?)
Wednesday, May 13, 2009
Topological inversion
So despite the relative recency of the world-behind-the-mirror concept, it's already overused. Let's twist it a bit instead.
Consider a world which, effectively, has usable space where we have impermeable material, and impermeable material where we have usable space. The exact mechanism is not important: perhaps there is a race of xornlike creatures to whom air is toxic and corrosive; perhaps the beings-in-the-walls actually exist ‘above’ the world, ‘phased out’ slightly in a manner that isn't possible in a region of space with such low energy density as open air. All that's necessary is that the boundary be impermeable both ways.
Now if the boundary really is completely impermeable, there would be no way of knowing of the other side's existence. (Well, modulo the fact that, a. the boundary isn't immutable because objects aren't, and b. oh hey, physics doesn't work like that. But we shall handwave both of these away.) However, if the bounadry is only mostly impermeable, we have interesting consequences.
Transportation of goods will almost certainly be cheaper on one side or the other. Which is which depends on fiddly irrelevant details of the technobabble, each side's social development, and plot requirements; but we'll call the one where transportation is more expensive A-side, and where it is cheaper B-side. Given the ability to transport goods across the A-B boundary at reasonably available locations and relatively low amortized prices (possibly ‘anywhere, anytime’; possibly only at fixed but constructible portals), one can save money on the transportation of A-side goods between points in A-side by transporting them through B-side.
(TBC)
Consider a world which, effectively, has usable space where we have impermeable material, and impermeable material where we have usable space. The exact mechanism is not important: perhaps there is a race of xornlike creatures to whom air is toxic and corrosive; perhaps the beings-in-the-walls actually exist ‘above’ the world, ‘phased out’ slightly in a manner that isn't possible in a region of space with such low energy density as open air. All that's necessary is that the boundary be impermeable both ways.
Now if the boundary really is completely impermeable, there would be no way of knowing of the other side's existence. (Well, modulo the fact that, a. the boundary isn't immutable because objects aren't, and b. oh hey, physics doesn't work like that. But we shall handwave both of these away.) However, if the bounadry is only mostly impermeable, we have interesting consequences.
Transportation of goods will almost certainly be cheaper on one side or the other. Which is which depends on fiddly irrelevant details of the technobabble, each side's social development, and plot requirements; but we'll call the one where transportation is more expensive A-side, and where it is cheaper B-side. Given the ability to transport goods across the A-B boundary at reasonably available locations and relatively low amortized prices (possibly ‘anywhere, anytime’; possibly only at fixed but constructible portals), one can save money on the transportation of A-side goods between points in A-side by transporting them through B-side.
(TBC)
Tuesday, May 12, 2009
Excerpted from the 2077 State of the Union Address
(Excerpted from the 2077 State of the Union Address, the first such by President Joseph Franklin.)
... Almost seventy years ago, in the time of President Barack Obama, this nation undertook a collection of research and engineering projects which — it must be admitted — were successful in their endeavor: to free us from our dependence on importation of fossil fuels from foreign powers. The old infrastructure of coal-burning energy centers and internal-combustion engines has now been almost completely dismantled, replaced by heliothermal plants and cheap, replaceable transkews*.
Ironically, this goal was once known as “energy independence”. Instead, it has had the exact contrary effect: to tie us far more strongly to a power more foreign, and more intrinsically and fundamentally hostile, than any nation of this Earth.
It is therefore imperative, and vital to the security of our country, that this Congress act immediately to fund alternative energy sources, and thereby break our current crippling dependence on foreign energy. America is not safe unless she is independent; and she is not independent while she relies on the Sun.
* transkew /ˌtʃɹæns.kjuː/ n. common term for any photovoltaic cell with efficiency exceeding the Shockley-Queisser limit [< contraction of trans-SQ < trans`{::}^{1}` + Shockley-Queisser; fpc. 2021]
... Almost seventy years ago, in the time of President Barack Obama, this nation undertook a collection of research and engineering projects which — it must be admitted — were successful in their endeavor: to free us from our dependence on importation of fossil fuels from foreign powers. The old infrastructure of coal-burning energy centers and internal-combustion engines has now been almost completely dismantled, replaced by heliothermal plants and cheap, replaceable transkews*.
Ironically, this goal was once known as “energy independence”. Instead, it has had the exact contrary effect: to tie us far more strongly to a power more foreign, and more intrinsically and fundamentally hostile, than any nation of this Earth.
It is therefore imperative, and vital to the security of our country, that this Congress act immediately to fund alternative energy sources, and thereby break our current crippling dependence on foreign energy. America is not safe unless she is independent; and she is not independent while she relies on the Sun.
* transkew /ˌtʃɹæns.kjuː/ n. common term for any photovoltaic cell with efficiency exceeding the Shockley-Queisser limit [< contraction of trans-SQ < trans`{::}^{1}` + Shockley-Queisser; fpc. 2021]
Monday, May 11, 2009
Through the looking-glass
The concept of an other-world on the other side of the mirror is firmly embedded in our cultural consciousness, or akashic memory, or whatever the currently-in-vogue name for yeah, everybody knows about that is.
Mirrors (quoth the Font of All Knowledge) themselves are thousands of years old: eight thousand for the oldest incarnations in obsidian; various polished substances around six; but the concept of mirror-as-gateway is much more recent — I can't find a single citation verifiably earlier than Lewis Carroll! A large part of this is possibly that mirrors, up until very recently, weren't very large: they were mostly hand-held objects, too small to even consider stepping through, and rarely affixed to walls, and it was only around the late ninteenth century that full-length mirrors became feasible.
It's actually difficult to find any mythological references to mirrors, since myth, literature, and art are all themselves so often metaphorically described as mirrors. There is, of course, Yata no Kagami, said to be the mirror hung by Ama-no-Uzume to lure Amaterasu from her hiding-place; of probably loosely the same vintage, but half a world away, is Tezcatlipōca, the malefic deity known as [the] Smoking Mirror. Allegedly there is also a Jewish myth (which, if it is a real myth and not a modern invention, is quite possibly older than the previous two put together) involving a mirror possessed by a demon. None of these feature mirrors as portals or gateways.
(possibly TBC)
Mirrors (quoth the Font of All Knowledge) themselves are thousands of years old: eight thousand for the oldest incarnations in obsidian; various polished substances around six; but the concept of mirror-as-gateway is much more recent — I can't find a single citation verifiably earlier than Lewis Carroll! A large part of this is possibly that mirrors, up until very recently, weren't very large: they were mostly hand-held objects, too small to even consider stepping through, and rarely affixed to walls, and it was only around the late ninteenth century that full-length mirrors became feasible.
It's actually difficult to find any mythological references to mirrors, since myth, literature, and art are all themselves so often metaphorically described as mirrors. There is, of course, Yata no Kagami, said to be the mirror hung by Ama-no-Uzume to lure Amaterasu from her hiding-place; of probably loosely the same vintage, but half a world away, is Tezcatlipōca, the malefic deity known as [the] Smoking Mirror. Allegedly there is also a Jewish myth (which, if it is a real myth and not a modern invention, is quite possibly older than the previous two put together) involving a mirror possessed by a demon. None of these feature mirrors as portals or gateways.
(possibly TBC)
Sunday, May 10, 2009
The Flaxen Femme Fatale
The Flaxen Femme Fatale is a 2008 gonzo comedy science-fiction detective novel by John Zakour, sixth in a series of such starring the last freelance P.I. on earth, Zachary Nixon "Zach" Johnson. (If you noticed the similarities between the author's and protagonists' names, you win a no-prize.)
Hitherto I've only read the first novel in the series, The Plutonium Blonde, and that many years ago. I was initially worried about missing out on the intervening novels, but it turns out that that's actually not all that important, for two reasons: a) the author is kind enough to fill people like me in on the relevant bits of the backstory as they come up, and b) it's two-fisted action and madcap antics set in a world with comic-book physics; continuity isn't the point.
All in all, it is exactly what it tries to be: an entertaining read. (Which is more than many books manage.) I have no reservations at all in rating it a cheerful 1 out of 1, and cheerfully recommend it. Even without reading any of the first five books.
Hitherto I've only read the first novel in the series, The Plutonium Blonde, and that many years ago. I was initially worried about missing out on the intervening novels, but it turns out that that's actually not all that important, for two reasons: a) the author is kind enough to fill people like me in on the relevant bits of the backstory as they come up, and b) it's two-fisted action and madcap antics set in a world with comic-book physics; continuity isn't the point.
“Don't spin him around too much. Believe me, you don't want an Elvis to barf on you.” Yes, I was speaking from experience.It reminds me most of Sam and Max. Yes, there's a plot, with recognizable (if four-color) characters, but they're not the point either; the psychics and aliens and mad scientists and superpowered politicians and loons and freaks and goons and geeks (our tenacious protagonist arguably being included in all four of those last) are really all just a medium by which may be delivered hilarity.— Zach Johnson, The Flaxen Femme Fatale
All in all, it is exactly what it tries to be: an entertaining read. (Which is more than many books manage.) I have no reservations at all in rating it a cheerful 1 out of 1, and cheerfully recommend it. Even without reading any of the first five books.
Saturday, May 9, 2009
Cheese Primer
Cheese Primer, by Steven Jenkins, is a nonfiction work, about (can you guess?) cheese.
For reasons I'll explain later, I'm taking the unprecedented step of reviewing a book I have not read in full. This is perhaps a lesser crime for nonfiction than for fiction, but it nonetheless deserves disclaimer.
The book (pardon the pun) grates, in places. Mr. Jenkins takes something of an anti-scientific stance, unable to apprehend the distinction between science and business decisions — or, in at least one case, the distinction between science and bureaucracy.
He does seem to know his cheeses, cheesemaking, politics (where concerning cheese), and history (ditto), though; his descriptions and chosen illustrations constantly induce salivation. (This is the reason I had to stop reading: if I didn't, I was going to head out to try to get some cheese.) The descriptions of the tastes of individual cheeses are certainly accurate as far as I know them, and very likely farther.
Scattered throughout the book is advice on serving cheese, sometimes with simple recipes; some of it is reasonable, some brilliant, and some questionable — his advice on pairing cheeses with wines is ... amusing: to serve a cheese with a wine from the same region, and nothing more. (At this point, admittedly, I disdain cheese/wine pairing as astrology.)
Considered strictly as a book, the writing needs some cleanup; he repeats himself in places.
Overall, I'm not sure I can recommend it; it's a bit old (things do happen, you know). Still, it's informative, and I'm hungry. (I shan't rate it, though, until I try a couple of his suggestions.)
For reasons I'll explain later, I'm taking the unprecedented step of reviewing a book I have not read in full. This is perhaps a lesser crime for nonfiction than for fiction, but it nonetheless deserves disclaimer.
The book (pardon the pun) grates, in places. Mr. Jenkins takes something of an anti-scientific stance, unable to apprehend the distinction between science and business decisions — or, in at least one case, the distinction between science and bureaucracy.
He does seem to know his cheeses, cheesemaking, politics (where concerning cheese), and history (ditto), though; his descriptions and chosen illustrations constantly induce salivation. (This is the reason I had to stop reading: if I didn't, I was going to head out to try to get some cheese.) The descriptions of the tastes of individual cheeses are certainly accurate as far as I know them, and very likely farther.
Scattered throughout the book is advice on serving cheese, sometimes with simple recipes; some of it is reasonable, some brilliant, and some questionable — his advice on pairing cheeses with wines is ... amusing: to serve a cheese with a wine from the same region, and nothing more. (At this point, admittedly, I disdain cheese/wine pairing as astrology.)
Considered strictly as a book, the writing needs some cleanup; he repeats himself in places.
Overall, I'm not sure I can recommend it; it's a bit old (things do happen, you know). Still, it's informative, and I'm hungry. (I shan't rate it, though, until I try a couple of his suggestions.)
Friday, May 8, 2009
Downtime, or the lack thereof
So far this system (which, I should note, is running an older version of Windows) has been up for a confirmed 4224 hours (176 days).
That's a lower bound: it's based on the sum of the CPU times of the longest-running processes, as provided by Task Manager. (Multiprocessor or multicore systems will need to divide that figure by the number of processors they have; this is a single-processor system, though.) Since I know I've had to restart Firefox (46+ hours) on a number of occasions — every time a new version has been released in the last six months, for instance — I know it's actually been up longer than that. (Possibly much longer: Firefox tends to consistently take up 10-20% of my total CPU time, so I might be justified in multiplying that figure by 1.1-1.25.)
Half of a year is 182.5 days.
This blog, the Edit Posts interface tells me, has had 166 posts made to it since it was started (not counting this one). A post has been made every single day. Since two of those 166 posts were made on the same day (March 15), it's only been around for 165 days.
— and I have just thought to check the event log, and it reads as having been started on the morning of October 11, 2008. So apparently I am on a three-year-old Windows PC, running a version of Windows that is significantly older than that, that has been up for 209 days despite daily active use. If you had asked me this time last year if such a thing were possible, especially with me as the user, I would probably have bet significant amounts of money that it couldn't ever have happened.
Also, I have been rereading old posts, and suddenly desperately want a very good sandwich.
That's a lower bound: it's based on the sum of the CPU times of the longest-running processes, as provided by Task Manager. (Multiprocessor or multicore systems will need to divide that figure by the number of processors they have; this is a single-processor system, though.) Since I know I've had to restart Firefox (46+ hours) on a number of occasions — every time a new version has been released in the last six months, for instance — I know it's actually been up longer than that. (Possibly much longer: Firefox tends to consistently take up 10-20% of my total CPU time, so I might be justified in multiplying that figure by 1.1-1.25.)
Half of a year is 182.5 days.
This blog, the Edit Posts interface tells me, has had 166 posts made to it since it was started (not counting this one). A post has been made every single day. Since two of those 166 posts were made on the same day (March 15), it's only been around for 165 days.
— and I have just thought to check the event log, and it reads as having been started on the morning of October 11, 2008. So apparently I am on a three-year-old Windows PC, running a version of Windows that is significantly older than that, that has been up for 209 days despite daily active use. If you had asked me this time last year if such a thing were possible, especially with me as the user, I would probably have bet significant amounts of money that it couldn't ever have happened.
Also, I have been rereading old posts, and suddenly desperately want a very good sandwich.
Thursday, May 7, 2009
Not technically a dream, even if I am tired enough
So I pulled my leg up to the workbench and started taking it apart.
The insides, of course, didn't make any sense. There were three large gears that weren't connected to anything (including each other) but when they were turned, they turned in sync. A strand of muscle coiled through the holes of one gear, being stretched ever more tightly as the gear spun, never releasing. It wasn't really supposed to do that, I didn't think.
I was able to figure out the immediate problem, anyway: two of the gears weren't touching. I pulled them together and pushed for a bit; they seemed to hold.
I tried to put the leg back together, but the latches wouldn't stick. Apparently some of the tiniest gear-chains (long strands of turning gears that somehow held together, despite not having fixed axles, usually running taut between two parts of the system) had come free and gotten into the latch mechanism itself, which was needlessly complicated.
Eventually what I ended up doing was disassembling the electric motor from my ceiling fan, and using the magnet inside to tease the gear-chains back into place. I never finished; I was still occupied with that when I stepped away for a moment (somehow now having two legs) to deal with the UPS delivery guy dropping off a replacement ceiling fan which was a) the wrong color, and b) stolen merchandise (according to the package description on the pad I had to sign).
The insides, of course, didn't make any sense. There were three large gears that weren't connected to anything (including each other) but when they were turned, they turned in sync. A strand of muscle coiled through the holes of one gear, being stretched ever more tightly as the gear spun, never releasing. It wasn't really supposed to do that, I didn't think.
I was able to figure out the immediate problem, anyway: two of the gears weren't touching. I pulled them together and pushed for a bit; they seemed to hold.
I tried to put the leg back together, but the latches wouldn't stick. Apparently some of the tiniest gear-chains (long strands of turning gears that somehow held together, despite not having fixed axles, usually running taut between two parts of the system) had come free and gotten into the latch mechanism itself, which was needlessly complicated.
Eventually what I ended up doing was disassembling the electric motor from my ceiling fan, and using the magnet inside to tease the gear-chains back into place. I never finished; I was still occupied with that when I stepped away for a moment (somehow now having two legs) to deal with the UPS delivery guy dropping off a replacement ceiling fan which was a) the wrong color, and b) stolen merchandise (according to the package description on the pad I had to sign).
Wednesday, May 6, 2009
Son of a Witch (continued)
So, no, it's not (as I said) an inherently bad thing that Son of a Witch is no longer particularly based on Baum's Oz; but it does mean that the book has to be judged on its own merits. Unfortunately, on those, it doesn't seem to stand up, and the way in which it fails to do so leads us back where we started.
Son of a Witch is very striking where it can hold itself up to Baum's Oz (and Fleming's), where the contrast between those shows the novelty and brilliance of Maguire's reimagining of Oz: the conversation with Dorothy, or the interaction of Animals with human(oid) society — scattered twinkling points from a twisted lattice.
And then Maguire fills in the spaces between those points of light with all the grace and curvature of a turtle doing connect-the-dots puzzles, inked in the tarry black of current-day headline news and the much-trodden-carpet brown of Generic Fantasy Land #3b; the result is something that reads, outside those few compelling passages, very much like a McDonald's hamburger tastes.
(Yes, the metaphor-mixer is stuck on frappé. Shut up.)
Since the next book in the series, A Lion Among Men, necessarily primarily concerns at least one of the Baumian characters, it has every chance of avoiding the above; but even though I'm not yet personally going to drop The Wicked Years entirely, I can't justify recommending anything past Wicked to the casual reader.
Unlike the last sequel I read, I can justify giving Son of a Witch a numerical rating; what I can't justify is making that rating any better than a (somewhat disappointing) 1 out of 1.
Son of a Witch is very striking where it can hold itself up to Baum's Oz (and Fleming's), where the contrast between those shows the novelty and brilliance of Maguire's reimagining of Oz: the conversation with Dorothy, or the interaction of Animals with human(oid) society — scattered twinkling points from a twisted lattice.
And then Maguire fills in the spaces between those points of light with all the grace and curvature of a turtle doing connect-the-dots puzzles, inked in the tarry black of current-day headline news and the much-trodden-carpet brown of Generic Fantasy Land #3b; the result is something that reads, outside those few compelling passages, very much like a McDonald's hamburger tastes.
(Yes, the metaphor-mixer is stuck on frappé. Shut up.)
Since the next book in the series, A Lion Among Men, necessarily primarily concerns at least one of the Baumian characters, it has every chance of avoiding the above; but even though I'm not yet personally going to drop The Wicked Years entirely, I can't justify recommending anything past Wicked to the casual reader.
Unlike the last sequel I read, I can justify giving Son of a Witch a numerical rating; what I can't justify is making that rating any better than a (somewhat disappointing) 1 out of 1.
Tuesday, May 5, 2009
We interrupt your regularly-scheduled book review to bring you random things I found on the Internet today.
First, the so-called "Disappearing Car Door." This is the second automotive anything I've ever actually wanted, and the first was (and still is) the Prius' bidirectional electromechanical conversion system. Alas, it's only tenuously real, as the comments here indicate — and there is corroboration to be had; one of the prototypes that Joalto Design made was even auctioned on eBay in 2007. (The Jatech LLC advertising this technology is the reincarnation of Joalto Design, the CEO being one John A. Townsend.) Unlike some of the commenters, I do think it's feasible to retrofit an existing car to use these, but it would involve monkeying with the suspension to raise the ride height.
(I'd also have given it a more engineerish name for marketing purposes than "Disappearing Car Door," but as the Wii has demonstrated how little this matters, I will set that aside and move on.)
Also, go here for a detailed explanation of what is, strangely, called the Droste effect (the original Droste picture was much simpler, being merely recursive, with no deformation). Then go here for what people do with (mostly) conformal mappings.
Also, second best anagram ever.
First, the so-called "Disappearing Car Door." This is the second automotive anything I've ever actually wanted, and the first was (and still is) the Prius' bidirectional electromechanical conversion system. Alas, it's only tenuously real, as the comments here indicate — and there is corroboration to be had; one of the prototypes that Joalto Design made was even auctioned on eBay in 2007. (The Jatech LLC advertising this technology is the reincarnation of Joalto Design, the CEO being one John A. Townsend.) Unlike some of the commenters, I do think it's feasible to retrofit an existing car to use these, but it would involve monkeying with the suspension to raise the ride height.
(I'd also have given it a more engineerish name for marketing purposes than "Disappearing Car Door," but as the Wii has demonstrated how little this matters, I will set that aside and move on.)
Also, go here for a detailed explanation of what is, strangely, called the Droste effect (the original Droste picture was much simpler, being merely recursive, with no deformation). Then go here for what people do with (mostly) conformal mappings.
Also, second best anagram ever.
Monday, May 4, 2009
Son of a Witch
Son of a Witch, first published in 2005, is the sequel to the novel Wicked, and therefore the second novel in Gregory Maguire's series now entitled The Wicked Years. It follows the trials, travails, and travels of the eponymous Liir, who is technically only very plausibly the son of the erstwhile and so-called "Wicked Witch of the West," Elphaba Thropp.
When Wicked came out, it had a certain freshness: a newness of concept that even other Oz fiction had not trod. (I consider here only the professionally-written and published Oz fanfiction.) Son of a Witch has lost that freshness. Moreover (or, perhaps, instead), where The Wonderful Wizard of Oz (and perhaps even Wicked) had a certain timelessness to them, Son of a Witch feels very much like what it is: a novel of the early 21st century.
Its last strong connection to the Oz of the novels is Dorothy Gale herself, who is probably the only character in the entire series about whom it can honestly be said, at all times, that she means well; she features only briefly, in a few flashbacks. As most fanfics become over time, The Wicked Years' second installment is a thing in and of of itself more than it is an work based on Oz — a continuation of Maguire's work, rather than of Baum's.
This is not an inherently bad thing, but it should be recognized.
(possibly continued tomorrow)
When Wicked came out, it had a certain freshness: a newness of concept that even other Oz fiction had not trod. (I consider here only the professionally-written and published Oz fanfiction.) Son of a Witch has lost that freshness. Moreover (or, perhaps, instead), where The Wonderful Wizard of Oz (and perhaps even Wicked) had a certain timelessness to them, Son of a Witch feels very much like what it is: a novel of the early 21st century.
Its last strong connection to the Oz of the novels is Dorothy Gale herself, who is probably the only character in the entire series about whom it can honestly be said, at all times, that she means well; she features only briefly, in a few flashbacks. As most fanfics become over time, The Wicked Years' second installment is a thing in and of of itself more than it is an work based on Oz — a continuation of Maguire's work, rather than of Baum's.
This is not an inherently bad thing, but it should be recognized.
(possibly continued tomorrow)
Sunday, May 3, 2009
A World Too Near
A World Too Near, by Kay Kenyon, is the second novel in her series The Entire and the Rose.
It features, among many other things, militarized nanotechnology, exotic matter, quantum computation, artificial sapience, quasidystopia, black holes as (part of) a method for interstellar travel, a separate method of interuniversal travel, and an oblique and innominate reference to the Kardashev scale. Intuitively I nonetheless classify it as fantasy, rather than science fiction.
(The first one I would actually slightly classify as SFnal almost entirely due to the opening bit, where a machine sapient goes off track not because of some unknowable fundamental quality of AI but because an intern did something very stupid while logged in with administrator privileges.)
One of the things that strikes me is the curious submissiveness and tendency towards obedience of the native species of the Entire. (Their likely-true creation myth, that they were once automata of the Tarig, goes a fair way towards explaining this tendency, if not the tendency of those that spend time around our trifecta of protagonists to ... well, go off track, developing willfulness, as Ji Anzi does. Perhaps the Quinns have somehow obtained administrator privileges? I may have to reconsider my classification.)
My favorite bit of the series so far is the vicious subversion of the "psychic animal companion" trope: there are, essentially, psychic horses which form bonds with their riders, and Sydney Quinn is among those riders — but this is really a form of slavery. And no, the horses aren't the ones enslaved. (Although this actually showed up, and was made quite clear, in the last book: the notable bit in this one is that Inyx-to-Inyx telepathic transmission does not, unlike most of the rest of the Entire, respect speed-of-light limitations.)
The Tarig, lords and masters of the Entire — gods, in all but name, though one of their few surprising and redeeming qualities is that they don't claim that name — anyway, the Tarig are all creepy gits. They are described as inhuman in thought and emotion, but they certainly seem as human in motive, if not more so, than many of the Chalin (human? human-analogue?) residents of the Entire. Perhaps this is why the Chalin (and Gond, and Hirrin, and other races of the Entire) don't understand the Tarig, seeing them as incomprehensible? (Although it's usually easier to empathize with the latter than the former, as the former are, largely, Quite Mad.)
All in all I can't honestly rate it. This is a bridge between the opening and the conclusion, and its rating is dependent on how well it serves that function — and that is dependent on what the conclusion is. (A journey may be enjoyable for itself, but it is a quality of at least this journey that it leads to a particular place. We'll see where that is, shall we?)
It features, among many other things, militarized nanotechnology, exotic matter, quantum computation, artificial sapience, quasidystopia, black holes as (part of) a method for interstellar travel, a separate method of interuniversal travel, and an oblique and innominate reference to the Kardashev scale. Intuitively I nonetheless classify it as fantasy, rather than science fiction.
(The first one I would actually slightly classify as SFnal almost entirely due to the opening bit, where a machine sapient goes off track not because of some unknowable fundamental quality of AI but because an intern did something very stupid while logged in with administrator privileges.)
One of the things that strikes me is the curious submissiveness and tendency towards obedience of the native species of the Entire. (Their likely-true creation myth, that they were once automata of the Tarig, goes a fair way towards explaining this tendency, if not the tendency of those that spend time around our trifecta of protagonists to ... well, go off track, developing willfulness, as Ji Anzi does. Perhaps the Quinns have somehow obtained administrator privileges? I may have to reconsider my classification.)
My favorite bit of the series so far is the vicious subversion of the "psychic animal companion" trope: there are, essentially, psychic horses which form bonds with their riders, and Sydney Quinn is among those riders — but this is really a form of slavery. And no, the horses aren't the ones enslaved. (Although this actually showed up, and was made quite clear, in the last book: the notable bit in this one is that Inyx-to-Inyx telepathic transmission does not, unlike most of the rest of the Entire, respect speed-of-light limitations.)
The Tarig, lords and masters of the Entire — gods, in all but name, though one of their few surprising and redeeming qualities is that they don't claim that name — anyway, the Tarig are all creepy gits. They are described as inhuman in thought and emotion, but they certainly seem as human in motive, if not more so, than many of the Chalin (human? human-analogue?) residents of the Entire. Perhaps this is why the Chalin (and Gond, and Hirrin, and other races of the Entire) don't understand the Tarig, seeing them as incomprehensible? (Although it's usually easier to empathize with the latter than the former, as the former are, largely, Quite Mad.)
All in all I can't honestly rate it. This is a bridge between the opening and the conclusion, and its rating is dependent on how well it serves that function — and that is dependent on what the conclusion is. (A journey may be enjoyable for itself, but it is a quality of at least this journey that it leads to a particular place. We'll see where that is, shall we?)
Saturday, May 2, 2009
What qualifies as "illness"?
I should really have clarified that when I set out the initial conditions.
I'm pretty sure anything that involves going to the emergency room qualifies, though.
I've merely been given analgesics and abjurations against ambulation; I'll be fine, I'm sure, but this hasn't been a great week.
I'm pretty sure anything that involves going to the emergency room qualifies, though.
I've merely been given analgesics and abjurations against ambulation; I'll be fine, I'm sure, but this hasn't been a great week.
Friday, May 1, 2009
Today, I have
Today, I have purchased a copy of A World Too Near. I have in fact already finished reading it: just under two hours' work, completed just under two minutes from midnight.
This is not important.
Today, I have purchased also a box of blueberry chocolates, by Harry & David.
This is.
Moreover, it is important — and desperately so — that they are delicious. They closely resemble extra-large almond M&Ms, except with dried blueberries instead of almonds at the center, and made with much, much better chocolate.
They are also the sort of purple to inspire a certain color of prose.
Alternately, they resemble in size and coloration nothing so much as Kalamata olives; and, having also just had some of the latter, I assert that they resemble in taste precisely the opposition thereof — sweet and rich and melting where the olive is tart and spiky, two delicious contrasting extremes.
Not at the same time, obviously. I shouldn't at all like to combine them in an uncontrolled environment; there might be a sudden and catastrophic release of energy equivalent to the detonation of approximately 5.5 megatons of TNT, releasing high-energy edysmons and geusmons across the Houston area. Cloudy with a chance of mushrooms.
This is not important.
Today, I have purchased also a box of blueberry chocolates, by Harry & David.
This is.
Moreover, it is important — and desperately so — that they are delicious. They closely resemble extra-large almond M&Ms, except with dried blueberries instead of almonds at the center, and made with much, much better chocolate.
They are also the sort of purple to inspire a certain color of prose.
Alternately, they resemble in size and coloration nothing so much as Kalamata olives; and, having also just had some of the latter, I assert that they resemble in taste precisely the opposition thereof — sweet and rich and melting where the olive is tart and spiky, two delicious contrasting extremes.
Not at the same time, obviously. I shouldn't at all like to combine them in an uncontrolled environment; there might be a sudden and catastrophic release of energy equivalent to the detonation of approximately 5.5 megatons of TNT, releasing high-energy edysmons and geusmons across the Houston area. Cloudy with a chance of mushrooms.
Thursday, April 30, 2009
Bright of the Sky
Bright of the Sky is a 2007 science-fiction-and/or-fantasy novel by Kay Kenyon, marking the start of the series entitled — poetically, if opaquely — The Entire and the Rose.
It is slightly less weird, I think, than Perdido Street Station, and slightly weirder than Wicked.
It depicts in thin slices a future Earth, and in broad swaths a strange microuniverse known to its inhabitants as the Entire. The back of the book describes the Entire with the bizarre phrase "a landlocked galaxy," which describes it about as well as any other concatenation of two dictionary words. Its geography (cosmography?), variable and not-quite-fractal, remains outside my mental grasp: I can understand it as far as being a five-limbed rosette* with branching tendrils, larger than the Ringworld by several orders of magnitude, but details beyond that elude me.
Despite the decidedly nonplanetary nature of the Entire, the novel might best be classified as planetary romance — although I wouldn't be half surprised if it slides into sword-and-planet somewhere along the way. The storyline is compelling, if somewhat fragmentary: this is understandable given that it's the first in a series, and only cursorily attempts to be a full story in and of itself. (Unusually, much of the action takes place before the novel's beginning, though it does not really start in medias res per se... apologies for the vagueness; I'm desperately trying to avoid spoilers.)
So far it scores 1/1; this is enough for me to intend to head out to B&N tomorrow after work and pick up the next in the series (A World Too Near, and frankly City Without End if they have it). I'm very much looking forward to seeing where Ms. Kenyon takes the Entire.
* Yes, there is a horrible, vile pun here.
It is slightly less weird, I think, than Perdido Street Station, and slightly weirder than Wicked.
It depicts in thin slices a future Earth, and in broad swaths a strange microuniverse known to its inhabitants as the Entire. The back of the book describes the Entire with the bizarre phrase "a landlocked galaxy," which describes it about as well as any other concatenation of two dictionary words. Its geography (cosmography?), variable and not-quite-fractal, remains outside my mental grasp: I can understand it as far as being a five-limbed rosette* with branching tendrils, larger than the Ringworld by several orders of magnitude, but details beyond that elude me.
Despite the decidedly nonplanetary nature of the Entire, the novel might best be classified as planetary romance — although I wouldn't be half surprised if it slides into sword-and-planet somewhere along the way. The storyline is compelling, if somewhat fragmentary: this is understandable given that it's the first in a series, and only cursorily attempts to be a full story in and of itself. (Unusually, much of the action takes place before the novel's beginning, though it does not really start in medias res per se... apologies for the vagueness; I'm desperately trying to avoid spoilers.)
So far it scores 1/1; this is enough for me to intend to head out to B&N tomorrow after work and pick up the next in the series (A World Too Near, and frankly City Without End if they have it). I'm very much looking forward to seeing where Ms. Kenyon takes the Entire.
* Yes, there is a horrible, vile pun here.
Wednesday, April 29, 2009
Making C++ do C99 things (part 3/3)
So the code works in three stages.
First, the expressions
Second,
Third, the converting operators simply take the data and code-references in the
The fun part is that a C++ compiler willing to go through enough levels of constant folding, function inlining, dead store elimination, and application of the return value optimization could actually take that code and turn it into the same assembly as the ISO C99 compiler would produce — everything is known at initialization time, and every step it would need to take is a small one that most commercial compilers already know how to take. We're not talking superoptimization here.
(It'd be a little harder, but not at all outside the realm of feasibility, to do something similar for at least simple nonconstant initalization values: e.g.,
Edit 2009-04-30: grammar fixes (removed ghosts of edits past); some minor clarifications.
First, the expressions
bit_gravity_ = ForgetGravity
etc. are executed. Misleadingly, each of these returns a value of type ParameterSetter
. ParameterSetter
is itself an aggregate of POD type, so it can be used to initialize a value of type ParameterSetter
in a C89-style structure initializer. Each ParameterSetter
contains information on how to set a single member of the underlying structure, and what to set it to. (It's perfectly safe to store the latter data in an array of bytes: each member of a POD struct is POD, and POD data can be copied bytewise.)Second,
struct XSetWindowAttributes_
is also of POD type, and therefore can be initialized by a C89-style structure initializer. Furthermore, as a POD aggregate, all members of XSetWindowAttributes_
whose values are not specified are zero-initialized. The values in the initializer correctly match the first several members of the structure.Third, the converting operators simply take the data and code-references in the
ParameterSetter
s, and execute the latter on the former until an unspecified (and therefore zero-initialized) ParameterSetter
is hit — at which point we're done!The fun part is that a C++ compiler willing to go through enough levels of constant folding, function inlining, dead store elimination, and application of the return value optimization could actually take that code and turn it into the same assembly as the ISO C99 compiler would produce — everything is known at initialization time, and every step it would need to take is a small one that most commercial compilers already know how to take. We're not talking superoptimization here.
(It'd be a little harder, but not at all outside the realm of feasibility, to do something similar for at least simple nonconstant initalization values: e.g.,
bit_gravity_ = old_gravity
and so forth.)Edit 2009-04-30: grammar fixes (removed ghosts of edits past); some minor clarifications.
Tuesday, April 28, 2009
Making C++ do C99 things (part 2/3)
XSetWindowAttributes_ xswa = {So here is how you do it. Note that this is a sketch of an implementation rather than a full implementation, but it should suffice as a proof of viability of the concept. (Though not of its sanity. If you want that, see the previous post's equivalence.)
bit_gravity_ = ForgetGravity,
background_pixmap_ = None
};
For reference,
XSetWindowAttributes
is defined here.
// If this line doesn't work -- it's untested -- it may be necessary
// to extract the type via template deduction instead.
#define MEMBER_TYPEOF(x) BOOST_TYPEOF((NULL)->*(x))
struct background_pixmap_tag {
typedef MEMBER_TYPEOF(XSetWindowAttributes::background_pixmap) type;
static type XSetWindowAttributes::* const mptr =
XSetWindowAttributes::background_pixmap;
static void apply(XSetWindowAttributes &str, char const *buf)
{ str.*mptr = *(type const *)buf; }
};
struct background_pixel_tag {
typedef MEMBER_TYPEOF(XSetWindowAttributes::background_pixel) type;
static type XSetWindowAttributes::* const mptr =
XSetWindowAttributes::background_pixel;
static void apply(XSetWindowAttributes &str, char const *buf)
{ str.*mptr = *(type const *)buf; }
};
// ... and so forth; these tag-types are boring and can be generated by,
// e.g., a macro taking the type name and a Boost.PP Sequence of member names.
// (And save that sequence; you'll want it for other things.)
// Compute the maximum size of the raw data types of each member of the
// underlying struct; this is left as an exercise for the reader. Hint:
// generate a boost::mpl::vector of tag-types from the Boost.PP.Sequence
// of member names.
static const size_t max_data_size = boost::mpl:: ... ;
struct ParameterSetter {
apply_fptr_t apply_fun;
char buffer[max_data_size];
}
template <typename Tag>
struct Parameter {
ParameterSetter operator=(typename Tag::type value) {
inline ParameterSetter ps = { &Tag::apply };
(typename Tag::type *)(void *)(char *)(ps.buffer) = value;
return ps;
}
};
Parameterbackground_pixmap_;
Parameterbackground_pixel_;
// ... more preprocessor-handlable declarations ...
struct XSetWindowAttributes_ {
ParameterSetter a0;
ParameterSetter a1;
// ... the maximum N needed is the sequence size == member count ...
ParameterSetter aN;
XSetWindowAttributes attr;
inline operator XSetWindowAttributes &() {
if (a0.apply_fun) (a0.apply_fun)(attr, a0.buffer) else return attr;
if (a1.apply_fun) (a1.apply_fun)(attr, a1.buffer) else return attr;
// ... you know the drill by now ...
if (aN.apply_fun) (aN.apply_fun)(attr, aN.buffer) else return attr;
return attr;
}
inline XSetWindowAttributes* operator &()
{ return &(this->operator XSetWindowAttributes &()); }
};
// ... and Bob's your uncle.
XSetWindowAttributes_ xswa = {
bit_gravity_ = ForgetGravity,
background_pixmap_ = None
};
(Explanations next time.)
Monday, April 27, 2009
Making C++ do C99 things (part 1/3)
C99 (the 1999 ISO revision of the ANSI C standard) was extended to allow a special syntax for initializing structures: designated initializers. This allows the initialization of a possibly-complicated structure using the names of the individual entries. For example,
Designated initializers have not been approved for C++0x, and seem unlikely to be, due to lack of time and consideration. This is fair, really; in C++ one could simply write an immediate local subclass—
But that's just too easy; so next time I'll describe how to make the following syntax work.
Edit 2009-04-28: Fixed minor verbiage error and minor syntax error.
XSetWindowAttributes xswa = {is a legal way of setting only the named members of the structure. (The remainder of the structure members will be default-initialized.)
.bit_gravity = ForgetGravity,
.background_pixmap = None
};
Designated initializers have not been approved for C++0x, and seem unlikely to be, due to lack of time and consideration. This is fair, really; in C++ one could simply write an immediate local subclass—
struct xswa_t : XSetWindowAttributes {which would effectively function exactly as the designated-initializer version does, right down to
xswa_t() : bit_gravity(ForgetGravity), background_pixmap(None) {}
XSetWindowAttributes &POD() { return this; }
} xswa;
&xswa
being a legal argument to XChangeWindowAttributes()
. (It wouldn't quite be POD, because it doesn't have a trivial default constructor; this might matter if you had to pass it into a metaprogrammatic POD-aware template function, so the POD()
method has been outlined above, as a shorthand for (XSetWindowAttributes&)
.)But that's just too easy; so next time I'll describe how to make the following syntax work.
XSetWindowAttributes_ xswa = {
bit_gravity_ = ForgetGravity,
background_pixmap_ = None
};
Edit 2009-04-28: Fixed minor verbiage error and minor syntax error.
Sunday, April 26, 2009
C++ and the lambda cube
So the three axes of the lambda cube are:
C++ appears to have all three, but doesn't really. I shall elucidate.
The presence of this dichotomy is evident from the fact that, while the above declaration of std::array is legal, the simpler
Because of inheritance and subtyping, it is possible for the underlying type of an object to depend on the value of a term; but the structural type of that object will still be fixed, being at most the supertype (limit superior) of all the underlying concrete types it could be. In a language like C++, where there is no ultimate supertype, you cannot have a function that returns, directly, either an int or a float depending on the values of its parameters.
Not that I can imagine ever wanting to. I'm just saying.
- Types depending on types
- Terms depending on types
- Types depending on terms
C++ appears to have all three, but doesn't really. I shall elucidate.
- Types depending on types are simple: those are any form of type constructor of kind
* -> *
. Specifically,int *
,int class A::*
, andstd::vector<int>
are all examples of type constructors applied toint
. - Terms depending on types are in general less familiar to novice C++ programmers, but are still well-known: the humble
sizeof
(present since C) is an example of this. User-defined type-to-term "functions" are also possible:
template <typename T> class is_int { static const bool value = false; };
template <> class is_int<int> { static const bool value = true; };
assert(is_int<int>::value);
assert(!is_int<long>::value); - Types depending on terms would seem to exist: the template
std::array
takes an argument of typestd::size_t
— e.g.,std::array<int, sizeof(long)+6*7>
.
constexpr
extension in C++0x will allow users to easily define type metaoperations. (This was already possible, of course — see, e.g., Boost.MPL — it will now merely be easier.)The presence of this dichotomy is evident from the fact that, while the above declaration of std::array is legal, the simpler
int n = 0; std::array<int, n>
is impossible to compile. "Types depending on terms" is not something that a statically typed language can easily have, if at all.Because of inheritance and subtyping, it is possible for the underlying type of an object to depend on the value of a term; but the structural type of that object will still be fixed, being at most the supertype (limit superior) of all the underlying concrete types it could be. In a language like C++, where there is no ultimate supertype, you cannot have a function that returns, directly, either an int or a float depending on the values of its parameters.
Not that I can imagine ever wanting to. I'm just saying.
Saturday, April 25, 2009
Friday, April 24, 2009
More mad science
The Heart of Brazil is the most expensive gemstone in the world. It cost several hundred million dollars to synthesize and stabilize, and continues to cost millions to protect it.
It's not much to look at — it certainly doesn't appear edible. The untrained eye might mistake it for quartz, and even the trained eye (noting its monoclinic rather than orthorhombic structure) might still dismiss it as an admittedly unusually well-formed rod of gypsum.
In fact, the Heart of Brazil is made entirely of crystallized theobromine.
Of the five most recent attempts on it, four were by amateurs who admitted they intended to eat it; the fifth had been hired, and his employer had intended to sell pieces of it as very expensive candy to very rich idiots (several of whom had already prepaid for the chance to eat it).
Considering that a) crystalline theobromine is actually merely bitter, b) the company that produced the Heart is currently beginning mass production of theobromine for use as a food additive (not available in retail, but still obtainable), and also c) LD50 for theobromine is believed to be around 175mg/kg — less than 25 grams, or 15 cc, and d) facts a through c are posted on the placard next to the Heart...
(... I am not at all satisfied with this one.)
It's not much to look at — it certainly doesn't appear edible. The untrained eye might mistake it for quartz, and even the trained eye (noting its monoclinic rather than orthorhombic structure) might still dismiss it as an admittedly unusually well-formed rod of gypsum.
In fact, the Heart of Brazil is made entirely of crystallized theobromine.
Of the five most recent attempts on it, four were by amateurs who admitted they intended to eat it; the fifth had been hired, and his employer had intended to sell pieces of it as very expensive candy to very rich idiots (several of whom had already prepaid for the chance to eat it).
Considering that a) crystalline theobromine is actually merely bitter, b) the company that produced the Heart is currently beginning mass production of theobromine for use as a food additive (not available in retail, but still obtainable), and also c) LD50 for theobromine is believed to be around 175mg/kg — less than 25 grams, or 15 cc, and d) facts a through c are posted on the placard next to the Heart...
(... I am not at all satisfied with this one.)
Thursday, April 23, 2009
Various fenestral things (continued)
... and as it turns out, some of those are actually words-in-use.
Circumfenestrate adj. is a biological term apparently only used to describe nematodes of genus Heterodera; it refers to the structure of the vulval cone (whatever that is), meaning that said cone is a single opening. It contrasts with the adjective ambifenestrate, which I hadn't even imagined; this latter means that there is a "vulval bridge" across the vulval cone, dividing it into two openings.
Some sources also appear to use the terms bifenestrate (where the vulval bridge sufficiently wide that the two openings appear distinct) and semifenestrate (either ambifenestrate or bifenestrate); these consider semifenestrate to contrast with circumfenestrate, and ambifenestrate to be limited to narrower vulval bridges. I think what's happened is that the older ambi-/bi- distinction has fallen to the wayside, being somewhat subjective, so that ambifenestrate has taken on the meaning that semifenestrate used to have; but I am not a nematologist of any stripe, and do not have access to the sort of scientific journals and references that I would need in order to test that hypothesis.
Interfenestrate is in use, interestingly, only as a verb, and at that apparently a back-formation from the noun form interfenestration, an architectural term meaning the space between windows. (Verb use citation here, where it is used, without explanation, to mean to place windows between.) This is related to fenestration, the act or process of adding windows to a building or schematic, whence comes the verb fenestrate by backformation.
Of course, fenestrate as an adjective, rhyming with the other adjectives and meaning windowed, is also in use.
(These are all undeniably words, rather than mere protologisms, as they are used in sentences without explanation or humor and are immediately understood by people other than the writer.)
Circumfenestrate adj. is a biological term apparently only used to describe nematodes of genus Heterodera; it refers to the structure of the vulval cone (whatever that is), meaning that said cone is a single opening. It contrasts with the adjective ambifenestrate, which I hadn't even imagined; this latter means that there is a "vulval bridge" across the vulval cone, dividing it into two openings.
Some sources also appear to use the terms bifenestrate (where the vulval bridge sufficiently wide that the two openings appear distinct) and semifenestrate (either ambifenestrate or bifenestrate); these consider semifenestrate to contrast with circumfenestrate, and ambifenestrate to be limited to narrower vulval bridges. I think what's happened is that the older ambi-/bi- distinction has fallen to the wayside, being somewhat subjective, so that ambifenestrate has taken on the meaning that semifenestrate used to have; but I am not a nematologist of any stripe, and do not have access to the sort of scientific journals and references that I would need in order to test that hypothesis.
Interfenestrate is in use, interestingly, only as a verb, and at that apparently a back-formation from the noun form interfenestration, an architectural term meaning the space between windows. (Verb use citation here, where it is used, without explanation, to mean to place windows between.) This is related to fenestration, the act or process of adding windows to a building or schematic, whence comes the verb fenestrate by backformation.
Of course, fenestrate as an adjective, rhyming with the other adjectives and meaning windowed, is also in use.
(These are all undeniably words, rather than mere protologisms, as they are used in sentences without explanation or humor and are immediately understood by people other than the writer.)
Wednesday, April 22, 2009
De defenestratione
So you've probably run across the word defenestrate /dəˈfɛn.ɛˌstɹeɪt/ v.tr. 1. to throw [sth.] out a window 2. to remove windows from [a building, schematic, etc.]. 3. to remove (Microsoft) Windows from [a computer]. I'm not actually convinced that it is a word, except in sense 2: it seems that virtually all uses of the term, this one included, give its definition in the reference — it is scarcely ever used unexplained. Often — as here — it is accompanied by a comment that exfenestrate /ɛksˈfɛn.ɛˌstɹeɪt/ seems to be the proper word for that (sense 1 only).
Allegedly there is also a parallel word transfenestrate /tɹænsˈfɛn.ɛˌstɹeɪt/ v.tr. to throw [sth.] out a closed window, although it only gets 25 unique Google hits (well, 26 now), each and every one of which explains its meaning. (It seems to have been invented by Thomas Pynchon for use in his novel Vineland, whose protagonist apparently self-transfenestrates annually.) It, too, seems incorrect — it should really be perfenestrate /pɝˈfɛn.ɛˌstɹeɪt/, and perhaps this time we can catch the mistake before it spreads too far. (Of course perfenestrate could also mean, unqualified, to throw [sth.] out a window; but given that we seem to need two words anyway, it is not such a stretch.)
That got me to thinking, though: the (etymologically similar) term transfenestrate /ˈtɹæns.fɛnˌɛ.stɹət/ adj. 1. across a window 2. beyond a window — although note the stress and pronunciation changes! — is perfectly acceptable.
Some similar forms include:
Allegedly there is also a parallel word transfenestrate /tɹænsˈfɛn.ɛˌstɹeɪt/ v.tr. to throw [sth.] out a closed window, although it only gets 25 unique Google hits (well, 26 now), each and every one of which explains its meaning. (It seems to have been invented by Thomas Pynchon for use in his novel Vineland, whose protagonist apparently self-transfenestrates annually.) It, too, seems incorrect — it should really be perfenestrate /pɝˈfɛn.ɛˌstɹeɪt/, and perhaps this time we can catch the mistake before it spreads too far. (Of course perfenestrate could also mean, unqualified, to throw [sth.] out a window; but given that we seem to need two words anyway, it is not such a stretch.)
That got me to thinking, though: the (etymologically similar) term transfenestrate /ˈtɹæns.fɛnˌɛ.stɹət/ adj. 1. across a window 2. beyond a window — although note the stress and pronunciation changes! — is perfectly acceptable.
Some similar forms include:
- affenestrate /ˈæf.fɛnˌɛ.stɹət/
- adj. 1. toward a window
- antefenestrate /ˈæn.tə.fɛnˌɛ.stɹət/
- adj. 1. before a window (usu. 'before' of spatial position)
- circumfenestrate /ˈsɹ̩.km̩.fɛnˌɛ.stɹət/
- adj. 1. around a window
- extrafenestrate /ˈɛks.tɹə.fɛnˌɛ.stɹət/
- adj. 1. beyond anything pertaining to windows
- intrafenestrate /ˈɪntɹə.fɛnˌɛ.stɹət/
- adj. 1. within a window; within windows
- interfenestrate /ˈɪntɝ.fɛnˌɛ.stɹət/
- adj. 1. between windows
- postfenestrate /ˈpoʊst.fɛnˌɛ.stɹət/
- adj. 1. after a window
- prefenestrate /ˈpɹi.fɛnˌɛ.stɹət/
- adj. 1. before a window (usu. 'before' of temporal position)
- subfenestrate /ˈsʌb.fɛnˌɛ.stɹət/
- adj. 1. below a window
- superfenestrate /ˈsupɝ.fɛnˌɛ.stɹət/
- adj. 1. above a window
Tuesday, April 21, 2009
JAGS Wonderland
JAGS — the acronym standing, not inaccurately, for Just Another Gaming System — is a relatively unpretentious generic RPG system in the traditional style: anyone who has any experience with, say, GURPS or BESM 2nd/3rd will not find anything terribly surprising here.
JAGS Wonderland, on the other hand — available at the same link as JAGS itself — is the star of the JAGS setting and sourcebook lineup. It is (as the perspicacious reader may have surmised from the title) an infusion of horror into the works of Lewis Carroll, and anyone who has any experience with such works as the AD&D modules EX1-2 or American McGee's Alice... well, is still going to be awed and amazed, because Wonderland is several separate sinister and spicy-sour strata of screwed and screwed up, each delicious and flaky like so much player-character sanity.
I categorically refuse to go into spoilery details; the .pdfs are there for the reading, although if you think you'll ever potentially play in this setting, keep in mind that the Book of Knots is GM-only material — and you might not want to read even Wonderland.pdf. If you think you might want to run it, on the other hand, please do go read it, Knots included! (Alas, there are numerous typographical errors, and a fair amount of the artwork is "we can't afford real art" 3D renders; this is perhaps forgivable since, well, they can't, but it does occasionally grate.)
(Note: Although the word "JAGS" does appear in the book title, JAGS is reasonably generic, and so there are few hooks where a setting could be tightly coupled to the JAGS ruleset; Wonderland does not even make the attempt. If you have strong preferences about what kind of cup you drink your tea from, JAGS could be dissevered from Wonderland and another system grafted on in its place without the result appearing too much like the sort of twisted chimera one might expect to find too far down the rabbit hole.)
JAGS Wonderland, on the other hand — available at the same link as JAGS itself — is the star of the JAGS setting and sourcebook lineup. It is (as the perspicacious reader may have surmised from the title) an infusion of horror into the works of Lewis Carroll, and anyone who has any experience with such works as the AD&D modules EX1-2 or American McGee's Alice... well, is still going to be awed and amazed, because Wonderland is several separate sinister and spicy-sour strata of screwed and screwed up, each delicious and flaky like so much player-character sanity.
I categorically refuse to go into spoilery details; the .pdfs are there for the reading, although if you think you'll ever potentially play in this setting, keep in mind that the Book of Knots is GM-only material — and you might not want to read even Wonderland.pdf. If you think you might want to run it, on the other hand, please do go read it, Knots included! (Alas, there are numerous typographical errors, and a fair amount of the artwork is "we can't afford real art" 3D renders; this is perhaps forgivable since, well, they can't, but it does occasionally grate.)
(Note: Although the word "JAGS" does appear in the book title, JAGS is reasonably generic, and so there are few hooks where a setting could be tightly coupled to the JAGS ruleset; Wonderland does not even make the attempt. If you have strong preferences about what kind of cup you drink your tea from, JAGS could be dissevered from Wonderland and another system grafted on in its place without the result appearing too much like the sort of twisted chimera one might expect to find too far down the rabbit hole.)
Subscribe to:
Posts (Atom)