[ANN] Dialog Tool 1.0

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: https://github.com/hlship/dialog-tool

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.