Sharpee 5.3, Chord 3.6, Chord Writer 1.4

Sharpee 5.3, Chord 3.6, Chord Writer 1.4

Three things shipped together this week: Sharpee 5.3.0 on npm, Chord 3.6.0 (the story language), and Chord Writer 1.4.0 (the Mac app you write in). The last public release was 5.1.1 and Chord 3.3.0 in mid-August. Everything below happened in the two and a half weeks between.

Most of it started with porting Secret Letter to Chord, and about every third scene ran into syntax issues. So I updated the syntax to help out.

Chord

Timers came first. A timer belongs to a character or to the player, runs through named turns, and can carry prose and chance rolls on the way.

define timer search for the wandering mercenaries
  arriving
  lingering
    Those mercenaries are getting uncomfortably close.
  meanwhile, one chance in 5
    phrase merc-idle
end timer

You control it, read it, and react to it in plain words.

start search
stop search
restart search
reset search
interrupt search

while search is lingering
while search has expired

when search expires
  phrase merc-spotted
end when

There are more places to move things to. Here means where the player is standing. Offstage means nowhere, and the thing keeps its state and can come back later. A random adjacent room is picked one open exit away at the moment the line runs. A region can declare a landing, so you can move someone to the Grounds and the story knows which room that means.

move the guards here
move the monkey offstage
move the player to a random adjacent room

create the Grounds
  a region
  containing the Market Square, Commerce Street
  landing the Market Square

The player is a role now, not a block. You no longer create the player. A character is marked playable, and the story says who holds the role. The same line swaps the player mid-game.

create Alex
  a person
  playable
  starts in the Market Square

before the game starts
  change the player to Alex
end before

Every clause names its actor, and the word it is gone from clause heads. A line reads on its own now, without holding the whole block in your head.

on the player taking
after the guard entering

Characters can act in a single sentence. That character performs the real action through the same path the player's commands take, and a goal plan can use the same sentences as its steps.

the guard opens the door
Teisha talks to the player

goal secure-the-key, high
  seek the player
  take the brass key
  go east
end goal

Chapters are an extension that declares chapters as events, and once declared they can be used anywhere a condition goes.

story
  title: The Secret Letter
  use chapters

define chapters
  market - Chapter I: Grubber's Market
    begins when the game starts
  commerce - Chapter II: Commerce Street
    begins when the player visits Commerce Street for the first time
end chapters

on the player talking during commerce
  refuse no-time-to-chat
end on

A pile of smaller things landed too. Imports can import. Proper names work on any create block, not only people. An exit can be one-way. A marker can ask for a noun with no article. Possessive names resolve everywhere.

import "regions/market"

create Grubber's Market
  scenery, proper

create the Market Square
  a room
  north to the Alley, one-way

define phrase another-one
  No one notices you picking up another {bare item}.
end phrase

while the Weaponsmith's Stall is blocked

And a couple dozen loader and parser defects found by playing the port, all fixed.

Sharpee

Under the language, NPCs now act through the platform's own action pipeline. When a character does something, it is the real action, validated and interruptible, and the narration knows who was present to see it. The story's own reactions run before the platform moves the characters. There is a new static analysis, the World Index, that reads a compiled story and reports its map, what can be reached, and what looks unfinished. And a long list of text fixes: articles on plurals, third-person names, room descriptions on arrival, answering and saying goodbye in conversations.

Chord Writer

The app speaks Chord 3.6 and bundles the 5.3 toolchain, so there is nothing to install. New since 1.3: imported fragment files are first-class source in the sidebar and editor, with New Import and Extract Selection to Import in the File menu; a World tab showing the World Index; a menu-less Play pane with a Publish option; and the usual editor fixes. This is the first version that arrives as an auto-update to existing installs.

Documentation

sharpee.net has new guide pages for timers, chapters, the player role, sound and images, and testing with the tree document. Every guide was swept against the current syntax.

Where to get it

Chord Writer is at sharpee.net/chord-writer/download, one build for Apple silicon and one for Intel. The platform is on npm as the sharpee packages at 5.3.0, with the devkit package as the command line. The Secret Letter port is not done, so do not expect a game yet. Expect the language to keep moving as it gets there.

Subscribe to The Sharpee Blog

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe