?

Log in

No account? Create an account

Infocom

Previous Entry Share Next Entry
immortalsofar @ 06:00 pm: Anyone interested in working on text adventures TNG?
If you think about it, text adventures are as much fun now as they ever were and the days of limiting vocabulary to a small list of verb-noun pairs and squashing descriptions into miniscule packets of text are long gone.

As part of my current project I'm putting together words and sentence structures into a computer-represented form. Imagine a compu-deck system where everything is represented (or generated) into x, y, z relative co-ordinates and the computer itself generates the description from the same vocabulary you type in. No more "you can see a purple rug on the floor", get rug, "you cannot see a rugged bag with a broken lock here".

For example, Mountain-top Castle (x, y, z, length, width, height, Mountain), throne room (x, y, z, l, w, h, Castle), Bag (x, y, z, l, w, h, throne room), tinderbox (x, y, z, l, w, h, bag).

I find the idea very intreguing but can't afford to get sidetracked (or my money will run out and I'll have to actually get a job!!!!). Once I've done the database, anyone interested in running with the idea?

Mike.

Current Mood: busy

Comments

[User Picture]
From:jfpbookworm
Date:February 28th, 2004 12:25 pm (UTC)
(Link)
I'm not sure what you're trying to do here; are the xyz coordinates a way of avoiding the granularity of rooms?
[User Picture]
From:immortalsofar
Date:February 28th, 2004 04:45 pm (UTC)
(Link)
The xyz stuff is to describe the location/position of stuff to the computer and then let the computer figure out how to describe the scene. If it says on the screen that an object is on the shelf, the computer knows that the object is on the shelf (y = 0, x & z between shelf x & y and shelf width+x, shelf depth+z).

Back in the old days we had to shortcut this by giving the program some text to display without being aware of it's meaning. This is moving it into the realm of a simulation. Therefore, it always knows what is there even if it's not relevent to the plot. You can walk around a castle in 4 moves (unless there's something unusual you might be interested in) but as many moves as rooms inside without there being any conflict in representation compared to 4 locations outside and 20 locations inside.

It tells you that an object is too heavy/big to lift, not because it has been explicitly instructed to in this particular game but because it knows that it is.

Think of it as a 3d graphics engine for text. When you create a chair for a particular game, it knows enough about chairs in general to have an idea about what to do with it and what it can and cannot do.

Creating characters with their own objectives that really do move around and "work out" how to do things. Going North can either take you to the next room in 15 seconds or 20 miles down the road in a day (may want to check this). A pack doesn't get full because item count >= 10 but because the volume of the objects has reached the volume of the pack (plus some dimensional checks).

In short, once the system is written, creating an adventure becomes a matter of defining where everything is and very little else. No descriptions, no vocabulary and only a few special cases (I wouldn't like to define a Leather Goddess destruction machine in any kind of logical way!)

You could even define objects for different universes. Star trek transporters are different to black hole transporters or Blake's 7 transporters. Define the universe, lay out or generate the environment, add the characters and see what happens.

You really could write on walls (create object "writing", attribute whatever you wrote and give it an (x, y, 0) co-ordinate relative to the wall you're writing on) not because it's necessarily helpful but because it's possible. Landscapes could be generated fractally, castles/towns/rivers/forests/caves/planets/galaxies placed wherever they would really appear etc. Characters would attack you because they really want to kill you. Even subterfuge could be calculated.

The final result would be a virtual world where no-one, not even the author, necessarily knows the solution but everything you need is available somewhere - just like real life (kind of).

With a little expansion (how to draw "a chair" and what's different about drawing "this chair") it could generate it's own graphics. Or even have a mostly visual interface. Or generate it's own movie.

Finding it a seductive and time-consuming idea!

Any thoughts?
[User Picture]
From:road_emu
Date:February 29th, 2004 08:41 am (UTC)

It sounds interesting.

(Link)
I wish I had the skills needed to do some of the things you are describing; it is, alas, beyond my ability.

Back in the day when I was writing my own text adventures, a good understanding of text string manipulation, BASIC, and a compiler were all you needed. I've been playing with TADS recently, but am not yet invested enough in the story I want to write to really get sucked into all-night writing sessions filled with the debris of non-stop Doritoes-driven inspiration.

I would like to use/play the system you are describing, but I also think that there would still be a place for static text; one of the joys of writing a text adventure is writing a novel that the player has to interact with in order to get to the end of the story. :-)
[User Picture]
From:immortalsofar
Date:February 29th, 2004 09:07 am (UTC)

Re: It sounds interesting.

(Link)
Yes, it's more to do with creating a universe than writing a novel (talk about aiming high!). I've only considered the general overview, not the implementation but the idea is to make sure that the computer knows everything the player knows from reading the text.

Ideally, the parameters could be adjusted per location until it generates the right text or it could be overridden completely. Either way, the auto-description could be used for testing.
[User Picture]
From:muneco
Date:April 2nd, 2004 08:43 am (UTC)
(Link)
Well, I suppose you could actually build a simple engine in C++. Then you can compile the engine for Linux, Windows, UNIX, Mac, Atari 2600 :P

Then you can come up with a data file format, so that once you have an engine, less programmatically inclined people can design adventures in your world.

Getting technical: The reason I say C++ is you can create an code object for a physical object. This object has properties of weight, height, and width. Using inheritance, a tree could also be based on this physical object, but adding the property age. The really complex bit that could potentially put this over the top is coming up with a member function/property/combination thereof that defines complex sizes. For example, a chair would have a max height of 4 feet, but the seat height would be 2 feet. If you sat on the chair, your butt is not 4 feet off the ground, it's two. A small tree in a pot might be 8 feet tall, but it's flexible enough to bend and drag it through a 7 foot hallway, but it breaks when shoved into a 5 foot room.
From:fairmontgrue
Date:February 28th, 2004 09:21 pm (UTC)
(Link)
That sounds cool really. Does anyone know if there's some free-software I could download that helps make Text-Based games? I found this one for those 'Choose Your Own Adventure' games which is texted based, but nothing zork like.
[User Picture]
From:road_emu
Date:February 29th, 2004 08:44 am (UTC)
(Link)
There are a number of cross-platform programming systems; I'm trying TADS out right now. I can't tell you the link off of the top of my head, but you should be able to find it easily enough if you Google it.

Good luck!
Powered by LiveJournal.com