Apollo 18+20: The IF Tribute Album

I guess this only works if they’re all written in the same language but: Maybe the Fingertips games could be compiled together in a single meta-game that puts you in the next game (in canonical order, or “shuffled”) just as soon as you’ve put in your move for the one? Kind of a WarioWare thing I guess.

That’d be extra cool, but it’d also run into a problem with if people named things the same, or maybe used certain extensions. So we’d have to make time to allow for that, or restrict people to, say, 4 or 5 objects per fingertips. And then there’d be a wangle over who would engineer everything together.

But I’d love to see it happen, too.

Sadly, my Fingertip would be almost guaranteed not to play nicely with others the way I’ve coded it. I might be able to work up a version that did play nicelier if I got some code to paste it into.

Unfortunately, this would require way more coordination than I’m willing to put into it. I’ll be ecstatic if we simply manage to fill all the slots.

-Kevin

So now that we have our first choices–do you also want to take steps to ensure there’s no major overlap? Should we do so before submitting the betas to you? I’d be glad to do my share of alpha testing and suspect my game(s) may need a look-over to make sure they’re not totally out of left field.

I’m also worried (as a relatively new author) that something I’m doing that might be new may’ve already been covered before. For instance, I was surprised to see Sokoban “done” circa 1999.

Really, pretty much anything that would be more work to coordinate isn’t something I want to do (or think needs to be done). If it helps, think of this more as a “tribute jam” rather than a full-fledged “tribute album”. There’s likely to be some overlap, and that’s OK.

There will be the betatesting by the contributors, and I think that’s likely good enough. Although if anyone wants to run ideas by me, let me know. (I don’t want to necessarily put people in touch with each other, since I didn’t ask people if I could share their email addresses, but if you want to just chat amongst yourselves here, that’s fine.)

-Kevin

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.

Paul.

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]”;
tryitagain;

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

every turn:
tryitagain;

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.”;
otherwise:
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!”;
otherwise:
say “BUG please mention [your-ending] to the author.”;
now your-ending is “”;
reset-any-globals;
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