<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>https://cdvr.org/bookwove/</id>
	<title>Bookwove / CDVR</title>
	<subtitle>Feed for my blog, where I post about all kinds of things, but generally programming, game design, poetry, reviews, solo TTRPG play-throughs, etc.</subtitle>
	<link rel="alternate" href="https://cdvr.org/bookwove/"/>
	<link rel="self" href="https://cdvr.org/bookwove/feed.xml"/>
	<icon>https://cdvr.org/assets/favicon.ico</icon>

	<author>
		<name>bogbody</name>
		<email>bogbody.cdvr@protonmail.com</email>
	</author>

	<updated>2026-04-13T00:00:00.000Z</updated>

<entry>
	<id>https://cdvr.org/bookwove/2026-04-13-first-new-page-on-bookwove.html?date=2026-04-13</id>
	<title type="html"><![CDATA[First new page on Bookwove]]></title>
	<link href="https://cdvr.org/bookwove/2026-04-13-first-new-page-on-bookwove.html"/>
	<published>2026-04-13T00:00:00.000Z</published>
	<updated>2026-04-13T00:00:00.000Z</updated>
	<content type="html"><![CDATA[
		<p>I'm back to blogging.</p>
<p>Look, I've set up a blog for the same reasons as most people these days—corporate social media is dogshit and non-corporate social media doesn't really support long-form writing unless it's basically a blog platform anyway. Threads are a necessity in microblogging, but they warp long-form writing into chains of bite-sized, hyper-clarified, quote-able chunks (god that's a lotta hyphens). People can then annotate these chunks through replies and quotes, adding to the flood of like/repost notifications without necessarily adding anything to the conversation. And so to blog.</p>
<p>There's no set theme here. I've imported solo analog game playthroughs and dice/card mechanic simulations from my first blog (2022–23) and font design and programming tips converted from a small personal docs site (2023–25). Among my many drafts there's a few longer-form game reviews waiting in the wings and a bunch of more personal and/or opinionated things. What I'm <em>not</em> gonna post is a lot of “blogging about blogging” shit, which I did a <em>lot</em> of on my first blog (I made a new post every time I added or changed a feature of my custom Zonelets setup). I'm posting because I've got something to share (I hope), not because I want to show off some low-tech blogging platform.</p>
<p>Another thing I want to avoid is posting things to a blog that should really be their own bit of the site. There's a reason why my site's currently a lesser myriad of different sections with their own organisations and features. The <a href="/seaglass/">poetry notebook</a> lists all poems by type, one type per page. The <a href="/plasma/">movie caption docs</a> are up-to-date documentation split by film (well, there's only one film so far). The <a href="/kittenboxd/">mini-review</a> <a href="/picolon3/">collections</a> have their own filters and styles and can be sorted in eight different ways. I could've lathed all these square pegs for the round hole of the blog format, but I'd lose so much in function and style. This does mean I need to maintain two feeds, one for Bookwove and one for my site in general, but that's a small price to pay.</p>
<p>The <a href="https://codeberg.org/cdvr/bookwove">code</a> for this section of my site is a bit basic right now. Basically it's built from <abbr>HTML</abbr> content and templates using a perl-based static site generator and the <abbr>CSS</abbr> is cribbed from the <a href="/seaglass/">Seaglass</a> section of my site but with a more print-prose style (hence the justified paragraphs and so on).</p>
<p>(Side note: some of the posts use <cite><a href="https://speakthesky.itch.io/typeface-dicier">Dicier</a></cite>, my typeface for analog game randomisers like dice and cards. It's a tiny custom subset. You can look in the blog's source code on Codeberg or root around in the local files here if you want to use these fonts yourself.)</p>
<p>I dunno how much more I'll develop Bookwove. Originally I had all these plans to go hard on the print style, a bit like <a href="/babel/man-lord-of-machinery/">my transcript of <cite>Man, Lord of Machinery</cite></a> only way more so: filtering all video and images into a two-tone palette; representing charts using <abbr>CSS</abbr> so they'd share the blog's colour scheme; floating images left/right like old-school book illustrations; and so on. I might still do some of that. For now, I just want to get the blog up and running, and all these cool plans stood in the way.</p>
<p>Here's a few upcoming posts:</p>
<ul>
	<li>cherry-picking some poems I like from <a href="/seaglass/">Seaglass</a></li>
	<li>a review of <cite>The Talos Principle</cite> and the limits of its puzzle design</li>
	<li>what even is a “bad game”, anyway?</li>
	<li>let me show you some cool small sites</li>
	<li>which of the 200+ episodes of <cite>Yamishibai</cite> are worth a damn, and where it all went wrong</li>
	<li>why I can't stand perl, the programming language Bookwove's built with</li>
	<li>a little more about the philosophy of this site right now (see above, “Another thing I want to avoid…”)</li>
</ul>
<p>There's no hard schedule, but I tend to get in my own head when editing and I do wanna get over that and Just Post if I have an idea (with at least a bare minimum check-over). It's important to be comfortable with maybe being wrong on the internet! Being wrong, even a little, is the first step on the road to being right. I hope.</p>
<p>(And what does “bookwove” mean? It's the name of the slightly-rough, matte, normally off-white type of paper used in many books but especially common in paperback novels.)</p>
	]]></content>
	<category term="blogging-about-blogging"/>
</entry>
<entry>
	<id>https://cdvr.org/bookwove/2022-05-15-ouroboros-dice-mechanic.html?date=2026-04-10</id>
	<title type="html"><![CDATA[Ouroboros dice pools]]></title>
	<link href="https://cdvr.org/bookwove/2022-05-15-ouroboros-dice-mechanic.html"/>
	<published>2022-05-15T00:00:00.000Z</published>
	<updated>2026-04-10T00:00:00.000Z</updated>
	<content type="html"><![CDATA[
		<p><strong>Edited 10th April 2026:</strong> This is a cut-down version of the original post. The goal was to use a few simple, easy-to-remember rules to create a more complex behaviour from rolling easily-available dice. The original had more images and a little more text.</p>

<hr class="line">

<h2 id="the-basic-idea">The basic idea: a cycle of dice pools</h2>
<p>Here's how it works: You have 3 dice pools—A, B, and C—and 10 6-sided dice. The three pools are in a loop, A leading to B, B to C, C back to A, and all the dice start in pool A.</p>
<p>Sometimes in the game, you pick a pool to roll, for whatever reason. For every die that shows 1–5, you “pull” 1d6 from the <em>previous</em> pool into the pool you rolled. For every die that shows 6, you “push” 1d6 from the pool you rolled into the <em>next</em> pool.</p>
<p>Here's that explanation in diagrams:</p>
<img src="./files/ouroboros-dice-mechanic/action-1.gif" alt="">
<img src="./files/ouroboros-dice-mechanic/action-2.gif" alt="">
<img src="./files/ouroboros-dice-mechanic/action-3.gif" alt="">
<img src="./files/ouroboros-dice-mechanic/action-4.gif" alt="">
<p>This mechanic sends the dice in a cycle. When rolling a small pool, you're far more likely to pull dice in than push them out. As the pool grows to include most or all of the dice, the balance shifts as there are few-to-no dice left to pull in. Once the next pool gains a few dice it starts to pull everything forward and the current pool shrinks to nothing.</p>
<p>I programmed a model to simulate this system to show how it works out in practice. The model uses the rules above, except it rolls pools at random (as long as the pool has dice). Here's what happened in 4 separate simulations of 100 rolls in a row:</p>
<img src="./files/ouroboros-dice-mechanic/sim-10d6-separate-1.gif" alt="">
<img src="./files/ouroboros-dice-mechanic/sim-10d6-separate-2.gif" alt="">
<img src="./files/ouroboros-dice-mechanic/sim-10d6-separate-3.gif" alt="">
<img src="./files/ouroboros-dice-mechanic/sim-10d6-separate-4.gif" alt="">
<p>The dice start bunched up in pool A, then filter through to pool B, then to pool C, then back to A again and so on. The pools tend to peak at 7–9 dice instead of going all the way to 10, and the peaks tend to be 4–10 rolls wide. Caveat: This is from a model that just picks pools at random rather than with any reason.</p>
<p>That's just one simulation, though. What happens on average? This:</p>
<img src="./files/ouroboros-dice-mechanic/sim-1000-average.gif" alt="">
<p>This is the average of 1000 simulations. After about 20 rolls, everything levels out; on average, each of the 3 pools has 1/3 of the dice. Basically, the results show that this mechanic is <em>reliable</em>, but not <em>predictable</em>. You know the pools will peak in turns, but not when, how high, or how long.</p>



<h2 id="tweaking-the-rules">Tweaking the rules</h2>
<p>This behaviour happens no matter how many pools there are or what size the dice are, as long as you have a high chance of pulling and a low chance of pushing. On the other hand, here's what happens if we pull on 1 or 2, do nothing on 3 or 4, and push on 5 or 6:</p>
<img src="./files/ouroboros-dice-mechanic/sim-10d6-balanced-1.gif" alt="">
<img src="./files/ouroboros-dice-mechanic/sim-10d6-balanced-2.gif" alt="">
<img src="./files/ouroboros-dice-mechanic/sim-10d6-balanced-3.gif" alt="">
<img src="./files/ouroboros-dice-mechanic/sim-10d6-balanced-4.gif" alt="">
<p>The difference is night and day. The peaks get broader, less reliable, less-defined, sometimes they're skipped entirely. The stats are less extreme, so the dice flow is less extreme.</p>



<h2 id="what-else-could-you-try">What else could you try?</h2>
<p>The mechanic offers some pretty easy handles already. You might overlap the thresholds, e.g. on 5 you push <em>and</em> pull a die, or you could change the number of dice pushed or pulled, e.g. for every 6 you roll you push 2 dice, or add more pools.</p>
<p>Beyond those small tweaks, you could mix up the die sizes while keeping the same thresholds. For example, you could use a mix of d4s, d6s, and d10s. If you keep the push threshold at 6 then the d4s could only be pulled, not pushed, since they can never show a 6; meanwhile, the d10s have even chances of pushing and pulling. Varying the dice opens up more decisions, such as how to decide which dice to pull now that there are different kinds (is it free choice or do you follow a rule?).</p>
<p>We can go even further. Dice tricks, branching paths, special dice with special properties e.g. only being pushed or pulled if you roll doubles (per <a href="https://xcancel.com/eldritchmouse/status/1501663125879214083">Ty/@eldritchmouse's suggestion</a>).</p>
	]]></content>
	<category term="simulations"/><category term="analog-games"/>
</entry>
<entry>
	<id>https://cdvr.org/bookwove/2025-12-14-adding-support-for-minority-british-languages-to-a-font.html?date=2025-12-14</id>
	<title type="html"><![CDATA[Adding support for minority British languages to a font]]></title>
	<link href="https://cdvr.org/bookwove/2025-12-14-adding-support-for-minority-british-languages-to-a-font.html"/>
	<published>2025-12-14T00:00:00.000Z</published>
	<updated>2025-12-14T00:00:00.000Z</updated>
	<content type="html"><![CDATA[
		<p>The British Isles are home to over a dozen minority languages. To fully support their orthographies, you need a range of diacritics, one modification, and one new character. However, a font that supports common West-European languages like French, Spanish, and German is well on the way to supporting the full British orthography too.</p>
<p><strong>Note:</strong> The character sets below are written in a certain way: <code>letters</code> with <code>marks</code>. This means that all the letters (in upper- and lowercase) need to be paired with all of the marks. For instance, “<code>a e</code> with <code>acute grave</code>” means “a-acute, a-grave, e-acute, e-grave”.</p>
<dl>
	<dt>Welsh</dt>
	<dd><code>a e i o u w y</code> with <code>acute circumflex dieresis grave</code></dd>
	<dt>Scottish Gaelic</dt>
	<dd><code>a e i o u</code> with <code>grave</code> and <code>a e o</code> with <code>acute</code></dd>
	<dt>Irish</dt>
	<dd><code>a e i o u</code> with <code>acute</code>, <code>b c d f g m p s t</code> with <code>dot</code>, and ⁊ (lowercase Tironian et, <code>U+204A</code>) and ⹒ (uppercase Tironian et, <code>U+2E52</code>, rare, may not display right)</dd>
	<dt>Manx</dt>
	<dd><code>c</code> with <code>cedilla</code></dd>
	<dt>Cornish</dt>
	<dd><code>a e o u</code> with <code>circumflex grave</code>, <code>i</code> with <code>circumflex</code>, and <code>e y</code> with <code>dieresis</code></dd>
</dl>
<p><strong>In total,</strong> you need <code>a e i o u w y</code> with <code>acute circumflex dieresis grave</code>, <code>c</code> with <code>cedilla</code>, <code>b c d f g m p s t</code> with <code>dot</code>, and the Tironian et (definitely the small/regular one, optionally the uppercase one).</p>
<p>This list doesn't include cants, Traveller and Romani languages, Scots or Ulster Scots, or the Channel Islands languages. Those either don't have consistent (or any) written forms, or don't use characters beyond the English Latin alphabet (A to Z).</p>
	]]></content>
	<category term="font-design"/>
</entry>
<entry>
	<id>https://cdvr.org/bookwove/2025-12-13-opentype-feature-tips-gaelic-type.html?date=2025-12-13</id>
	<title type="html"><![CDATA[OpenType feature tips: Gaelic type]]></title>
	<link href="https://cdvr.org/bookwove/2025-12-13-opentype-feature-tips-gaelic-type.html"/>
	<published>2025-12-13T00:00:00.000Z</published>
	<updated>2025-12-13T00:00:00.000Z</updated>
	<content type="html"><![CDATA[
		<p>This is part of a set of posts on OpenType font features. Here's the full list of posts:</p>
<ul>
	<li><a href="./2025-12-09-opentype-feature-tips-introduction.html">introduction</a></li>
	<li><a href="./2025-12-10-opentype-feature-tips-tabular-figures.html">tabular figures</a></li>
	<li><a href="./2025-12-11-opentype-feature-tips-case-sensitive-forms.html">case-sensitive forms</a></li>
	<li><a href="./2025-12-12-opentype-feature-tips-ordinals.html">ordinals</a></li>
	<li aria-current="true">Gaelic type</li>
</ul>

<hr class="line">

<p>Gaelic type (a.k.a. Gaelic script) was a form of Irish lettering used by printing presses from the 1500s to the 1900s, at first and in part as a means of English soft power and later by Irish nationalists to distinguish themselves from their English oppressors. It's mainly characterised by insular versions of numerous Latin letters, as well as other changes. While relatively rare in the present, it's still used in some ceremonial, official, or decorative text.</p>
<p><strong>Note:</strong> “insular” refers to a historic period of art and, in this case, letterforms; the etymology is the same as “island” (specifically referring to British Isles).</p>
<p>There are <strong>three parts</strong> to turning modern English into Gaelic type:</p>
<ul>
	<li>insular letters</li>
	<li>accented letters and the Tironian et</li>
	<li>other redesigned letters</li>
</ul>



<h2 id="insular-letters">Insular letters</h2>
<p>Here are the insular letters you need for Gaelic type (make sure to look them up for a better look at the various designs they've been drawn with historically):</p>
<ul>
	<li>Ꝺ/ꝺ (upper-/lowercase insular D, <code>U+A779</code>/<code>U+A77A</code>)</li>
	<li>Ꝼ/ꝼ (upper- and lowercase insular F, <code>U+A77B</code>/<code>U+A77C</code>)</li>
	<li>Ᵹ/ᵹ (upper- and lowercase insular G, <code>U+A77D</code>/<code>U+1D79</code>)</li>
	<li>ꞃ (lowercase insular r, <code>U+A783</code>)</li>
	<li>ꞅ (lowercase insular s, <code>U+A785</code>)</li>
	<li>Ꞇ/ꞇ (upper- and lowercase insular T, <code>U+A786</code>/<code>U+A787</code>)</li>
</ul>
<p><strong>The unicode characters for insular letters should not be used in ordinary text.</strong> These characters were only added to unicode for linguists and historians and don't decompose well to non-insular forms the same way accented letters can decompose to letter and mark (see the bottom of page 3 in <a href="https://www.unicode.org/L2/L2006/06266-n3122-insular.pdf">the proposal to add insular letters to unicode</a>). Instead, use substitutions to replace the Latin glyphs with insular glyphs. See more info in the suggested OpenType code below. You can include the unicode insular letters, but people should be able to write in Gaelic type just by typing English Latin letters.</p>



<h2 id="accented-letters-and-tironian-et">Accented letters and Tironian et</h2>
<p>Irish Gaelic includes the letters a, e, i, o, and u with the acute accent and b, c, d, f, g, m, p, s, and t with the dot accent. It also includes ⁊ (lowercase Tironian et, <code>U+204A</code>) and ⹒ (uppercase Tironian et, <code>U+2E52</code>, rare, may not display).</p>
<p><strong>Note:</strong> It's very rare to see the ampersand and Tironian et used in the same piece of text, because they're equivalent characters from different scripts. That is, they're both shorter ways of writing “and”. You can use OpenType substitution to swap the ampersand for a Tironian et glyph that still counts as a regular ampersand. See more info in the suggested OpenType code below.</p>



<h2 id="other-redesigned-letters">Other redesigned letters</h2>
<p>The lowercase “i” often doesn't have a dot in Gaelic type. This is a stylistic change—<em>do not</em> just use the dotless-i unicode character, “ı”, which is actually a separate letter used in several Southeastern European languages. Just use OpenType substitution to swap the regular lowercase letter for a dotless alternative that still counts as a regular “i”. See more info in the suggested OpenType code below.</p>
<p>Other redesigned letters often include the letter “A”, which tends to be given the same design in both upper- and lowercase and be drawn with a low and bowing crossbar, and various other uppercase letters such as “B”, “E”, “H”, “M”, “N”, “P”, and “U”, which may be drawn as capital-sized versions of their lowercase forms. However, these redesigns are for Gaelic type-focused fonts; you don't <em>need</em> to do any of them if you're just extending a more general font to support Gaelic type.</p>



<h2 id="suggested-opentype-code">Suggested OpenType code</h2>
<p>OpenType has no registered feature for Gaelic type, so we have to create our own using a stylistic set (e.g. <code>ss01</code>). Here's the code I use (swap <code>.ss01</code> for another stylistic set number if need be):</p>
<pre><code># insular upper
sub D by D.ss01;
sub F by F.ss01;
sub G by G.ss01;
sub T by T.ss01;

# insular lower
sub d by d.ss01;
sub f by f.ss01;
sub g by g.ss01;
sub r by r.ss01;
sub s by s.ss01;
sub t by t.ss01;

# insular upper dot-accent
sub Ddotaccent by Ddotaccent.ss01;
sub Fdotaccent by Fdotaccent.ss01;
sub Gdotaccent by Gdotaccent.ss01;
sub Tdotaccent by Tdotaccent.ss01;

# insular lower dotaccent
sub ddotaccent by ddotaccent.ss01;
sub fdotaccent by fdotaccent.ss01;
sub gdotaccent by gdotaccent.ss01;
sub sdotaccent by sdotaccent.ss01;
sub tdotaccent by tdotaccent.ss01;

# other
sub i by i.ss01;
sub ampersand by ampersand.ss01;</code></pre>
<p>All the <code>.ss01</code> glyphs are renamed copies of the insular glyphs. For example, to create <code>D.ss01</code>, first draw the insular D glyph under the name <code>insularD</code>, then create a new glyph and embed <code>insularD</code> as a component, then name the copy <code>D.ss01</code>. It'll look just like insular D, but it'll appear when someone switches on the Gaelic type stylistic set (in this case, <code>ss01</code>) and types an uppercase “D”.</p>
<p>You'll need to create versions of certain insular letters with dot accents, too; unicode doesn't support these (yet), but they're only ever used when applying Gaelic type via OpenType code like in this feature.</p>
<p>The exceptions are <code>i.ss01</code>, which should embed <code>dotlessi</code>, and <code>ampersand.ss01</code>, which should embed the Tironian et, but otherwise these two work the same way as the insular letters.</p>

<hr>

<p>While the feature code is much simpler than that for <a href="./2025-12-12-opentype-feature-tips-ordinals.html">ordinals</a>, I put this feature last in the set of OpenType feature tips for two reasons: firstly, it involves drawing a bunch of new glyphs, and secondly, it has no formally-defined feature. I hope this shows the power of (mis-?)using stylistic sets. They're totally generic features, so you can put whatever code you want in there and it'll Just Work™! Just don't do this for ordinary localisation tweaks, like adding the Catalan <i lang="cat">punt volat</i>—use the localisation feature <code>locl</code> instead (a topic for another post).</p>
	]]></content>
	<category term="font-design"/><category term="opentype"/>
</entry>
<entry>
	<id>https://cdvr.org/bookwove/2025-12-12-opentype-feature-tips-ordinals.html?date=2025-12-12</id>
	<title type="html"><![CDATA[OpenType feature tips: ordinals]]></title>
	<link href="https://cdvr.org/bookwove/2025-12-12-opentype-feature-tips-ordinals.html"/>
	<published>2025-12-12T00:00:00.000Z</published>
	<updated>2025-12-12T00:00:00.000Z</updated>
	<content type="html"><![CDATA[
		<p>This is part of a set of posts on OpenType font features. Here's the full list of posts:</p>
<ul>
	<li><a href="./2025-12-09-opentype-feature-tips-introduction.html">introduction</a></li>
	<li><a href="./2025-12-10-opentype-feature-tips-tabular-figures.html">tabular figures</a></li>
	<li><a href="./2025-12-11-opentype-feature-tips-case-sensitive-forms.html">case-sensitive forms</a></li>
	<li aria-current="true">ordinals</li>
	<li><a href="./2025-12-13-opentype-feature-tips-gaelic-type.html">Gaelic type</a></li>
</ul>

<hr class="line">

<p>Ordinal numbers are numbers describing something's position in an order, e.g. “first”, “second”, “third”. They're often abbreviated by combining the number with the last few letters from the ordinal word, e.g. “1st”, “2nd”, “3rd”. Those letters are called the <strong>ordinal indicator</strong> (e.g. the “st” in “1st”).</p>
<p>Historically, in several West-European languages, ordinal indicators were written in superscript (shrunk and raised above the baseline), but you don't want to apply this superscript to everything in your text, just certain combinations of numerals and letters.</p>
<p>Enter “ordinals”, codename <code>ordn</code>. If you write this feature's code correctly (see below for an example), you can apply it to an entire block of text and it'll automatically superscript ordinal indicators and only ordinal indicators, saving you time superscripting every ordinal by hand.</p>



<h2 id="which-letters-do-you-need">Which letters do you need?</h2>
<p>This is the slightly tricky thing. There are dozens of different indicators across West-European languages. These examples cover all the common modern ordinal indicators I'm aware of:</p>
<dl>
	<dt>English</dt>
	<dd>1st, 2nd, 3rd, 4th</dd>
	<dt>Irish</dt>
	<dd>1ú</dd>
	<dt>French</dt>
	<dd>1er, 1ers, 1re, 1res, 2e, 2es, 2d, 2ds, 2des</dd>
	<dt>Spanish and Portuguese</dt>
	<dd>1o, 1os, 1a, 1as, 1.o, 1.os, 1.a, 1.as</dd>
	<dt>Spanish extras</dt>
	<dd>1er, 1ers, 1.er, 1.ers</dd>
	<dt>Asturian</dt>
	<dd>1u, 1us, 1a, 1as, 1o, 1os</dd>
</dl>
<p>And here are all the characters you need to change in the feature (the period used in some of those ordinals isn't superscripted):</p>
<ul>
	<li>a</li>
	<li>d</li>
	<li>e</li>
	<li>h</li>
	<li>n</li>
	<li>o</li>
	<li>r</li>
	<li>s</li>
	<li>t</li>
	<li>u</li>
	<li>ú (u-acute, <code>U+00FA</code>)</li>
</ul>



<h2 id="opentype-code">OpenType code</h2>
<p>This code uses contextual substitution to detect when a series of indicator letters follow a numeral (or a numeral followed by a period) and replace those letters with superscript forms (marked <code>.ordn</code>, though you could just use regular superscript forms, often marked <code>.sups</code>).</p>
<pre><code>@figures = [ zero one two three four five six seven eight nine ];
@indicators = [ a d e h n o r s t u uacute ];
@indicatorsSuper = [ a.ordn d.ordn e.ordn h.ordn n.ordn o.ordn r.ordn s.ordn t.ordn u.ordn uacute.ordn ];

sub @figures @indicators' by @indicatorsSuper;
sub @figures period @indicators' by @indicatorsSuper;
sub @indicatorsSuper @indicators' by @indicatorsSuper;</code></pre>
<p>You can add the following code if you have ligatures for ordinal indicators (this can be useful if, e.g. you're creating a handwriting-styled font):</p>
<pre><code># ligatures
## English
sub s.ordn t.ordn by s_t.ordn;
sub n.ordn d.ordn by n_d.ordn;
sub r.ordn d.ordn by r_d.ordn;
sub t.ordn h.ordn by t_h.ordn;

## French
sub e.ordn r.ordn s.ordn by e_r_s.ordn;
sub e.ordn r.ordn by e_r.ordn;
sub r.ordn e.ordn s.ordn by r_e_s.ordn;
sub r.ordn e.ordn by r_e.ordn;
sub d.ordn e.ordn s.ordn by d_e_s.ordn; # variant second
sub d.ordn e.ordn by d_e.ordn; # variant second
sub d.ordn s.ordn by d_s.ordn; # variant second
sub e.ordn s.ordn by e_s.ordn;

## Iberian
sub a.ordn s.ordn by a_s.ordn;
sub o.ordn s.ordn by o_s.ordn;
sub u.ordn s.ordn by u_s.ordn;</code></pre>
<p>I haven't divided this code by language; you can type any ordinal indicator in any language and it'll apply just the same (e.g. type “1ú” in English and the “ú” will still get superscripted).</p>

<hr>

<p>If you want to implement ordinals you need to write more-complex feature code than either of the two previous features I went over (<a href="./2025-12-10-opentype-feature-tips-tabular-figures.html">tabular figures</a> and <a href="./2025-12-11-opentype-feature-tips-case-sensitive-forms.html">case-sensitive forms</a>). You not only need to redraw all the glyphs in the feature in mini, you also need to write some code with custom character classes, conditional substitutions, and many-to-one substitutions. However, it's still a widely-recognised feature! If the code above doesn't make total sense, check out the <a href="https://opentypecookbook.com/">OpenType Cookbook</a>. Fortunately, the last post in this set uses much simpler code.</p>
	]]></content>
	<category term="font-design"/><category term="opentype"/>
</entry>
<entry>
	<id>https://cdvr.org/bookwove/2025-12-11-opentype-feature-tips-case-sensitive-forms.html?date=2025-12-11</id>
	<title type="html"><![CDATA[OpenType feature tips: case-sensitive forms]]></title>
	<link href="https://cdvr.org/bookwove/2025-12-11-opentype-feature-tips-case-sensitive-forms.html"/>
	<published>2025-12-11T00:00:00.000Z</published>
	<updated>2025-12-11T00:00:00.000Z</updated>
	<content type="html"><![CDATA[
		<p>This is part of a set of posts on OpenType font features. Here's the full list of posts:</p>
<ul>
	<li><a href="./2025-12-09-opentype-feature-tips-introduction.html">introduction</a></li>
	<li><a href="./2025-12-10-opentype-feature-tips-tabular-figures.html">tabular figures</a></li>
	<li aria-current="true">case-sensitive forms</li>
	<li><a href="./2025-12-12-opentype-feature-tips-ordinals.html">ordinals</a></li>
	<li><a href="./2025-12-13-opentype-feature-tips-gaelic-type.html">Gaelic type</a></li>
</ul>

<hr class="line">

<p>Many Latin-script punctuation marks and symbols are drawn and aligned to blend with the lowercase characters that form the majority of text, so they don't quite match with all-caps text. Basically, they tend to be a little too low or short.</p>
<p>Enter “case-sensitive forms”, codename <code>case</code>, which swaps these glyphs for ones drawn taller or shifted upwards, making for a more balanced look. The case-sensitive versions tend to be drawn centred on the crossbar of a capital “E” in typical body text fonts, which is just slightly above the midpoint from baseline to capital height.</p>
<p>These are the characters I'd change in case-sensitive forms, if they're included in the font:</p>
<ul>
	<li>numerals</li>
	<li>maths symbols</li>
	<li>parentheses, brackets, and braces</li>
	<li>colon and semicolon</li>
	<li>hyphens and dashes</li>
	<li>at sign</li>
	<li>inverted question and exclamation marks</li>
	<li>guillemets</li>
	<li>(optional) bullet and centred period</li>
	<li>(optional) slash and backslash</li>
	<li>(optional) <abbr>ASCII</abbr> tilde and circumflex</li>
</ul>
<p>Most of them just need to be moved upwards to be centred on capital letters, but a few (e.g. the colon) may need to be redrawn slightly.</p>
<p>On <strong>numerals</strong> and <strong>maths symbols</strong>, if your font includes oldstyle numerals, you should force all oldstyle numerals into lining numerals in the <code>case</code> feature. If you have different maths symbols for matching oldstyle numerals vs lining numerals then you should also swap those into their lining forms as well. If your font doesn't have oldstyle figures at all, then you don't need to change numerals <em>or</em> maths symbols in the <code>case</code> feature.</p>

<hr>

<p>As with <a href="./2025-12-10-opentype-feature-tips-tabular-figures.html">tabular figures</a>, case-sensitive forms is a pretty simple feature to implement, even if the set of glyphs is less rigidly defined. The feature code should be as simple as swapping the regular form for the case-sensitive form. Things get a little more complex in the remaining features in this set of posts.</p>
	]]></content>
	<category term="font-design"/><category term="opentype"/>
</entry>
<entry>
	<id>https://cdvr.org/bookwove/2025-12-10-opentype-feature-tips-tabular-figures.html?date=2025-12-10</id>
	<title type="html"><![CDATA[OpenType feature tips: tabular figures]]></title>
	<link href="https://cdvr.org/bookwove/2025-12-10-opentype-feature-tips-tabular-figures.html"/>
	<published>2025-12-10T00:00:00.000Z</published>
	<updated>2025-12-10T00:00:00.000Z</updated>
	<content type="html"><![CDATA[
		<p>This is part of a set of posts on OpenType font features. Here's the full list of posts:</p>
<ul>
	<li><a href="./2025-12-09-opentype-feature-tips-introduction.html">introduction</a></li>
	<li aria-current="true">tabular figures</li>
	<li><a href="./2025-12-11-opentype-feature-tips-case-sensitive-forms.html">case-sensitive forms</a></li>
	<li><a href="./2025-12-12-opentype-feature-tips-ordinals.html">ordinals</a></li>
	<li><a href="./2025-12-13-opentype-feature-tips-gaelic-type.html">Gaelic type</a></li>
</ul>

<hr class="line">

<p>Figures (meaning numerals, like 0 through 9) tend to have similar, but not identical widths, and “1” tends to be thinner than the others, but in some situations like tables and timestamps they look a lot better taking up the same width, so you can easily compare numbers (try entering numbers in any spreadsheet app vs any notes or word processor app).</p>
<p>Enter “tabular figures”, codename <code>tnum</code>, which swaps numerals and some related glyphs for fixed-width versions.</p>
<p>Most of these characters just need to have their side-bearings expanded a little so they all fill the same horizontal space. A few benefit from being a little redesigned so they take up more horizontal space, e.g. adding/widening serifs on the numeral “1” or drawing parentheses with a stronger curve.</p>
<p>These are the characters I'd change in tabular figures, if they're included in the font:</p>
<ul>
	<li>numerals</li>
	<li>hyphens</li>
	<li>maths symbols used in basic arithmetic, e.g. plus, minus, multiply, divide</li>
	<li>numerical separators (period, comma, colon, any non-numeral character commonly used inside a number or numerical string like a timestamp)</li>
	<li>parentheses, brackets, and braces</li>
	<li>currency symbols</li>
	<li>en dash, figure dash, and underscore</li>
	<li>figure space</li>
</ul>

<hr>

<p>Tabular figures is a pretty straightforward feature that's often pretty easy to implement—just add space and one or two details. The other features in this set of posts get even more complex!</p>
	]]></content>
	<category term="font-design"/><category term="opentype"/>
</entry>
<entry>
	<id>https://cdvr.org/bookwove/2025-12-09-opentype-feature-tips-introduction.html?date=2025-12-09</id>
	<title type="html"><![CDATA[OpenType feature tips: introduction]]></title>
	<link href="https://cdvr.org/bookwove/2025-12-09-opentype-feature-tips-introduction.html"/>
	<published>2025-12-09T00:00:00.000Z</published>
	<updated>2025-12-09T00:00:00.000Z</updated>
	<content type="html"><![CDATA[
		<p>This is part of a set of posts on writing OpenType font features. This introduction is for people who don't design fonts and especially people who don't feel like they have a solid understanding of how text works in a computer. If that's you, read on. Otherwise, you'll probably get more benefit from heading straight to the other posts. Aside from this intro, each post is stand-alone and the set can be read in any order. Here's the full list of posts:</p>
<ul>
	<li aria-current="true">introduction</li>
	<li><a href="./2025-12-10-opentype-feature-tips-tabular-figures.html">tabular figures</a></li>
	<li><a href="./2025-12-11-opentype-feature-tips-case-sensitive-forms.html">case-sensitive forms</a></li>
	<li><a href="./2025-12-12-opentype-feature-tips-ordinals.html">ordinals</a></li>
	<li><a href="./2025-12-13-opentype-feature-tips-gaelic-type.html">Gaelic type</a></li>
</ul>

<hr class="line">

<p>When you type text on a keyboard, it appears on the screen.</p>
<p>Of course, like everything to do with computers the truth is more complicated than that. That simple cause-and-effect is more like a four-step process:</p>
<ol>
	<li>You press the “a” key on the keyboard.</li>
	<li>The computer records the input for the letter “a” as character data—the letter “a” is encoded as the number <code>61</code>.</li>
	<li>The computer reads the font data to find the instructions for drawing the glyph at position <code>61</code>.</li>
	<li>The computer draws the glyph on the screen; assuming it's a normal text font, the glyph should look like the letter “a”.</li>
</ol>
<p>Older font formats like TrueType (TTF/<code>.ttf</code>) are pretty straightforward. The font's basically a table with two columns: data points (like <code>61</code>) on one side and drawing instructions on the other. Your computer goes down the table looking for its data point, then gets the matching drawing instructions. Newer formats like OpenType (OTF/<code>.otf</code>) and the related  webfont formats WOFF/<code>.woff</code>, WOFF2/<code>.woff2</code>) aren't so simple. In fact, they can get absurdly complicated (for a font, at least).</p>
<p>How complex could a font get? Someone put a short interactive <cite>Pokémon</cite> Gen 1 imitation in a font (<a href="https://www.coderelay.io/fontemon.html"><cite>Fontemon</cite></a>). People have made fonts that can convert decimal numbers to Roman numeral equivalents (e.g. “129” to “CXXIX”). For my part, I once made a font styled to look like it's drawn in a chunky marker pen (<a href="https://speakthesky.itch.io/catch-all#lilmrkr"><cite>LilMrkr</cite></a>) that cycles between twelve different versions of each glyph to give it the feeling of real handwriting.</p>
<p>Those are pretty extreme, gimmicky cases, but it's not uncommon for OpenType fonts to have features like ligatures (several glyphs joined into one, like “fi” being redrawn so the dangling tip of the “f” is used as the dot of the “i” like this: “ﬁ”) or small-caps (replacing lowercase letters with smaller versions of capital letters). In word processors or publishing apps, you can normally find the settings under a menu called e.g. “Typography” or “Font features”. In web browsers, you can control them in a <abbr>CSS</abbr> stylesheet using <code>font-*</code> properties like <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/font-variant-caps"><code>font-variant-caps</code></a> or the generic <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/font-feature-settings"><code>font-feature-settings</code></a>.</p>
<p>The features themselves are written in a simple code that tells your computer how to swap or change glyphs when you write text in that font. For instance, the following code swaps (substitutes, <code>sub</code>) lowercase letters for (<code>by</code>) small-caps:</p>
<pre><code>sub a by a.sc;
sub b by b.sc;
sub c by c.sc;
...</code></pre>
<p>This code tells the font that when the computer asks for the glyph for data point <code>61</code>—the letter “a”—it should send the computer the drawing instructions for small-cap “a” instead of regular lowercase “a”. (The font internally calls the small-cap form <code>a.sc</code>.) This doesn't change the data point for the character! It just changes what the computer <em>draws</em> for that number. If you copied the small-cap “a” and pasted it in raw form somewhere (e.g. a browser address bar), it'd go back to looking like an ordinary lowercase “a”.</p>
<p>There are other rules, like many-to-one substitution or contextual substitution, but the code looks very similar to the code above.</p>

<hr>

<p>Feature code is simple and many font features are straightforward, but a few are surprisingly hard to build because they're <em>partly</em> but not <em>wholly</em> open-ended. A feature like small-caps is very strict—you just replace lowercase letters (and, optionally, virtually all characters in the font) with small-caps forms. A feature like ligatures is very free—you just add whichever ligatures you think will work well in your font. A feature like case-sensitive forms is somewhere in between—you have freedom over what it applies to (often punctuation you want to align with upper- instead of lowercase letters), but it definitely can't apply to anything and everything.</p>
<p>The rest of this set of posts covers several features that fall in this awkward middle ground, as well as the code and glyphs needed for Gaelic type. Each set of advice is an amalgamation of sources I've read over several years of designing fonts—mostly from design blogs and the <a href="https://typedrawers.com/">TypeDrawers</a> forum, plus my own ideas. I just wanted to combine each group in one place, and figured it might help other people too.</p>
	]]></content>
	<category term="font-design"/><category term="opentype"/>
</entry>
<entry>
	<id>https://cdvr.org/bookwove/2022-06-01-alone-among-the-stars-rescue-log.html?date=2025-08-24</id>
	<title type="html"><![CDATA[[<cite>Alone Among the Stars</cite>]<br>Rescue Log]]></title>
	<link href="https://cdvr.org/bookwove/2022-06-01-alone-among-the-stars-rescue-log.html"/>
	<published>2022-06-01T00:00:00.000Z</published>
	<updated>2025-08-24T00:00:00.000Z</updated>
	<content type="html"><![CDATA[
		<p><cite><a href="https://noroadhome.itch.io/alone-among-the-stars">Alone Among the Stars</a></cite> by <a href="https://noroadhome.itch.io/">Takuma Okada</a>: a game about exploring little, wondrous planets at your leisure—I added the framing of a “rescue log”.</p>

<hr class="line">



<h2 id="planet-1-palette">Planet 1: Palette</h2>
<dl>
	<dt>Find 1</dt>
	<dd><span class="game-piece">SEVEN_CLUBS</span> <span class="game-piece">6</span> (plants/immobile life, near a volcano, spotted while resting)</dd>
</dl>
<p>I stopped on the shore of the lake in a dead volcano's caldera bowl. It's when I washed my face I noticed the colours underwater. The pond weeds—their leaves were like many—coloured stained glass filtering the sunlight, and after I plunged beneath…</p>
<p>I swim through shafts of dazzling light, great and small, that slowly drift through the water like an aquatic light-show. They blend and disappear and reappear like music according to the whims of cloud and wind.</p>
<p>Time to return to the ship.</p>



<h2 id="planet-2-creaksteam">Planet 2: Creakstem</h2>
<dl>
	<dt>Find 1</dt>
	<dd><span class="game-piece">SEVEN_DIAMONDS</span> <span class="game-piece">3</span> (animals/mobile life, near a volcano, came upon it suddenly)</dd>
	<dt>Find 2</dt>
	<dd><span class="game-piece">KING_CLUBS</span> <span class="game-piece">5</span> (plants/immobile life, floating in the air, spotted while resting)</dd>
</dl>
<p>A planet covered in giant flowers, so huge they barely move in the wind—but I heard them creak and groan as they slowly tracked the sun.</p>
<p>It happened suddenly when I landed. Enormous butterflies swarmed my ship, maybe because of how radiantly colourful it is. They crawl all over the canopy, many-eyed wings quivering in curiosity, gem-like probosces tinkling on the observation bubbles.</p>
<p>Eventually I gave up. Whole strata of butterflies peeled away as I rose above the atmosphere—only to be caught in the fluff of giant dandelion's seeds. I let myself drift for a while, floating above the cloud mesas, before I went on my way.</p>



<h2 id="planet-3-mirror-maker">Planet 3: Mirror Maker</h2>
<dl>
	<dt>Find 1</dt>
	<dd><span class="game-piece">TWO_HEARTS</span> <span class="game-piece">2</span> (ruins, under the light of the moon(s), arduous to get to)</dd>
	<dt>Find 2</dt>
	<dd><span class="game-piece">NINE_SPADES</span> <span class="game-piece">6</span> (natural phenomena, deep underground, spotted while resting)</dd>
	<dt>Find 3</dt>
	<dd><span class="game-piece">EIGHT_HEARTS</span> <span class="game-piece">3</span> (ruins, on a glacier, came upon it suddenly)</dd>
	<dt>Find 4</dt>
	<dd><span class="game-piece">TEN_SPADES</span> <span class="game-piece">3</span> (natural phenomena, on a cliff face, came upon it suddenly)</dd>
	<dt>Find 5</dt>
	<dd><span class="game-piece">NINE_DIAMONDS</span> <span class="game-piece">6</span> (animals/mobile life, deep underground, spotted while resting)</dd>
</dl>
<p>I finally found you. After a day's labour, the wreck, gleaming like a silver hammerhead under the light of the moon… buried under black sand I had to tenderly brush away from the ship's canopy. So much work, but worth it.</p>
<p>And as I rested in the excavation, in the shade of the wreck, I noticed the “sand” coalescing into shapes: a little replica of the wreck, hammerhead shape and all. And an escape-pod like blot to the south.</p>
<p>After that I found a trail of wreck fragments leading south. Following in the air was trivial, and suddenly we came across a glacier, deeply threaded with the black sand, crawling down the mountainside, a hammerhead escape pod half-crushed by its merciless progress.</p>
<p>On the cliff face high above, black rocks and dust mimicked the faces of the rescuees… tensing up in fear, bracing for impact, then wide-eyed recognition of their survival. They continued on loop, shivering rocks mindlessly realigning what they'd seen.</p>
<p>As clouds covered the moon I saw faint firelight under the cliffs—and the people huddled there saw me. They'd been missing for 200 years. I repaired their ship with technology that must've seemed so advanced as to be alien, and guided them to orbit.</p>



<h2 id="planet-4-smotherstone">Planet 4: Smotherstone</h2>
<dl>
	<dt>Find 1</dt>
	<dd><span class="game-piece">FIVE_DIAMONDS</span> <span class="game-piece">2</span> (animals/mobile life, in a treetop, arduous to get to)</dd>
	<dt>Find 2</dt>
	<dd><span class="game-piece">JACK_DIAMONDS</span> <span class="game-piece">5</span> (animals/mobile life, in the desert, spotted while resting)</dd>
	<dt>Find 3</dt>
	<dd><span class="game-piece">SIX_SPADES</span> <span class="game-piece">3</span> (natural phenomena, on the snowy peak of a mountain, came upon it suddenly)</dd>
	<dt>Find 4</dt>
	<dd><span class="game-piece">KING_HEARTS</span> <span class="game-piece">1</span> (ruins, floating in the air, arduous to get to)</dd>
	<dt>Find 5</dt>
	<dd><span class="game-piece">EIGHT_CLUBS</span> <span class="game-piece">2</span> (plants/immobile life, on a glacier, arduous to get to)</dd>
</dl>
<p>A knotted lattice of gargantuan fossilised trees coats this planet like a cage or cradle. It took some doing, weaving between rock-like dead branches, but I managed to find a safe landing spot below—a perch full of white birds.</p>
<p>I took a moment to collect myself and get my bearings—I wasn't able to locate the planet's surface below, though—before I spotted a vast flying wing hovering above my landing spot, jaws along its body snapping hungrily, caustic saliva dripping in heavy stranded globs, but luckily it couldn't get through the tangle of branches to feast on my fuel.</p>
<p>Lightning coursed along the sky behind it in slow motion and it gave up and flew on.</p>
<p>After some tricky abseiling, I finally managed to descend through the branch layer, only to find the tree growing from a stone colossus floating far above the planet's true surface. Leafless branches coiled out of its shattered skull, anchoring it to the orbital tree.</p>
<p>Cold set in as I went down into the colossus' skull. At the bottom, embedded in icy water, in a shaft of cold light filtered through the branches above, sat a single seed. All this, a whole planet, choked of light by a single seed. I'm too late.</p>



<h2 id="planet-5-armour-rain">Planet 5: Armour Rain</h2>
<dl>
	<dt>Find 1</dt>
	<dd><span class="game-piece">FOUR_DIAMONDS</span> <span class="game-piece">3</span> (animals/mobile life, in a steep canyon, came upon it suddenly)</dd>
	<dt>Find 2</dt>
	<dd><span class="game-piece">QUEEN_CLUBS</span> <span class="game-piece">5</span> (plants/immobile life, in deep water, spotted while resting)</dd>
</dl>
<p>I landed on an iridescent pearl of a planet—perfectly smooth under a grey sky—only to have the ground crack under my ship. The whole false ground fell away, leaving smooth, iridescent mesas surrounded by canyons full of shards.</p>
<p>Giant armoured pillbugs rolled around the canyons, crushing the pearly shards into dry dust beneath their carapace. Luckily, they just bounced off the canopy of my ship whenever they collided with it.</p>
<p>It was kind of relaxing, actually: the pitter-patter of the pillbugs knocking against the canopy blended in with a growing rainstorm. When the rain was done, I looked outside to see red-leafed sprouts growing in a pale soil that must've been made from the pearl-dust mixing with the rainwater. A few pillbugs drifted by on a leaf twirling in a little stream. I collected a few samples—analysis suggests the red leaves might make a good tea—before leaving as the sun came out.</p>
<p>Closing the rescue log for today.</p>



<h2 id="post-play-journal-notes">Post-play notes</h2>
<p>So this is a great little poetic game! Each time I play has a different feel—this time I stumbled into the “wandering rescue operation” thing on planet 3, but I've played it as purposeless wandering before.</p>
<p>The one issue I have is the order of events gets kinda muddled sometimes. The main way this happens to me is the first die result—“It is arduous to get to”—which you read before you even know what you're going to.</p>
<p>Lastly: the oracle entries and their dreamlike lack of enforced rationality—that you can go from a ruin in a prairie to a creature on a glacier etc.—says a lot about the sort of character and world the game is about without needing to have paragraphs of introduction.</p>
<p>On reflection I'd say the event-order thing isn't really a big issue. It feels like the dice and card mechanics are there to make events happen that you then fill out and respond to; rather than necessarily taking an active role, the universe <em>happens</em> around you and you experience and react to it.</p>
	]]></content>
	<category term="analog-games"/><category term="analog-play-journal"/>
</entry>
<entry>
	<id>https://cdvr.org/bookwove/2022-06-01-chirons-doom-three-fools-explore-chirons-doom.html?date=2025-08-24</id>
	<title type="html"><![CDATA[[<cite>Chiron's Doom</cite>]<br>Three Fools Explore Chiron's Doom]]></title>
	<link href="https://cdvr.org/bookwove/2022-06-01-chirons-doom-three-fools-explore-chirons-doom.html"/>
	<published>2022-06-01T00:00:00.000Z</published>
	<updated>2025-08-24T00:00:00.000Z</updated>
	<content type="html"><![CDATA[
		<p><a href="https://ickbat.itch.io/chirons-doom">Chiron's Doom</a> by <a href="https://ickbat.itch.io/">Nick Bate</a>: An expedition sets out to scale the enigmatic monument known as Chiron's Doom, with disastrous consequences.</p>

<hr class="line">



<h2 id="the-approach">The approach</h2>
<p>We see Chiron's Doom beyond the horizon. It is… incomplete. Arid. Baroque. A spiralling tower of exquisite complexity, surrounded by a black desert littered with shattered shipwrecks. Torn scaffolding canvas flaps like a pale flag from the top of this terrible mast.</p>
<p>We are: <span class="game-piece">THREE</span>, the eternal wanderer, <strong>Thoroughfell</strong>, who will never give up their memories; <span class="game-piece">TEN</span>, An artificial person, <strong>La Bambola Indelibele</strong>, who killed their maker to be here; and <span class="game-piece">NINE</span>, A trader in relics and obscurities, <strong>Artemis</strong>, who distrusts La Bambola, because who can trust what lasts forever?</p>



<h2 id="chapter-1-ascent-unending">Chapter 1: Ascent Unending</h2>

<h3 id="chapter-1-1">First passage</h3>
<p><span class="game-piece">NINE_DIAMONDS</span>: You find a clue to the monument's makers. Who are (or were) they?</p>
<p>As we cross the waste we look up at Chiron's Doom and see the stars through its baroque details—not just any stars, but a constellation, the Shears. It doesn't quite align, but Thoroughfell assures us that, long ago, the stars would've been right. What's more, as we draw closer more and more constellations light up the monument's crevices and pinholes. Each one is wrong, but each one was once right—or perhaps will be at some predestined future time.</p>

<h3 id="chapter-1-2">Second passage</h3>
<p><span class="game-piece">ACE_DIAMONDS</span>: The monument grants you a great and unexpected gift. What is it?</p>
<p>We arrive and pass into an atrium with a distressing view all the way to the top. To look up is to feel vertigo—for Artemis and Thoroughfell, that is. When La Bambola looks up, it gains flesh of starlight.</p>
<p>Artemis immediately tries to destroy it with her blade, but Thoroughfell steps in. This could be interesting, he says. Well, Artemis insists, from now on I'll travel in the rear and it can travel in front.</p>

<h3 id="chapter-1-3">Third passage</h3>
<p><span class="game-piece">THREE_DIAMONDS</span>: The monument extends further than you thought. Where does this take you?</p>
<p>We climb for hours. Days. Sometimes we find ourselves descending where we were ascending—ordinary trickery—but others we stop and look out over impossible heights while our breath crystallises.</p>

<h3 id="chapter-1-4">Fourth passage</h3>
<p><span class="game-piece">TWO_SPADES</span>: The outside world intrudes.</p>
<p>We spy them from a balcony—an armed column of capirote-topped expeditionary guards. The Mapmakers' Guild! They must not trust us to return faithfully, or at all. Now the reward will be split with these cartographers and their mercenaries.</p>

<h3 id="chapter-1-5">Fifth passage</h3>
<p><span class="game-piece">SIX_SPADES</span>: Part of the monument is damaged. Who did it? How did it happen?</p>
<p>We redouble our efforts to climb. A few days later, an explosion blasts hot air up the central atrium. La Bambola was standing in the atrial starlight and their new flesh tore off like ink disturbed in water. For a horrible moment, Chiron's Doom shudders and groans under its own weight, and then seems to right itself, but now there are hairline fractures spreading all the way up from the base. Time, however distorted, is of the essence. We stop resting.</p>



<h2 id="chapter-2-flame-and-fracture">Chapter 2: Flame and Fracture</h2>

<h3 id="chapter-2-1">First passage</h3>
<p><span class="game-piece">TWO_DIAMONDS</span>: The monument changes, and the mystery deepens.</p>
<p>We don't know when it happened. All we know is, the surface of the world is no longer visible to us. All there is is the darkness and the tower. The stars are drawing near and the wind is growing colder.</p>
<p>Artemis wants to turn back, but Thoroughfell is too fascinated. At last, something beyond the mediocre world! Literally! La <em>Bambina</em> does not speak any more. Their star-flesh has returned, leathery and pale.</p>

<h3 id="chapter-2-2">Second passage</h3>
<p><span class="game-piece">JACK_DIAMONDS</span>: The monument speaks to you. What does it say? How?</p>
<p>La Bambina claims to hear words. Numbers, mostly. Songs. La Bambina claims the songs are comforting. It repeats the words. Artemis threatens to kill it, bitterly. Thoroughfell knows the threat is empty now. We continue.</p>

<h3 id="chapter-2-3">Third passage</h3>
<p><span class="game-piece">TWO_CLUBS</span>: The monument begins to resist your attempts to understand it.</p>
<p>Where once things fell down, they now fall in strange directions, or not at all. Where once we walked on the floor, we now walk on the walls or ceilings. Every balcony is a danger, every walkway a deathtrap.</p>

<h3 id="chapter-2-4">Fourth passage</h3>
<p><span class="game-piece">KING_DIAMONDS</span>: One of you dies in an accident. What secret does the death reveal?</p>
<p>The doorway. Two heavy iron doors. Thoroughfell float-steps through and his flesh almost roasts off in the heat. Artemis loses a hand pulling him back. La Bambina doesn't risk themself.</p>
<p>When Artemis is finished tending to their injuries and looks back through the door, she sees… capirote-wearing expeditionary guards walking through the rubble of the entryway to Chiron's Doom. She sees the desert behind them, slams the doors shut, and races up the stairwell, spurred on by the pain.</p>
<p>It seems that this place controls both space and time…</p>
<p>La Bambina Indelebile follows, despite Artemis' screams to leave them be.</p>



<h2 id="chapter-3-breakdown">Chapter 3: Breakdown</h2>

<h3 id="chapter-3-1">First passage</h3>
<p><span class="game-piece">KING_CLUBS</span>: The monument takes one of the explorers. What happened?</p>
<p>Artemis is alone now. La Bambina Indelebile followed an orphan beam of starlight into the void and vanished. It's quiet and cold. Sometimes she stumbles on expeditionary guards, or, increasingly, their corpses, and scavenges for supplies.</p>
<p>Going by the number of them, she estimates she could survive for some time. They'll run out eventually, though. Presumably. Unless Chiron's Doom can turn one person into two, which it may well be able to do.</p>
<p>That aside, just how are they getting ahead of her?</p>

<h3 id="chapter-3-2">Second passage</h3>
<p><span class="game-piece">TEN_SPADES</span>: An obligation you have been neglecting becomes urgent. What is it? What do you do?</p>
<p>Ah! No! Artemis needed to deliver a letter to maintain a line of credit for their relic-hunting expeditions. The creditor will surely be fuming.</p>
<p>She writes an apology on the back of a fresh, incomprehensible map scavenged from one of the guards, folds it into a paper bird, and throws it from a balcony. It can't hurt.</p>
<p>She continues upwards… or, as she increasingly understands, downwards, or perhaps inwards.</p>

<h3 id="chapter-3-3">Third passage</h3>
<p><span class="game-piece">NINE_SPADES</span>: An official letter arrives with bad news. What does it say? And what does it mean to you?</p>
<p>Artemis has come to expect many things from her months in this horrible worthless monument, but receiving a response to her earlier letter was not among them. A paper bird soars in.</p>
<p>Her line of credit has been withdrawn, her workshop and apartment have been seized by housebreakers, and her remaining un-auctioned baubles from previous expeditions have been claimed and sold off for a pittance. Well. Oh.</p>

<h3 id="chapter-3-4">Fourth passage</h3>
<p><span class="game-piece">SIX_CLUBS</span>: The monument induces an unpleasant physical or emotional sensation. What is it? What does it cost you to resist it?</p>
<p>Vertigo. All the time. Just like looking up in the atrium, but it never stops. Artemis has to close her eyes and tread blindly up and down the stairs.</p>



<h2 id="chapter-4-breakthrough">Chapter 4: Breakthrough</h2>

<h3 id="chapter-4-1">First passage</h3>
<p><span class="game-piece">FIVE_DIAMONDS</span>: You uncover a hidden inscription on the monument. What does it say?</p>
<p><i lang="la">Ad Aspera Per Astra</i>, according to her limited knowledge of various old tongues.</p>
<p>The stars are getting closer.</p>
<p>Artemis has enough food to last for a while. The last few expeditionary guards she met actually put up a fight, though.</p>
<p>Can't be long to the top… bottom… core now.</p>
<p>And then! What a view!</p>
<p>Can't be long.</p>
<p>Far, far above, a pinprick of light—a distant planet—twinkles into view. Not long now. Down, down, down, goes Chiron's Doom, a spiralling tower of exquisite complexity, surrounded by a black ocean dotted with beautiful ships.</p>
	]]></content>
	<category term="analog-games"/><category term="analog-play-journal"/>
</entry>

</feed>
