Python Text Adventure Authoring System

Discussion in 'Python' started by Zachary, Jan 19, 2004.

  1. Zachary

    Zachary Guest

    Hello,
    I've recently thought of how ideal Python is for the development of what
    used to be called text adventures. In case any of you don't know, these
    were basically sort of a computer game in which the player guided the story
    by typing in natural language commands, e.g. get ball.
    Some popular games of the 1980's include Zork, A Mind Forever Voyaging,
    among others.
    I was just wondering if anyone has any module that might help in the
    implementation of a text parser, something to read player commands.
    My idea is to have each room, item, creature, etc. Be represented as a
    Python instance.
    For example, the following code might setup a room class:
    class room:
    def __init__(self, rdesc, exit):
    self.desc = rdesc
    #Add Other code here

    If anyone has any idea how this might be done, I would love to hear from
    you.
    P.S:
    I have already seen another text adventure development system written in
    Python, called Paws. I thought this would be a sort of first project.
     
    Zachary, Jan 19, 2004
    #1
    1. Advertisements

  2. Zachary wrote in message ...
    I don't want to stop you, but I warn you that developing a system like this
    is far more complex than you think.

    Take a look at PAWS, and after that some of the mechanisms in the language
    Inform. Studying another language specifically designed for text-adventure
    authoring will give you an idea of the mechanisms involved, particularly in
    grammar and parsing, where a lot of things are needed that you might not
    otherwise think of.
     
    Francis Avila, Jan 19, 2004
    #2
    1. Advertisements

  3. Zachary

    Jp Calderone Guest

    There are a few modules in Twisted's CVS repository that are handy in this
    area (as a few people are aware, Twisted is actually a support framework for
    multiplayer interactive fiction or text adventure games). Documentation is
    sparse, but much of the code is pretty simple (a *few* parts are mind
    bendingly complex, but none of those are related to text parsing ;)

    cvs -d:pserver::/cvs co Reality
    cvs -d:pserver::/cvs co NewReality
    cvs -d:pserver::/cvs co Imagination

    There was also a presentation about Reality at last year's PyCon. The
    paper is available in Twisted CVS (history docs directory), or with viewcvs
    at:

    http://cvs.twistedmatrix.com/cvs/doc/historic/2003/pycon/twisted-reality/

    Imagination represents the most current thinking on the topic, but Reality
    and NewReality have more infrastructure for actually dealing with user input
    (Imagination is like a hyper distillate of our ideas currently, and so can't
    be bothered to cover such things as handling user input ;).

    And of course, many of the developers frequent #twisted on irc.freenode.net
    and just *love* it when someone wants to talk about Reality instead of boring
    things like HTTP and IMAP4 ;)

    Hope this helps,

    Jp
     
    Jp Calderone, Jan 19, 2004
    #3
  4. Also, it's a pretty mature field in terms of existing technology. There
    are dozens of authoring systems, including half a dozen or so major
    ones:

    http://www.alcyone.com/max/links/if.html#Authoring__authoring_systems
     
    Erik Max Francis, Jan 19, 2004
    #4
  5. Zachary

    Zachary Guest

    Thanks for the advice, but I believe that the project could be considered
    shelved for now. I'll content myself with creating something smaller scale.
     
    Zachary, Jan 19, 2004
    #5
  6. Zachary

    Peter Hansen Guest

    Just to clarify, though I know Jp knows this very well :), Twisted is *much more*
    than just a support framework for multiplayer interactive fiction, although
    it had its origins in that area and is still being developed for it.

    -Peter
     
    Peter Hansen, Jan 19, 2004
    #6
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.