intfiction.org

The Interactive Fiction Community Forum
It is currently Thu May 23, 2013 8:50 am

All times are UTC - 6 hours [ DST ]




Post new topic Reply to topic  [ 107 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7 ... 11  Next
Author Message
PostPosted: Fri Jan 06, 2012 8:50 pm 
Offline
User avatar

Joined: Tue Aug 02, 2011 3:45 pm
Posts: 225
Location: Iowa
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?

_________________
we gotta move these refrigerators


Top
 Profile Send private message  
 
PostPosted: Sat Jan 07, 2012 12:38 am 
Offline

Joined: Tue Mar 09, 2010 2:34 pm
Posts: 2128
Location: Burlington, VT
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

Code:
Understand "[text]" as random-keywording.


so any input would be mapped to a valid command.

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


Top
 Profile Send private message  
 
PostPosted: Sat Jan 07, 2012 2:51 pm 
Offline

Joined: Mon Oct 11, 2010 1:27 pm
Posts: 455
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?


Top
 Profile Send private message  
 
PostPosted: Sat Jan 07, 2012 4:46 pm 
Offline
User avatar

Joined: Tue Aug 02, 2011 3:45 pm
Posts: 225
Location: Iowa
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.


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.).

_________________
we gotta move these refrigerators


Top
 Profile Send private message  
 
PostPosted: Sat Jan 07, 2012 5:13 pm 
Offline

Joined: Mon Oct 11, 2010 1:27 pm
Posts: 455
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.


Top
 Profile Send private message  
 
PostPosted: Sat Jan 07, 2012 11:22 pm 
Offline
User avatar

Joined: Fri Apr 11, 2008 11:05 pm
Posts: 699
Location: Denver, Colorado
Afterward wrote:
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.


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.

_________________
Games, Fonts, and Font-Toys For Gamers - http://www.cumberlandgames.com


Top
 Profile Send private message  
 
PostPosted: Sun Jan 08, 2012 7:15 am 
Offline
User avatar

Joined: Mon Oct 04, 2010 11:35 am
Posts: 776
Location: Toronto
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.


Top
 Profile Send private message  
 
PostPosted: Sun Jan 08, 2012 12:53 pm 
Offline

Joined: Mon Oct 11, 2010 1:27 pm
Posts: 455
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: show
"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.";


Last edited by aschultz on Wed Jan 11, 2012 6:42 pm, edited 1 time in total.

Top
 Profile Send private message  
 
PostPosted: Sun Jan 08, 2012 5:10 pm 
Offline

Joined: Mon Oct 11, 2010 1:27 pm
Posts: 455
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.


Top
 Profile Send private message  
 
PostPosted: Wed Jan 11, 2012 5:17 pm 
Offline

Joined: Thu May 13, 2010 5:24 pm
Posts: 135
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


Top
 Profile Send private message  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 107 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7 ... 11  Next

All times are UTC - 6 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group