1. Adventure Parser ?
Hi, I'm new to Euphoria.
What a neat language! I look forward to exploring its features as time allows.
My particular area of interest is developing Interactive Fiction (text based
adventures like Colossal Cave & Zork) and I am wondering what examples if any
are available of an adventure command parser written in Euphoria?
Seems to me this would be an almost natural application for this language.
2. Re: Adventure Parser ?
> Quality wrote:
> Hi, I'm new to Euphoria.
> What a neat language! I look forward to exploring its features as time
> allows.
welcome!
> My particular area of interest is developing Interactive Fiction (text
> based adventures like Colossal Cave & Zork) and I am wondering what
> examples if any are available of an adventure command parser written
> in Euphoria?
{ yall are gonna shoot me i swear :)
i'm not tooting that proverbial horn... honest :) }
actually, in EUServer, there is an easy to upgrade parsing
system built within it, and a program structure such that
upgrading the parser to handle more commands is trivially easy.
pay special notice to the files: cmdlist.ew and basiccmd.ew....
and particular attention to Do_command...
hope this helps--Hawke'
3. Re: Adventure Parser ?
> Quality wrote:
>
> My particular area of interest is developing Interactive Fiction (text
> based adventures like Colossal Cave & Zork) and I am wondering what
>
I am currently in the process of working on an Adventure Game
Parser. I am glad to see there is someone out there that still enjoys
playing games that involve THINKING and Imagination, rather than Point
and Click.
I was wondering if the Adventure Game Parser would be well
received or not, but my thoughts were if you have no use for it, then
don't get it. Would be glad to communicate with you on ideas for your
Parser, maybe we could give each other ideas.
Out of curiosity, who out there would be interested in an
Adventure Game Design Kit and Run Time Parser?
Later All,
+ + + Rev. Ferlin Scarborough - Centreville, Alabama - USA
4. Re: Adventure Parser ?
Ferlin wrote:
> I am currently in the process of working on an Adventure Game
>Parser. I am glad to see there is someone out there that still enjoys
>playing games that involve THINKING and Imagination, rather than Point
>and Click.
A lot of people are still programming IF stuff... There's even a JAVA parser
out there. Try out these two "IF" pages if you haven't already:
http://www.leftfoot.com/games.html
> I was wondering if the Adventure Game Parser would be well
>received or not, but my thoughts were if you have no use for it, then
>don't get it. Would be glad to communicate with you on ideas for your
>Parser, maybe we could give each other ideas.
First I need to find time to learn Euphoria (I work about 65 hours a week)
but in time I'd love to share ideas.
5. Re: Adventure Parser ?
- Posted by MindVentur at AOL.COM
Dec 09, 1998
This is funny. I posted the other day that I was going to start my first
quasi-serious project in Euphoria and now see several people working on IF
adventure parsers. The funny thing is that I was thinking about doing exactly
that for a while.
My idea evolved a little and now I want to make something more akin to a
"choose your own adventure" or "endless quest" engine with several
enhancements. Basically instead of the open parser after a description and
graphics, you get a list of dynamic choices (change according to things in the
game) for actions and pick one from the list. If you guys are interested in
something like this, let me know.
Thanks,
Chuck
6. Re: Adventure Parser ?
- Posted by "Jerome T. Nichols" <jnichols at CUB.KCNET.ORG>
Dec 09, 1998
-
Last edited Dec 10, 1998
Date sent: Tue, 8 Dec 1998 17:52:37 -0800
From: Quality <quality at ANNEX.COM>
Subject: Adventure Parser ?
> Hi, I'm new to Euphoria.
>
> What a neat language! I look forward to exploring its features as time allows.
>
> My particular area of interest is developing Interactive Fiction (text based
adventures like Colossal Cave & Zork) and I am wondering what examples if any
are available of an adventure command parser written in Euphoria?
>
> Seems to me this would be an almost natural application for this language.
>
>
I'm really glad someone broth up the question of text
adventures in Euphoria. btw: text adventure = interactive
fiction = IF - same thing. Awhile ago I spend a lot of time
researching the subject of IF. There is a very, very
sophisticated but very specialized lang. written by Kent
Tessman called "Hugo". (Please DO NOT confuse this with an
stupid old adventure game of the SAME NAME, it is
IRRELEVANT.). Hugo has a vocabulary of 600 or so words and
about all the routines and structures one would ever want in
a text adventure. It is some what similar to Euphoria. Seems
to me the expedient thing to do might be to convert the Hugo
libraries to Euphoria libraries.
Consider this verb definition in Hugo code (taken from verblib.g)
verblib.g is the main gammer definition file for Hugo.
7. Re: Adventure Parser ?
- Posted by Hawke' <mdeland at GEOCITIES.COM>
Dec 09, 1998
-
Last edited Dec 10, 1998
"Jerome T. Nichols" wrote:
> Consider this verb definition in Hugo code (taken from verblib.g)
> verblib.g is the main gammer definition file for Hugo.
> --------------------------------------------------------------------------
> verb "look", "l"
> * DoLookAround
> * "in"/"inside" container DoLookIn
> * "on" platform DoLookIn
> * "at" object DoLook
> * "out"/"through" object DoLookThrough
> * "under"/"underneath"/"beneath" object DoLookUnder
> * "beside"/"behind"/"around" object DoLookUnder
> * object DoLook
> -----------------------------------------------------------------------------
hrmmmm.... i can see this being placed into a multiuser adventure,
quite easily, with a parser already built... ;)
let's see...
global function do_look(sequence user, sequence param)
integer len
object showthis, action
len = length(param)
param = Lower(param)
if len = 0 then --looka da pweettyyyy wallssss
return ShowIt(user,ROOM,"")
elsif len = 1 then
showthis = param[1] --pick off an object/thing
return ShowIt(user,THING,showthis)
elsif len = 2 then
action = param[1][1..2] --pick off the action command
showthis = param[2] --pick off the target
if IsSame(action,"at")
then return ShowIt(user,THING,showthis)
elsif IsSame(action,"in") --in, inside, into
then return do_lookin (user,showthis)
elsif IsSame(action,"un") --under, underneath...
then return do_lookunder (user,showthis)
elsif IsSame(action,"be") --behind,beneath,beside...
then return do_lookunder (user,showthis)
elsif IsSame(action,"ar") --around
then return do_lookunder (user,showthis)
elsif IsSame(action,"ou") --out, outside...
then return do_lookthru (user,showthis)
elsif IsSame(action,"th") --thru, through
then return do_lookthru (user,showthis)
end if
end if
SendToUser(user,NEWLINE & "Syntax...blah")
return user
end function
i'm reasonably sure that the quasi-pseudo/real code above is rather
clear/neat... whatta ya think? :)
it's actually not very far from what i'm coding :)
ShowThis is gonna look similar to the following...
glob func ShowThis(seq user, int thingtype, seq thing)
object what
if thingtype = ROOM then
what = GetRoomNum(user)
what = GetRoomDesc(what)
elsif thingtype = THING then
what = LookupObjectByName(thing)
what = GetObjectDesc(what)
end if
SendToUser(user, NEWLINE)
SendPageToUser(user, what)
return user
end func
'course, there'll be a wee bit of extra code added for error checking,
like if LookupObjByName returns a not found error, before i go running
off and attempt to snarf a description from a NULL :)
but, so far, i keep thinking that we have a half dozen people writing
*parsers* for IF, but one is already built for y'all...
and it doesn't have to be multiuser, u can just strip my
parser and have at it...
on the other hand, since we have a half dozen people working on
IF, in one form or another, shouldn't we put a halt to all this
duplication of code? and instead concentrate on the meat and
potatoes? (the game itself, the... well all the rooms, and objects
and stuff need descriptions and definitions and such... areas
built persay)
i'm not gonna say that my parser is better or worse than another's
parser... I will say that my parser *can* handle multiple users
inside the adventure game... and to date, i know of NO actual
*adventure* game that allowed multiple users...
there are MUD's, and chatters/talkers, but none of them are
really *adventures*... they may have mini-quests, sure, but...
none of them are like Zork or CutThroat or KingsQuest...
i've always wanted to know what it would be like if we coulda
had 20, 30, 100... people, grouped together, exploring Zork...
sure, we all had our buddies over, and one person typed while
everyone else hunched over, trying to read, and throw out
suggestions of what to do next... my neck still hurts from
all that craneing :)
but try this:
Johan lifts the rug.
Under the persian rug you find a trap door, which is unlocked,
but appears frozen shut from years of not being used.
Altain uses his prybar on the trap door.
The trap door begins to creak open, as Altain bears his
might against the prybar.
The trap door is open.
A set of stairs leads down into the stench rising up from the
hole where the trap door used to be.
Perynth says, "You go first."
Altain says, "Oh no, I opened it, I'm not going down there."
Merisol says, "Oh you are all wimps."
Altain says, "Who you callin wimp? I opened the damn door."
{here is a neat thing i would have always liked to see:
{private messages from the GAME, to a SINGLE player :)
{this next line is sent ONLY to Johan, choosen at random:
{You hear a faint ... moan?}
Johan says,"Did you hear that?"
Perynth says, "Hear what?"
Johan says, "I'm telling you, I heard something down there."
Merisol says, "and... what did you hear? Your heart thumping because you
are
too scared to climb down those stairs?"
Altain says, "oh all right, I'll go first."
Altain lights his lantern.
Altain descends the stairs, and the halo from his lantern slowly
diminishes until you see only the barest glow from the hole.
now, to me, that woulda been kewl :)
and those four 'people' coulda been at the 4 corners of the world...
and graphics wouldn't spoil it either... text or text/graphics
would be pretty much ok by me...
> More info and examples on Hugo can be found on my web site
> shown in the footer of this message. It was just a idea I did on
> the subject, though I'd pass it on.
good idea, i like the idea of choosing one parser and having people
interested in contributing/writing/coding making 'areas' for
the game, and perhaps have a repository for "need this command"
<i will write that command> type of delegation on the project...
take care--Hawke'
8. Re: Adventure Parser ?
- Posted by David Cuny <dcuny at LANSET.COM>
Dec 09, 1998
-
Last edited Dec 10, 1998
Writing a good parser is a *lot* more complex than Hawke's trivial example
would seem to indicate. There's nothing more frustrating than playing "guess
the magic word" with a parser.
An adventure parser is a good exercise, but there are so many programs of
such good quality that it becomes difficult to justify writing *another*. A
list of adventure building kits includes:
Adventure Builder
Adventure Creator
Adventure Game Toolkit
AGI
ALAN
CAECHO
Hugo
Inform
Rexx-Adventure
TADS
World Builder
You can check out:
http://interactfiction.miningco.com/
for more information.
But don't let me stop you!
Good luck!
-- David Cuny
9. Re: Adventure Parser ?
I've been wanting to develop a program that will let me run a roleplaying
adventure, with multiple players, each using a computer to communicate with each
other and with me (privately, if necessary). I've got the whole thing plotted
out,
but needed a framework upon which to position it. Looks like Hawke's stuff might
come in handy for this...
Having pre-written descriptions, but the ability to customize on the fly, would
make this kind of adventure something extraordinary... don't you think?
I imagine having a bank of Game Master's at some central location, with people
creating parties for adventuring all across the country/world. That could be
some
fun times.
Hawke' wrote:
> i've always wanted to know what it would be like if we coulda
> had 20, 30, 100... people, grouped together, exploring Zork...
>
10. Re: Adventure Parser ?
C & K L wrote:
>I've been wanting to develop a program that will let me run a
>roleplaying adventure, with multiple players, each using a
>computer to communicate with each other and with me
>(privately, if necessary). I've got the whole thing plotted
>out, but needed a framework upon which to position it.
>Looks like Hawke's stuff might come in handy for this...
kewl! least it'll be put to use... dontcha hate writing libraries
that noone uses? :>
>Having pre-written descriptions, but the ability to customize
>on the fly, would make this kind of adventure something
>extraordinary... don't you think?
we call this "on-line editing"... OLE for short, and we had
dibs on OLE before it came to mean 'object linking/embedding'...
:)
and in a few incarnations of EUServer, i'll have OLE
all ready to go, and it won't even need a reboot
to have the new "areas" visible to other people/users...
(many OLE variations for like diku/merc etc, all required
a reboot to make the area you just created visible to
other people besides yourself-- it sucked)
>I imagine having a bank of Game Master's at some central
>location, with people creating parties for adventuring
>all across the country/world. That could be some
>fun times.
yeah, this could be done... no prob...
take care--Hawke'
11. Re: Adventure Parser ?
True, but this is the Euphoria forum. The idea is to write a really good
parser in Euphoria by exploiting it's unique list processing capacities.
What I really want to do long run is create a natural language database
inquiry system with a "look&feel" like an adventure game. The first step is
the parser.
-----Original Message-----
From: David Cuny <dcuny at LANSET.COM>
To: EUPHORIA at LISTSERV.MUOHIO.EDU <EUPHORIA at LISTSERV.MUOHIO.EDU>
Date: Wednesday, December 09, 1998 10:22 PM
Subject: Re: Adventure Parser ?
>An adventure parser is a good exercise, but there are so many programs of
>such good quality that it becomes difficult to justify writing *another*.
>
>-- David Cuny
12. Re: Adventure Parser ?
- Posted by Ralf Nieuwenhuijsen <nieuwen at XS4ALL.NL>
Dec 11, 1998
-
Last edited Dec 12, 1998
>True, but this is the Euphoria forum. The idea is to write a really good
>parser in Euphoria by exploiting it's unique list processing capacities.
>What I really want to do long run is create a natural language database
>inquiry system with a "look&feel" like an adventure game. The first step is
>the parser.
For natural language you need a content-senstive 'database' system.
I'm still trying to do something wiht my 'figurative' image of 'database' I
came up with (how speculative can I be ?
.. where every fact is linked
to other facts. However each fact is either subset or supperset. It contains
or is part of (read: property of..) .. however not a tree based system.
Something could easily be a part of and a container to the same thing as
well.
Request are formed by 'relating' two facts. THe route proccesses data from
one fact to another. The database engine is the one that finds the route.
You can easily add new 'facts' and declare their containers/properties and
easily add an 'exception'. Since you almost always add a new route.
(shortest route is used)
Context sentive in the way that when you specify more facts the number of
possible routes decrease.
Ralf
13. Re: Adventure Parser ?
"Quality" wrote:
>> it becomes difficult to justify writing *another [parser]*.
>True, but this is the Euphoria forum...
I agree. Perhaps a better phrasing would be to "borrow heavily" from
existing code, since they've already covered a lot of the same territory.
Euphoria's sequences also makes porting LISP code much easier - and there is
a ton of NLP (Natural Language Parsing) code out there in LISP.
Good luck!
-- David Cuny
14. Re: Adventure Parser ?
Ralph:
What you are describing is the programming language ProLog.
-----Original Message-----
From: Ralf Nieuwenhuijsen <nieuwen at XS4ALL.NL>
To: EUPHORIA at LISTSERV.MUOHIO.EDU <EUPHORIA at LISTSERV.MUOHIO.EDU>
Date: Friday, December 11, 1998 11:35 AM
Subject: Re: Adventure Parser ?
>>True, but this is the Euphoria forum. The idea is to write a really good
>>parser in Euphoria by exploiting it's unique list processing capacities.
>>What I really want to do long run is create a natural language database
>>inquiry system with a "look&feel" like an adventure game. The first step
is
>>the parser.
>
>
>For natural language you need a content-senstive 'database' system.
>I'm still trying to do something wiht my 'figurative' image of 'database' I
>came up with (how speculative can I be ?
.. where every fact is linked
>to other facts. However each fact is either subset or supperset. It
contains
>or is part of (read: property of..) .. however not a tree based system.
>Something could easily be a part of and a container to the same thing as
>well.
>
>Request are formed by 'relating' two facts. THe route proccesses data from
>one fact to another. The database engine is the one that finds the route.
>You can easily add new 'facts' and declare their containers/properties and
>easily add an 'exception'. Since you almost always add a new route.
>(shortest route is used)
>
>Context sentive in the way that when you specify more facts the number of
>possible routes decrease.
>
>Ralf
15. Re: Adventure Parser ?
>"David Cuny" wrote:
>
>I agree. Perhaps a better phrasing would be to "borrow heavily" from
>existing code, since they've already covered a lot of the same territory.
"Plagarism is the sincerest form of flattery"... anonymously plagarized
anonymous quote.
>Euphoria's sequences also makes porting LISP code much easier - and there
is
>a ton of NLP (Natural Language Parsing) code out there in LISP.
>
I never could quite grasp LISP... maybe I never found a good teacher or
text.
16. Re: Adventure Parser ?
>Ralph:
>
>What you are describing is the programming language ProLog.
Really ? Wow. I'll go look into it. Seems interesting.
Ralf
17. Re: Adventure Parser ?
Good Luck... It is a **VERY** different language and to learn it you need to
"unlearn" a lot of what you think you know about programming. Let me know
how it all works out.
Q>>Ralph:
Q>>
Q>>What you are describing is the programming language ProLog.
Q>
R>
R>Really ? Wow. I'll go look into it. Seems interesting.
R>
R>Ralf
18. Re: Adventure Parser ?
>>Ralph:
>>
>>What you are describing is the programming language ProLog.
>
>
>Really ? Wow. I'll go look into it. Seems interesting.
You may look for the old TurboProlog for ex-Borland.
Regards,
Daniel Berstein
daber at pair.com
19. Re: Adventure Parser ?
On Sat, 12 Dec 1998 13:43:17 +0100, Ralf Nieuwenhuijsen <nieuwen at XS4ALL.NL>
wrote:
>>Ralph:
>>
>>What you are describing is the programming language ProLog.
>
>
>Really ? Wow. I'll go look into it. Seems interesting.
>
Maybe, but first look at the code to reverse a list
(that's been at topic here lately)
domains
integerlist = integer*
predicates
reverse(integerlist,integerlist)
append(integerlist,
integerlist,integerlist)
generate(integerlist,integerlist)
clauses
reverse([],[]).
reverse([X|Y],Z):-
reverse(Y,Y1), append(Y1,[X],Z),
append([],X,X).
append([X|Y],Z,[X|W]):-
append(Y,Z,W).
generate(0,[]).
generate(N,[N|Y]):-
M is N - 1,
generate(M,Y).
test:-
generate(50,X),
write(X),
reverse(X,Y),
write(Y).
I maybe made a typo somewhere, but how would anyone know?
This is clear as mud.
Irv
20. Re: Adventure Parser ?
Irv Mullins wrote:
> I maybe made a typo somewhere, but how would anyone know?
> This is clear as mud.
> Irv
actually, ;)
i've seen clearer, less opaque mud, they called it C.
not saying a whole helluva lot, eh?
_/ _/ _/_/_/ _/ _/ _/ _/ _/_/_/ _/
_/ _/ _/ _/ _/ _/ _/ _/ _/
_/_/_/ _/_/_/ _/ _/ _/_/ _/_/
_/ _/ _/ _/ _/_/_/ _/ _/ _/
_/ _/ _/ _/ _/_/_/ _/ _/ _/_/_/
({<=----------------------------------------=>})
({<=- http://members.xoom.com/Hawkes_Hovel> -=})
({<=----------------------------------------=>})