Discussions about interactive fiction

Archive for September, 2010

[OT] The Rosetta Star

Thought you guys might be interested in this:

http://www.amazon.com/exec/obidos/tg/detail/-/1411610741/qid=11243049…

Paul

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

ADRIFT Parser

I was hoping I could get some decent feedback from IFers with
experience using ‘The Big Three’ in terms of parsers and what is
lacking with ADRIFT.

Aside from the fact that ADRIFT uses tasks to override the standard
parser which ultimately leads to problems if the override doesn’t quite
match, what are the main things lacking with the ADRIFT parser?  In
other words, what are the things that would fail or be mis-interpreted
by ADRIFT that would be properly addressed by TBT, and what aspects of
the ADRIFT parser just generally annoy you?

Feel free to be as honest as you like, I’m up for some real criticism!

Thanks,
Campbell

posted by admin in Uncategorized and have Comments (4)

Inform question

Where do I place scenery tags in .inf documents? Do I use a text editor
to edit .inf files?

I can’t seem to make sense of all this:

!
——————————————————————————
! Rooms
!                     235–234–233
!                                |
!                               232
!                                |
! 244–245                 230–231
!  |                        |
! 243       249       229–227–228
!  |         |         |    |
! 242–241–240  237–236  226
!            |    |         |
!           239–238       225–224–
!            |                     /
!           246–247              /
               171
!                 |              /
                |
!                248            /    002–004
          167–168–169–170
!                              /      |
                |    |    |
!                             /      001
          163–164  165  166
!                            |        |
                     |
! 095       094              |       005–003
          159  160  161  162
!  |         |               |        |
           |    |    |    |
! 092       093              |        |   008–009
     154–155–156–157–158
!  |         |               | START  |    |
                |    |
! 091  090  089  088          \ 010–006–007
               152  153
!  |    |    |    |            \      |
                     |
! 083–084–085–086–087       \    011
146–147  148–149–150  151
!  |         |         |         \    |
 |         |         |
! 082  081–080       078–079    —012
142       143  144–145
!            |         |              |
 |         |    |
!           073–074  075–076–077   |             017–018
100–138–139–140–141
!            |                        |              |              |
      |         |
!            |   036  033             |   223  015  016       098  101
     128       129  131
!            |    |    |              |    |    |    |         |    |
      |         |    |
!  —–    039  035  032            013–198  019–020–021–097–102
125–126–127  130–132–134  135
!  |    |    |    |    |              |         |    |              |
      |              |         |
!  |   040–038–034–031–030–029–014——-022–023–024       103
     124            133       136
!  |         |                      / |         |    |              |
                               |
!  |   041–037                    / 028       027  026–025       104
               116–119       137
!  |                 ————–   |         |                   |
                |              |
!  |                /           045–042       043–044
106–107–112  114–117–120–122–123
!  |               /             |    |         |    |
      |    |    |    |
!  |              |        046–047  048       049  050–051
108–109–113–115–118–121
!  |              |         |    |    |         |         |         |
 |
!  |              |        052–053–054       055  056  057       110
111
!  |              |         |    |    |              |
!  |              |   058–059–060  061       062–063–064
!  |              |         |    |    |              |
!  |              |        065  066  067            068
!  |              |                   |              |
!  |              |             069–070————071
!  |               \                  |
!  |                \                072
!  |                 \
!  |
——————————————————–
!  |
      |
!  |   192————193————194–195
     199            204
!  |    |              |              |
      |              |
!  |   191             |             196
206——-200–201–202–203
!  |    |              |              |                             |
      |
!  |   190       182   |             197
207–208   |
!  |    |         |    |              |
      |
!  |   176–177–178   |             187
211–209–210
!  |                   |              |
|
!  |        174–173–172——-185–186
212–213
!  |              |    |         |
     |
!  |             188–175–180–183–184
    214
!  |                   |
     |
!  |                  179
    215
!  |                   |
     |
!  |                  181
    216
!  |                   |
     |
!  |                  189
    217
!  |                   |
     |
!  ———————
    218–219–220–221–222
!
!
——————————————————————————

Object  HLAPlayer
  with  short_name [;  return L__M(##Miscellany, 18); ],
        description "Much the same as yesterday.",
        before NULL,
        after NULL,
        life NULL,
        time_out NULL,
        describe NULL,
        add_to_scope 0,
        capacity 100,
        parse_name 0,
        orders 0,
        number 0,
        each_turn [;
            self.food–;
            if (self.food == 0) {
                deadflag = 1;
                "", (CCyan) "You collapse from starvation…^",
                (CWhite) "Alas, not one of your better moves…^",
                (CRed) "";
            }
            if (self.food <= 25)
                "", (CCyan) "You are running out of food!";
        ],
        food 250,
        gold 200,
        hit_points 100,
        experience 0,
        damage_caused -1,
  has   concealed animate proper transparent;

!
——————————————————————————

HLAroom VILLAGE_001 "Village tavern"
  with  name ‘tavern’ ‘bartender’ ‘customers’ ‘tables’ ‘chairs’
‘staircase’ ‘sign’,
        room_description [;
            "You are standing in a tavern with creaky wooden floors.
             Laughter and commotion surround you as the bartender tends
to his customers.
             A few tables and chairs are visible here.
             A staircase heads upstairs to the second floor of the
tavern.
             A sign reads ~Drink Cerveza!~^",
             (CCyan) "Type ‘HELP’ for a list of commands used in HLA
Adventure.^",
             (CWhite) "If you need help, you can also e-mail me at: ",
             (CCyan) "dunric@@64yahoo.com^",
             (CWhite) "(Questions specific to the Inform port to ",
             (CCyan) "rogerpepitone@@64yahoo.com",
             (CWhite) ").";
        ],
        s_to village_005,
        u_to village_002;

HLAnoun -> rations_59 "rations"
  with  name ‘rations’,
        description "These are standard iron rations (lasting two
weeks).",
        after [;
          Eat:
            player.hit_points = player.hit_points + 200;
            player.food = 300;
            "", (CWhite) "You eat the rations…^", (CYellow) "You feel
much better!";
        ],
        otype 2,
        price 36,
  has   edible;

!
——————————————————————————

HLAroom village_002 "Upstairs hallway"
  with  name ‘hallway’,
        room_description
            "You are standing on the upstairs hallway of the tavern.
             A few rooms are visible up ahead, the largest of which
stands to the east.
             It appears unoccupied at the moment.",
        e_to VILLAGE_004,
        d_to VILLAGE_001;

!
——————————————————————————

HLAroom VILLAGE_003 "Village store"
  with  name ‘store’ ‘shop’,
        room_description [;
            "You are standing in the village shop.
             Commands here include ‘BUY <item>’, ‘SELL <item>’ and
‘LIST’.
             A clerk is normally here attending to customers.
             He seems friendly enough.^",
             (CYellow) "To purchase the sword (for example), type: BUY
SWORD^
             To sell an item, use ‘SELL’ instead of ‘BUY’.";
        ],
        w_to village_005,
        before [ x;
          List:
            if (clerk_25 notin self)
                "", (CRed) "The clerk isn’t here to help you.";
            print (CWhite) "The clerk say, ~Here is what we have in
stock:~^";
            SetColor(ColorCyan);
            objectloop (x in clerk_25)
                print (name) x, ": ", x.price, "^";
            "", (CWhite) "The clerk says, ~Take your time.~^", (CGreen)
"Gold: ", (CYellow)
            "", player.gold;
          Buy:
            if (clerk_25 notin self)
                "", (CRed) "The clerk isn’t here to help you.";
            SetColor(ColorWhite);
            if (noun notin clerk_25) "The clerk says, ~We don’t sell
that here.~";
            if (player.gold < noun.price)
            "The clerk says, ~You don’t have enough money.~^",
(CYellow) "Gold: ", (CWhite)
            "", player.gold;
            player.gold = player.gold – noun.price;
            move noun to player;
            "", (CMagenta) "You hand the clerk the gold coins.
            The clerk hands you the item.
            The clerk thanks you.";
          Sell:
            if (clerk_25 notin location)
                "", (CRed) "The clerk isn’t here to help you.";
            SetColor(ColorWhite);
            if (noun notin player) "The clerk says, ~You aren’t
carrying that.~";
            if (~~noun provides price) "The clerk says, ~Sorry, I don’t
know what that’s worth.~";
            if (noun.price == 0) "The clerk says, ~Sorry, that’s
worthless.~";
            player.gold = player.gold + noun.price;
            move noun to clerk_25;
            "", (CWhite) "You hand the clerk the item.^",
            (CMagenta) "The clerk hands you the gold coins.^",
            "The clerk thanks you.^", (CYellow) "Gold: ", player.gold;
        ];

NPC     -> clerk_25 "clerk"
  with  name ‘clerk’,
        description "A stout clerk. He looks well fed.",
        life [ x;
          Answer:
            "The clerk says, ~Well, what will it be, soldier?~";
          Attack:
            for (x = child(self) : x : x = child(self)) remove x;
        ],
        otype 2;

HLAnoun -> -> oil_07

read more »

posted by admin in Uncategorized and have Comments (35)

Kids interest in IF

Summer is winding down, and to take my kid’s minds off the impending
school year, I introduced them to IF.  My son is 12, and he is playing
Zork right now.  He’s very into it, and the only advice I gave him was
to read room descriptions VERY WELL.  I told him this when he was stuck
upstairs in the trophy room.  This led him to discover the trap door.

Oh, and I told him how to solve the cyclops puzzle, because I always
thought the solution to that wasn’t logical.

My daughter, 14, is playing Wishbringer.  I haven’t given her any
clues, mainly because I don’t remember the game that well.  But she
has > 60 points out of 100, so she’s doing fine.

I am surprised to see them both so hooked, though, and they seem stoked
that there are so many more games, once they finish these.  They play
their share of video games (zelda, madden, etc.) and pc games (sims),
so I wasn’t sure if the "step down" to all text would be too much of
a turn-off.  It probably helps that they’re both voracious readers.

I’m sort of envious of them, in a way.  I remember the joy of solving
these puzzles for the first time, and without help.  It’s fun to see
them pump their fist when they solve something that’s been taking them
hours.

So, parents, anybody else try to introduce IF to their kids?  What
level of interest have they shown?


Keith Rose (Remove all "x" characters from my email address for replies.)

posted by admin in Uncategorized and have Comments (12)

ORDER COFFEE: What am I doing wrong?

I realize a question about IBG’s "Captain Fate" may be way too newbie,
or previously-discussed.  I have looked for answers elsewhere (just not
the DM4!)  I don’t expect anyone to feed me a complete answer to just
paste into my code, necessarily.

I’m trying to provide for a basic ORDER COFFEE command, so the player
doesn’t have to ASK [cafe barman]BENNY FOR COFFEE.  It seems
unreasonable that a player in a cafe can’t say it so simply.  This is
what seemed the most logical:

[ RequestSub; "That may be on sale somewhere, but not here."; ];

Verb ‘request’ ‘order’
* noun                  -> Request
* topic                 -> Request
* noun ‘from’ creature  -> Request
* topic ‘from’ creature -> Request;

 . . . and, in the coffee object’s Before properties . . .

Request:
        if (location == cafe) <<askfor benny self>>;
        else "Smart-Ass Denial Message";

 . . . It compiles without errors, but doesn’t work.  What I get
instead is, "Benny has better things to do", a Library Message, as if I
had ASKed BENNY TO KISS ME.  If I change the test to (player.location
== cafe), I get the "Smart-Ass" message IN the cafe.  (player in cafe)
gets the Library Message again.

I admit, I’m doing a lot of guessing here.

Am I misunderstanding AskFor?  Do I need to extend or replace the
existing Ask/AskFor verbs??  Most importantly, was my approach
logical???  It seemed preferable to duplicating all the code that
handled ASK BENNY FOR COFFEE, in the Benny object.

If the question’s too tedious, I apologize.  I would be grateful for a
good solid hint.  

~JD

posted by admin in Uncategorized and have Comments (15)

TADS3 – toInteger problems

I am trying to convert a string to a number, and toInteger(x) almost
works, but not quite. toInteger("0") returns 0, but toInteger("asdf")
also returns 0, and I need to distinguish these two cases. I hope I
don’t have to write a new string conversion function from scratch. Can
anyone help?

Greg

posted by admin in Uncategorized and have Comments (5)

Question about Inform programming

Where do I add the scenery tags?

An example would be very helpful! :)

(No, Dave, I’m not mentally ill…actually trying to learn some of this
Inform stuff).

Paul

posted by admin in Uncategorized and have Comments (22)

[Inform] Suppressing turns

Since I have not been able to find an answer to this in the DM4 (which
may well be a mistake on my part), I hope somebody here can enlighten
me. Inform normally tells the player how many turns he or she has taken
in the game, in the rightmost corner of the screen. How do I suppress
that message?

For suppressing score, I found the NO_SCORE constant, but I cannot find
something similar for turns.

Greetings,
Victor

posted by admin in Uncategorized and have Comments (2)

Upcoming Activision Re-release

This might sound strange, but I ended up getting back into interactive
fiction, which I last played on an DOS 8088 PC when I was ohhh roughly
5 years old.  The game was one of the Zorks, but I haven’t figured out
which one yet.  I remember always slipping on slime or something.
Anyway, I want to play the classics, so I am interested in purchasing
the Collected Works of Infocom.  Trying to do my homework on the
subject first, I bumped into this site:
http://www.infocom-if.org/news/news.html

…which mentioned that an Infocom collection was going to be
re-released.  Apparently previous collections were never 100% complete
for various reasons.  Does anybody know anything more about this
upcoming re-release, such as its release date and what it will include?
 Will it include maps, manuals, and other extras?  Should I wait for
it, or should I try getting one of the previously released collections?
 These Infocom games seem to retain quite a bit of value, as they cost
allot, judging by the current Ebay auctions.

I know that such news probably doesn’t mean much to the hardcore old
timers, as they already own several different copies of each Infocom
game… but to somebody trying to get back into things, it seems like
an interesting development.  So please, fill me in!

posted by admin in Uncategorized and have Comments (24)

[SPAG] Greetings… and Request for Reviews

Hello!

As most SPAG readers are probably aware, Paul O’Brian stepped down as
editor of the magazine recently, and chose me (of all people) to take
his place.  Paul of course did an amazing job with SPAG for many years,
his tenure spanning more than half of the magazine’s total lifespan.  I
was frankly as surprised as I was honored when Paul came to me — my
profile around here is hardly more than a blip on the proverbial radar
— but I was more than willing to give it a go.  I will certainly do my
best to see that SPAG continues as a useful resource for the community .

One thing most definitely will not change.  SPAG remains dependent on
you for reviews and for its very existence.  With that in mind, here is
a baker’s dozen of games that I would love to publish reviews for:

1.  All Hope Abandon
2.  Dawn Of The Demon
3.  1893: A World’s Fair Mystery
4.  Finding Martin
5.  Future Boy!
6.  Mystery House Taken Over games (any, some, or all!)
7.  Narcolepsy
8.  Return To Ditch Day
9.  Threnody
10. Whom The Telling Changed
11. IntroComp 2005 games (any, some, or all!)
12. Building
13. HLA Adventure (Inform version, original version, or both!)

This list is only to get you started.  Your options are of course not
limited to the above. If you have played recently or play during the
next couple of months a game that makes an impression on you, good or
bad, please think about organizing your thoughts and sitting down to
write a review.  It really doesn’t take that long, and it’s good for
you, good for the game’s author, good for SPAG, and good for the
community.  Send your reviews to the (de-munged) email address from
which this post originates.  Please try to have reviews to me by
September 25, 2005, so that I can include them in the pre-Comp 2005
issue of SPAG.  Thank you!

posted by admin in Uncategorized and have Comment (1)