Port of Sand-dancer in Dialog

Awesome port. (Side note: I’ve never played the original.)

One thing I ran into, which might be a dialog issue, is a disambiguation issue when trying to look electrical tower at the “Base of the Tower”. This looks like so:

> l electrical tower
Did you want to examine the electrical tower or the huge electrical tower?

> electrical tower
Did you want to examine the electrical tower or the huge electrical tower?

> huge
It seems to be harmless.

> l electrical tower
Did you want to examine the electrical tower or the huge electrical tower?

> electrical tower
Did you want to examine the electrical tower or the huge electrical tower?

> huge
It seems to be harmless.

It seems like the disambiguation does not automatically pick any exact matches?


Edit: Additionally, the door in the Staging Area is not actually “in” it, just in Crumbing Concrete. This means you can sort of interact with the door outside but not inside the building. (My first thought once I had gotten inside was to attempt to open the door from the inside, so I wouldn’t have to go through the window again later.)


Edit 2: And now a few more issues now that I’ve finished the game once.

I didn’t realize this until after reading through some of the source, but doing tune radio to 102.3 actually tunes it to 102.0 khz. I didn’t realize this for a bit as I figured no-one was talking—there was also no indication of a mic. I guess my issue with this is the misinterpretation of 102.3 and no clear indication that I did something wrong in tuning it.

Attempting to trade for multiple things at once causes the following error. This works with the wolf or the sand-dancer, I did not try it for the rabbit.

> trade road trips and grad for honor
(Technical trouble: Heap space exhausted. Attempting to recover with UNDO.)
Undoing the last turn (trade road trips and grad for honor).

Because the endgame condition is just [leave $ $] and a lizard talent, it appears to be a bug that trying to go in (or anywhere but south) after the lizard leaves will end up finishing the game. Hopefully that makes sense.

Regarding the photo: I kinda wish that Knock would examine the photo before the endgame movement, in case the player forgot to check if they could open it yet. (Which I had forgotten to try again, partly forgot because look photo always says to spend more time brooding. I never tried opening it.)

Additionally, it’s possible to use the photo to keep a memory when trading for freedom by never opening it until the last room, and then using it to gain the #heard-the-news. I wouldn’t be surprised if this is possible with other memories that are attached to objects, but to be honest this isn’t really a huge issue, if you would even consider it one at all.

I’m sure not all of these issues are unique to your port, but because I’ve never played the original I have no reference, so these are just my thoughts of the game as a whole. Awesome job, and I love seeing a fellow Clojure programmer out in the wild! :grin:


Edit: Just remembered before going to bed—I also saw this line when in the wolf scene. It confused me, I assume it’s a bug. I don’t have my transcript anymore so I’m copying this from one of your test results, emphasis mine. Commit of interest is dfe60000, a surprising commit hash :).

> say yes
It's freezing out and your nerves are jangled. "Sure, I could use a smoke" you
say.

You pull out your pack and he grins, like he knew you'd say yes, and leans
forward for you to light up off him. His sunglasses reflect back nothing but
your own face weirdly lit by the glow from the cig, and for a moment it's like
the blackness behind them is deep, deeper than the sky, deeper than the
universe...

**The rabbit twitches a little and looks a you expectantly.**

"Gotta keep an eye on the horizon," he says in a scratchy, slow voice. "Always
someone hunting. Border Patrol, National Guard, INS, ICE, Minutemen. You want to
help people get where they're going out here, you need more than strength. You
need to learn how to hide."
1 Like

Thanks for the reports. All fixable, I think. Comparing this version of SD against the one at http://sand-dancer.textories.com/ , I think the Dialog version compares favorably … except for the whole tuning the radio syntax. I haven’t found a way to just say “tune radio to 102.3”; that just becomes two different sentences, “tune radio to 102” and “3”. The “khz” suffix is an important trigger. There may be a way around it, I’ll keep looking.

1 Like

When this happens, the quick fix is to increase the heap size with the -H compiler option. The default is 1000 words, so try 2000. The long-term fix is to figure out what part of the code is using a lot of heap space, and try to optimize that.

1 Like

I’m working to rewrite threaded conversation right now for other reasons, but I have an unsubstantiated hunch that this heap space issue is in there too.

1 Like

Sand-dancer release 4:

  • Add a custom beat for Sand-Dancer
  • Say “the memory of” when narrating a trade
  • Add a custom beat for coyote
  • Add description of tower
  • Prevent disambiguation about tower in Base of Tower room
  • Door now exists on both sides
  • Don’t use the Rabbit’s beat with other characters
  • ‘light lighter’ now does something
  • Don’t reveal truck’s damage until examined

This version also uses the new version 5 threaded conversation.

There’s always more polishing to do, but at this point, some of the changes suggested by players involves moving slightly beyond the plot as defined by the canonical Inform 7 version of the game.

2 Likes

Very nice!

I have gone through Aaron Reed’s excellent text a couple of times. The source code will allow a comparison to Inform 7. That will be most instructive.

Thank you

Yes, thank you. That was my initial starting point, though it is very hard to draw one-to-one comparisons for many of the concepts shared between the two implementations.

There are a few intentional deviations that have been discussed in prior threads; a few things work better in this version in my opinion (conversations are easier to script and manage using the thread conversation library I’ve developed), but a few things work better in the I7 version (I still haven’t managed to get the tuning of the radio to be perfect).

1 Like

Sand-dancer release 5:

New in this release:

  • When brooding about an object, name the memory with “your”
  • Remove the fragments of glass object from crumbling concrete
  • Lots more hints about breaking the pane of glass
  • Provide a hint about consulting when you read the guidebook
  • Fix bug in tune radio
  • Model the dial on the radio, and redirect turn dial to tune radio
  • Electrical panel is now modeled, redirect switch on/off to the emergency lights
  • Add cover art
  • You can now light webs or burn webs (but still need courage)
  • Prevent player from tuning or switching off radio while talking with voice
  • Prevent player from wandering into desert the first time before being ready
  • Prevent player from returning to desert until temptation scene
  • Prevent player from returning to desert after coyotes offer
  • Before entering desert, turn on the flashlight if held
  • Prevent entering the desert during the rainstorm scene
  • Add “coyotes” as synonym of “coyote” in the guide book
  • Add open <object> with <object> as a synonym of unlock <object> with <object>
  • Automatically open the photo (if nearby) after retrieving four memories, if it was previously examined
  • Need to open photo before Sand-dancer’s arrival can trigger
  • Better flavor text moving between rooms during Sand-dancer’s arrival
  • You can now omit the khz suffix when tuning the radio, e.g., tune radio to 104.3
3 Likes

Sand-dancer release 6:

This work is intended as a larger sample of techniques usable in Dialog; at this point, it has diverged somewhat from the original Inform 7 source material, so a 1:1 comparison would not be very enlightening. I encourage people to browse the source; a discussion on organization, testing, and other aspects of creating a game would, I hope, be valuable.

New in this release:

  • Package up the web page with cover images, IF guide, etc.
  • Override default smell to reflect the desert and current location or scene
  • Beef up text and actions related to getting the gas can
  • Model the radio better if attacked during sinister voices
  • Customize listen to radio during sinister voices
  • Streamline pacing in chase and fight scenes

Hi, rather than making a new topic every few days for each release, can you please post to the original one? I’ve merged these announcement topics together for you (and a couple of your other announcement series), thanks. :slight_smile:

2 Likes

Sure, I guess. The forum does a decent job of highlighting updates to existing posts.

This is good for me as well, since I now have this topic bookmarked. I plan on eventually playing “Sand-Dancer” and comparing the code side-by-side after that. Having all the updates and resulting coding decisions in one place will really help me, so thank you for that, @Dannii! And of course thank you to @aaronius for making the game and code available and to @hlship for the port and, while we’re at it @lft for Dialog! :grinning:
-Skinny Mike

New in release 7:

This could easily be the final version, pending any feedback from people who are playtesting or reviewing the code.

  • Fix the “sticky implicit verb” bug
  • Shorten time lost in desert waiting for shadow to re-appear
  • Identity boarded up door as reason can’t go NE from Crumbling Concrete
  • Describe smell in burrow, and smell of rabbit
  • Describe the roots in the burrow
  • Prevent climb roots in burrow with a reasonable message
  • Tweak text during chase if Knock holds courage
  • Describe the huge barrel as a hint on what to do
  • Add and fix a number of hints
  • Prevent hint about opening cage from repeating after the cage is opened
  • Add a little segue before the Coyote reveals his talents
  • Add explanation for wear blanket
  • Tweak some text during sand-dancers arrival
  • Model the door after opening the cage
  • Disambiguate open can when rusty tin can is present
  • Make room names proper, for look <dir>
  • Have the figure, in temptation, be south-east (to encourage player to go there)
  • Make the burrow inherently dark
  • Require five brooded memories before opening the photo
  • Note that the sand is like mud during rainstorm
  • Better hint text that Rabbit wants memories
  • Support trading more than one memory at a time
  • Prevent heap error in aamachine when trading more than one memory at a time
1 Like

Expanding the heap helped, but I have no idea what is consuming heap to cause the problem.

Strangely, the game tells me not to go away from talking to the rabbit after I looked up in “Burrow” having already traded with the rabbit. The location changed to “Backtracking” but I can’t go north. A bug?

That’s a bug, but surprising. If you can get me a transcript I can verify and fix.