[Announcement] New game: "69,105 Keys"

44 views
Skip to first unread message

David Welbourn

unread,
Mar 2, 2009, 10:05:37 PM3/2/09
to
I am pleased to announce the release of my latest game, "69,105 Keys".
It's one room, very short. One puzzle with one gimmick. It's more of
an experimental piece than a true game, really. Once I came up with
the concept, I was intrigued with the problem of how to code it. As I
thought about it, I figured I knew how to code "69,105 Keys" in Inform
6... with a gigantic parse_name property, if you must know... but I
wondered, can this particular puzzle be coded in any of IF's other
systems? I honestly don't know if it's possible in Inform 7, since I7
doesn't do the 'parse_name' thing. I suspect it is possible to port it
to TADS 3, but I wouldn't have a clue how. From what I've seen of
Alan, ADRIFT, and Quest, none of those systems would be able to handle
it. And I know too little of TADS 2 and Hugo to even make a guess.

So, I was intrigued, and silly as the game is, I felt I had to code it
as proof of concept. As an example of a weird bit of coding that
might, just might, defy most attempts at porting.

69105Keys.zblorb has been uploaded to IF Archive's unprocessed
directory, and I hope it will eventually get moved to the games/zcode
directory. And, as some people have already noticed, I have added the
game to IFDB: see http://ifdb.tads.org/viewgame?id=j3rwlhuy6j6v79qj ,
where there's links to download the game from my website.

And as the story description says: "There's just one room. How hard
can it be? Just unlock the door. Oh. There's 69,105 keys."

It's an easy game. Honestly. All my testers solved it in minutes. You
will too. Enjoy.

Otto Grimwald

unread,
Mar 3, 2009, 7:12:17 AM3/3/09
to
David Welbourn wrote:

> And as the story description says: "There's just one room. How hard
> can it be? Just unlock the door. Oh. There's 69,105 keys."
>

it was a really interesting game, I managed to finish it after a few
minutes, just as you predicted.
Will you release the source code as well?

Ross Presser

unread,
Mar 3, 2009, 1:02:31 PM3/3/09
to
On Mar 2, 10:05 pm, David Welbourn <davidwelbo...@hotmail.com> wrote:

> It's an easy game. Honestly. All my testers solved it in minutes. You will too. Enjoy.

The hints really walk you through it. I think that you should be led
down false paths a few times before being introduced to the correct
property.

Although of course you haven't implemented it this way, the game
really pretends to be a database search. I was going to post the
equivalent SQL query that wins the game but I'll hold off in the
interests of not being spoily.

DavidW

unread,
Mar 4, 2009, 4:15:09 PM3/4/09
to
On Mar 3, 7:12 am, Otto Grimwald

Sure. A copy of the source code can now be found at
http://www.plover.net/~davidw/69105keys.inf , and I'll upload a copy
to the archive as well.

It may interest you as well to know that an Inform 7 port is possible.
(Certainly, it interested me.) Since releasing the game, one player
was kind enough to show me a way how it might be done. Instead of
fussing with how an item gets parsed, try inspecting the command line
after it's been read in. So there would be a rule something like this:

After reading a command:
change the color relevance to false;
if the player's command includes "[color]":
change the color relevance to true;
change the color of the keys to the color understood;
[and so on for brand, size, etc.].

I suppose there might be additional problems in a larger game if we
had to unlock orange aluminum doors with red iron keys, because then
we'd need to know which adjective went with which noun, but that's
just detail work. As is, this answers the Inform 7 question quite
nicely, showing that this puzzle is possible to port over.

Andrew Plotkin

unread,
Mar 4, 2009, 4:26:42 PM3/4/09
to
Here, DavidW <davidw...@hotmail.com> wrote:
>
> Sure. A copy of the source code can now be found at
> http://www.plover.net/~davidw/69105keys.inf , and I'll upload a copy
> to the archive as well.

Cool. Thanks.

I notice at one point you've got

! Using R_Process is a no-no, but how else is this gonna work?
R_Process(action, theKey);

My memory of longagotimes says that you can do this as

<(action) theKey>;

Or did you try that and find it not-right?

--Z

--
"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves..."
*

DavidW

unread,
Mar 4, 2009, 4:47:39 PM3/4/09
to

Perhaps I made the game a smidge easier than I initially intended, but
during the first run of testing, I hinted poorly enough that one
tester was misled completely as to my intent, and more or less
discovered the solution by accident. That wasn't the experience I
wanted to deliver. I wanted something more like:

1. Oh no, do I need to open an Excel spreadsheet for this? (or similar
panic)
2. Oh wait. Lemme check...
3. Yay, I won. I am so clever. Yay me.
4. (post-game) That was a bit different. I wonder how that was coded.
That might be an interesting mechanic to borrow for another game.

The feedback I've received so far makes me think I succeeded, so I'm
quite happy.

Re: false paths, might I mention my IntroComp entry "The Fox, The
Dragon, and The Stale Loaf of Bread"? I believe at least one reviewer
rightfully accused me of deliberately goading the player to take
actions that make the game unwinnable. (Someday I should really finish
that game...)

Your SQL comment makes me grin. Perhaps you could rot13 the SQL query
when you post it for an extra dash of geekitude.

DavidW

unread,
Mar 4, 2009, 4:53:03 PM3/4/09
to
On Mar 4, 4:26 pm, Andrew Plotkin <erkyr...@eblong.com> wrote:

> Here, DavidW <davidwelbo...@hotmail.com> wrote:
>
> > Sure. A copy of the source code can now be found at
> >http://www.plover.net/~davidw/69105keys.inf, and I'll upload a copy

> > to the archive as well.
>
> Cool. Thanks.
>
> I notice at one point you've got
>
>   ! Using R_Process is a no-no, but how else is this gonna work?
>   R_Process(action, theKey);
>
> My memory of longagotimes says that you can do this as
>
>   <(action) theKey>;
>
> Or did you try that and find it not-right?
>
> --Z
>
> --
> "And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves..."
> *

I tried <<action theKey>>, which of course made the compiler complain
that I didn't define ActionSub. It would never have occurred to me to
add brackets around a solitary term like that. Interesting.

Ross Presser

unread,
Mar 6, 2009, 10:39:58 AM3/6/09
to
On Mar 4, 4:47 pm, DavidW <davidwelbo...@hotmail.com> wrote:

> Your SQL comment makes me grin. Perhaps you could rot13 the SQL query
> when you post it for an extra dash of geekitude.

I've rot13'd the whole thing including discussion. Enjoy.

Urer'f gur zbfg fgenvtugsbejneq FDY, juvpu gnxrf nqinagntr bs gur
QOZF'f jvyyvatarff gb rknzvar rirel xrl sbe gur gnyyl, juvpu lbh pna'g
qb:

FRYRPG zva(xrlVQ)
SEBZ Xrlf
TEBHC OL fvmr, funcr, pbybe, oenaq, zrgny, rqtvat, fpengpuarff
UNIVAT PBHAG(*) = 1

Guvf ergheaf gur xrlVQ gung vf havdhr. Bs pbhefr gur snpg gung gur
xrlf qba'g *unir* VQf ehvaf gur nanybtl, ohg guvax bs "svaqvat gur
xrlVQ" nf na nanybtl sbe "cvpxvat hc gur xrl".

Fvapr gur jva npghnyyl bayl arrqf fpengpuarff cyhf nal bgure cebcregl,
gur gehr zbqry bs fbyivat gur tnzr vf n ovg gevpxvre. Jr jnag gb svaq
n pbzovangvba bs cebcregvrf gung unf n havdhr erfhyg. Ohg gurer ner
7*6 = 42 pbzovangvbaf bs 2 cebcregvrf. Gunaxf gb FDY Freire'f "JVGU
PHOR" naq TEBHCVAT(svryqanzr) rkgrafvbaf, vg'f bayl n yvggyr uneqre gb
jevgr gur fgngrzrag gung frnepurf nyy pbzovangvbaf bs cebcregl inyhrf,
2 cebcregvrf ng n gvzr, naq ergheaf bayl gur pbzovangvbaf gung tvir n
havdhr xrl:

FRYRPG fvmr, funcr, pbybe, oenaq, zrgny, rqtvat, fpengpuarff
SEBZ Xrlf
TEBHC OL fvmr, funcr, pbybe, oenaq, zrgny, rqtvat, fpengpuarff
JVGU PHOR
UNIVAT PBHAG(*) = 1
NAQ TEBHCVAT(fvmr) + TEBHCVAT(funcr) + TEBHCVAT(pbybe) + TEBHCVAT
(oenaq) + TEBHCVAT(zrgny) + TEBHCVAT(rqtvat) + TEBHCVAT(fpengpuarff) =
5

Gur "5" ng gur raq vf rdhny gb frira, gur gbgny ahzore bs cebcregvrf,
zvahf gjb, gur ahzore jr jnag gb pbafvqre ng bar gvzr.

Bapr ntnva, guvf vf zber jbex guna n uhzna jbhyq qb, fvapr gur
qngnonfr unf gb abg bayl rknzvar rirel xrl ohg pbafgehpg gnyyvrf bs 7!
= 5040 cebcregl pbzovangvbaf. (Vg abg bayl pbhagf gurz hc 2 cebcregvrf
ng n gvzr, ohg nyfb 3 ng n gvzr, 4 ng n gvzr, rgp., orsber svygrevat
qbja gb bayl gur 2 ng n gvzr va gur UNIVAT fgngrzrag.) Ubjrire, vg'f
whfg cbffvoyr gung gur FDY bcgvzvmre jvyy abgvpr gur TEBHCVAT yvar va
gur univat fgngrzrag naq fnir vgfrys fbzr jbex.

Rikard Peterson

unread,
Mar 8, 2009, 8:35:14 PM3/8/09
to
In article
<34e11020-e101-481f...@l37g2000vba.googlegroups.com>,
DavidW <davidw...@hotmail.com> wrote:

> Perhaps I made the game a smidge easier than I initially intended, but
> during the first run of testing, I hinted poorly enough that one
> tester was misled completely as to my intent, and more or less
> discovered the solution by accident.

You'll be pleased to know that it's not that easy for everyone. I'm not
clever enough to solve it at all.

peter...@hotmail.com

unread,
Mar 9, 2009, 5:40:21 AM3/9/09
to
On 9 Mar, 00:35, Rikard Peterson <trumgott...@bigfoot.com> wrote:
> In article
> <34e11020-e101-481f-aa33-bd79f0a4b...@l37g2000vba.googlegroups.com>,

>
>  DavidW <davidwelbo...@hotmail.com> wrote:
> > Perhaps I made the game a smidge easier than I initially intended, but
> > during the first run of testing, I hinted poorly enough that one
> > tester was misled completely as to my intent, and more or less
> > discovered the solution by accident.
>
> You'll be pleased to know that it's not that easy for everyone. I'm not
> clever enough to solve it at all.

Peterson - I had the same reaction, and then I saw the light - which
seems to be what the author had intended, so, cheers Mr. Author, you
did it. :)

It may seem chaotic, but don't get overwhelmed. Before trying
combinations of properties, check out all the variations in each
property. You should see something that'll make you suspect something.
Also, feel free to use "hint".

DavidW

unread,
Mar 13, 2009, 7:31:38 AM3/13/09
to
On Mar 6, 11:39 am, Ross Presser <rpres...@gmail.com> wrote:
> On Mar 4, 4:47 pm, DavidW <davidwelbo...@hotmail.com> wrote:
>
> > Your SQL comment makes me grin. Perhaps you could rot13 the SQL query
> > when you post it for an extra dash of geekitude.
>
> I've rot13'd the whole thing including discussion. Enjoy.

Very clever. We are amused, as some queens might remark.

I am also reminded -- since I don't really understand SQL all that
well -- of the "Simulation Games" poll (http://ifdb.tads.org/poll?
id=q419md18fyzrplr) at IFDB. I drew a blank trying to think of any
that IF games teach about real-world systems, but if there was a
similar poll for teaching games in general (eg: Informatory,
Deklinator), well, it occurs to me that it'd be nice if there were an
IF that could teach me SQL. It would be a difficult exercise in
parsing, no? (Well, difficult for anything but TADS 3, I expect. But
sadly, I don't understand how to make new grammar constructs in TADS
3. Someday I'll have learn how *that* is done.)

Reiko

unread,
Mar 15, 2009, 2:58:20 PM3/15/09
to
On Mar 9, 4:40 am, peter_pe...@hotmail.com wrote:
> It may seem chaotic, but don't get overwhelmed. Before trying
> combinations of properties, check out all the variations in each
> property. You should see something that'll make you suspect something.
> Also, feel free to use "hint".

Hint gives away a critical piece of information about how the
properties of the correct key are limited. I wouldn't have known where
to start if it weren't for that.

As it was, once I knew that, I started methodically searching starting
from the "easiest" combinations and came across the correct
combination almost right away by what felt like accident. (As in, "was
it supposed to be that easy?")

At any rate, quite clever.

George Oliver

unread,
Mar 15, 2009, 5:45:10 PM3/15/09
to
On Mar 15, 11:58 am, Reiko <tel...@gmail.com> wrote:

> Hint gives away a critical piece of information about how the
> properties of the correct key are limited. I wouldn't have known where
> to start if it weren't for that.


That hint does seem absolutely crucial -- unless there is some clue in
game that I'm missing?

In any case, an entertaining premise and well done I thought.

namekuseijin

unread,
Mar 19, 2009, 11:14:47 PM3/19/09
to
On Mar 3, 12:05 am, David Welbourn <davidwelbo...@hotmail.com> wrote:
> And as the story description says: "There's just one room. How hard
> can it be? Just unlock the door. Oh. There's 69,105 keys."
>
> It's an easy game. Honestly. All my testers solved it in minutes. You
> will too. Enjoy.

That was nice, man. I was first overwhelmed by the amount of
properties and possible combinations and aimed low. After quite a few
tries, I was able to get it.

I did no even use the hints, but now that you people mention it I
played again and tried the one that says it can be won with just 2
properties. And one of the properties was not quite the one I would
pick by my rule of taking the smaller quantities. So I guess perhaps
I was lucky on that first win? :P

Single objective, not much to interact with, but a cool idea, anyway.
I'll try your other game...

Campbell

unread,
May 21, 2009, 8:30:59 AM5/21/09
to
David Welbourn wrote:
> ... but I
> wondered, can this particular puzzle be coded in any of IF's other
> systems? I honestly don't know if it's possible in Inform 7, since I7
> doesn't do the 'parse_name' thing. I suspect it is possible to port it
> to TADS 3, but I wouldn't have a clue how. From what I've seen of
> Alan, ADRIFT, and Quest, none of those systems would be able to handle
> it. And I know too little of TADS 2 and Hugo to even make a guess.

Can you give me an overview of what the puzzle does that makes it
difficult to code? I'd love to see if it's possible in ADRIFT 4 (or
more importantly, ADRIFT 5).

Campbell

unread,
May 21, 2009, 9:41:36 AM5/21/09
to
Thanks to DC for pointing me in the right place.

One question tho ... am trying this using WinFrotz 2.32 release 5.3, and
it seems very buggy. Not sure if it's the game or the interpreter. For
example, I get this sort of thing:

>x tiny keys

examine tiny keys

look at tiny keys

count tiny keys
You see 255 tiny keys here.

>

Now, when I use Scrollback, I see that there was actually output, i.e.

>x tiny keys
You see nothing special about the tiny keys.

Perhaps you should be more specific? Try specifying the color as well.

>examine tiny keys
You see nothing special about the tiny keys.

Perhaps you should be more specific? Try specifying the color as well.

>look at tiny keys
You see nothing special about the tiny keys.

Perhaps you should be more specific? Try specifying the color as well.

>count tiny keys
You see 255 tiny keys here.

>


Anyone know what's up?

David Kinder

unread,
May 21, 2009, 2:46:00 PM5/21/09
to
Campbell wrote:
> One question tho ... am trying this using WinFrotz 2.32 release 5.3, and
> it seems very buggy. Not sure if it's the game or the interpreter.

Probably the interpreter: WinFrotz (the original port of Frotz to Windows)
hasn't been updated in something like a decade.

Try using Windows Frotz (disclaimer: ported by me) or Gargoyle.

David

Richard Bos

unread,
May 22, 2009, 1:19:36 PM5/22/09
to
David Kinder <da...@david.david> wrote:

> Campbell wrote:
> > One question tho ... am trying this using WinFrotz 2.32 release 5.3, and
> > it seems very buggy. Not sure if it's the game or the interpreter.
>
> Probably the interpreter: WinFrotz (the original port of Frotz to Windows)
> hasn't been updated in something like a decade.

Not likely, because I use that very same 'terp, and I saw nothing like
the problems Campbell had.

Richard

Campbell

unread,
May 22, 2009, 1:53:56 PM5/22/09
to

Hmm. I'll try a newer one anyway and see if that sorts. Thanks.

Reply all
Reply to author
Forward
0 new messages