Interim CM Release

Release 2 of Counterfeit Monkey is available from (I know, it still says release 1 on the website.) This release does not tackle all the bugs that have been reported to me, but it does handle several that were particularly significant to the play experience: one that prevented highlighting from working as it was supposed to, and two affecting the endgame that were under some circumstances preventing people from seeing all the outcomes it should have been possible to see.

I mean to tackle the rest of what’s been reported as well, of course, but as that might take a few more days to complete, I wanted to make this available now.

27 thoughts on “Interim CM Release”

  1. I’m about halfway through; should I restart with this new version to avoid problems with the end game or can I play on?

    1. That’s very much your call. The bug can affect one of several ways to play the endgame, thus narrowing down your (narrative as well as puzzly) options. It will not wholly prevent you from finishing.

  2. I somehow ended up with the synthesizer in my inventory. I’m not sure how it got there; it’s still also where it’s supposed to be. I think I might have done a ‘get all from synth’ or a ‘get all from case’ or something, but I don’t remember — I just glanced at my inventory and noticed it was there. It appears to be functional, but I can’t drop it — it says I don’t see that here, oddly. I can interact with it otherwise — looking at it, putting stuff in it, turning it on, etc.

  3. I died. I did “eho try ba pne”. Gargoyle wouldn’t let me undo. I hadn’t realised I should be saving the game. :'( It was really fun before that!

      1. Don’t worry, I’ve not given up. I realised afterwards too that there had been text earlier on about the dangers of doing that sort of thing, but like so many clues and puzzles often do, it just sort of washed over me as flavour and I only recognized it for guidance when it was too late. I discovered I actually had saved earlier, when I was hiding from somebody and the descriptions gave me the feeling I might actually be in danger – so I shouldn’t need to redo as much as I thought – but this one just caught me out of the blue. Similarly, your earlier warning about UNDO just registered as “might be inconvenient” because it’s a long time since I’ve played a kills-you-dead game without UNDO and I just didn’t realize the consequences. (Reading your post again I see you were clear on that when you first mentioned Gargoyle; I just got a bit lost in all the interpreter advice until I got to the bottom and saw: “Linux: Gargoyle is the best option here” and forgot everything else.)

        I think what I’m saying is I know it’s my fault, the instructions were there, I just failed to read, understand, remember and apply them.

        Thank you for making such a wonderful game. Contrary to my hundreds of words about my single bad experience, I am loving the puzzle mechanics!

  4. Oh, a suggestion!

    It’s possible to produce single letters. Perhaps the game should have a special error message when you try wave an I-remover at the letter I? Currently it just says it can’t produce anything called “”. (I actually expected it to completely destroy the object, but I’m not sure if that would be a good idea since I’m not sure if it could potentially leave some puzzles unsolvable.)

    Also, a question about how the game was made! Did you write some sort of automated tool to find all possible permutations of the game’s items? I pictured an external script that ran over every initial item in the game, trying every possible alteration that the game would provide, recursively, until it had found everything, then printing it back out for you to figure out what to handle and how.

    (Actually, it occurs to me that with a dictionary file, python, and a list of items in my inventory at any given moment, I could probably do that myself to find solutions to puzzles… hm! I’ll resist the temptation for now.)

    1. To quote from the comments in the source (which I mean to publish, after people have had a chance to take a first crack at the puzzles):

      For each source object, we work out the plausible changes on what that item could be made into. Scenery objects for the most part are not changeable, and neither are most objects with attached adjectives. ***(spoiler edited out)***. So that cuts down somewhat on the chaos.

      Nonetheless, there’s still an awful lot to account for. To figure out what needed to be implemented for the letter-remover, I used some perl-created subsets of the Scrabble word list; for instance, I had one reference file that consisted of nothing but valid letter removals, of the form

      geniuses with i removed -> genuses

      Then whenever I needed to check derivations, I could search this file for the object I was adding to the game (recursively, of course), and see what letter removals were possible.

      (It goes on for a bit longer about some other tricky effects in the game, but if you’re still playing I won’t spoil those bits.)

    2. I should add: for certain other in-game transformations, where there was only one way the transformation could work, I did create in-game list-maker commands that ran through all the eligible objects (that is, not counting rooms, objects representing bits of dialogue, and so on) and performed the relevant transformation, producing a list which I then went through to determine which were legitimate words.

  5. I’m on OSX Snow Leopard with Zoom (which disallows UNDO despite your earlier notes, by the by – I’m just being careful for now) and this is possible in the hostel dorm:

    >gnyx gb tvey
    Jr abq.

    Zl erfcbafr jbhyq or gb gur terrgvatf, nfx jurer gurer vf na nvecbeg, nfx jurer gurer vf n tnentr, nfx jurer gurer vf gryrcubar freivpr, nfx jurer gurer vf vagrearg freivpr, nfx jurer sbbq vf fbyq, nfx jurer n fpubby vf, nfx jurer phfgbzf vf sbhaq, nfx jurer n cbfg bssvpr vf sbhaq, nfx jurer n cuneznpl vf sbhaq, nfx jurer ybqtvat vf sbhaq, nfx jurer gurer vf n ubgry, nfx jurer gb svaq Neobg Zncf & Nagvdhrf, nfx jurer gurer vf n pvarzn, nfx jurer gurer vf n cho, nfx jurgure gur yrggre-erzbire zrnaf nalguvat, nfx jurgure gur zbabpyr frrzf vagrerfgvat, or ubarfg nobhg bhe bevtvaf, zbpx gur fabjtybor, nfx jurgure fur unq gebhoyr jvgu phfgbzf, be nfx Oebpx-fzbbpuvrf.

    >nfx oebpx-fzbbpuvrf
    Lbh chg bhe nezf nebhaq Oebpx. Ur ybbxf fhecevfrq, gura chyyf hf va.

    “V gubhtug jr jbhyq yrnir guvf xvaq bs guvat hagvy lbh jrer tryyrq,” Oebpx pbzzragf nsgre n zbzrag, chfuvat n ovg bs unve bhg bs bhe rlrf. “Qbrf lbhe cnffratre abg zvaq?”

    V zvaq, sbe gur erpbeq. V gbgnyyl zvaq. Naq gur snpg gung guvf obql vf raguhfvnfgvp nobhg xvffvat Oebpx whfg znxrf vg jrveqre.

    Ur ernqf gur rkcerffvbaf pebffvat bhe snpr naq yrgf tb. “Pbzr gb guvax bs vg, znlor V zvaq.”

    Na njxjneq cnhfr.

    Gubhtu V nz hanppbhagnoyl sbaq bs “nfxvat oebpx-fzbbpuvrf” nf n phgr cuenfr.

    [Edited to rot13 for spoilery bug.]

  6. Just finished and absolutely loved it! I look forward to replaying with hard mode and doing some more exploration.

    For what it’s worth, my favorite moment – at least within the lighter / humor subcategory of moments – was
    gur perngvba bs gur cbjre pubeq. Personally, I kept hoping gurer jnf n jnl gb rknzvar / yvfgra gb gur pubeq fb nf gb trg n yvar nobhg 80f zbivr genvavat zbagntrf, ohg V fhccbfr gung jbhyq unir orra bhg bs punenpgre sbe gur aneengbe(f)…

  7. Hi Emily, perhaps instead of using the built-in undo functionality, you could implement your own undo system using glk files and @save? It would be a reliable solution until the interpreters can be updated.

    1. I um. I’m pretty sure it will be faster to finish testing the new Gargoyle-Git build (which Ben has in fact made, I just haven’t finished running the tests he suggested because of zooeyness in my life) than for me to figure that out.

      1. If you decide to try it, you’ll notice it doesn’t clean up after itself, and leaves all its files behind. I’ll make it do that, but I’m not sure when would be best… when you quit perhaps? Also there’s no limit to the number of undo files it will produce; if you’d like to set a limit I can make that work.

      2. Okay, thanks! I’m going to have to put off figuring this off, as it’s about bedtime right now, but I’ll have a look, and I appreciate the input.

      3. It’s the next thing on my to-do list (I had a few bugs that were clearly tripping a lot of people, but UNDO is the next-most-prevalent problem on my list). But probably not tonight, due to work/personal-social stuff. Soon, though.

  8. Should we report words which we tried creating which seem like they should work, but don’t? On one hand it’s tempting to suggest them, but on the other hand I assume that things like that can’t really be added willy-nilly in response to user reports, because it might make some puzzles much easier…

    Sbe vafgnapr, pbzovavat on naq fva snvyf gb cebqhpr n onfva.

    I also can’t create “bad” or “and” even with the abstract-upgrade. Though perhaps “and” is because it doesn’t represent a concrete concept? Maybe “in” is the same way.

    “Ma” isn’t recognized as a word, either, though that might be for the best given the situation.

    Guvf vf cnegvphyneyl bqq orpnhfr “cn” vf erpbtavmrq, juvpu oevatf zr gb fbzr bqq orunivbe V whfg abgvprq. Lbh pna tb:

    CYNAF -> CYNA -> CNA -> CN,

    ng juvpu cbvag Cn snyyf bhg bs lbhe unaqf naq fgnaqf gurer. Vs lbh gel gb yrnir jvgubhg uvz, gur tnzr tbrf guebhtu n jrveq-ybbxvat frdhrapr jurer vg gevrf gb cvpx uvz hc, fnlf gung vg qbrfa’g ybbx yvxr ur jbhyq pner nobhg vg, gura ershfrf gb zbir. Vg qbrfa’g fgevpgyl oernx nalguvat ohg ybbxf irel ovmneer.

    I did notice that almost anything with a strongly-affixed adjective will refuse to change, period, even if both the adjective and the noun are real words, if the result is anything less than a completely “normal” object you would expect to see. Eg. you can’t go from “tiny refrigerator” -> “tin refrigerator”, even though they’re both real words and their combination is at least possible to envision. It’d also always refuse to depluralize compound words, which sometimes made the error message it produced look weird (eg. if you tried to s-remove a bunch of red balls, it’d say it tried to produce a “red ball” and failed.) I mostly stopped trying to alter adjectived things entirely. It left me with this worried feeling that there was probably a puzzle or solution that involved successfully changing on, but that doing so would mostly require guessing the author’s intention that I do it at that point rather than all the other times when it didn’t work. Possibly it should be made more clear when adjectived changes will and won’t work. (Is it that the entire combined phrase needs to refer to something that exists in the popular imagination? So a tin refrigerator fails because nobody pictures that in their heads.)

    Hmm, now I wonder if I could go from tiny refrigerator -> tin refrigerator -> in refrigerator (a refrigerator that’s very popular, and hence “in!”) -> i refrigerator (alright, hard to justify. A book, “I, Refrigerator”? A fridge that looks suspiciously like me?) -> refrigerator, having annihilated its adjective completely via linguistic manipulation.

    Oh, also, while I was fiddling with stuff to review things I mentioned in this post, I came across something else that looks like it might be a bug:

    Rira va uneq zbqr (jurer lbh trg n oebxra pybpx vafgrnq bs gur abezny pybpx), vg’f cbffvoyr gb y-erzbir gur oebxra pybpx vagb n pbpx. (V jnf npghnyyl qbvat vg orpnhfr “oebxra pbpx” znxrf frafr — rvgure nf cneg bs n svernez be nf n jrngure-inar, abg arprffnevyl nangbzl! Gubhtu gung, gbb. Ohg vg cebqhprf gur aba-oebxra, abezny ebbfgre, fnzr nf abezny zbqr, naq V nffhzr gung gung’f abg zrnag gb jbex va Uneq zbqr.)

    1. You can suggest words if you like; I’m implementing a number of those, and typically they don’t break the game to include. (And the only reason it was possible to write this game at all was because adding individual objects generally didn’t cost much code overhead.)

      Things that aren’t nouns or pronouns don’t get made. The implications of doing verbs, prepositions and conjunctions was conceptually daunting as well as spreading the trees too big. (And what would it mean to carry around an “and”, anyway?)

      Adjectival phrases generally don’t get reified because, as you say, the whole phrase would have to have a popularly-envisioned meaning in order to be cheap enough to create with a little hand-held letter remover. Guvf ehyr qbrfa’g nccyl gb gur rkgerzryl cbjreshy gbbyf ninvynoyr va gur raqtnzr, juvpu vf jul gur nantenzzvat tha pna cebqhpr fbzr ernyyl hayvxryl pbzobf.

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 )

Facebook photo

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

Connecting to %s

%d bloggers like this: