{"id":1763,"date":"2022-11-19T23:36:05","date_gmt":"2022-11-20T07:36:05","guid":{"rendered":"https:\/\/www.bradleycbuchanan.com\/b\/?p=1763"},"modified":"2022-11-29T11:12:42","modified_gmt":"2022-11-29T19:12:42","slug":"building-esthers-cafe","status":"publish","type":"post","link":"https:\/\/www.bradleycbuchanan.com\/b\/building-esthers-cafe\/","title":{"rendered":"Building Esther&#8217;s Cafe"},"content":{"rendered":"\n<p>This year Alleson and I submitted a short story called <em><a href=\"https:\/\/ifdb.org\/viewgame?id=5myfh1xhwfe3xo3g\">Esther&#8217;s<\/a><\/em> to the <a href=\"https:\/\/ifcomp.org\">28th annual Interactive Fiction Competition<\/a>. We placed 17th, which is great!<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>We live in Seattle, Washington. Alleson runs <a href=\"https:\/\/radiantneon.com\">Radiant Neon<\/a>, an art studio near Pike Place Market. I&#8217;m an engineering manager at Discord. This is the first game we&#8217;ve released together.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/avocado_icon_180.png\"><img loading=\"lazy\" decoding=\"async\" width=\"180\" height=\"180\" src=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/avocado_icon_180.png\" alt=\"\" class=\"wp-image-1768\" srcset=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/avocado_icon_180.png 180w, https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/avocado_icon_180-150x150.png 150w, https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/avocado_icon_180-45x45.png 45w\" sizes=\"auto, (max-width: 180px) 100vw, 180px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">The Avocado Pit of an Idea<\/h2>\n\n\n\n<p><em>Esther&#8217;s<\/em> started as an idea for the <a href=\"https:\/\/itch.io\/jam\/together-breakfast\">Together Breakfast 2022 Narrative Jam<\/a>, which I heard about from David van Duzer at <a href=\"http:\/\/narrascope.org\/\">Narrascope<\/a> in July. I&#8217;ve been chipping away at a bigger Twine project with a friend for about a year, and thought maybe I could borrow that foundation and build something small for the jam. Alleson helped me brainstorm a little story about two mice who worked together to get their brunch. There was about a day left in the jam when I heard about it, and it quickly became clear that we couldn&#8217;t do the idea justice so we put it on the shelf. But it&#8217;s always been a modest idea; something small and polished that could elicit a smile.<\/p>\n\n\n\n<p>About a month later I had the privilege of taking September away from work before joining Discord. I&#8217;ve wanted to enter something in IFComp for a long time, so I asked Alleson if she&#8217;d help me write the game. We spent about 50 hours building <em>Esther&#8217;s<\/em> in the month of September. I was hands-on-the-keyboard and did the illustrations. Alleson did the narrative design and endless editing passes. She contributed the &#8220;speak squeak&#8221; moment and many other clever turns of phrase.<\/p>\n\n\n\n<p>I don&#8217;t remember exactly how we landed on brunch, but I know the &#8220;mimosa mice&#8221; alliteration caught our ear very early. As reviewers have guessed, we are (and consequently wrote) hipster millennials. We both grew up in Portland, Oregon and we lived on Mississippi Avenue in 2011, right at the <a href=\"https:\/\/books.google.com\/ngrams\/graph?content=avocado+toast&amp;year_start=1800&amp;year_end=2019&amp;corpus=26&amp;smoothing=3\">societal inflection point for avocado toast<\/a>. Mississippi Ave is a stellar food street, with brunch standbys like <a href=\"https:\/\/gravyrestaurant.com\/\">Gravy<\/a> and <a href=\"https:\/\/missdeltapdx.net\/\">Miss Delta<\/a>. We still miss <a href=\"https:\/\/www.yelp.com\/biz\/muddys-coffeehouse-portland\">Muddy&#8217;s Coffeehouse<\/a>. If you&#8217;re ever in the area make sure to check out <a href=\"https:\/\/www.lovelys5050.com\/\">Lovely&#8217;s Fifty Fifty<\/a> for some of the best pizza in the country. Beech Street, where our mice live, crosses Mississippi Ave on our old block.<\/p>\n\n\n\n<p>In the first version of the story Harold and Janie visited a real cafe\/diner in their neighborhood, and Esther was the young adult proprietor whose Disney princess complex drove her to ignore local health codes and set the mice a tiny table on the end of the counter. The central idea that Esther wouldn&#8217;t understand our order was in place, but we were having trouble painting the rest of the world. Why wouldn&#8217;t Esther just go down the menu with the mice? Do they have the run of the kitchen, and retrieve the ingredients themselves? What do the other patrons think of the mice on the counter? We could have explained each of these away, but we were starting to run afoul of <a href=\"https:\/\/deck.artofgamedesign.com\/#\/menu\/77\/?lang=en\">The Lens of The Weirdest Thing<\/a>. We also allowed the mice to get increasingly frustrated trying to communicate their order; at one point &#8220;Bite Esther&#8221; was an option! It felt wrong and I&#8217;d hit a writer&#8217;s block; I spent about a day mentally tearing elements out of the piece, looking for the right pivot.<\/p>\n\n\n\n<p>Making Esther a kid fixed a lot of problems at once. The make-believe cafe has no health codes, or complaining patrons, or expectation of pay. Of course the mice can&#8217;t make sense of the menu &#8211; it&#8217;s scrawled on a chalkboard, and even the pictures don&#8217;t reveal much. Of course, it also introduced a problem: Why are the mice ordering alcohol from a kid? We considered backing off the &#8220;mimosa mice&#8221; thing and having them just order orange juice. But we were attached to the &#8220;mimosas and avocado toast&#8221; brunch cliche, so instead we made the mice not actually know what a mimosa is. This felt like a mice&#8230; sorry, a <em>nice <\/em>compromise, and left parents room to explain as much or as little as they liked.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/janie_complains_to_esther.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"307\" height=\"300\" src=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/janie_complains_to_esther.jpg\" alt=\"\" class=\"wp-image-1767\" srcset=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/janie_complains_to_esther.jpg 307w, https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/janie_complains_to_esther-300x293.jpg 300w, https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/janie_complains_to_esther-45x45.jpg 45w\" sizes=\"auto, (max-width: 307px) 100vw, 307px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Structure and Tech<\/h2>\n\n\n\n<p>Though small, the game mixes up a few CYOA structures. The first six-ish pages are basically linear. About page seven it opens up into a set of single-visit storylets which act as locks and keys for one another; there&#8217;s this <a href=\"https:\/\/github.com\/islemaster\/esthers\/blob\/be619c53d61035a822367b9ab3f64c7ac4ffa383\/src\/toast.twee#L192-L292\">blob of hacked-together menu logic<\/a> that curates and limits the options we&#8217;ll show the player. The space naturally narrows as the storylets dry up, and we bottleneck into the last three linear pages for the pudding cup gag. I won&#8217;t claim this structure got a <em>lot<\/em> of thought. It seemed like a good way to let the player try lots of silly actions, and it let us keep the total number of pages small and write one strong ending.<\/p>\n\n\n\n<p>On top of that is a little &#8220;eatable foods&#8221; inventory system, that will <a href=\"https:\/\/github.com\/islemaster\/esthers\/blob\/be619c53d61035a822367b9ab3f64c7ac4ffa383\/src\/toast.twee#L287-L291\">put an extra option into the menu<\/a> anytime there aren&#8217;t enough choices. None of the <a href=\"https:\/\/github.com\/islemaster\/esthers\/blob\/be619c53d61035a822367b9ab3f64c7ac4ffa383\/src\/toast.twee#L294-L363\">six &#8220;Eat&#8221; storylets<\/a> are critical-path, so we used them to hide little hints and nudges that remind the player about the brunch goal. Because of this they have some of the most complex conditional logic in the game, to ensure Janie&#8217;s comments appropriately on the state of the world.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>:: Eat crackers\n\n\"Crackers are very good too,\" crunched &lt;span.harold&gt;Harold&lt;\/span&gt; with his mouth full.\n\n&lt;% if (s.hasMimosa) { %&gt;\n\"They pair well with our mimosas,\" conceded &lt;span.janie&gt;Janie&lt;\/span&gt;.\n&lt;% } else { %&gt;\n\"They would pair well with a mimosa,\" said &lt;span.janie&gt;Janie&lt;\/span&gt;.\n\"All we need is &lt;%= (s.hasOrangeSlice &amp;&amp; s.hasEmptyCup) ? \"orange juice in these cups\" : &#91;!s.hasOrangeSlice &amp;&amp; \"some orange juice\", !s.hasEmptyCup &amp;&amp; \"an empty cup\"].filter(x =&gt; x).join(' and ') %&gt;.\"\n&lt;% } %&gt;\n\n&lt;span.esther&gt;Esther&lt;\/span&gt; giggled at &lt;span.harold&gt;Harold&lt;\/span&gt;. \"What a good appetite you have today!\"\n\n&lt;% removeFrom(s.eatableFoods, 'crackers') %&gt;\n&lt;%= story.render('Menu') %&gt;<\/code><\/pre>\n\n\n\n<p><em>Esther&#8217;s<\/em> is built with <a href=\"http:\/\/www.motoslave.net\/tweego\/\">Tweego<\/a> and <a href=\"https:\/\/videlais.github.io\/snowman\/#\/\">Snowman<\/a>, which is to say it&#8217;s a Twine game but eschews some of Twine&#8217;s writer-friendly defaults in favor of tools a web developer like me would be comfortable with. I did all my writing in VSCode. You can see the project <a href=\"https:\/\/github.com\/islemaster\/esthers\/\">on GitHub<\/a>. I liked the look of default Chapbook and built out something visually in that vein, with a skeuomorphic page.<\/p>\n\n\n\n<p>Although it&#8217;s a small game, it can be annoying to re-navigate to a particular page every time you rebuild. So I added a small developer tools panel to help with this, with savestates and autosave. It&#8217;s actually in the release; you can enable it by <a href=\"https:\/\/2692.play.ifcomp.org\/content\/index.html?dev=true\">adding ?dev=true to the URL<\/a>.<\/p>\n\n\n\n<p><em>Esther&#8217;s<\/em> was small enough to test exhaustively and I geek out about automated testing, so I wrote a <a href=\"https:\/\/pptr.dev\/\">Puppeteer<\/a> script that actually launches the game in a browser and plays it. I hid a lot of the complexity in <a href=\"https:\/\/github.com\/islemaster\/esthers\/blob\/be619c53d61035a822367b9ab3f64c7ac4ffa383\/test\/SyntheticPlayer.js\">this SyntheticPlayer class<\/a>, and then used it with a very light JavaScript test runner called <a href=\"https:\/\/github.com\/ljharb\/tape\">tape<\/a>. I ended up with <a href=\"https:\/\/github.com\/islemaster\/esthers\/blob\/be619c53d61035a822367b9ab3f64c7ac4ffa383\/test\/full-explorations.js\">this test<\/a> that plays through every possible path, not just visiting every passage but also every possible game-state you could be in when you reach that passage.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>await player.restart()\nawait player.walk(&#91;'Play'])\nawait player.exploreTo(&#91;'Now all we need is dessert'])<\/code><\/pre>\n\n\n\n<p>The <code>exploreTo<\/code> command checks for some problems along the way:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Dead ends: No passage should have no exits.<\/li><li>Self-references: No passage should link back to itself (in this game, anyway!)<\/li><li>Navigation and restore problems: The synthetic player makes heavy use of the same save\/restore logic that drives the browser back\/forward behavior, and it catches any place where this doesn&#8217;t work properly.<\/li><li>Errors: When a scripting error causes Twine to render an error message instead of a passage, capture that and report it back in the test result.<\/li><\/ul>\n\n\n\n<p>When it finds one of these issues the script can produce a helpful error message and a story backtrace, showing the sequence of passages and links that led to the problem.<\/p>\n\n\n\n<p>The test also gathers some stats as it explores and prints a report at the end. Here&#8217;s the report for the current version of the game:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Every path\n13:33 | Knots: 6507 | Endings: 45\nFound 2793120 possible paths.\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502  (index)   \u2502 min  \u2502 max  \u2502 mean \u2502 median \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 characters \u2502 5230 \u2502 8189 \u2502 6827 \u2502  6856  \u2502\n\u2502   words    \u2502 892  \u2502 1433 \u2502 1181 \u2502  1186  \u2502\n\u2502   knots    \u2502  18  \u2502  28  \u2502  24  \u2502   24   \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/code><\/pre>\n\n\n\n<p>On my laptop it takes about 15 minutes to find all 6,507 distinct possible gamestates (knots), and count 2.8 million possible paths through the game with an average length of 1181 words \/ 24 pages (treating all possible paths as equally likely, which they&#8217;re not). That sounds like a lot, but if anything this is a case study in how weak branching itself is for creating variation. You get some control over the order in which you read the pages, but this is one story with one inevitable ending, and on replay readers don&#8217;t report that they&#8217;ve seen a different version of events. I do suspect having a larger number of options at each beat helps create the &#8220;puzzle&#8221; in the mind of the player, even though all roads lead to success.<\/p>\n\n\n\n<p>Finally, the script was a great way to dump a transcript of a particular path through the game, or even all of the rendered game text in one go, which was valuable for editing. At one point I printed knots-by-passage from a sub-exploration to do some editing on paper. I also dumped a few transcripts into <a href=\"https:\/\/hemingwayapp.com\">Hemingway Editor<\/a> shortly before release to check the writing for clarity and reading level. That tool thinks we got down to a 2nd-grade (age 7) reading level.<\/p>\n\n\n\n<p>This test tool isn&#8217;t easy to use with any Twine game yet: It&#8217;s tied to the Snowman API and to the small subset of Twine features <em>Esther&#8217;s<\/em> uses. But I think there&#8217;s a possible future as a more general tool. Let me know if you try it!<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"958\" height=\"587\" src=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/image.png\" alt=\"\" class=\"wp-image-1764\" srcset=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/image.png 958w, https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/image-300x184.png 300w, https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/image-768x471.png 768w, https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/image-850x521.png 850w\" sizes=\"auto, (max-width: 958px) 100vw, 958px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Points of view<\/h2>\n\n\n\n<p>The thing I found most challenging about writing <em>Esther&#8217;s<\/em>, and also what makes it sing for me personally, are the overlapping imperfect perspectives at play. It was important to me that we had a clear sense of what each character understands about the world. It gives the story a childlike logic that&#8217;s consistent enough to follow, and it&#8217;s especially important when the heart of the story is communicating across these differences.<\/p>\n\n\n\n<p>My framework goes something like this:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Esther knows that she&#8217;s playing pretend. From her point of view the mice are playmates like her stuffed-animal customers, only better because they can respond. In her own head she has Disney-princess talk-to-animals powers, and when the mice talk back to her she doesn\u2019t understand their words, but she\u2019ll often make something up and pretend she did understand them. She is playing with real (albeit kid-accessible) foods in her cafe.<\/li><li>Harold and Janie have a magical mouse-perspective. They don\u2019t read or speak English, but they do understand some spoken English. They don\u2019t understand that Esther isn\u2019t an adult and this isn\u2019t a real cafe. They also don\u2019t really understand what avocado toast or a mimosa is. (How Janie got in her head that she wanted brunch might be the weirdest thing in the whole story, but we\u2019ve established that she reads picture-books and it\u2019s conceivable that she peruses magazine ads too.) They try speaking to Esther, as we often do across a language barrier, hoping against hope that our inflection or common root words will be enough. But in the end, body language and luck gets them what they want.<\/li><li>The narrator is \u201cover the shoulder, close\u201d to Harold and Janie, as we mostly see the world through the eyes of the mice. But we the readers can understand both Esther and the mice, and also observe how Esther hears the mice (SQUEAK SQUEAK), and also have little glimpses of \u201creality\u201d through the pretend, like identifying the \u201ccoffee\u201d as little creamer cups.<\/li><li>The illustrator is a fourth point-of-view, and plays pretend much less than the characters or the narrator are. They set the scene in a different and more grounded way than the narrator. It is the illustrator who reveals on the second page that Esther is a child; who shows that we are in Esther\u2019s backyard, and the other customers are stuffed animals; only the illustrator gives us a sense of scale for these characters, and shows Esther\u2019s attentive but slightly condescending attitude towards the mice; who shows us Esther\u2019s misspelled chalkboard menu.<\/li><\/ul>\n\n\n\n<p>That last bit emerged partway through development. As a kid I was fascinated by books where the pictures revealed hidden layers to the story, and I wanted to capture a bit of that even though my illustrations aren&#8217;t nearly as lovely and clever as someone like <a href=\"https:\/\/janbrett.com\/\">Jan Brett<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/harold_sketch.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"192\" height=\"192\" src=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/harold_sketch.jpg\" alt=\"\" class=\"wp-image-1770\" srcset=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/harold_sketch.jpg 192w, https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/harold_sketch-150x150.jpg 150w, https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/harold_sketch-45x45.jpg 45w\" sizes=\"auto, (max-width: 192px) 100vw, 192px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Playtesting<\/h2>\n\n\n\n<p>I&#8217;ve studied and worked in games and am fortunate to have a number of savvy industry contacts I can trust to give excellent feedback. We sent our <a href=\"https:\/\/bradleycbuchanan.com\/6i6b82a29gkdgdwodkfq\/main.html\">first playtest build<\/a> out on the 11th, about a week and a half in. Most of the text was present, but we only had one black-and-white sketch of Janie and Harold, and otherwise had AI-generated placeholder art to get a tiny bit of &#8220;picture-book&#8221; feel. It went to three playtesters with a note that it would only take about five minutes to play, and the prompt: &#8220;What works, what doesn&#8217;t, where is it confusing, what does it need?&#8221; We ended up sending seven builds and got feedback from a total of nine playtesters. They were great, not just for finding issues, but also suggesting key additions to the experience.<\/p>\n\n\n\n<p>For example, I&#8217;d written a bit where you could eat the orange and have to ask for another one. Alleson was worried this would be confusing, and our playtesters quickly confirmed this:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Eating the orange allowed me to eat it, get a warning that we needed it, and then I had to order another. It could have been an opportunity to warn not to eat it, and give a hint that we could use it for the mimosa.<\/p><\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>I got to a thread where I ordered the orange, but wasn\u2019t given the option to squeeze it into the cup, so I ate it and had to order it again. It just felt unsatisfying, as I wasn&#8217;t able to do the thing I wanted to right away.<\/p><\/blockquote>\n\n\n\n<p>So we made Janie block the &#8220;Eat the orange&#8221;action; simpler was better in this case.<\/p>\n\n\n\n<p>Our original intent was that the player guides both Harold and Janie, so this feedback was helpful:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>It felt through much of the experience as though we\u2019re playing as Harold. I\u2019m not sure this is intended. If it is, what was it about his perspective that made it important to play as him instead of Janie?<\/p><\/blockquote>\n\n\n\n<p>I took an inventory of which passages featured each mouse as the key actor, and Harold did have more to do &#8211; mostly because he features in all the &#8220;Eat&#8230;&#8221; passages. We adjusted a few critical-path passages to balance things out. I also noticed that whichever mouse complains to Esther at the start of the story ends up feeling more like the main character. That seemed like a good outcome.<\/p>\n\n\n\n<p>In the earlier builds, several folks thought Esther being human was a twist ending! This convinced me that the illustration on the second page needed to set the scene, showing that Esther is a kid running a play restaurant in her yard.<\/p>\n\n\n\n<p>Our testers also requested the back button, the hand-drawn avocado bullet points, the color-coded character names, and the note about length on the title page. One even provided this excellent feedback:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>it would be nice if, at the very end, you had a callback to something that was chosen at the very beginning. Otherwise, it feels like Harold and Janie end the story without the player. Something that has a consequence when the dessert falls on them.<\/p><\/blockquote>\n\n\n\n<p>&#8230;which is when we added the pudding flavor choice that affects the ending. At first these choices were just the flavor names, but on the next round this same tester wrote back:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>You can have one say, &#8220;What&#8217;s your favorite pudding again?&#8221; They know each other, so they would be reminded, not told. The answer would be something like: &#8220;You know what my favorite pudding is.&#8221; And then that mouse would be give a choice based on three different types of criteria. &#8220;You know, the first one we had together.&#8221; Or, &#8220;You know, the one I&#8217;ve always wanted to try.&#8221; Or, &#8220;You know, that really thick one.&#8221; Then, the other one can answer, &#8220;Of course, chocolate.&#8221; Or, vanilla, or tapioca. One refers to memory, one to anticipation, and one to an attribute of the pudding itself. Now, when the pudding does appear, you can refer not only to the flavor itself but to how it relates to the characters. It becomes an emotional link that, hopefully, the players can identify with.<\/p><\/blockquote>\n\n\n\n<p>&#8230;so we went back and wrote reasons into the flavor choices. I don&#8217;t think we closed the loop on the emotional link, but it was a great spot for some extra characterization, especially since Harold and Janie have different thoughts on the flavors.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Reception<\/h2>\n\n\n\n<p>We tied for 17th place out of 70 entries. We received 98 ratings, with an average score of 6.53 out of 10.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/esthers_score_distribution.png\"><img loading=\"lazy\" decoding=\"async\" width=\"362\" height=\"119\" src=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/esthers_score_distribution.png\" alt=\"\" class=\"wp-image-1773\" srcset=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/esthers_score_distribution.png 362w, https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/esthers_score_distribution-300x99.png 300w\" sizes=\"auto, (max-width: 362px) 100vw, 362px\" \/><\/a><figcaption>Distribution of ratings for <em>Esther&#8217;s<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<p>I feel great about this ranking! The game was too small to ever be a contender for the top spots. I figured we had a shot at the top third, and sneaking into the top quarter feels like success. We were surprised to see <em>Esther&#8217;s<\/em> included in a few personal top-ten lists.<\/p>\n\n\n\n<p>Our rating distribution is a little unusual in that we placed 17th when our most common (mode) score was a 6. The most common score for nearby games was a 7, including the other game in 17th, the ones in 19th and 20th places, and all three games in 22nd place. Our average was pulled up through low controversy (no 1-3 scores) and about 20% of judges found our game unusually appealing (8-10).<\/p>\n\n\n\n<p>One wonderful thing about submitting a short game to the comp is that lots of people play it and write reviews! (<a href=\"https:\/\/www.bradleycbuchanan.com\/b\/esthers-impressions-and-reviews\/\">I&#8217;ve collected them here.<\/a>) We&#8217;ve been honored and flattered by the positive attention the game has received. More than a dozen reviews complimented the illustrations and visual design. The word &#8220;adorable&#8221; has been deployed with abandon. The game is short, but the prevailing sentiment has been that it feels just right for what it is. Some reviews complained that the choices in the game don&#8217;t matter (and they&#8217;re right) but I&#8217;ve been pleasantly surprised by the number that felt the simple puzzle worked well. At least a couple reviewers suggested we should do a sequel.<\/p>\n\n\n\n<p>One of my early hopes for the game was that it would serve as a palate-cleanser for judges between heavier entries. That worked out, at least for Andrew Schultz!<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Okay. I peeked. I had a few tough games with big ideas, and even though I\u2019m largely a text-adventurer and I enjoy said big ideas, I wanted something that didn\u2019t address anything serious. A glance at the reviews suggested <em>Esther\u2019s<\/em> would be just the thing, and my fellow reviewers did not leave me astray. It certainly does not address any big issues, but it certainly leaves you much more recharged to deal with them than, well, pretty much any other way you can stare at a computer screen. Including, likely, your old favorites.<\/p><\/blockquote>\n\n\n\n<p>In my opinion, the most notable criticism came from folks that actually played the game with kids. <a href=\"https:\/\/intfiction.org\/t\/victors-ifcomp-2022-reviews\/58127\/20?u=victorgijsbers\">Victor Gijsbers played it with his daughter, and reported that she enjoyed it<\/a>. But:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Still, I\u2019m not convinced that Esther\u2019s was as successful as it could have been. While reading it to my daughter, I noticed more clearly than when I read it myself that the game makes some heavy and perhaps unnecessary demands on the young listener. The basic idea of mice wanting specific food and not being able to communicate with the cafe owner is easily grasped. But the foods in question were highly unfamiliar. Even I myself had to look up mimosas. In addition, my 4-year-old has only a vague knowledge of avocados and guacamole, and none at all of tapioca pudding. [&#8230;]<\/p><p>This problem is exacerbated by the rather complex cognitive task of keeping in mind the current inventory of the mice. Children are really good at grasping and remembering narratives. I read long books over many nights with my daughter, and she\u2019ll still know what happened to the horse ten chapters ago, no problem. Story is easy. But I noticed that it was really hard for her to mentally keep track of the foodstuff that was on the table in Esther\u2019s. The mice now have\u2026 an empty cup, a slice of orange, toast with the cinnamon &amp; sugar still on it, a quesadilla with cheese and some guacamole. I mean, that is hard. But if you\u2019re not keeping track of this, you don\u2019t really understand how far you are along in the story; what you have done; what still needs to be done. It makes me wonder why the authors chose this particular form for the game, rather than a more traditional narrative that requires less complex non-story state tracking.<\/p><\/blockquote>\n\n\n\n<p>This is spot-on! You&#8217;ve called our bluff. We never actually playtested with kids, and I&#8217;m not a bit surprised that it doesn&#8217;t work so well. Our one tester that did play with a three-year-old got back to us after the submission deadline, and reported that the kid lost interest partway through.<\/p>\n\n\n\n<p>The truth is, we wrote it for ourselves first &#8211; our seven-year-old selves, perhaps, but sitting beside our adult selves who also love picture-books. I even did an editing pass to try and <em>expand<\/em> the vocabulary in the story, because I like it when kids make adults explain big words. We figured this headfake would be fine for the comp, because our comp audience would be adults. Reviewers guessed the story was for 3-4 year olds based on the gentle illustrations, but I had 6 year old me in mind. I think Esther herself is seven &#8211; old enough to use the toaster on her own, not old enough to make a quesadilla without help. But again &#8211; I cared less that kids actually liked it, and more that it felt like a convincing children&#8217;s book to an adult. Which is, I think, much easier.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/orange_slice-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/orange_slice-1.jpg\" alt=\"\" class=\"wp-image-1769\" width=\"314\" height=\"258\" srcset=\"https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/orange_slice-1.jpg 600w, https:\/\/www.bradleycbuchanan.com\/b\/wp-content\/uploads\/2022\/11\/orange_slice-1-300x247.jpg 300w\" sizes=\"auto, (max-width: 314px) 100vw, 314px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Things you might have missed<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>In the rarely-visited branch that includes an \u201cEat Cheese\u201d option, Janie nibbles on some Asadero. I hadn\u2019t heard of this cheese before writing Esther\u2019s. It turns out it\u2019s commonly included in a Mexi-shreds mix, which in my imagination is where Esther gets the \u201cbit of cheese\u201d she normally brings the mice.<\/li><li>On that note, Esther\u2019s parents clearly lean on lots of bulk snack foods. Pre-sliced oranges, guacamole cups, and Velveeta cheese slices all feature in their kitchen.<\/li><li>The dog and bear in the second-page illustration of Esther\u2019s cafe are actually favorite stuffed animals from our own childhoods. And of course the moose with a muffin references a popular children\u2019s book.<\/li><li>One of the books Harold is carrying home for Janie is Goodnight Moon. (Good eye on this Mike Russo!)<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">That&#8217;s a wrap<\/h2>\n\n\n\n<p>Thanks for reading! Make sure to check out <a href=\"https:\/\/ifcomp.org\/comp\/2022\">the full comp results<\/a>. My personal favorites this year were <em><a href=\"https:\/\/ifdb.org\/viewgame?id=6qp3g7te26h3rb5u\">According to Cain<\/a><\/em> by Jim Nelson, <em><a href=\"https:\/\/ifdb.org\/viewgame?id=mhm7zqdxy4kqojn2\">Prism<\/a> <\/em>by Eliot M.B. Howard, and <em><a href=\"https:\/\/ifdb.org\/viewgame?id=u8x12omz0a93jues\">Elvish for Goodbye<\/a><\/em> by David G\u00fcr\u00e7ay-Morris.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This year Alleson and I submitted a short story called Esther&#8217;s to the 28th annual Interactive Fiction Competition. We placed 17th, which is great!<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[418,5],"tags":[515,27],"class_list":["post-1763","post","type-post","status-publish","format-standard","hentry","category-blog","category-game-designer","tag-ifcomp-2022","tag-interactive-fiction"],"_links":{"self":[{"href":"https:\/\/www.bradleycbuchanan.com\/b\/wp-json\/wp\/v2\/posts\/1763","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bradleycbuchanan.com\/b\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bradleycbuchanan.com\/b\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bradleycbuchanan.com\/b\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bradleycbuchanan.com\/b\/wp-json\/wp\/v2\/comments?post=1763"}],"version-history":[{"count":6,"href":"https:\/\/www.bradleycbuchanan.com\/b\/wp-json\/wp\/v2\/posts\/1763\/revisions"}],"predecessor-version":[{"id":1783,"href":"https:\/\/www.bradleycbuchanan.com\/b\/wp-json\/wp\/v2\/posts\/1763\/revisions\/1783"}],"wp:attachment":[{"href":"https:\/\/www.bradleycbuchanan.com\/b\/wp-json\/wp\/v2\/media?parent=1763"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bradleycbuchanan.com\/b\/wp-json\/wp\/v2\/categories?post=1763"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bradleycbuchanan.com\/b\/wp-json\/wp\/v2\/tags?post=1763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}