My Preliminary Survey of Text-Adventure Development Systems

I haven’t played those ones, but this description reminded me of the MacVentures, particularly Shadowgate (the original, not the recent re-release). This wasn’t a parser game, though it still had text descriptions and verb-noun action mechanics.

Yes, I played those but even when there were a couple of inventory windows open (because every open container had its own), they never felt quite as cluttered to me.

ui-dejavu

By telling Magnetic Windows not to scale up the graphics, I guess I can get it to look reasonable even with all the option windows… At least until I reach one of the rooms where they added pictures for the re-release, because those were drawn in different sizes than the originals.

ui-magnetic

And this is at high resolution. Judging by the screenshots on Moby Games (like this one), it could run at much lower resolution on some platforms.

my deep apologies. Indeed I intended scott2zip… but… uh, how to avoid new mistakes ? a scott2zil targeting i6 instead of ZIL isn’t a bad idea, anyway.

1 Like

remake;

5 Likes

That looks so good!

So here’s an excerpt from an experiment using the same UI to mix text, choice and parser in the same system.

The flicker is the bad compression (and gifs don’t have sound either) .

salsbury

3 Likes

Well, THAT story sure took a turn. :astonished:

(Actually, I didn’t notice the title until after watching it)

I have found this authoring system survey interesting. I had never thought to work with TADS 2 since I came back to IF after TADS 3. I installed the TADS 2 version on my Win10 computer to give it a try.

Thank you, Jeff

1 Like

Love the text on top of a translucent background with image obscured. Really nice effect.

I really like that too. Having description text pop up over the main window is a little less jarring that going to a completely different screen and needing to click a “back” button. It really helps when you want to establish a sense of location.

Sorry, yes the game idea was a short comedy piece entitled “Don’t kill Salsbury”. It’s a game where you have to NOT do something! You pass through various scenes, where if you just walk on by - you “win”.

With the UI, the concept is trying to use the same visual space for both text and graphics. As opposed to a “roll down picture” or separate graphic window. The text appears overlaid and can be dismissed by clicking. If you continue to enter commands, the text overlay remains. So it’s possible to have a whole section of normal text output and see the picture only when you want.

Sometimes the system will dismiss the text overlay, eg for a new picture or animation sequence.

You have both choices and parser input. Choices are actually aliases for commands that can be entered manually. So, for example, if there’s a choice to “get something”, you could just as well type that instead if you wish.

3 Likes

If the compass is in the sidebar, will be perfect…

BTW, what 'terp is that ?

Best regards from Italy,
dott. Piergiorgio.

Looks like Brahman to me.

1 Like

It is.

However, i’m using a new backend to experiment with a new IF development language, using a mix of choice and parser.

This is what the game source looks like;

STORY
GOSTART
MAIN

MORE?
*+ Continue


///////////////////////////////////////////////////////////

GOSTART
> put player in STARTHOUSE
XHERE

//////////////////////////////////////////

STARTHOUSE@ OUTSIDE
* name
the house
* x it
This is where you live!
images/house1.webp
*= go for a walk
GOWALK1

///////////////////////////////////////////////

GOWALK1
> put player in WALK1
XHERE

WALK1@ OUTSIDE
* name
a walk
* x it
You're off on your walk. It's a sunny day and things feel good.
images/house3.json SEEWALK
*= go to the street
GOSTREET

SEEWALK<
* But what's this, RANOBJX.
* There's a fresh breeze out.

RANOBJX RANOBJ1
* CAN
a tin can
> put CAN in here
* BOX
an old box
> put BOX in here
* SPUPPY
a slush puppy cup
> put SPUPPY in here
* TAPE
an old cassette tape
> put TAPE in here
* BANANA
a banana skin
> put BANANA in here

   SHOWOBJ
   

RANOBJ1!
RANOBJ

SHOWIT IT
*
SHOWOBJ

SHOWOBJ LAST
* CAN
last.json:show:can
* BOX
last.json:show:box
* SPUPPY
last.json:show:spuppy
* TAPE
last.json:show:tape
* BANANA
last.json:show:banana
* AXE
last.json:show:axe
* PIPE
last.json:show:pipe

HIDEOBJ IT
* CAN
last.json:hide:can
* BOX
last.json:hide:box
* SPUPPY
last.json:hide:spuppy
* TAPE
last.json:hide:tape
* BANANA
last.json:hide:banana
* PIPE
last.json:hide:pipe
* AXE
last.json:hide:axe


RANOBJ
* CAN
* BOX
* SPUPPY
* TAPE
* BANANA

GAMEOBJ@ GETTABLE
* postget it
HIDEOBJ
* postdrop it
SHOWIT 

CAN@ GAMEOBJ
* name
the tin can
* x it
Maybe baked beans, who knows.

BOX@ GAMEOBJ
* name
the old box
* x it
Just some discarded packaging.

SPUPPY@ GAMEOBJ
* name
the slush puppy
* x it
Wow an original from the 70's!
* drink it
There isn't actually any in there. Be serious!

TAPE@ GAMEOBJ
* name
the cassette old tape
* x it
It's the Bee-Gees greatest hits, no wonder it's been thrown away. It has "A.Davis" written on it, no idea whats that's about.

BANANA@ GAMEOBJ
* name
the banana skin
* name
banana
* x it
People just throw stuff anywhere these days.


///////////////////////////////////////////////////////

GOSTREET
> put player in street
XHERE

STREET@ OUTSIDE
* name
the street
* x it
You're in the street. SEESALS
*=?GOTPIPE throw the pipe at salsbury
HITPIPE
*= go to the park
GOPARK

SEESALS< 
* Look! There's Salsbury, what's he doing here? RAYIDLE SHOWPIPE
> put pipe in street
> put salsbury in street
* Salsbury is here.

PIPE@ GAMEOBJ
* name
the lead pipe
* x it
Maybe leftover from a converted old water main or something.
* postget it
HIDEOBJ GOTPIPE

GOTPIPE

KILLED
Salsbury is dead!

SALSBURY@ THING
* name
raymond salsbury
* x it
An annoying character
*=?!KILLED talk to salsbury
TALK
* ask it about can
HH Could come in handy!
* ask it about box
HH That's my box!
* ask it about puppy
HH It's not a _real_ puppy you know!
* ask it about tape
HH Hey, give it bacK!
* ask it about skin
HH I threw that!
* ask it about pipe
HH What pipe?

HH
Hurr Hurr!

TALK<
* Hello Salsbury! MORE last.json:play:wave,run:TALK
* last.json:play:idle,loop

SHOWPIPE
images/raymond.json:show:pipe

HITPIPE
images/raymond.json:play:pipe,run:KILLED

RAYIDLE
images/raymond.json:play:idle,loop

RAYWAVE
images/raymond.json:play:wave, images/raymond.json:play:idle,loop,delay:0

RAYPANIC
images/raymond.json:play:panic, images/raymond.json:play:idle,loop,delay:0


/////////////////////////////////////////////


GOPARK
> put player in park
> put salsbury in park
> put axe in park
XHERE

PARK@ OUTSIDE
* name
the park
* x it
The most relaxing park for yards around. SEEPARK
*=?GOTAXE Throw the axe at Salsbury
THROWAXE

SEEPARK<
* Salsbury is here! PARKIDLE SHOWAXE
* Salsbury's still here.


AXE@ GAMEOBJ
* name
the axe
* x it
Maybe one of the park keepers left it out.
* postget it
HIDEOBJ GOTAXE

GOTAXE

PARKIDLE
images/park.json:play:idle,loop

SHOWAXE
last.json:show:axe

THROWAXE
You throw the axe at Salsbury!