Deathship (1980)   20 comments

Or, including the subtitle, DEATHSHIP, AN ADVENTURE TYPE GAME.

“It’s a cruise ship — but it ain’t the Love Boat and survival is far from certain.” COMPUTE! magazine, November/December 1980. The ad has a space between “Death” and “ship” here but this wasn’t an era for title consistency.

When learning techniques of a creative art, the typical method is to look a works generally agreed to be good (“masterpieces”, perhaps) and work out what techniques made them high quality in the first place.

An alternate, less common method is to look at bad things — awful even — and extract negative lessons. Antitechniques, if you will.

Deathship by Rodger Olsen is the first of six games from 1980 published by Aardvark, originally for the Ohio Scientific Computer. We’ve already seen one of the games, Trek Adventure.

The Ohio Scientific had a standard loadout of 8K of memory at a time most computers were working with 16K. This is important in that any programs had to be twice as stringent about tight code. (For reference, most home computer games for All the Adventures have used at least 16K. The tiny ADV.CAVES was 8K. The smallest we’ve seen has been Haunted House which used a two-sided tape with 4K on each side.)

With Trek Adventure, this had visible effects (including a parser that only took the first two letters of each word), but the game managed to cover for any tech issues well enough I only noticed the 8K issue halfway through the game.

This is not the case with Deathship; the parser is so pared down it’s one of the most infuriating I’ve ever experienced.

Here’s the main problem: when a parser command is successful, there is no prompt stating so, nor any other indication as to what the game did. When I typed GET MESSAGE the game did, in fact, pick up the message, but the blank response led me to think GET didn’t work so I tried TAKE instead.

This carries on to any action that causes change in the world. Open a cabinet, and there might be something inside, but the game isn’t going to tell you! In these cases I couldn’t even find a way to get the room description again; I had to leave the room and come back.





This is already a colossal headache, but most actions that don’t work give a blank prompt as well. Unrecognized verb? Blank prompt. Tried to take an item that wasn’t in the room? Blank prompt.

Okay. Breathe. Let’s summarize the plot. After GET MESSAGE / READ MESSAGE done in the proper order at the start:


This is essentially a repeat of the Trek Adventure plot; you’re left on an abandoned ship headed for disaster and have to fix the problem. If you want to make sense of it, imagine you were taking a nap somewhere and didn’t notice the entire crew going off-board, and the action starts right when you’ve wandered into the radio room trying to work out what’s going on.

First, you can go north to the bow and climb down the anchor chain; this lets you slip in a porthole to the bilge and hold. In the hold is a crate that you can take back to the bow and use to get high enough to reach the mast, and a rope.

You can then tie the rope to the midship deck railing to climb to the captain’s cabin, and get a key which unlocks the brig and reveals an axe.

The structure makes this all feel dynamic; on the map, the “hallway” gets passed through multiple times through this process. The first time involves just finding two locked doors, although you can peek in the north door to find out what’s there. The second time, the player enters from the south (which lets you leave the previously-locked door open). On the third pass, the player enters from the north (leaving that door open as well).

The finale is then at the hold with a heavy locked and hinged door. And … I wish I could describe the rest, but here I’m very stuck, and the parser isn’t doing itself any favors, and there’s always the strong possibility of a bug. I know from browsing the source code that the bomb is in the engine room just past the heavy door, but the style of BASIC is very hard to read.

I’m happy to invoke my “give every game a strong effort” rule and skip the ending. If someone wants to take a crack (and I’m very understanding if you don’t) there is a C64 version online. Otherwise, I’m moving on to safer territory.

Also, let me take a moment to beg to all authors on all games anywhere for the love of all that is holy please make your interface feedback transparent. If the user succeeds in doing something, make it clear the result; if they failed, make it clear why they failed. (I could follow this up by threatening to visit them personally and make them play Deathship should they violate this rule, but nobody deserves that.)

Posted July 29, 2019 by Jason Dyer in Interactive Fiction

Tagged with

20 responses to “Deathship (1980)

Subscribe to comments with RSS.

  1. Staring at the source code, it appears the item you need to get past the steel door is inside the crate. And that you may be able to hit, break, or open the crate using the axe.

    • No dice.


      WITH WHAT?

      >WITH AXE

      (same effect for just “axe”, also “hit” and “smash”)

      Thanks for the attempt!

      • I see the issue.

        For >HIT CRATE to work, you need to:
        (1) drop the crate first (this doesn’t work if you’re carrying it); and
        (2) type just “AXE” in response to the “with what?” prompt. (I.e., don’t type “WITH AXE”)

        I’m testing this right now using the provided link, and am now the proud owner of some screwdrivers.

      • I’m getting “NOTHING HAPPENED” again.

        I assume a bug.

        I’ll try again from the start at some point, possibly there’s some extra glitch.

      • Hmm, it looks like the save I had wasn’t holding the axe, weird. (I know I’ve tried to axe the crate, but it was probably using “WITH”)

        Still can’t do anything with the locked door though. UNSCREW DOOR or BREAK DOOR or whatnot aren’t doing anything.

      • The game reads UNSCREW as UNLIGHT (the command to turn off your flashlight), because it truncates words to two letters. (I realized this after repeatedly failing to UNLOCK the Brig and wondering why my light kept going out).

        BREAK is the same as HIT, and as far as I can tell, is useful only for axing open the crate.

        The verb you need to use is GET.

        I’m now wrestling with the final puzzle, which has proven a bit more complex than I expected.

      • And the game is now won, parser and communication difficulties notwithstanding. Reading the source code was of significant help.

        I was thrown off for a bit at the end, in a “why isn’t this working, this clearly should be working” scenario, where I thought perhaps the final puzzle had a bug. It actually doesn’t; it’s working as intended. But the game’s limited feedback gives the *appearance* of there being a bug.

      • And the game is now won. It doesn’t seem to have any bugs or glitches. What it does have, as you’ve already noted, is minimal and unclear feedback – a problem I found persisted through and including the final puzzle.

      • Sorry for the double post, I’d thought my original post did not go through. My error.

        And so this isn’t just converting a double post into a triple post by apologizing for the double post, here’s a quality of life discovery I made: the command to see the description of the room you’re in and its contents (without having to leave and reenter) is LOOK AROUND. (Not simply “LOOK.” It has to be “LOOK AROUND.” Or “LO AR” to our two-letter-truncating parser friend.)

      • I’m assuming I use the bucket of water somehow to finish off the bomb, but none of the verbs I’ve been trying have worked.

    • If you’re trying to bring a bucket water to the Engine Room, where the bomb is found, then your problem likely isn’t your use of verbs. The problem is that you are running out of water on the very turn that you’re trying to use it. No, the game isn’t going to make that clear. (The very last “It’s leaking!” message? That really should be something like “The water is all gone!” But it’s not.)

      You also may still be missing a needed item.

      • Could you rot13 me to the end? I’m going to take a shot later tonight but this parser has worn my patience super-thin.

      • 1. Gurer’f na vgrz lbh arrq haqre gur enqvb (va gur ebbz jurer lbh fgneg gur tnzr).
        2. Lbh gevrq gb trg gur enqvb va lbhe vavgvny fperrafubg, ohg vg jnf “anvyrq qbja.”
        3. Lbh’ir frra n gbby gung pna svk gung.
        4. Juvyr pneelvat gur unzzre sebz gur Ubyq, >TRG ENQVB.
        5. Gura >YBBX NEBHAQ naq lbh’yy frr n cnve bs PHGGREF. Nf va, jver phggref.
        6. Jvgu gur phggref va unaq, lbh pna >PHG JVER va gur Ratvar Ebbz.
        7. Guvf qbrfa’g qrshfr gur obzo (va snpg, vg nppryrengrf gur gvzre)…
        8. …ohg vg qbrf zrna gur obzo vf abj cbegnoyr. (Qrfcvgr gur tnzr fgvyy pnyyvat vg “OBZO JVERQ GB CBFG”)
        9. Ubjrire, lbh pna’g pneel gur obzo nyy gur jnl gb gur cbby orpnhfr vg’f gbb ohyxl gb pneel guebhtu na >HC zbir (rvgure sebz Unyyjnl gb Zvqfuvcf Qrpx, be sebz Napube Punva gb Obj).
        10. Ohg lbh pna zbir vg ng yrnfg nf sne nf gur Unyyjnl…
        11. …qebc vg gurer, gura tb gb gur Cbby jvgu lbhe ohpxrg naq yvsr cerfreire…
        12. …naq oevat onpx jngre gb gur obzo. Orpnhfr vg’f abj gjb ebbzf pybfre gb gur cbby, lbhe yrnxl ohpxrg jvyy fgvyy unir fbzr jngre yrsg.
        13. Nsgre lbh >QEBC JNGRE be >CBHE JNGRE va gur ebbz jvgu gur obzo, vg jvyy frrz yvxr abguvat unccraf. Ohg ba lbhe arkg ghea gur tnzr jvyy erpbtavmr lbhe ivpgbel. (Gur tnzr purpxf gb frr vs gur obzo naq jngre ner va gur fnzr ybpngvba *orsber* cebprffvat gur erfhygf bs lbhe pbzznaq gung ghea.)

      • Addendum to #4 above from further testing: 4. Juvyr pneelvat gur unzzre sebz gur Ubyq, >TRG ENQVB. Lbh znl arrq gb gel gjvpr (svefg gb trg gur “Vg’f anvyrq qbja” zrffntr, naq gur frpbaq gvzr gb npghnyyl trg gur enqvb).

      • OK, I am sorry, but there’s something wonky going on with #4 above and each time I replay the game seems capricious about whether certain things will work. The following sequence of commands (rot13’d) should, hopefully, *always* work.

        4. Juvyr pneelvat gur UNZZRE (sebz gur Ubyq), naq juvyr univat ng yrnfg gjb vairagbel fybgf bcra (lbhe znk pncnpvgl vf fvk vgrzf), glcr gur sbyybjvat va gur Enqvb Ebbz: >TRG ENQVB. >TRG ANVYF. >TRG ENQVB. >QEBC ANVYF. >TRG PHGGRE.

        Joseph A Nuccio
      • The following rot13’d list of commands will, from a fresh start, complete the entire game.

        tb qbja. tb yvsrobng. bcra ybpxre. trg synfuyvtug. tb abegu. tb abegu. tb abegu. tb napube. yvtug synfuyvtug. tb cbegubyr. tb hc. trg pengr. trg unzzre. bcra qbbe. tb abegu. hayvtug synfuyvtug. tb jrfg. bcra pnovarg. trg tybirf. tb rnfg. tb hc. tb abegu. qebc pengr. tb znfg. trg ebcr. tb qbja. tb fbhgu. gvr ebcr. envyvat. tb envyvat. tb cbegubyr. trg xrl. bcra qbbe. tb fbhgu. tb rnfg. trg ohpxrg. tb jrfg. yvtug synfuyvtug. tb fbhgu. tb qbja. bcra oevt. tb abegu. trg nkr. tb fbhgu. tb rnfg. hayvtug synfuyvtug. tb hc. uvg pengr. nkr. qebc nkr. trg fperjqeviref. qebc tybirf. trg cerfreire. tb fbhgu. tb fbhgu. tb hc. qebc xrl. trg enqvb. trg anvyf. qebc anvyf. trg enqvb. qebc unzzre. trg phggref. tb qbja. tb abegu. tb qbja. yvtug synfuyvtug. tb fbhgu. trg uvatrf. tb fbhgu. qebc enqvb. phg jver. trg obzo. tb abegu. tb abegu. qebc obzo. tb hc. tb fbhgu. tb cbby. trg jngre. ohpxrg. tb fbhgu. tb abegu. tb qbja. qebc jngre. ybbx nebhaq.

      • The hint I ended up needing was #8. That was incredibly teeth-gnashing worthy. Guess I’ll have to write about the ending after all.

        Thanks for your help!

      • No problem, glad to be of assistance.

  2. I know “nailed down” is usually kind of a stock response in games, but since in this case you can literally un-nail it – who the heck nails down a radio? How, even? Is it in a wooden case?

  3. Pingback: Deathship: and the Parser of Doom | Renga in Blue

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: