A few things to bear in mind about _Stiffy Makane: The Undiscovered
Country_.

First, the disclaimer is not lying.  This work is vile, and
if vile pornography bothers you, you *SHOULD NOT PLAY THIS GAME*.  There
are going to be plenty of other games in the Competition, so just skip
this one, m'kay?

Second: it's a glulx game.  This means it's pretty finicky about how it
runs.  Let me list a few of the issues I know about:
  1: A fair chunk of what my game does depends on sound notification
      working.  If you are running Linux, you should get one of the
      patch sets to XGlk that supports sound notification as well as
      both AIFF and MOD sounds.  This means Torbjorn Andersson's
      SDL-mixer patch, ideally, but Adam Thornton's sox patch works
      too.  Although it's very nice work, Adrian Chung's stuff does not
      support notification, and so doesn't really work all that well
      with the game.  It *is* perfectly playable without sounds or
      graphics at all--you can play just the .ulx file if you really
      want, but it loses a lot of the (admittedly puerile) humor it
      had.
  1a: I use Linux as my development and primary testing environment.  I
       am using the SDL-mixer sound, plus the "sanity" patch, plus the
       24-bit color patch, and it works well for me (modulo point 3
       below).  This patch set is available at ftp.ifarchive.org.  You
       can also use the libmikmod+sox stuff--it works as well.
  1b: WinGlulxe works fine, although the JPG rendering code is
       terrible (I think it's a scaling issue).  The pictures look much
       nicer under Linux.  Really.  You can even read the scrawled
       writing on the Canadian fiver.
  1c: Mac works OK, although the scrolling is very flickery, and may be
       unusable on slow machines.  It uses QuickTime for its image
       handling, and QuickTime is a real pig.
  1d: The AIFF sounds probably won't play under DOSGlk; that's because
       DOSGlk assumes that AIFFs have a single chunk, which is a sound
       chunk.  My AIFFs, created with sox, have some header info too.
       Hopefully L. Ross will fix DOSGlk before the Competition.
  1e: Amiga?  No clue, mate.
  1f: Unix variants and Linux with GlkTerm and CheapGlk work fine,
       although without graphics or sound, which makes it effectively
       Just Another Bad Xtrek Game.
  2: Some users have had problems with the game hanging during the
      scrolling credits at the beginning.  If this happens to you,
      first, don't click in the scroll window, since that triggers it
      at least some of the time (well, not for me, but it did for one
      of my betatesters).  If it happens again, just hit "s" after the
      disclaimer to skip the scrolling credits.
  3: On Linux, occasionally UNDO segfaults when you UNDO while
      background music is playing.  It now does it a lot less than it
      used to, but if your game explodes under those circumstances,
      well, I warned you.  It's not a long game, so it shouldn't take
      you more than 5 minutes to get back to where you were.
  4: Play at whatever resolution and whatever aspect ratio you like,
      but it probably looks the best with an aspect ratio of 4:3
      (i.e. 640x480, 800x600, 1024x768, etc.).

Third, I'd like to apologize for the ugliness of the source code.  This
was my first Glulx Inform game, and I learned a lot during its
implementation.  Things I'd do differently:
  1: More wrapper functions.  Unglklib already wraps the glk library,
      but a higher-level interface would help a lot.  DrawFooPic() is
      an example of what I mean, but you'll notice that the behavior is
      not consistent between functions in this class: some take
      pictures as their arguments, some take objects.  They all should
      take objects which define picture fields.
  2: Access methods.  Take a look at how the penis object works: this
      is what all the objects should look like.  Alas, I got lazy, and
      started just setting attributes and state variables inside my
      objects rather than doing proper access methods.
  3: Way fewer globals.  All the animation stuff, for instance, relies
      on cryptic global variables.  This is dumb.  We should have
      object classes that can store this information inside their
      internal structures.  In part, this is hard because the Inform
      libraries tend to rely on ugly globally-visible variables and
      routines, and the default glk event or window-handling code is
      not very OO either.  It wouldn't be too hard to do, but you have
      to know what you're doing first (which means having written a
      Glulx game and banged into some of the corners).  So that's a
      good project for my next Glulx Inform game.
  4: A different conversational interface.  I like either the Pytho's
      Mask or the City of Secrets interface much better than the
      modified phtalkoo.h I used.  But by the time I got the City of
      Secrets conversation code from Emily, it would have been a lot of
      rewriting to retool my game to use it.
  5: Stylistic Consistency.  I'm using several add-on-libraries, so
      that's probably where the trouble started, but I use StudlyCaps
      in some places, Lots_Of_Underscores in others, I tried to stick
      to One True Brace Style, but didn't succeed...the list goes on.
      Most of the formatting is what was given to me by inform-mode.el,
      which I heartily recommend if you use emacs.
  6: Locally-scoped constants would be really useful for source
      maintainability.  Graham?

Bruce