Scents & Semiosis

scents-semiosisI made a game. It’s called Scents & Semiosis.

It’s a piece of interactive fiction about perfume, memory, and the process of assigning or re-evaluating personal symbolic associations with things: semiosis, the creation of meaning. I’ve been working on it for far too long, and – as is the wont of procgen pieces – it’s never going to be fully done, but it’s ready for public consumption.

A perfumer – someone fairly advanced in her field, with a peripatetic past – collects perfumes of particular significance, associated with specific memories. Periodically, she goes through the collection, remembering, throwing out no-longer-important ones, re-assessing what others mean. You get to see her past only as fragments; it’s not a methodical biography. It’s a reflective, relaxing kind of piece – not strictly reflective in the mechanical sense, but not a piece where challenge is important.


An Audience of One

Emily Short has spoken, before, about a particular approach to making games: writing for an intended audience of one, designing a game for the very specific tastes of someone you know well. It’s a very tempting design brief. Also, I have an irrational hangup that if I’m going to give my friends gifts, they should really be hand-made and precisely considered for the recipient’s tastes. I sometimes get carried away by this.

This determined a lot of the design decisions. Emily is a very busy person, so I wanted something that could be consumed in small sessions and with only gentle effort; I didn’t want playing it to become a chore. And the tone needed to be generally either light or a Very Aesthetic bittersweet-melancholy, because ‘I made this for you! here’s some raw pain!’ is kinda rough. It was meant to be brief, densely-flavoured, and more than a little indulgent, like a very tiny box of very nice chocolates or a liqueur that you only need a few sips of.

To be very clear: the protagonist of the game isn’t Emily, or even a fictionalised version of Emily. I am assured that Emily owns relatively few boating-corsets, and has never fought a duel in the toilets of a Montmartre bookstore. But the idea was to suggest someone who Emily would like being around, a sympathetic peer with some shared enthusiasms.


Heavy Petal

heavypetal2aThe joke was that this was a Heavy Petal game. Heavy Petal is a fictional game studio that I invented for my Tlön GOTY posts, descriptions of games that don’t exist. Heavy Petal’s output had a particular house style: femme-coded historical-fiction games with some fantasy and alt-history edges, focused on intricate social dynamics and beautiful trappings while also having very sophisticated mechanics. I got a certain amount of ‘okay but this needs to exist’ about the Heavy Petal game descriptions in particular – but they were all conceived of as ridiculous, high-gloss AAA projects, far beyond the scale of anything I could actually attempt.

But thinking of this as a Heavy Petal kind of project was useful for setting the tone and expectations of the thing. It tied a lot into the visual design: this wouldn’t really work in a bare-text parser presentation. I still needed to keep it fairly minimalist – I am not a web dev person at all, and even the very limited CSS at work here gave me trouble – but it really needed to feel textured and lush and nice.



Scents is based on the procgen structure I built for Apocalypse Fuela Tracery-like expansion grammar that relies heavily on I7’s powerful text substitutions. This means that the corpus is basically organised into lists of text strings, with each text string able to expand by picking a random item from another list.

It’s an efficient method, and one that I find really easy to work in; but it’s a slightly odd fit for I7, whose tools are largely built around the assumption of a world of objects. You can do context-sensitive stuff this way, but it’s tricky to generalise; a lot of things exist mostly as a big pile of special-case flags. It often felt as though I was stretching the limits of what this particular framework could do; if I were making anything with longer sections of text, or that relied less on implicit suggestion, it wouldn’t have been a good fit. I’m not really thinking about the Next Procgen Project right now, but if and when that happens I might need to try another approach – one that makes tagging and filtering output easier.



People who intimately understand perfume are likely to laugh a lot at the outputs; many of them, I am sure, would not work as written. I am not a perfume expert. (I personally wear perfume hardly at all; I like it in moderation on other people but on me it tends to produce headaches.)

I did the research! And I did consider applying more orthodox principles of perfume composition, but it felt a bit too restrictive for an alternate world and a procgen project. There’s a whole category of scent styles, usually called ‘Oriental’, that’s a bit of an awkward fit for this world. I was going more for hopeful monsters than well-groomed show ponies. Perfumes are constructed with top, heart and base notes, but that’s about as far as the real-world design goes.

The perfumes and the way they’re described owe more to the prose style of Black Phoenix Alchemy Lab descriptions than to serious perfumery; I know this will make some of you roll your eyes with tide-inducing force, and you’re not wrong. There is an underlying structure to how scent-notes are chosen and described, but it’s more about theme than chemistry: a scent might be Autumn / Goth or Mystic / Lewd. I won’t go too nuts-and-bolts about it for now, but if you’re interested I recommend digging around in the source code. (Inform 7 source is very legible even if you don’t have any coding experience).

Ultimately, the scents were probably the easiest and quickest of the systems to set up: this system was effectively complete pretty early in the process. Memories and meanings were much more troublesome.


Beeswax & Venom

Speaking of personal symbolic associations: Emily has a system of considering procgen creativity, divided into the five approaches of Mushroom, Egg, Beeswax, Venom and Salt. (In a classic moment of Emily modesty, the primary source for this is in the footnotes of Annals of the Parrigues, a .pdf that’s only linked to in a post that mostly talks about other people’s work.)

Most of my procgen output tends to come out aligned along the principles of Beeswax and particularly Venom. Some of this is just a matter of technical ability: Salt and Mushroom-like approaches tend to require more complex tools, while Beeswax involves a lot of detail-work and compilation by hand, and Venom relies on writerly instincts. (Egg, in general, concerns a sense of co-authorship between machine and human, and that’s not how I see procgen at all.)

Venom is meant in the sense of toxin, hallucinogen, bitterness, acid, etching, numbness, drugs, and release from the mortal coil. Venom represents that which is destructive, fictive, cruel, lovely, playful, unreliable.

Poisonous things come in jewel colors. The principle of venom permits the use of connotation rather than denotation.

Scents’ design is messy, sprawling, and designed very much with specific outputs in mind; it’s a little like the Dwarf Fortress process which begins with stories about dwarf exploits and works backwards to see what kind of system could produce those stories. Most of it was: figure out an output that would be good, and then generalise from it.

But that only comes alive when you have enough elements going on, enough possibilities, that the system can surprise you by throwing together things – things you intended to put in there, but which taken together imply something more and greater. It takes a good while for a mostly-handworked procgen project to get complicated enough to start doing this, and a lot of that is beeswaxy: lots of small, steady, incremental, unglamorous additions, list-sifting, running your antennae over all the parts.

Beeswax embraces many spirits, daemons, and forces in the spectrum between the natural and the underworldly. The instruction to “mind your own beeswax,” the cells of a hive, and the gentle witchlike scent of candles foster these associations. Beeswax represents healing withdrawal from the systemic unkindness of the world, but not laziness or the loss of productivity.
The principle of beeswax attends to specific cases and does not attempt a generalization outside its ken. Approaches that crowdsource content elements and then compile the elements — especially if humans have intervened in the tagging — comport with the principle of beeswax.

Again, this is an indulgent project, and allowing oneself lots of indulgent elements was important. Part of what I love about parser that’s often lost in hypertext IF is the sense of weird discovery, of finding something amazing that you didn’t have to find and might not have. Procgen can supply this, but – just like that parser game with lots of hidden content – it’s not very efficient design to implement. But that moment where the system throws up a little bubble of something odd and the player – I’ll use an Apocalypse Fuel example here to avoid spoiling the thing I just released – goes ‘holy shit, there’s a whole subsystem for generating weird historical martyrs?’ Gold.



This took far too long. It was originally conceived of as a NaNoGenMo project, and I’m not saying in which year. Much of that time wasn’t really active development; there were doldrums.

Because this was a big and varied and beeswaxy project, I invited a few authors whose style I thought would be a good fit – fantasy-edged, aesthetic-detail-oriented, attentive to the right phrase – to contribute to the memory corpus; Cat Manning, Caleb Wilson, and Yoon Ha Lee. Everyone was very generous and enthusiastic, and there were some great contributions, but figuring out a mode of collaboration that really clicked for everyone was elusive. Collaboration is an elusive beast, especially in hobbyist games – sometimes it really works, and sometimes it just doesn’t quite take off and it’s nobody’s fault. (If anything: my fault. It’s difficult to introduce people to your weird code and get them to feel comfortable adding to it.)

In one of the doldrums, Cat Manning, who I’d already asked to contribute, asked me if it’d help for her to take on a producer role. Saying yes was the smartest move I made on the whole damn project. I am not very good at bringing medium-large art projects to completion without some kind of external accountability; procgen projects have a particular tendency to expand indefinitely, and need regular triage. Cat kept me honest about scope, required me to articulate things in terms of priorities and schedules, and wrote target outputs at points when my imagination had burned out entirely; and her enthusiasm for the project and critical eye were invaluable.

(Cat also has more hustle in her little finger than I have in my entire body, which I appreciate enormously.)



A lot of the effort – probably too much – was spent on considering how to suggest the world that surrounds the protagonist’s life; a lot of alternate history is loosely referenced by the text, and things like name lists and cities inevitably suggest something. It’s meant to be a better world, though not anywhere near a perfect one; it is centred around a version of Europe, but one that’s less hegemonic, more open, stranger. A big part of the reason I love Crusader Kings is its ability to produce underdog worlds, alternate histories where the Cathars outnumber Catholics or Russia never unifies or the Khazars survive into modernity; I wanted to gesture at that kind of feeling, without bringing it into the foreground.

There was a fair amount of effort, for a while, put into procedurally generating some names entirely by phonological rules in order to suggest languages and cultures that don’t exist in our world; mostly this didn’t work enormously well and that aspect got scaled back considerably. I could probably write entire posts about the difficulty of scoping name lists for this; I don’t know whether this aspect quite gets what I was gesturing at. It’s such a tiny window of output that you can put so much work into.

I’ve got… probably more I want to say about this! I should talk about using Vorple for a full project, and maybe about how meanings get generated, and about the different play options. But for now: it’s out, and people seem to like it, and I’m glad and grateful.

(Also: if you’d like to share any particularly good output from the game, I am super interested.)

This entry was posted in cyoa, interactive fiction. Bookmark the permalink.

8 Responses to Scents & Semiosis

  1. Lucian Smith says:

    It was surprisingly difficult for me to work out the fact that *you are the author* of this game. This post started out like a review, and the web page you link to for the game also doesn’t mention your name anywhere that’s not hidden. But congratulations!

    • Ha, very fair. I write a lot more reviews than game announcements, so it’s an easy pattern to fall into! I’ve updated the first paragraph to make things clearer.

      • Jason Dyer says:

        Almost thought you were going to self-review there.

        “Author clearly unaware of the history of scents in the 1830s. Needs more laudanum, less commas. 7.5/10.”

  2. danieltalsky says:

    Ha. I also thought it was a review until well into the blog post. Also congratulations on getting this out the door. It’s very cool and beautiful. I did indeed read the source code since I’m working on an Inform 7 game right now and have been reading a metric buttload of Inform 7 source code. (Blue Lacuna!). I find it pretty interesting that you bent over backwards here to make a choice-based HTML game in Inform/Vorple… I didn’t even know you could do that. Some very interesting choices there.

    One possible bug is that I got the same ingredient twice in a row in one playthrough (cucumber) and it was odd to see the same ingredient with two different icons in the summary at the end.

    Nice work creating all the variety in the historical origins of things. It reminds me of nothing more than the histories of specific characters and societies in Caves of Qud (which is definitely a compliment). Thus far, it seems incredibly coherent. I’ll update after a few playthroughs and see if I can post some of the best combos I saw.

    • It’s more of a mean lean than bending over backwards; it’s certainly less work than it would have taken me to learn some more web-native system fluently enough to do this!

      One possible bug is that I got the same ingredient twice in a row in one playthrough (cucumber)
      That’s not a bug so much as an absence of a planned feature; I *meant* to address this, but it happens rarely enough that it got shifted down the priority list. But a thing for a future update, definitely.

      I’ll update after a few playthroughs and see if I can post some of the best combos I saw.
      I’d really like that!

      • danieltalsky says:

        Another small note: there are several places in the game where there’s nothing to click, but nothing happens onscreen without a mouse click. It doesn’t show anything to indicate that it’s expecting user input. This definitely creates a little confusion.

  3. danieltalsky says:

    Ok, after a lot of playing, here are my notes (in Markdown):

    # Scents & Semiosis

    *general notes*:
    – I liked the perfume histories for their richness the most, and the use justifications the least… they seemed a bit anemic and it took me a while to realize there were two ingredients and a few reasons for each.
    – Are the icons just positional? It was a little jarring that they often didn’t match the appearance of the mentioned plant at all. Ahh, I see they’re random and the colors rotate. Cool!
    – You can keep adding ingredients forever? It’s difficult to tell on first play what it means to stop selecting.

    ## Bottles
    ### elegant
    – a modern bottle of smoky glass and vermeil
    – an art nouveau flask with carnelian-and-gilded brass filigree
    – a moss agate glass jar, expensive with a label that has been water-stained and is now illegible
    – a bottle of Lebanese porcelain with a fleur-de-lys design
    – a white jade flask, carved in the shape of a goldenrod
    – a bottle of Arabian porcelain with a honeybee-and-saxifrage design
    – a bottle set in a sterling silver and topaz ferronnière
    – a black glass vial with a label that has been water-stained and is now illegible
    – an obsidian bottle with successive labels plastered over one another
    – a sand-blasted glass bottle with a cameo of Gaia resplendent
    – an Indian-Ugandan bottle decorated with silver and hematite

    *notes*: A couple of places where an extra comma might have made it read more clearly

    ## Perfume histories
    ### elegant
    – Narcotic orange blossom transforms devotional golden hemp; base notes of tamarind and German pepper. This was worked into a belt edged with orange rose motif qiviut that you bought in Brooklyn.
    – Pennyroyal growing amongst dittany of Crete; the memory of barbecue. Relic of a brief, supply-driven fad for dittany of Crete, and ridiculous outside that context.
    – Pale frangipani swelling with louche Chinese lisianthus; a faint hint of banana; frankincense. Indelibly associated with Harmostratos, who listened to your secrets at Rikhaini’s cocktail party.
    – Orange pregnant with ripe fenugreek; cedar, mild Azerbaijani germander and copal. It was the signature scent of Harmostratos, who kissed you in an Isfahan mithraeum, which was honestly your own fault (recall: a freckled hand playing over a cluttered desk).
    – Bergamot slumbers on clean lisianthus; subtle hints of banana. It recollects a spring around the time the Tha Memorandum was published, when you were showing a collection in Muscat and were entangled in a breathtakingly carnal romance with Katie.
    – Kaffir lime zest, sharp soursop, rue, the memory of gasoline. This was your signature piece from back when you were promoting the Wolf Xamar line.
    – Slick blood ginger pierces through raw cinchona; base notes of sumptuous hops and bold cannabis. You once visited Modena on a layover; the weather was beautiful, the sky clear as crystal and the breeze smelling of fresh pastry. Out walking you became epically lost, and that’s how you discovered an out of the way tavern, where you spent almost an hour talking to a fellow traveler who happened to attend your alma mater several years after you. You traded in such exquisite gossip. This scent was what you had put on just before leaving your hotel room.
    – Desert huisache in concert with massoia bark; a spray of wet dog. One of your more unabashedly commercial efforts, a celebrity-branded scent for Elsa, the couturier. You were paid what seemed like a staggering sum at the time, which you sorely needed.
    – Syrian coconut transforms intoxicating persimmon; five kinds of mint. You first smelled this in passing, worn by a smiling youth in the National Lectures in Floriography, and forgot about it for years before realizing that it was a promotional scent given away with Young Polyamorist Quarterly.
    – Playful pepper, apple, narcissus, light tea. A gift bought for you by a long-dead classmate.
    – Arcane clove, heart of dittany of Crete and narcotic gunpowder; five kinds of musk. You were in Córdoba on a layover; it was your birthday. Thanks to two streets with similar names you became bewilderingly lost, and that’s when you stumbled upon a hidden tavern, where you spent half an hour talking to a fellow traveler who happened to attend your alma mater several years after you. You traded in such exquisite gossip. You designed this scent when you got home.
    – Pennyroyal, sage, lemongrass, molasses and mellow peat, a touch of fermented black bean chili paste. You were unlucky enough to be in Serbia during the Silver Revanche. Because you dueled a police minister, a warrant was issued for your arrest and you were obliged to make it across the border disguised as a Damascene tourist. You created this scent on your first day of freedom.

    – I might consider doing a linebreak between the listing of the ingredients and the memory/history. Also, possibly highlighting the actual ingredient names in some way to connect them to the list below?
    – These histories were the richest and most fun part of the process, but they didn’t end up having any connection to the result.
    – So very Caves of Qud / 80 Days in feel. These are the best part for me. I got some great stuff that tickled me.

    ## Justifications
    ### elegant
    – cannabis is suggestive of excessive observation
    – mint might stand for disruptive compersion 🙂
    – watermelon might stand for

    ### awkward
    – honeysuckle might mean prospects interrupted by recovery
    – soursop could suggest radiant regret

  4. Pingback: Mid-March Link Assortment – Emily Short's Interactive Storytelling

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s