http://www.student.ru.nl/m.j.haverbeke//dunwich/
Both a binary package for windows and the sources (for mzscheme -
http://download.plt-scheme.org/mzscheme/ ) are there for download (the
whole thing is free software). Tell me what you think... (it won't
take you days to solve - I warned that it was small).
(use srfi-27)
(define (random . n) (random-integer (car n)))
(define (flush-output) (flush))
It's an okay job for a custom parser. I thought some of the puzzles
were silly -- like (this isn't really a spoiler) in the first location,
there's an open building which you walk into and take a ladder, which
you subsequently use *once*; that was kind of pointless. As to the
technical aspects, you need to implement the verb "search," since
that's more standard than "look in" and "look under." I also found the
directionless navigation system more annoying than immersive,
especially when descriptions have "The building is to the north"
embedded in them, and you should probably use indefinite articles ("A
ladder is here," not "The ladder is here.") in room descriptions. All
in all, I thought the custom parser didn't contribute anything to the
game play and the game probably would have been better off being
implemented in Inform, but if the point of the exercise was simply to
learn how to write a parser, then you did a workable job for a first
try. (Spoiler comments follow)
SPOLER
SPACE
Getting the baker to teach me the code was a guess-the-verb game that
made me consult the source; it's not reasonable to expect someone to
learn alchemical symbolism in a few minutes (I know -- I learned how to
read it a few years back, though I'm no means fluent), so I was trying
to get the Baker to read the diary to me. Also, if you look at the
river from the island, you still see an island (presumably the one
you're on) "downstream," suggesting that there's one later on down the
line. Finally, the end of the game (or I assume the end), played like
this for me:
somewhat enlightened, you go home.
*** ERROR: wrong number of arguments for #<closure 0x81ea120()>
(required 0, got 1)
Stack Trace:
_______________________________________
I guess this means that returning #f to the interpreter isn't a good
idea. I replaced this with (exit) and it worked okay.
mzscheme is available on my (debian) distribution; it went just fine
for me with that.
(a few minor spoilers follow)
>It's an okay job for a custom parser. I thought some of the puzzles
>were silly -- like (this isn't really a spoiler) in the first location,
>there's an open building which you walk into and take a ladder, which
>you subsequently use *once*; that was kind of pointless. As to the
On the other hand, the room itself has another item in it, so the
ladder's job is partly to distract from that. I agree that none of the
puzzles are particularly inspired, but it wasn't the point of the
exercise, I guess.
>technical aspects, you need to implement the verb "search," since
>that's more standard than "look in" and "look under." I also found the
>directionless navigation system more annoying than immersive,
>especially when descriptions have "The building is to the north"
>embedded in them, and you should probably use indefinite articles ("A
The navigation isn't great for walking through a series of rooms,
yeah -- remembering "north. north. east." is way easier than
remembering "avenue. square. trail." On the other hand, you can just
type "trail" and skip directly to the destination, which is nice.
>ladder is here," not "The ladder is here.") in room descriptions. All
>in all, I thought the custom parser didn't contribute anything to the
>game play and the game probably would have been better off being
>implemented in Inform, but if the point of the exercise was simply to
>learn how to write a parser, then you did a workable job for a first
>try. (Spoiler comments follow)
Yeah. I'd add that randomized error messages are a bad idea, as they
give the illusion that different things are going on and encourage the
player to keep going, and it's also irritating that the parser doesn't
distinguish between "you used a word that I didn't know in a noun
position" and "you used a word I didn't know in a verb position" since
these are two very different situations from the player's perspective.
>Getting the baker to teach me the code was a guess-the-verb game that
>made me consult the source; it's not reasonable to expect someone to
>learn alchemical symbolism in a few minutes (I know -- I learned how to
>read it a few years back, though I'm no means fluent), so I was trying
>to get the Baker to read the diary to me. Also, if you look at the
Hmm, I didn't have a problem with this. The diary says "You do not
understand these symbols. Try to find someone who does." Asking the
baker about the diary gets "The baker responds 'That must be Harris'
diary. We used to have a special code to write down our notes." Asking
the baker about the code has him teach it to you (and it says it's
simple, and presumably the game is just glossing over the bit where
you sit down and translate when you read the actual entries).
>river from the island, you still see an island (presumably the one
>you're on) "downstream," suggesting that there's one later on down the
>line. Finally, the end of the game (or I assume the end), played like
I found this irritating just because I knew I had to get to the island
but the main place I saw it was from the bridge area, so I was trying
to swim/wade out to it. I'd forgotten about the ferryman back at the
beginning.
>this for me:
>
>somewhat enlightened, you go home.
>*** ERROR: wrong number of arguments for #<closure 0x81ea120()>
>(required 0, got 1)
>Stack Trace:
>_______________________________________
>
>I guess this means that returning #f to the interpreter isn't a good
>idea. I replaced this with (exit) and it worked okay.
I used mzscheme and didn't see this error, unsurprisingly.
--
Dan Shiovitz :: d...@cs.wisc.edu :: http://www.drizzle.com/~dans
"He settled down to dictate a letter to the Consolidated Nailfile and
Eyebrow Tweezer Corporation of Scranton, Pa., which would make them
realize that life is stern and earnest and Nailfile and Eyebrow Tweezer
Corporations are not put in this world for pleasure alone." -PGW
"danie...@hotmail.com" <danie...@hotmail.com> wrote in message news:<1100774281.9...@c13g2000cwb.googlegroups.com>...
> First, I had to patch it in order to use gauche on linux, which was a
> little harder than it sounds b/c previously I didn't know scheme.
Yes, I mentioned it was made for mzscheme. I didn't know jack squat
about SRFI's when I wrote this. Nice job on getting it to work with
Gauche.
> It's an okay job for a custom parser. I thought some of the puzzles
> were silly -- like (this isn't really a spoiler) in the first location,
> there's an open building which you walk into and take a ladder, which
> you subsequently use *once*; that was kind of pointless.
True. The plot and puzzles is kind of hacked together - I was focusing
on getting things to work (this is my first text adventure). And in
fact I don't much like typical adventure-style puzzles, but when I was
writing this I found that without that kind of puzzles the whole thing
is way too straightforward.
> I also found the
> directionless navigation system more annoying than immersive,
> especially when descriptions have "The building is to the north"
> embedded in them,
Here I disagree. I may be an interactive fiction heretic or something,
but I loathe the directional navigation that is standard in text
adventures. When I want to go to a specific place I do not want to
have to string together a series of directions. Did you notice you can
skip locations in my system? When you are at the bridge and you want
to go to the warehouse you just do "go to warehouse" and you're there.
That seems intuitive enough to me.
> All
> in all, I thought the custom parser didn't contribute anything to the
> game play and the game probably would have been better off being
> implemented in Inform, but if the point of the exercise was simply to
> learn how to write a parser, then you did a workable job for a first
> try.
I can't stand using tools that I don't have a good understanding off,
so when I start on a new field I usually try to do everything from
scratch at least once before moving on to use the (much better) tools
that are available.
"Marijn" <mari...@hotmail.com> wrote in message
news:1d55c324.04112...@posting.google.com...
>
> Here I disagree. I may be an interactive fiction heretic or something,
> but I loathe the directional navigation that is standard in text
> adventures. When I want to go to a specific place I do not want to
> have to string together a series of directions. Did you notice you can
> skip locations in my system? When you are at the bridge and you want
> to go to the warehouse you just do "go to warehouse" and you're there.
> That seems intuitive enough to me.
For the record, I also struggled with this when I first came to IF. I have
come to realize that this provides a neat level of abstraction, though. The
truth is, if the map is directional, it's much easier (for me) to visualize
it in a grid-like fashion, and thus to memorize it. Once you have the map in
memory, there is actually a part of your brain that says "go to warehouse",
even if the actual commands entered are "n, sw, d, e" or whatever.
Also, while allowing the player to skip locations is generally good, there
is at least one drawback. If there are multiple paths, you have just
abstracted away the choice of specific path, and thus, you *may* loose the
ability of having plot proceed forward based on the player visiting a
certain location that may lie along one of those paths.
In other words, I have come to terms with the "n, s, e, w" system by: a) not
assuming they're the actual directions, but rather a convenient set of
relative directions; and b) not assuming the actual PC knows exactly where
north is, or thinks in terms of north and south, but rather, that it is a
convenient communication mechanism between player and parser.
> I can't stand using tools that I don't have a good understanding off,
> so when I start on a new field I usually try to do everything from
> scratch at least once before moving on to use the (much better) tools
> that are available.
On the other hand, this sounds like a rather valid goal, and hats off to you
for pulling it off.
Cheers,
J.
> ...while allowing the player to skip locations is generally good, there
> is at least one drawback. If there are multiple paths, you have just
> abstracted away the choice of specific path, and thus, you *may* loose
> the ability of having plot proceed forward based on the player visiting
> a certain location that may lie along one of those paths.
Another problem may be that unless carefully compensated for, skipping
rooms will also reduce the move count, which -- depending upon the game
-- can easily impact both the "time" available to the PC (if such is
needed to perform some vital task), and the score (if influenced by how
much of the terrain has been explored).
> In other words, I have come to terms with the "n, s, e, w" system by: a)
> not assuming they're the actual directions, but rather a convenient set of
> relative directions; and b) not assuming the actual PC knows exactly where
> north is, or thinks in terms of north and south, but rather, that it is a
> convenient communication mechanism between player and parser.
One thing I'd love to see implemented as an experiment -- perhaps in a
catacomb, say, where there would be NO sense of direction at ALL -- is what
might be called Pure Relative Movement. That is, when the PC needs to move,
he must type, say, "turn right then move forward" or "go through left-hand
door", with the traditional directional commands not recognized at all. This
makes the player's facing vitally important: in a room with a door in each
of its four walls, "go through left-hand door" can mean ANY of the four
compass directions, depending upon which way the PC is facing! Imagine
trying to navigate a labyrinth that way! (Finding a compass would be a
BIG help to the player...)
You'd probably want to automate movements to some extent, so that such
commands (which are admittedly more cumbersome than the usual ones) need
only be input when there is actually a choice of way.
Just tossing thoughts up into the air to see how they land...
-- _____ %%%%%%% "Glenn P.," <C128UserD...@FVI.Net> %%%%%%
{~._.~} ----------------------------------------------------------
_( Y )_ "Surrender, varlet! Thou art the prisoner of me lance!"
(:_~*~_:) "I art? And whomsoever art thou, in thy cast-iron tuxedo?"
(_)-(_) --The Knight & Bugs Bunny, respectively:
========= "A Connecticut Rabbit In King Arthur's Court".
:: Take Note Of The Spam Block On My E-Mail Address! ::
Yeah, I noticed the skipping. It's just that, once I've been
programmed to press 'n' to go north, if I see "to the north" in the
description, I'm going to do it, and it doesn't increase my immersion
in the game to give me an error message and make me type a really long
command just to walk in the direction that I'm already facing. It's
sort of like how most UNIX systems have "dir" aliased to "ls;" you have
to accomodate conditioned responses because people get angry when their
paradigms are unreasonably damaged.
> I can't stand using tools that I don't have a good understanding off,
> so when I start on a new field I usually try to do everything from
> scratch at least once before moving on to use the (much better) tools
> that are available.
I find this commendable. Too many people go around asking a lot of
questions that they wouldn't have to if they just understood the
underlying structures. We'll be expecting some pretty impressive work
from you soon :)
"Glenn P.," <C128UserD...@FVI.Net> wrote in message
news:Pine.LNX.4.61.04...@Bfjrtb.SbkInyyrl.arg...
>
> One thing I'd love to see implemented as an experiment -- perhaps in a
> catacomb, say, where there would be NO sense of direction at ALL -- is
what
> might be called Pure Relative Movement. That is, when the PC needs to
move,
> he must type, say, "turn right then move forward" or "go through left-hand
> door", with the traditional directional commands not recognized at all.
This
> makes the player's facing vitally important: in a room with a door in each
> of its four walls, "go through left-hand door" can mean ANY of the four
> compass directions, depending upon which way the PC is facing! Imagine
> trying to navigate a labyrinth that way! (Finding a compass would be a
> BIG help to the player...)
>
> You'd probably want to automate movements to some extent, so that such
> commands (which are admittedly more cumbersome than the usual ones) need
> only be input when there is actually a choice of way.
This is vaguely evocative of Hunter, In Darkness. You should check that out,
if you haven't.
Cheers,
J.
>Ahey, :)
>
>"Glenn P.," <C128UserD...@FVI.Net> wrote in message
>news:Pine.LNX.4.61.04...@Bfjrtb.SbkInyyrl.arg...
>>
>> One thing I'd love to see implemented as an experiment -- perhaps in a
>> catacomb, say, where there would be NO sense of direction at ALL -- is
>what
>> might be called Pure Relative Movement. That is, when the PC needs to
>move,
>> he must type, say, "turn right then move forward" or "go through left-hand
>> door", with the traditional directional commands not recognized at all.
>This
>> makes the player's facing vitally important: in a room with a door in each
>> of its four walls, "go through left-hand door" can mean ANY of the four
>> compass directions, depending upon which way the PC is facing! Imagine
>> trying to navigate a labyrinth that way! (Finding a compass would be a
>> BIG help to the player...)
_Compass Spin_ by Brian D. Smith does pretty much exactly what you
are talking about. Basically, you have to use left, right, etc. until
you find a compass. It's a programming example rather than a real
game, though.
In _Rat in Control_ by Mike Roberts, you can play the same game using
either relative movement or standard directions. (At least I think the
game is called like that.)
>This is vaguely evocative of Hunter, In Darkness. You should check that out,
>if you haven't.
_Hunter, In Darkness_ doesn't really use relative movement, I think.
IIRC, the exits are only called 'back', 'forward', 'left' and 'right',
but they are really mapped to the standard directions, and the PC
always faces the same direction. (That doesn't mean, you shouldn't
check it out, of course.)
Sophie
--
"You see, useless things may have no definite positive qualities, but
neither do they do anybody any harm. They may actually do some good by
being a distraction from dreadful things like sitting around getting
bored, striving for wealth, or starting wars."
-- Charlie Dancey, "Zenith and the Art of Pattern Maintenance"
The problem here is that many text games are NOT layed out in a grid,
they are full of crazy shortcuts, loops, and other non-grid
constructs. In the *few* games I've played where the map was a regular
grid, I found the directional motion acceptable, but when I have to
memorize a messy map just to be able to navigate quickly I am not
having fun.
> Also, while allowing the player to skip locations is generally good, there
> is at least one drawback. If there are multiple paths, you have just
> abstracted away the choice of specific path, and thus, you *may* loose the
> ability of having plot proceed forward based on the player visiting a
> certain location that may lie along one of those paths.
Point taken. Still, whether this is a problem depends on the 'rules'
of the game. In my next game I'm planning on having a rather
unconventional 'map' -- there will be a bunch of big 'stages' where
things take place, but I'm planning to stay away from describing the
world as a coherent map made up of small rooms. The plan is to stay
away as much as possible from physical puzzles ("put the junk mail on
top of the satchel"-style) and try to make the game more social-based
(in a simple, rather linear way - I used to have high hopes for Chris
Crawfords Erasmatron (www.erasmatazz.com), but it seems that stuff is
very hard to get right).
At the risk of starting to repeat myself, I'd like to continue this, for no
other reason than the fact that you seem to be going along a line of reason
almost exactly equal to the one I went through when I first started thinking
about IF.
"Marijn" <mari...@hotmail.com> wrote in message
news:1d55c324.04112...@posting.google.com...
> "Joao Mendes" <joao-...@netcabo.pt.invalid> wrote in message
news:<41a0af4d$0$6477$a729...@news.telepac.pt>...
> > For the record, I also struggled with this when I first came to IF. I
have
> > come to realize that this provides a neat level of abstraction, though.
The
> > truth is, if the map is directional, it's much easier (for me) to
visualize
> > it in a grid-like fashion, and thus to memorize it. Once you have the
map in
> > memory, there is actually a part of your brain that says "go to
warehouse",
> > even if the actual commands entered are "n, sw, d, e" or whatever.
>
> The problem here is that many text games are NOT layed out in a grid,
This is entirely true, of course. However, speaking in strictly symbolic
terms, in my mind, locations that I frequent eventually fall into a neat
grid-like pattern regardless of their physical realities. This may seem
weird, but it may also server to explain why some people are so ready to
accept and adapt to geographical directional commands.
Anyway, my main point there was actually that the command 'n' doesn't
necessarily mean 'walk towards the north', but rather, 'walk towards the
direction that this reality has arbitrarily decided to call north'.
> > Also, while allowing the player to skip locations is generally good,
there
> > is at least one drawback. If there are multiple paths, you have just
> > abstracted away the choice of specific path, and thus, you *may* loose
the
> > ability of having plot proceed forward based on the player visiting a
> > certain location that may lie along one of those paths.
>
> Point taken. Still, whether this is a problem depends on the 'rules'
> of the game.
Again, completely true. Actually, non-debatable. I was going to write
something belaboring my point, but I find that, no matter how I word it, it
simply comes down to the rules of the game, as you put it.
> In my next game I'm planning on having a rather
> unconventional 'map' -- there will be a bunch of big 'stages' where
> things take place, but I'm planning to stay away from describing the
> world as a coherent map made up of small rooms. The plan is to stay
> away as much as possible from physical puzzles ("put the junk mail on
> top of the satchel"-style) and try to make the game more social-based
> (in a simple, rather linear way - I used to have high hopes for Chris
> Crawfords Erasmatron (www.erasmatazz.com), but it seems that stuff is
> very hard to get right).
You should check out Narcolepsy. It works pretty well, mostly because the
areas are large and their spatial relationships are inherently irrelevant.
Cheers,
J.
I guess our minds work somewhat different then. I've played quite a
bunch of text adventures and the directional navigation never ceases
to annoy me. I gave up on a few games purely because I was sick of
running back and forth for long stretches and constantly having to
look up which direction I had to go. Maybe my ability to memorize maps
is just below average :D
Do you appreciate far fethed puzzles though? (you might have implied
that somewhere, but I'm not sure) I really dig the concept of text
games, because they are much more immersive to me than most graphical
games, but in the end most of them annoy me to no end because I have
to read spoilers in order to figure out the unintuitive artificial
puzzles. And after you've read the spoiler, immersion is pretty much
gone too.
> You should check out Narcolepsy. It works pretty well, mostly because the
> areas are large and their spatial relationships are inherently irrelevant.
Sounds good, thanks for the suggestion.
Just a quick reply...
"Marijn" <mari...@hotmail.com> wrote in message
news:1d55c324.04112...@posting.google.com...
>
> Do you appreciate far fethed puzzles though? (you might have implied
> that somewhere, but I'm not sure) I really dig the concept of text
> games, because they are much more immersive to me than most graphical
> games, but in the end most of them annoy me to no end because I have
> to read spoilers in order to figure out the unintuitive artificial
> puzzles. And after you've read the spoiler, immersion is pretty much
> gone too.
I pretty much feel the same way, although I'm good at juggling halves of my
brain where one half is reading the walkthrough and typing commands and the
other half is totally immersed in what's going on the game.
Cheers,
J.