Apollo 18+20: The IF Tribute Album

That’s a relief to me too. I imagine people who want to, will be able to get feedback or share email addresses as needed. For anyone interested in looking over each other’s work, before or after–I’m open. Dunno if other such offers should be in this topic or a new one.

Ryan’s thing is now a bit more robust. I don’t know if it’s link-worthy. It’s been useful for me to write down and pick up ideas.

I’d also be interested if interaction between games is useful e.g. like the man in the hat meta-puzzle, we have special (related) items in several fingertips that don’t seem to fit. It might encourage people to poke at a few more games than they would’ve otherwise and wouldn’t have to be tough.

This might, however, drive the organizer and beta-testers crazy.

Thanks to Andrew for organizing that document thing; it looks super nice now.

This belongs in the document but I’m thinking of it just now so I’m gonna have to paste it in there too: A metapuzzle/metathing would be super fun, obviously, and also obviously super hard to organize, unless a person who’s working on multiple songs works out the metaphenomenon between their own games. Not as appealing, but quite a bit easier to get done.

It was part of my job for a while. So I figured, why not.

If we have a meta-puzzle, maybe it could just be a weird throwaway item you can examine, maybe containing a certain weird word, or the letter q or x or something.

Also, I’m curious about the one-move restriction. I imagine there shouldn’t be too many rules, but I just want to make sure of what’s there.

  • Does examining count as a move? In some cases, I think it could be fair to give the player a chance to look things over, especially if the game is winnable/losable. It might be tedious if there’s one winning move and people have to keep typing RESTART
  • In that vein, should we expect the fingertips to be “winnable” or not? Or does it not particularly matter?
  • Can we reject other moves besides that?
  • Can/should a parser error count as a move? If so, which?
  • Can/should out of world actions count? e.g. requesting the score, saying ABOUT/CREDITS and so forth

Aisle isn’t winnable, and examining counts as a move. Rematch is winnable, and examining counts as a move, I think. (I haven’t played it in a while?) Aisle has some sort of weird trick that lets you hit any key instead of typing restart; I’m not sure how it works.

I think parser errors don’t usually count as moves anyway, and I am pretty sure out-of-world actions don’t either.

I’m starting to see a niche for a One-Turn Game extension, with automatic restarting and other fiddly bits taken care of. Maybe there already is one?

I think we should let the authors make some of those decisions. But it’s actually very difficult to let parser errors as such count as moves for the purpose of ending a game; I’ve never figured out how to do it. See this thread and this one; a solution is proposed here but I never implemented it. When I wrote something where I wanted a parser error to be understood as a random keyword, and that command to be able to end the game, I just did more-or-less

Understand "[text]" as random-keywording.

so any input would be mapped to a valid command.

And I do something similar in my fingertip, where any input ends the game with a simulated parser error message.

Sounds good that there’s some latitude for movement.

With the fingertips I’m also wondering if it’s OK to use an external file to keep track of how many times a person has played the game. Maybe to nudge them on to the next after 15 moves?

Would this muck with the medium/whom we want to send this game out to (presumably non-IFers who may play this over the web or with data files) and so forth?

I think you can do that without an external file, if you fake the one-move restriction. I haven’t tried it myself, but I think the way Aisle restarts you so effortlessly is by just waiting for any key and then “restoring the initial state,” i.e. printing the room description again.

Assuming you have a winning move, let’s say it’s “digging my grave”:

[code]Include Basic Screen Effects by Emily Short.

Hall of Heads is a room.

After doing something other than digging my grave in The Hall of Heads:
if the turn count is 15, say “Here’s a hint: try digging your own grave.”;
wait for any key;
try looking.[/code]

I don’t know if “if the turn count is 15” is the proper syntax; also, I don’t know if you can use “something other than” with an After rule. These questions are left as exercises to readers who know Inform better than I do. Also I didn’t bother to define “digging my grave.” Whatever. WHATEVER.

The trick is to make the text block for each of your supported actions look like it’s the “end of the game.” You also don’t want any action to actually change the game state (so, “instead of taking,” not “after taking,” etc.).

Ooh, neat. The example definitely works to show where it’s going–no need to make a full program out of it.

So I guess we could have a fake endgame screen, where restarting would still retain values like all actions you’ve tried. Maybe we could even make a tribute-album-specific extension for those who want to include a small abuse like this in their fingertips.

I can’t imagine it would need to be any other way … since all the game needs to do is print a string in response to the player’s action, there’s no need to actually let any action affect the gameworld; there’s no modeling, no state-tracking, etc. The gameworld remains pristine, so just reiterating the opening crawl equals a full restart.

My fingertips entry will have automatic restarting (without any Restart, Restore, Quit menu) since I have already implemented this for my WIP. (I did it by hacking ‘end the story’ so the game only pretends to end, but actually merely resets all game variables manually to initial conditions, and then repeats the starting description and then ‘resume the story’ – so I think it already qualifies as one of Afterward’s ‘fakes’.) I don’t want to spend a large amount of time, so I’m just going to empty the shell of my WIP and replace it with a fingertips entry, keeping whatever hacks and innovations I feel would improve a fingertips entry, and discarding the rest. Parser errors will probably not count toward the time limit, because they don’t in my WIP – although I may not like the effect and may try to hack it so they do count.


Here’s what I’ve got. It’s a bit long, so I spoilered it, but it’s code. I like this better than having to retype restart all the time. Thanks everyone for your suggestions.

Copy/modify/nitpick/(ETA: ignore) as you please, anyone with a fingertip.

[spoiler]“onemover” by Andrew

include basic screen effects by Emily Short.

Obligatory Room Name is a room.

A window is scenery in Obligatory Room Name.

your-ending is text that varies. your-ending is usually “”.

rule for printing a parser error when the latest parser error is the I beg your pardon error:
say “You can’t think of what to do.[paragraph break]”;

rule for printing a parser error:
say “Oops! That didn’t do anything at all.[paragraph break]”;

every turn:

ways-to-end is a number that varies. verbs-guessed is a number that varies.

to tryitagain:
if your-ending is “”:
say “Hm, that wasn’t a very creative way to die. You need to do better! It’s for the general good!”;
otherwise if your-ending is a movetry listed in table of accomplishments:
choose row with movetry of your-ending in table of accomplishments;
if there is an achieved entry and achieved entry is true:
say “You already died that way. But I’ll let you try again.”;
now achieved entry is true;
increment ways-to-end;
if there is a verbguess entry:
increment verbs-guessed;
say “You found a new ending[if there is a verbguess entry], guessing a stupid verb in the process[end if]! That’s [ways-to-end] found and [verbs-guessed] verbs guessed!”;
say “BUG please mention [your-ending] to the author.”;
now your-ending is “”;
wait for any key;
say “[story description]”;
try looking;

to reset-any-globals:
the rule succeeds;

instead of taking inventory:
say “You realize you are broke. You die from shame.”;
now your-ending is “wallet”

Rule for constructing the status line:
center “Fingertips Title Here” at row 1;
rule succeeds.

table of accomplishments
movetry achieved verbguess
“wallet” false
“xyzzy” – 1

chapter xyzzying

xyzzying is an action applying to nothing.

understand the command “xyzzy” as something new.

understand “xyzzy” as xyzzying.

carry out xyzzying:
now your-ending is “xyzzy”;
say “Well, I’ll put something clever here eventually.”;[/spoiler]

Err, more double posting…maybe nothing will come of this, but over at ifmud (ifmud.port4000.com) I just set up a tmbg channel (@joinchannel tmbg to get on it.)

Maybe for anyone motivated we can have a livechat session or 2 to nail down ideas.

MUSHclient is what I use, but maybe others have better recommendations.

Sorry, have been out of the country with limited Internet access.

Anyway, please feel free to do whatever you want with the Fingertips games. Yes, I was certainly envisioning something like Aisle, but I don’t want to restrict anyone’s creativity. And, also, people should feel free to not go along with what other people are doing.

-Kevin, slowly recovering from being away for two weeks

No worries on that score [emote]:)[/emote]

I’ve been mostly-quiet due to being extra-busy, but I do believe I’ll have my fingertip ready for the testing deadline [emote]:)[/emote] Yesterday I finally dove in past the preliminaries and did a big wobbly pile of writing on it.

Awesome! Some betas have been trickling in, and I’m getting excited to see this all come together.


I am so glad I signed up do this now, because for longer than I care to admit I have been spending most of my free time rereading and going over my voluminous stacks of notes on my massive project (not something I do a lot, but the project has reached that ‘last chance to make significant structural changes’ point). This stage of where I’m at is really boring drudgery and I am progressing so slowly and feeling so sluggish, that taking a few days break to do some real coding again and freshen up is exactly what I need right now. 8)

I’ve got some ideas. I didn’t want to predetermine what I would do too much and I’m glad I didn’t. Looking forward to seeing everyone else’s experiments, too.


Gunna be a day late.

I’ve been a bit sick so I may need an extra day as well. But it’s more for touching things up than not having anything period.

Btw, I’ve enjoyed the games I’ve betatested so far.