Discussions about interactive fiction

Archive for September, 2011

topic understood (more newbie questions)

Ordering is an action applying to one topic.
Understand "order [text]" as ordering.

Check ordering:
if the topic understood is not "beer"
begin;

end if.

That gives me this error:

In the sentence ‘if the topic understood is not "beer" begin’  , it
looks if you intend ‘topic understood is not "beer"’ to be a
condition, but that would have meant comparing two kinds of value
which cannot mix – a snippet and some text – so this must be
incorrect.

What am I missing?

.
posted by admin in Uncategorized and have Comments (9)

Textfyre and Infocom

I recently had conversations with Activision about licensing the
Infocom material.

http://chicagodave.wordpress.com

David C.

posted by admin in Uncategorized and have Comments (7)

Rules conundrum

So I have a "deciding the concealed possessions of…" rule that makes
it so you can’t see the beers the bartender is carrying so you don’t
get a bunch of crap when you try something like "take beers".

I want to make it so when the player trys to "ask bartender for a
beer" it will stop the action and say something like "try ordering one
instead."

The problem is that the deciding the concealed possessions rule is
taking precedence and I get "you don’t see any such thing" instead of
the output from my "instead" rule.

I imagine the fix would involve naming the rules, then listing them in
a certain way but I don’t know how to go about this.

I am also unclear as to where I can see what rules go in what rulebook
so I can properly format the "the rule1 is listed before the rule2 in
the whatever rulebook".

Thanks in advance for any advice you can provide.

posted by admin in Uncategorized and have Comments (2)

TADS 3: dobjFor(Default) inheritance problems

In TADS 3, I tried to create that is sometimes distant, sometimes not.
Here is a crude simplification of what I tried:

widget: Thing
  ‘widget/w’
  ‘widget’
  @startRoom
  widgetIsDistant = nil
  dobjFor(Default) {
    verify() {
      if (widgetIsDistant) {
        illogical(‘Right now the widget is too far
          away for you to do anything but look at it
          or listen to it. ‘);
      }
      else { inherited(); }
    }
  }
  iobjFor(Default) {
    verify() {
      if (widgetIsDistant) {
        illogical(‘Right now the widget is too far
          away for you to do anything but look at it
          or listen to it. ‘);
      }
      else { inherited(); }
    }
  }
  dobjFor(Examine) {
    verify { inherited; }
  }
  dobjFor(ListenTo) {
    verify { inherited; }
  }
;

But I ran into a weird problem. If I type CLIMB WIDGET or DRINK
WIDGET, I get "Nothing obvious happens." I think I can see what’s
happening. When the player types DRINK WIDGET, I expected the
inherited part of widget.dobjFor(Default) to inherit from
Thing.dobjFor(Drink), but it’s actually inheriting from
Thing.dobjFor(Default), which doesn’t help for what I’m doing.

Is there any way I can do what I’m trying to do? Right now I’m
stumped. Thanks for any answers.

Greg

posted by admin in Uncategorized and have Comments (3)

Generic New York Apartment Building Help

I’m sort of new to IF/AIF gaming…so excuse me if some of my
questions seem easy to all of you. Well, here it is…

1) I have 61 points (which I presume, is quite low).

2) I got Eleanor and Fee.

3) I met the 1st batch of tenants (11 in all).

4) I fixed the light in the basement.

5) I got 3 items from Lost & Found (2 of them I’m clueless on).

6) I checked the furnace (clueless there as well).

7) I saw the dog (belongs to Jane, have NO idea how to get Manny).

8) I met Minerva (no idea on how to tighten fitting).

9) I know that Rochelle needs to work for Carmen.

10) I know that Rochelle should clean clothes (again…clueless).

11) I got past Amy’s fax glitch, plugged fax in 403, read fax
instructions…still can’t send 1 fax. I think I may be giving
incorrect commands.

Maybe if I saw more of these sitcoms the solution would come easier.
The only two I was familiar with was Seinfeld and Friends. So, if you
can give me some clues, that would be great. Or if someone has a
walkthrough, I’d take that too. I’m hoping that I get some quick
responses. Take care.

posted by admin in Uncategorized and have Comment (1)

scrutinize.h: New library extension for Inform 6

I’ve just uploaded a library extension called scrutinize.h. It’s meant
to help authors find missing synonyms for objects, like if the player
sees "There’s a beautiful blanket here." but when he types "take
beautiful blanket" he gets "You can’t see any such thing." because the
programmer forgot to add ‘beautiful’ to the name property of the
object.

It’s currently in /if-archive/unprocessed/ but it should move to
<http://www.ifarchive.org/if-archive/infocom/compilers/inform6/library/
contributions/scrutinize.h> sometime soon.

I don’t place any restrictions on its usage, so if you find it useful
and feel like convering it to Inform 7, or some other system, and then
release it publicly, please feel free to do so.

/Fredrik

posted by admin in Uncategorized and have Comment (1)

Thoughts on Beyond Zork's Design

As a child, I didn’t get far in Beyond Zork (just the wine cellar,
basically), and years later I finished it using hints when I got it as
part of the Lost Treasures of Infocom collection.

My main memory of the game in the 80s and 90s is of respect for the
colorful, creative world of the game and the descriptions – mixed with
unbelievable frustration at its design.

Here I am like 15 years later, and I just spent maybe ten hours over
the course of a week trying to beat the game without hints – a task
which should have been easy, since I theoretically should have been
able to remember the puzzle solutions from 15 years ago. I should have
breezed through it on the strength of my half-remembering the
walkthrough, like I recently did with Stationfall.

Not a chance. While it’s filled with great writing, great ideas, and
memorable locations and characters, Beyond Zork is not fun to play.
Even by the standards of mid-80s text games, Beyond Zork is fun in
small sections but overall an excruciatingly irritating playing
experience. It’s full of

1) sudden, pointless death,
2) astonishingly obscure puzzles,
3) many, many limited-use items,
4) locations which can only be visited once or twice
5) randomly generated location maps and item placement
6) countless instances where a player can make the game unwinnable
with a single, seemingly normal action such as using a healing herb on
himself.
7) a game world that is very difficult to travel across
8) several puzzles that require the character to die or destroy an
object, then restore, in order to even begin to figure out the
solutions.

numbers 1 and 5 are functions of the game’s pseudo-RPG design, and I
would be willing to overlook them, if the rest of the design choices
weren’t so frustrating.

So I guess my questions are:

1) Am I the only one who had this frustrated reaction to the game? (I
mean, just thinking that I as a player was expected to solve, without
hints, any of the puzzles involving the organ grinder and his hurdy-
gurdy, makes me almost blind with rage)

2) How would you improve the design of Beyond Zork, if you had the
chance?

3) Would it be possible to make a truly successful text game that was
also a leveling-up-type RPG? How would you go about it?

4) Beyond Zork is a more "realistic" world-simulator than most Infocom
games — there are multiple solutions to puzzles, items can be bought
and sold, it’s pretty non-linear, there are a lot of NPCs, etc. — but
does that make it a good IF game? I’m thinking of the discussions
about (I hate to use the term) IF "mimesis" that I’ve read.

posted by admin in Uncategorized and have Comments (24)

[Glk] gestalt doubts

One question about gestalt and its behaviour:

When a sound enabled interpreter runs ona machine with no sound
avaliable, should gestalt return that sound is avaliable or not?

Reading at Glk specifications I can only see that it returns what the
Glk API support (so it may return avaliability of sound in a machine
with no sound), but I wonder too how the Glk implementations actually
have done it.

posted by admin in Uncategorized and have Comments (3)

Inform 7 and the future of Interactive Fictions games in foreign languages (Part II)

I wrote 9 months ago a post about the future of Inform 7 and foreign
languages (cf.
http://groups.google.fr/group/rec.arts.int-fiction/browse_thread/thre… )

So far the situation didn’t change much about this issue.

But for our part, here is what happened : Depresiv, Xpktro, Mel Hython,
Santiago Eximeno, Grendel Khan, Urbatain wrote a whole game in Spanish :
http://www.wikicaad.net/El_museo_de_las_consciencias, and I’ve written a
few speedif in French :
http://anamnese.online.fr/site2/if/inform7/ScarabeeKatana/
http://anamnese.online.fr/site2/if/inform7/sorciereaubalcon/

Now the Spanish libraries for I7 are located there :
http://groups.google.com/group/rakontointeraktiva/files

While for the French libraries, both I6 and I7 we have a subversion
repository for a better co-working :
http://viewvc.tuxfamily.org/svn_informfr_informfr/trunk/

To make it short, it’s possible to create games in Inform 7 in Spanish and
in French, but there are still some limitations :

1) ‘ is converted into the inform 6 code by ~ . While it’s fine for the
English languages which don’t use apostrophe (probably there is a
workaround in the code for O’clock, O’Brien and such), it is an issue in
French and Italian (and probably other languages too, maybe not Spanish ?)

Solutions :
        a) Allow the IDE to load and compile a modified version (by hand) of the
Inform 6 autogenerated code, or compile it by hand in console mode. Not
nice for glulx games, and not user friendly either.
        b) (better) Allow to use ~ into I7 code, and propose the option not to
convert the ‘ into ~, and to convert ~ into a working ~ in the I6 code
(check option in the IDE, and option in the NI builder). It won’t change
anything for English-speaking users, but will be easier for the others.

2) There is no possibility to include custom libraries like it was with
Inform 6. It means you can’t officially add new languages.
I’ve seen there is the "Custom Library Messages" and "Default Messages" by
David Fisher, which could be interesting to use, but it won’t solve the
problems for the genders and special grammar in other languages.
More, while we had to maintain only 2 files in Inform 6, now there are still
the Grammar.h and English.h files to adapt, but also a bunch of other files
to take into account. According to Sarganar, there are at least those files
with some default answers in English, instead of into the two Grammar.h and
English.h :

Actions.i6
ChooseObjects.i6
Main.i6
Printing.i6
Relations.i6
Tables.i6
Times.i6
Verbs.i6

I can well understand the authors and contributors of Inform 7 having
English/American as mother tongue, they want to favor this language. So
it’s not a problem if it’s designed like this, but we want to discuss of a
solution of be able to ease the task to the maintainers of the foreign
versions.

Solutions :

        – For the internal error messages like the ones for ex. in time.i6, use a
kind of string converter list, like for the gettext project :
http://en.wikipedia.org/wiki/Gettext / http://www.poedit.net/index.php
        The problem with this format is it’s in binary I think. But there are maybe
other solutions.

        – For the standard libraries, based on the old english.h and grammar.h,
modify the Main.i6 so it’s easy to include a foreign language definition :

        around line 417 :
        #IFDEF ForeignLanguage;
        #IFNOT;
                Include "Grammar";
        #ENDIF;

        But there is still the problem of including the equivalent of English.h for
every languages. For the French version, I do this :

        around line 80 :
        {-open-file}!% +language_name=FrenchN11
        {-call:compile_icl_commands}

        Is it possible to have instead :
        {-open-file}!% +language_name=LanguageFile
        {-call:compile_icl_commands}

And replace this LanguageFile variable in the foreign extension ? I didn’t
find a way to do it myself, unfortunately.

The use of new verbs or alterations of default verbs is also another big
annoying issue.

For example if I want to modify a verb like this :

Going behind is an action applying to one thing.
Understand "go derriere [something]" as going behind.

it’s working. But :

Understand "aller derriere [something]" as going behind. (derriere means
behind in French)

It’s not working because "aller" (going) is already in my definition in
French, and it’s not possible to modify it like in English.

All the other questions posted there remains unanswered :

http://groups.google.fr/group/rec.arts.int-fiction/browse_thread/thre…

So how will be the future of Interactive Fiction for us ? Will some
arrangements be made in order to help us to adapt Inform 7 into foreign
languages, or on the contrary will the compatibility be more and more
difficult in the further releases of Inform 7, with some build-in English
expressions and such, so if we really want to make IF games we’ll have to
stick to Inform 6 only ?

posted by admin in Uncategorized and have Comments (9)

I7: Showing an object to an NPC

How do I make an action contingent on having shown an object to an
NPC? For example, I want the player to be able to ask a certain NPC
for an object, but the NPC will only give it if he has been shown a
certain document by the player. I tried using "if the guard has not
been shown the passport" and "if the guard has not seen the passport"
but both of these produce an error.

posted by admin in Uncategorized and have Comment (1)