Python Text Adventure Authoring System

Z

Zachary

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

Francis Avila

Zachary wrote in message ...
I have already seen another text adventure development system written in
Python, called Paws. I thought this would be a sort of first project.

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

Jp Calderone

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.

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:[email protected]:/cvs co Reality
cvs -d:pserver:[email protected]:/cvs co NewReality
cvs -d:pserver:[email protected]:/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
 
Z

Zachary

Jp Calderone said:
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:[email protected]:/cvs co Reality
cvs -d:pserver:[email protected]:/cvs co NewReality
cvs -d:pserver:[email protected]:/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
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
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.
 
P

Peter Hansen

Jp said:
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).

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
 

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. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,014
Latest member
BiancaFix3

Latest Threads

Top