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.

new topic     » topic index » view message » categorize

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'

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

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.

new topic     » goto parent     » topic index » view message » categorize

5. Re: Adventure Parser ?

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

new topic     » goto parent     » topic index » view message » categorize

6. Re: Adventure Parser ?

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.

new topic     » goto parent     » topic index » view message » categorize

7. Re: Adventure Parser ?

"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'

new topic     » goto parent     » topic index » view message » categorize

8. Re: Adventure Parser ?

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! smile

Good luck!

-- David Cuny

new topic     » goto parent     » topic index » view message » categorize

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

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

new topic     » goto parent     » topic index » view message » categorize

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

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'

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

12. 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 ? blink .. 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

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

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 ? blink .. 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

new topic     » goto parent     » topic index » view message » categorize

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.

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

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> -=})
({<=----------------------------------------=>})

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu