[ANN] Dialog Tool 2.0-alpha-4

I’m proud/happy/scared to announce the initial release of dgt - the Dialog Tool.

dgt is a tiny, specialized, highly opinionated command line tool used to build, debug, and test interactive fiction created with Dialog.

I’ve been using it while I translate Aaron Reed’s “Sand-dancer” to Dialog, and creating a threaded conversation library. Here’s what it looks like in action:

16:18:45 ~/workspaces/dialog/sanddancer-dialog > dgt test
 control-center-via-courage ... ✓        83.734411ms
control-center-via-strength ... ✓        76.634892ms
             get-flashlight ... ✓        82.800885ms
                   memories ... ✓        74.346684ms
                open-desert ... ✓        73.358375ms
         pursuit/first-time ... ✓        75.075295ms
     pursuit/lost-and-found ... ✓        77.340047ms

OK
16:18:51 ~/workspaces/dialog/sanddancer-dialog > dgt debug -d
dgdebug --quit src/scenes/pursuit.dg src/scenes/rabbits-offer.dg src/scenes/rainstorm.dg src/base-of-tower.dg src/break-room.dg src/burrow.dg src/control-center.dg src/crumbling-concrete.dg src/hints.dg src/knock.dg src/light.dg src/memories.dg src/middle-of-nowhere.dg src/office-interior.dg src/office.dg src/open-desert.dg src/plans.dg src/roof.dg src/sand-dancer.dg src/smoking.dg src/staging-area.dg src/storage-room.dg src/talents.dg src/tower.dg src/weed-strewn-rust.dg src/windows.dg lib/debug/extra-debug.dg /usr/local/share/dialog-if/stddebug.dg lib/location-tracking.dg lib/room-connections.dg lib/scenes.dg lib/stdlib-extensions.dg lib/stdlib-overrides.dg /usr/local/share/dialog-if/stdlib.dg
Dialog Interactive Debugger (dgdebug) version 0i/03.
Type @help at the game prompt for a brief introduction.


Middle of Nowhere (in the pickup truck)
The tire tracks from the south stop abruptly here, but where the hell are you?
The desert sand and clumps of pale sagebrush are all your dimming headlights
pick out before barely reaching the concrete building to the north.

Your poor old pickup truck ticks and groans, smashed gracelessly against a tall
Saguaro; wiffs of evaporating gasoline linger in the chill air. On the dash you
can see a piece of jade. The glove compartment is closed.

> 

dgt encourages you to break your project up into many small files, and understands that some files must be included for debugging and testing, but not in a released game.

More details are available at: GitHub - hlship/dialog-tool: Tool to assist in testing and building interactive fiction using Dialog

I’ve created a Homebrew package for installation on OS X:

brew install hlship/brew/dialog-tool

This will download the tool and its dependencies – hopefully, as it’s my first Homebrew formula.

I suspect the tool will continue to evolve rapidly and big disclaimer backwards compatibility is not an overriding goal, despite the 1.0 version number. However, I don’t expect to introduce anything too disruptive, so have fun kids!

7 Likes

Absolutely fantastic work! I’ve said before that I see Dialog as a very healthy friendly competitor to Inform 7. Part of that is, of course, building up an ecosystem around Dialog, which tooling like this encourages.

1 Like

Dialog Tool, dgt, is used to build, test, and debug Dialog projects.

New in release 1.1:

  • Fixed bug where dgt test would mismatch the test scripts against the expected output
2 Likes

Dialog Tool, dgt , is used to build, test, and debug Dialog projects.

Changes:

  • dgt test now accepts an optional test name fragment to execute (useful when creating a new test)
3 Likes

This release enables the building of web and c64 games, using the aambundle command, among other improvements.

3 Likes

==> Tapping hlship/brew
Cloning into ‘/usr/local/Homebrew/Library/Taps/hlship/homebrew-brew’…
remote: Enumerating objects: 25, done.
remote: Counting objects: 100% (25/25), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 25 (delta 7), reused 20 (delta 5), pack-reused 0
Unpacking objects: 100% (25/25), done.
Tapped 2 formulae (51 files, 47.2KB).
==> Installing dialog-tool from hlship/brew
==> Tapping candid82/brew
Cloning into ‘/usr/local/Homebrew/Library/Taps/candid82/homebrew-brew’…
remote: Enumerating objects: 148, done.
remote: Counting objects: 100% (12/12), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 148 (delta 3), reused 11 (delta 3), pack-reused 136
Receiving objects: 100% (148/148), 18.38 KiB | 1.15 MiB/s, done.
Resolving deltas: 100% (47/47), done.
Tapped 1 formula (26 files, 46.9KB).
==> Tapping vickio/dialog
Cloning into ‘/usr/local/Homebrew/Library/Taps/vickio/homebrew-dialog’…
remote: Enumerating objects: 87, done.
remote: Counting objects: 100% (87/87), done.
remote: Compressing objects: 100% (49/49), done.
remote: Total 87 (delta 19), reused 75 (delta 18), pack-reused 0
Unpacking objects: 100% (87/87), done.
Tapped 1 formula (113 files, 52.5KB).
==> Downloading https://github.com/candid82/joker/releases/download/v0.16.0/joker-0.16.0-mac-amd64.zip
==> Downloading from https://github-releases.githubusercontent.com/76160954/8c2f3c00-84cd-11eb-8206-205ebdd12267?X-Amz-Algorithm=AWS
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/colordiff-1.0.19.big_sur.bottle.1.tar.gz
##O#- #
curl: (22) The requested URL returned error: 404 Not Found
Trying a mirror…
==> Downloading https://ghcr.io/v2/homebrew/core/colordiff-1.0.19.big_sur.bottle.1.tar.gz
==> Downloading from https://github.com/-/v2/packages/container/package/homebrew%2Fcore%2Fcolordiff-1.0.19.big_sur.bottle.1.tar.gz
#=#=#
curl: (22) The requested URL returned error: 404
Error: Failed to download resource “colordiff”
Download failed: https://ghcr.io/v2/homebrew/core/colordiff-1.0.19.big_sur.bottle.1.tar.gz

I’m not sure when I’ll get a chance to look at this; I’m still on Catalina, so if there’s brew packages that don’t exist yet for Big Sur (looks like colordiff may be in that category) I’m not sure what to do about it.

Dialog Tool 2.0-alpha-3

Dialog Tool is a CLI that makes it far easier to create projects using Dialog. It provides the missing tools to get started, debug and test your project, and bundle it for release.

Lots of details in the README, here’s a summary:

Dialog Tool is a command line tool for OS X. It installs with Homebrew.

Dialog Tool 2.0 is a complete rewrite. New features in 2.0:

  • dgt new - create a new, empty Dialog project
  • dgt skein - opens a web-based UI to test your project
  • dgt test - used the Skein to test your project
  • dgt bundle - bundles a project for upload, including a “play in your browser”

The Skein and the bundling code is heavily indebted to Inform 7.

The Skein is the most important part here; there’s a separate discussion about it. The Skein is like a transcript of you playing your game, including all the different branches you have taken. You will run the Skein as you build your project, and record into it how the project should play. Later, your can “Replay All” and the Skein will show you anything that’s changed, with an option to Bless (aka Approve) the changes — this is terrific for identifying regressions in your project’s logic.

I’d love some help with the Skein, especially in terms of making it a bit prettier. Ultimately, I hope for a more graphical nodes-and-lines UI like the one inside Inform. Further, I’d love to get it all working on Linux and Windows.

All feedback quite welcome!

5 Likes

Changes in 2.0-alpha-4:

  • The Skein UI has been rebuilt to look more like a transcript
  • The dgt bundle command includes Zarf’s one-pager
  • The dgt bundle command now also creates a Zip of the bundle

There’s a few lesser changes under the covers; but the main bit is streamlining and improving the Skein UI.

Each node now has an actions popup:

… and a popup to select the child:

The Skein uses colors to identify differences between the skein and the running game; for example, replaying after correcting a typo:

Ok, since that’s what you expected and all you expected, you can bless the change and save the skein.

… anyway, I need to write more documentation, but I’m quite happy with how it is coming out.

I still have a few more improvements for the dialog tool and I could always use help with the CSS and design parts of the Skein.

Please give it a try and be in touch about what you like and what you don’t.

And now I need to work on my writer’s block for the actual game I’m trying to create …

4 Likes