<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[seridescent]]></title><description><![CDATA[seridescent.com]]></description><link>https://seridescent.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!zE0M!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4952bd1-5336-4a76-a74b-07b7a55f8102_350x350.jpeg</url><title>seridescent</title><link>https://seridescent.substack.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 26 Jul 2026 20:35:58 GMT</lastBuildDate><atom:link href="https://seridescent.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[st0p]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[seridescent@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[seridescent@substack.com]]></itunes:email><itunes:name><![CDATA[seridescent]]></itunes:name></itunes:owner><itunes:author><![CDATA[seridescent]]></itunes:author><googleplay:owner><![CDATA[seridescent@substack.com]]></googleplay:owner><googleplay:email><![CDATA[seridescent@substack.com]]></googleplay:email><googleplay:author><![CDATA[seridescent]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[how to get your substack consumption data]]></title><description><![CDATA[on a minor substack reader bug and scripting with marimo]]></description><link>https://seridescent.substack.com/p/substack-history</link><guid isPermaLink="false">https://seridescent.substack.com/p/substack-history</guid><dc:creator><![CDATA[seridescent]]></dc:creator><pubDate>Fri, 18 Jul 2025 16:55:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qnr1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04d57d2a-006d-4395-9cc6-e8cf8d9e1214_638x432.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://seridescent.com/substack-history">synthesized from my website</a></p><div><hr></div><p>As part of my efforts on <a href="https://seridescent.com/lectara">lectara</a>, I wanted to go through the posts I&#8217;ve read on Substack, exploring the data and reviewing my attention habits. To do that, I have to get my hands on the data. Unfortunately, I don&#8217;t see a dedicated way to get my Substack <em>consumer</em> data; you can export a publication&#8217;s data, but that isn&#8217;t very helpful for my purposes.</p><p>Luckily for me:</p><ol><li><p>It is dead easy to see how the Substack web app populates the <a href="https://substack.com/history">history page</a>.</p></li><li><p>There is <a href="https://github.com/NHagar/substack_api/blob/master/substack_api/auth.py">prior art</a> on making authenticated requests to Substack&#8217;s API.</p></li></ol><h2><strong>tldr</strong></h2><p>I threw together a marimo notebook to fetch my history data, roughly as if I was scrolling the history view; you can <a href="https://github.com/seridescent/substack-reader-history-export">look at the code on GitHub</a>. You can also <a href="https://marimo.app/gh/seridescent/substack-reader-history-export/main?entrypoint=main.py">open the notebook in your browser</a>, but you won&#8217;t be able to make the necessary requests to Substack&#8217;s API.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qnr1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04d57d2a-006d-4395-9cc6-e8cf8d9e1214_638x432.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qnr1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04d57d2a-006d-4395-9cc6-e8cf8d9e1214_638x432.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qnr1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04d57d2a-006d-4395-9cc6-e8cf8d9e1214_638x432.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qnr1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04d57d2a-006d-4395-9cc6-e8cf8d9e1214_638x432.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qnr1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04d57d2a-006d-4395-9cc6-e8cf8d9e1214_638x432.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qnr1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04d57d2a-006d-4395-9cc6-e8cf8d9e1214_638x432.jpeg" width="638" height="432" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/04d57d2a-006d-4395-9cc6-e8cf8d9e1214_638x432.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:432,&quot;width&quot;:638,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Screenshot of a Sankey diagram showing that of the 2055 posts I have opened, I have completed 1001 and liked 74.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Screenshot of a Sankey diagram showing that of the 2055 posts I have opened, I have completed 1001 and liked 74." title="Screenshot of a Sankey diagram showing that of the 2055 posts I have opened, I have completed 1001 and liked 74." srcset="https://substackcdn.com/image/fetch/$s_!qnr1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04d57d2a-006d-4395-9cc6-e8cf8d9e1214_638x432.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qnr1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04d57d2a-006d-4395-9cc6-e8cf8d9e1214_638x432.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qnr1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04d57d2a-006d-4395-9cc6-e8cf8d9e1214_638x432.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qnr1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04d57d2a-006d-4395-9cc6-e8cf8d9e1214_638x432.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">not sure how i feel about my churn rate</figcaption></figure></div><h2><strong>a minor history view bug</strong></h2><p>My initial thought was to simply copy what the web app did. Watching the initial API request already showed me that the history was populated by hitting <code>/api/v1/reader/posts</code> with query parameters <code>inboxType=seen</code> and <code>limit=20</code>. <code>seen</code> was self-explanatory, and initial experimentation told me that the backend validated <code>limit</code>, preventing me from requesting more than 20 posts at a time.</p><p>Obviously, I needed more than 20 posts, so I started scrolling and inspected the next request. The next &#8220;page&#8221; is populated by sending nearly the same request, but with an additional <code>after</code> parameter set to a timestamp. It wasn&#8217;t obvious what this timestamp was supposed to be, since <code>after</code> is a pretty generic parameter name; figures, since <code>after</code> is used to populate other types of inbox tabs.</p><p>I loaded another &#8220;page&#8221; and did some basic transformations, which confirmed how the web app progressively rendered the history page:</p><ol><li><p>Of the last set of posts returned, identify the user&#8217;s least-recently viewed post.</p></li><li><p>Request the next &#8220;page&#8221; by setting <code>after</code> to the publish date of that least-recently viewed post.</p></li></ol><pre><code><code>initial_history = get("/api/v1/reader/posts",
                      params={ "inboxType": "seen", "limit": 20 })

lrv_post = min(initial_history["posts"],
               key=lambda post: post["inboxItem"]["seen_at"])

next_history = get("/api/v1/reader/posts",
                   params={
                       "inboxType": "seen",
                       "limit": 20,
                       "after": lrv_post["post_date"]
                   })</code></code></pre><p>Seemed a bit odd to use <code>post_date</code> instead of <code>seen_at</code>, but I figured I should mimic the web app and went with it. Maybe there was some kind of benefit to using a publish date cursor that I couldn&#8217;t comprehend as an outsider.</p><p>I ran my script and got&#8230; 159 posts. Surely that wasn&#8217;t right. At this point, I had only loaded 60 posts into my actual history, so I scrolled to the &#8220;bottom&#8221; and realized that my history page was suspiciously short as well.</p><p>I poked a little more and realized that when <code>inboxType</code> is <code>seen</code>, adding <code>after</code> transforms the query into:</p><blockquote><p>Starting from posts viewed <em>before</em> <code>after</code>, please give me the next 20 posts in the history.</p></blockquote><p><code>after</code> was placing a ceiling on the possible values of <code>post.inboxItem.seen_at</code>; the frontend using <code>post_date</code> was just a bug.</p><p>This bug wasn&#8217;t obvious to me before, because the first 20 items are always correct. Plus, if you primarily read recent posts, the history will just be subtly wrong if it&#8217;s wrong at all.</p><p>I was looking through some older posts though, and now this bug is super clear:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GBQP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab3f0599-dca7-49fd-a986-a4bd54ae1084_662x1364.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GBQP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab3f0599-dca7-49fd-a986-a4bd54ae1084_662x1364.png 424w, https://substackcdn.com/image/fetch/$s_!GBQP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab3f0599-dca7-49fd-a986-a4bd54ae1084_662x1364.png 848w, https://substackcdn.com/image/fetch/$s_!GBQP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab3f0599-dca7-49fd-a986-a4bd54ae1084_662x1364.png 1272w, https://substackcdn.com/image/fetch/$s_!GBQP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab3f0599-dca7-49fd-a986-a4bd54ae1084_662x1364.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GBQP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab3f0599-dca7-49fd-a986-a4bd54ae1084_662x1364.png" width="662" height="1364" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab3f0599-dca7-49fd-a986-a4bd54ae1084_662x1364.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1364,&quot;width&quot;:662,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Substack History page scrolled to the bottom. The last item was published on March 27, 2023. Chrome's Developer Tools panel is open to the Network tab, filtered to requests containing the parameter `inboxType`. There are only two such requests, one with no `after` parameter and one with `after` set to a time on March 27, 2023.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Substack History page scrolled to the bottom. The last item was published on March 27, 2023. Chrome's Developer Tools panel is open to the Network tab, filtered to requests containing the parameter `inboxType`. There are only two such requests, one with no `after` parameter and one with `after` set to a time on March 27, 2023." title="Substack History page scrolled to the bottom. The last item was published on March 27, 2023. Chrome's Developer Tools panel is open to the Network tab, filtered to requests containing the parameter `inboxType`. There are only two such requests, one with no `after` parameter and one with `after` set to a time on March 27, 2023." srcset="https://substackcdn.com/image/fetch/$s_!GBQP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab3f0599-dca7-49fd-a986-a4bd54ae1084_662x1364.png 424w, https://substackcdn.com/image/fetch/$s_!GBQP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab3f0599-dca7-49fd-a986-a4bd54ae1084_662x1364.png 848w, https://substackcdn.com/image/fetch/$s_!GBQP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab3f0599-dca7-49fd-a986-a4bd54ae1084_662x1364.png 1272w, https://substackcdn.com/image/fetch/$s_!GBQP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab3f0599-dca7-49fd-a986-a4bd54ae1084_662x1364.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">frames has grown on me</figcaption></figure></div><p>Since my least-recently viewed post was posted on March 27, 2023, the next history query uses that date (and time) as the value of <code>after</code>. However, I didn&#8217;t have a Substack account in 2023, so the query returns nothing and it looks like I have only read 20 posts in my life.</p><p>I bet the fix is a very small code change on the web frontend, as the iOS app does this correctly :)</p><h2><strong>marimo is pretty cool</strong></h2><p>Since I was planning to do some request scripting and I was also familiar with <code>pandas</code> for data wrangling, reaching for Python was an easy choice. I&#8217;ve used Jupyter in the past, but since this was a low-stakes effort, I decided to try something new.</p><p>Interactive Python environments are fantastic for these kinds of exploratory tasks, but they have a well-known reproducibility problem. <a href="https://marimo.io/">marimo</a> is &#8220;an open-source reactive Python notebook&#8221; that tries to solve this. It has the UI niceties for tables and plotting that Jupyter environments have, but it also tracks data dependencies between cells, ensuring reproducibility. This also enhances usability, as modifying and running a given cell will also re-run dependent cells (or mark them as dirty if auto-rerun is disabled).</p><p>This is much closer to typical programming than Jupyter Notebooks are, in my opinion, so I had a much better time using marimo. It&#8217;s harder to get into an invalid state, and it also means cell placement does not matter. Notebooks don&#8217;t have to be written to be run from top to bottom, separating presentation from functionality.</p><p>I was also impressed with how many batteries are included. The editor has been pleasant so far, and if you try to import a module without its associated package, marimo will prompt the user with a &#8220;click to add with <code>uv</code>&#8221; button. Neat!</p><p>There&#8217;s even a dedicated UI library. You can use marimo to prototype an interactive app exposing your notebook&#8217;s functionality without fiddling with all the options that a full frontend framework provides; the provided UI elements are functional and they otherwise get out of the way. Very pragmatic.</p><p>Writing a Substack history export frontend doesn&#8217;t interest me <em>that</em> much, but I did it because marimo makes it so incredibly easy to go from a personal script to a functional-enough app. Without marimo, this tiny bit of work would just live as a static notebook in the lectara GitHub repository, but now anyone can point <a href="https://marimo.app/gh/seridescent/substack-reader-history-export/main?entrypoint=main.py">marimo.app to this notebook&#8217;s GitHub repository</a> and mess with the notebook.</p><p>You sensibly can&#8217;t use it to fetch your Substack data because of CORS restrictions, but it&#8217;s very cool that this WASM-powered notebook frontend exists at all. If you get your hands on your data, you can easily modify the notebook to run the rest of the code, turning responses into a dataframe without ever leaving the browser.</p><h2><strong>closing thoughts</strong></h2><p>This was a reasonably fun diversion, and I&#8217;m feeling good about exploring my Substack data further.</p><p>Before starting this, I didn&#8217;t think very hard about it and thought that the history would just be a list of post IDs or something; I&#8217;m pleasantly surprised that the primary response includes basically all the data I would have wanted, including:</p><ul><li><p>post metadata like ID, canonical URL, word count, title, and bylines</p></li><li><p>my interaction data like restacks and likes (the latter is also referred to as just a &#8220;reaction&#8221;)</p></li><li><p>my progress data: how far in to the post did I stop? what is the furthest I have gone?</p></li></ul><p>I hope this is helpful to someone :)</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://seridescent.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://seridescent.substack.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[unbeatable demo fever]]></title><description><![CDATA[batter batter batter batter batter batter SWING!!]]></description><link>https://seridescent.substack.com/p/unbeatable-demo</link><guid isPermaLink="false">https://seridescent.substack.com/p/unbeatable-demo</guid><dc:creator><![CDATA[seridescent]]></dc:creator><pubDate>Sun, 29 Jun 2025 16:12:48 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3a29090d-80fc-4aa2-bef0-9e5931f697d7_2246x1397.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="http://seridescent.com/unbeatable-demo">synthesized from my website</a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!A11O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4145b1d-c53a-4f1a-9c5f-9bc17ea1f041_3339x1397.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!A11O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4145b1d-c53a-4f1a-9c5f-9bc17ea1f041_3339x1397.png 424w, https://substackcdn.com/image/fetch/$s_!A11O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4145b1d-c53a-4f1a-9c5f-9bc17ea1f041_3339x1397.png 848w, https://substackcdn.com/image/fetch/$s_!A11O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4145b1d-c53a-4f1a-9c5f-9bc17ea1f041_3339x1397.png 1272w, https://substackcdn.com/image/fetch/$s_!A11O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4145b1d-c53a-4f1a-9c5f-9bc17ea1f041_3339x1397.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!A11O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4145b1d-c53a-4f1a-9c5f-9bc17ea1f041_3339x1397.png" width="1456" height="609" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4145b1d-c53a-4f1a-9c5f-9bc17ea1f041_3339x1397.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:609,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5492667,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://seridescent.substack.com/i/167081800?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4145b1d-c53a-4f1a-9c5f-9bc17ea1f041_3339x1397.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!A11O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4145b1d-c53a-4f1a-9c5f-9bc17ea1f041_3339x1397.png 424w, https://substackcdn.com/image/fetch/$s_!A11O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4145b1d-c53a-4f1a-9c5f-9bc17ea1f041_3339x1397.png 848w, https://substackcdn.com/image/fetch/$s_!A11O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4145b1d-c53a-4f1a-9c5f-9bc17ea1f041_3339x1397.png 1272w, https://substackcdn.com/image/fetch/$s_!A11O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4145b1d-c53a-4f1a-9c5f-9bc17ea1f041_3339x1397.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">i think it's cute when someone else jumps in for the second slider</figcaption></figure></div><p>I adore <a href="https://store.steampowered.com/app/2240620/UNBEATABLE/">the UNBEATABLE demo</a>. Since its release, I&#8217;ve spent over 30 hours playing it. I&#8217;m a very casual video game player, so in absolute terms this is a lot of time for me. It has also given me so much value; I&#8217;ve spent more time playing this free demo than many games I have paid money for, which is kind of crazy to me. D-CELL have even turned me into a paying fan before UNBEATABLE&#8217;s release by selling me <a href="https://dcellgames.bandcamp.com/">demo songs on Bandcamp</a>.</p><p>I&#8217;m fascinated by the range of experiences that creative works can evoke, and I have written about being moved by such works before. I thought it would be fun to explore a slightly different phenomenon: how UNBEATABLE captured me and why I think it&#8217;s such a good fit.</p><p>I learned about UNBEATABLE almost a year ago now, when <a href="https://www.youtube.com/watch?v=xWNwFSNFw74">the 1.0 trailer</a> appeared on my Twitter feed. This is still my all-time favorite game trailer (although to be fair, I don&#8217;t watch many game trailers). Everyone should watch it, it&#8217;s so good! The direction was tight; it felt like every shot had a purpose and the visuals were nicely intertwined with the music. I especially love the trailer&#8217;s ending. Also, even though it&#8217;s not primarily a gameplay trailer, it <a href="https://x.com/pixelhavokk/status/1799926318601252994">was shot entirely in-engine</a>, which I find extremely cool.</p><p>Anyway, this trailer was totally to my taste and convinced me to wishlist the game. At this point, I still wouldn&#8217;t say that I knew much about the game. The trailer piqued my interest with the hints of rhythm and narrative elements, but the most important factor was simply how much I liked the trailer in isolation. I knew I wanted to hear updates about the game and just assumed there wasn&#8217;t more I could do right now.</p><p>A year later, the demo released and I pretty much went into it blind. When I think &#8220;demo&#8221;, I think about the few Next Fest games I tried that had approximately an hour of gameplay. The UNBEATABLE demo is not that. Just playing through the available story slice and giving arcade mode a decent shot probably takes like five hours.</p><p>Obviously, I had a good time playing through the demo. I finished the story over the course of two evenings and have been playing arcade mode since. I kind of can&#8217;t believe how much I enjoy this demo and how excited I am for the game to release. I don&#8217;t play games much, so I haven&#8217;t had a game resonate this way for a long time. How did this happen?</p><p>I&#8217;ll start with my arcade mode experience.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;8f3ddc73-042b-4be8-8938-b3b29d937326&quot;,&quot;duration&quot;:null}"></div><p>sad to say that this was a soft level 14 - done in love (from noisz sl) expert</p><p>(apparently you can&#8217;t caption videos on Substack)</p><p>This component of UNBEATABLE is a two-button rhythm game; you press up and/or down in time with the music and with the items scrolling toward the two vertical bars in the center. As I understand it, in-universe this is generally you, the player, playing a song on stage.</p><p>A two-button rhythm game happens to be a good fit for me. First, I&#8217;m a casual player, and a two-button rhythm game is, in the grand scheme of things, pretty easy to ramp up on. The easiest levels are just &#8220;press one of two buttons every few seconds&#8221;, and there is a pretty robust set of beatmaps to smoothly develop skill. Second, I played osu! for some time in high school, so I was already familiar with rhythmically tapping keys.</p><p>I don&#8217;t think there&#8217;s a great way to write about the raw gameplay loop of tapping keys and being scored on your accuracy; either you find it fun or you don&#8217;t. I tried it and had fun, and I suggest people try it for themselves while the demo is freely available.</p><p>The other component of UNBEATABLE is a 3D fixed-camera adventure game. You run around exploring and talking to people and playing through a story.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!juJY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ec65a3-6b89-4367-947b-feb9e3aa8a86_1920x1080.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!juJY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ec65a3-6b89-4367-947b-feb9e3aa8a86_1920x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!juJY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ec65a3-6b89-4367-947b-feb9e3aa8a86_1920x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!juJY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ec65a3-6b89-4367-947b-feb9e3aa8a86_1920x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!juJY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ec65a3-6b89-4367-947b-feb9e3aa8a86_1920x1080.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!juJY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ec65a3-6b89-4367-947b-feb9e3aa8a86_1920x1080.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/95ec65a3-6b89-4367-947b-feb9e3aa8a86_1920x1080.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:578873,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://seridescent.substack.com/i/167081800?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ec65a3-6b89-4367-947b-feb9e3aa8a86_1920x1080.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!juJY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ec65a3-6b89-4367-947b-feb9e3aa8a86_1920x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!juJY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ec65a3-6b89-4367-947b-feb9e3aa8a86_1920x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!juJY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ec65a3-6b89-4367-947b-feb9e3aa8a86_1920x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!juJY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95ec65a3-6b89-4367-947b-feb9e3aa8a86_1920x1080.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">least confusing convenience store - image from Steam page</figcaption></figure></div><p>I found the demo&#8217;s adventure slice pretty compelling as well. I felt like my discovery efforts were rewarded and I had fun with the dialogue. The soundtrack also generally fits the town&#8217;s idyllic aesthetic, so just existing and running around felt nice.</p><p>It&#8217;s easy to describe UNBEATABLE in terms of its adventure pieces and its rhythm pieces, but these aren&#8217;t really separate. One source of delight was playing through the narrative and discovering the rhythm game elements sprinkled into the world&#8217;s activities. This ranges from the beloved Whacktown to trivially tapping along while admiring an in-game visual. I&#8217;m really excited to see what other mini-games the developers come up with.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!i-Z4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27fbc565-f803-4c97-8930-1b5401b0c1be_3440x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!i-Z4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27fbc565-f803-4c97-8930-1b5401b0c1be_3440x1440.png 424w, https://substackcdn.com/image/fetch/$s_!i-Z4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27fbc565-f803-4c97-8930-1b5401b0c1be_3440x1440.png 848w, https://substackcdn.com/image/fetch/$s_!i-Z4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27fbc565-f803-4c97-8930-1b5401b0c1be_3440x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!i-Z4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27fbc565-f803-4c97-8930-1b5401b0c1be_3440x1440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!i-Z4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27fbc565-f803-4c97-8930-1b5401b0c1be_3440x1440.png" width="1456" height="609" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/27fbc565-f803-4c97-8930-1b5401b0c1be_3440x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:609,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3045266,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://seridescent.substack.com/i/167081800?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27fbc565-f803-4c97-8930-1b5401b0c1be_3440x1440.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!i-Z4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27fbc565-f803-4c97-8930-1b5401b0c1be_3440x1440.png 424w, https://substackcdn.com/image/fetch/$s_!i-Z4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27fbc565-f803-4c97-8930-1b5401b0c1be_3440x1440.png 848w, https://substackcdn.com/image/fetch/$s_!i-Z4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27fbc565-f803-4c97-8930-1b5401b0c1be_3440x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!i-Z4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27fbc565-f803-4c97-8930-1b5401b0c1be_3440x1440.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">i like all the songs, but it's a shame that the easy mode "It's Whacktime!" is my favorite</figcaption></figure></div><p>The most exciting property of this game, however, is how I expect the narrative to enhance my connection to the soundtrack. In isolation, I already really like a lot of the songs. But I know myself well enough to say that how much I like a song is not the only factor in how much I&#8217;ll play it. My playlist includes many songs that I listen to because I feel some connection them; openings for beloved anime are probably the plurality. With UNBEATABLE, I anticipate something similar. I predict that I&#8217;ll be drawn in by the narrative and that my feelings toward the story will bleed into my feelings toward the soundtrack.</p><p>Thinking back to my time playing osu!, I never played it solely for the love of the game. While I found the gameplay engaging, it was just as important for me to be playing songs that I liked. After a while, there wasn&#8217;t enough overlap between the set of maps that I wanted to play and the set of songs that I wanted to play; I ultimately churned from the game around the end of high school and haven&#8217;t seriously played since. UNBEATABLE looks like it will be stickier for me; I&#8217;m hopeful that this combination of gameplay, music, and narrative will be even greater than the sum of its parts.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!POjA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cce2550-50ee-4e02-9793-4795f5d2e421_1920x1080.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!POjA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cce2550-50ee-4e02-9793-4795f5d2e421_1920x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!POjA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cce2550-50ee-4e02-9793-4795f5d2e421_1920x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!POjA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cce2550-50ee-4e02-9793-4795f5d2e421_1920x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!POjA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cce2550-50ee-4e02-9793-4795f5d2e421_1920x1080.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!POjA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cce2550-50ee-4e02-9793-4795f5d2e421_1920x1080.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3cce2550-50ee-4e02-9793-4795f5d2e421_1920x1080.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:127448,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://seridescent.substack.com/i/167081800?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cce2550-50ee-4e02-9793-4795f5d2e421_1920x1080.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!POjA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cce2550-50ee-4e02-9793-4795f5d2e421_1920x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!POjA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cce2550-50ee-4e02-9793-4795f5d2e421_1920x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!POjA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cce2550-50ee-4e02-9793-4795f5d2e421_1920x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!POjA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cce2550-50ee-4e02-9793-4795f5d2e421_1920x1080.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">dug this one up - <a href="https://x.com/dcellgames/status/1376946825484234753">source</a></figcaption></figure></div><h2><strong>appendix: offhand feedback</strong></h2><p>During my play-through of the demo, I also took notes on rough edges that I encountered.</p><p>First, some small story slice notes: <strong>STORY SPOILERS BEGIN</strong></p><ul><li><p>I found the dandelion behind the shack super early on, but I couldn&#8217;t figure out what to do with it. On a second play-through, I still couldn&#8217;t figure it out, although I also didn&#8217;t try very hard.</p></li><li><p>I walked past the &#8220;clean the floor&#8221; pile in the shack for like 20 seconds. I didn&#8217;t visually distinguish it from the rest of the floor, and I guess I got unlucky and ran in circles around that pile without getting close enough to show the prompt.</p></li><li><p>Minor thing, but those activities with the two horizontal lines are supposed to be <a href="https://x.com/dcellgames/status/1922304601903993227">song writing</a>? It definitely makes sense in hindsight, but I did not put that together at all. I kind of thought I was just enjoying the scenery with a chill activity to go along with it.</p></li></ul><p>I also have, at best, very mixed feelings on what I understand to be a scripted loss to the cops. I didn&#8217;t know it was a scripted loss for a while, so I just felt like shit for being the reason that Quaver&#8217;s picture gets burnt. Maybe that&#8217;s the point, to make the player feel an emotional gut punch. But it felt much more like an artifact of an imperfect simulation, one that breaks the norms of video games and makes reasonable paths impossible to explore. Infinite rebirth and all, right?</p><p>I think I wouldn&#8217;t feel so cheated if it was obvious that I stumbled into an overwhelmingly unfavorable situation. I didn&#8217;t get that impression though. That cop battle is also juxtaposed with the ones at the lighthouse and the town square, which are very obviously at my set difficulty level. Narratively, they feel pretty similar to me, so the difficulty feels out of place.</p><p>I don&#8217;t have a great solution here. Maybe having obviously terrible odds dampens the emotional impact of the outcome. Maybe it feels too off to have a swarm of cops just appear underneath this building. In any case, current script left a bitter taste in my mouth.</p><p><strong>STORY SPOILERS END</strong></p><p>For arcade mode:</p><ul><li><p>All I really want is a score tracking system. Just knowing my current high score feels too coarse. What was my per-note accuracy? What was my longest combo? I&#8217;m also curious about my play history. How many times did I get close to beating my current high score? When did those happen? I feel like it would give me a better sense of my improvement over time.</p></li><li><p>Please bring back <em>true (from noisz sl)</em> level 13 T_T I am dying to play an in-between difficulty of that song. I&#8217;m still not sure if it got like silently pulled for reworking, or if it&#8217;s just me and one other person that have encountered some kind of cursed bug. But being in limbo is worse.</p></li><li><p>Speaking of the NOISZ songs, the red circles confused me a bit when I was starting. I understand now that it&#8217;s a reference, and I actually think that&#8217;s quite cool. At the time though, I incorrectly thought, &#8220;Oh, it&#8217;s a circle and I hit circles, maybe this is just a special kind that can come in from the middle and I have to react to whether it goes up or down&#8221;. Maybe that&#8217;s just a skill issue though.</p></li><li><p>Since it&#8217;s a demo, I don&#8217;t hold it against D-CELL for there being visual inconsistencies in some beatmaps. They are consistently present in a small subset of maps though. These range from benign, like missing a vertical bar connecting a set of top-bottom notes, to genuinely annoying things, like notes in <em>EMPTY DIARY</em> unbeatable difficulty occasionally going invisible as if I turned on osu! hidden mode. It&#8217;s always the same ones, so it doesn&#8217;t bother me now, but it definitely bothered me when I was still primarily sight-reading the map.</p></li><li><p>Something feels very slightly off about the double sliders near the end of <em>WAITING</em> level 13. It feels like the sliders come slightly earlier than they should, so I have to tap before I feel like the song is telling me to.</p></li><li><p>I&#8217;m not sure what the tall pink thing I&#8217;m supposed to rapidly tap is called, but I feel like it&#8217;s missing some visual feedback. I was treating it like an osu! spinner and just tapping as fast as I could. However, there are some maps where this is not the optimal strategy; one can perfect this obstacle tapping very little, and tapping in time with the music sets you up better for notes that immediately follow (<em>FAMILIAR</em> level 12 and <em>WAITING</em> level 13 come to mind). I still don&#8217;t really know how these work. I think they go away after a set amount of time, not hits? I don&#8217;t think getting more hits in affects my score? I&#8217;m not sure what the accuracy criteria is.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://seridescent.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[on the empathy of novels and games]]></title><description><![CDATA[framed by Gabrielle Zevin's novel, Tomorrow, and Tomorrow, and Tomorrow]]></description><link>https://seridescent.substack.com/p/artistic-empathy</link><guid isPermaLink="false">https://seridescent.substack.com/p/artistic-empathy</guid><dc:creator><![CDATA[seridescent]]></dc:creator><pubDate>Thu, 15 May 2025 06:10:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zE0M!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4952bd1-5336-4a76-a74b-07b7a55f8102_350x350.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://seridescent.com/artistic-empathy">synthesized from my website</a></p><div><hr></div><p>I read <a href="https://jasmi.news/i/157119559/the-case-for-reading-novels">this podcast transcript</a> a while back, where Jasmine Sun and Mills Baker &#8220;make the case for the novel&#8221;. In that section, they articulate a unique property of novels: by letting the reader inhabit a character&#8217;s mind, the novel can foster empathy like no other medium. That section stuck with me because it put words to what I love about novels. I had felt this empathy for characters while reading novels but never recognized the connection to the medium.</p><p>Each medium has its own superpowers. Films, games, songs, novels; they all give artists expressive power along different avenues. Focusing on these affordances helps explain how audiences experience different creative works and has clarified how I interpret my own experiences.</p><p>I especially like the term affordance when discussing novels because it also encodes the agency that authors have. Novels <em>can</em> give a reader unparalleled insight into a character&#8217;s inner world, but not all of them do. I&#8217;ve read my fair share of books following characters that stay opaque; it feels like they have arbitrary quirks instead of emergent traits.</p><p>Don&#8217;t get me wrong, I still enjoyed novels with opaque characters because those novels did other things well; beautiful prose, riveting narratives, and highly-considered world-building have made me a fan of one book or another. My favorites though, they lay bare a character&#8217;s mind, showing me the emotions and experiences that drive their actions; they make interesting characters <em>legible.</em></p><p>The first time I finished <em>Tomorrow, and Tomorrow, and Tomorrow</em>, I thought that I loved it for &#8220;normal&#8221; reasons. I liked the narrative and felt it was compulsively readable. But months later, I was still thinking about this novel and its characters. I loved getting to know Sadie and Sam by seeing their unfiltered thoughts and living their formative experiences. In the end, I came to understand these characters and why they live their lives the way they do; I couldn&#8217;t help but love them, flaws and virtues together.</p><p>Building this deep understanding of the characters and their backgrounds elevated the narrative as well. Many events of the story felt like they were a natural consequence of these characters coming in contact, not just some contrived sequence. To me, this novel's core is how it explores the texture of friendship and partnership; it felt like the plot simply emerged from this exploration.</p><p>Over the years, Sam and Sadie share a complex and dynamic relationship, and the book pulls it off like few others do. They hold grudges, they don&#8217;t communicate, they cross lines. But I&#8217;m not frustrated. I just understand.</p><p>~</p><p>Many descriptions of <em>Tomorrow, and Tomorrow, and Tomorrow</em> say it&#8217;s about video games. And sure, that&#8217;s true in a shallow sense; the main characters spend their adult lives working on video games. However, I think that&#8217;s the least important part of the description.</p><p>In <a href="https://www.nytimes.com/2022/07/08/books/review/tomorrow-and-tomorrow-and-tomorrow-gabrielle-zevin.html">his review of the novel</a>, Tom Bissell wrote about &#8220;the unadorned realities of game-making&#8221; that are omitted; my read is that the parts that are more like running a business (producing, QA, marketing, and engineering come to mind) wouldn&#8217;t elevate the novel and are rightfully cut. The novel focuses instead on the people that pour their souls into their work, the people that will games into existence.</p><p>I like framing the novel with this idea that the things we create are the most powerful expressions of our interiority, and I think that the novel illustrates this truth about creative outputs. I was moved by the way the designers&#8217; inner worlds came out in both their creative processes and their finished games.</p><p>To me, this novel could have been a love letter to any form of creative expression; if it was about filmmaking or writing instead, I bet it would hit just as hard. In some sense, it&#8217;s a love letter to the act of creative expression. John Green puts it best when <a href="https://www.tiktok.com/@literallyjohngreen/video/7116945206447983915">he says</a> that &#8220;it&#8217;s about art and how we make it and that just incredibly deep complex love that is shared between artistic collaborators.&#8221;</p><p>I don&#8217;t believe that a love for video games is required to get something meaningful from this novel. At the same time, my love for this novel was evoked in part by how it reframed games for me. It could have been a love letter to any form of creative expression, but it&#8217;s specifically a love letter to games.</p><blockquote><p>Sam would later tell people that these mazes were his first attempts at writing games. &#8220;A maze,&#8221; he would say, &#8220;is a video game distilled to its purest form.&#8221; Maybe so, but this was revisionist and self-aggrandizing. The mazes were for Sadie. To design a game is to imagine the person who will eventually play it.</p><p>As Dov was fond of saying to her, &#8220;You aren&#8217;t just a gamer when you play anymore. You&#8217;re a builder of worlds, and if you&#8217;re a builder of worlds, your feelings are not as important as what your gamers are feeling. You must imagine them at all times. There is no artist more empathetic than the game designer.&#8221;</p><p>"...despite evidence to the contrary, it is not an inevitability that we should be our worst selves behind the mask of an avatar. What I believe to my very core is that virtual worlds can be better than the actual world. They can be more moral, more just, more progressive, more empathetic, and more accommodating of difference. And if they can be, shouldn't they be?&#8221;</p></blockquote><p>Reading lines like these broke down the &#8220;entertainment product&#8221; box I had implicitly placed games in; it nudged me to reflect on how meaningful a game could be to both its players and creators. It showed me another dimension of games that immediately resonated, one that inspired me to aim higher in games and life.</p><p>The games industry is a notoriously difficult sector to work in. In my experience, the people that manage to make a living developing games could have had very lucrative careers elsewhere. Their choice to work in a volatile, competitive, and comparatively under-compensated industry is a labor of love. Once I knew to look for it, I found this care and compromise incredibly moving.</p><p>Nowadays, I have a complicated relationship with games. I loved my internship working on an in-production game, but I work in a different industry now. I read and write and think about the expressive power of games, but I only play casually. I&#8217;m hopeful about returning to games, but sometimes I wonder, do I love them enough?</p><p>I&#8217;m not sure what my future holds anymore. But even if I never touch games again, the empathy, hope, beauty, and meaning I now see in game development will stay with me. I&#8217;ll be searching for this meaning and empathy in everything I do. How could I settle for less?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://seridescent.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[i might not convince you, but you should call your parents]]></title><description><![CDATA[framed by Ken Liu's short story, "The Paper Menagerie"]]></description><link>https://seridescent.substack.com/p/call-your-parents</link><guid isPermaLink="false">https://seridescent.substack.com/p/call-your-parents</guid><dc:creator><![CDATA[seridescent]]></dc:creator><pubDate>Thu, 15 May 2025 06:02:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zE0M!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4952bd1-5336-4a76-a74b-07b7a55f8102_350x350.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://seridescent.com/call-your-parents">synthesized from my website</a></p><p><em>I started this essay after reading "The Paper Menagerie". Unsurprisingly, this essay contains spoilers. I highly recommend reading it; it moved me to act, something that doesn't happen often.</em></p><div><hr></div><p>When I was in university, I knew some students that talked to their parents every few days; others, maybe every week or two. I didn't talk to my parents nearly as often. Even now, my calls with my parents are sporadic. A month or two could pass in-between as I threw myself into school or recruiting or work and just embraced my newfound independence.</p><p>It's not that we don't love each other; I love my parents and I know that they love me too. We just aren't that close. We just don't really talk.</p><p>~</p><p>Ever since I moved out, I've been focused on self-sufficiency. In that push toward my independent future, it was easy to keep my thoughts and my gaze on what lies ahead. It was easy to leave things behind, to not look back.</p><p>I understood that [over 90% of the time that I'll ever spend with my parents is probably gone](<a href="https://waitbutwhy.com/2015/12/the-tail-end.html#:~:text=It%20turns%20out%20that%20when%20I%20graduated%20from%20high%20school%2C%20I%20had%20already%20used%20up%2093%25%20of%20my%20in%2Dperson%20parent%20time.%20I%E2%80%99m%20now%20enjoying%20the%20last%205%25%20of%20that%20time.%20We%E2%80%99re%20in%20the%20tail%20end.)">https://waitbutwhy.com/2015/12/the-tail-end.html#:~:text=It turns out that when I graduated from high school%2C I had already used up 93%25 of my in-person parent time. I&#8217;m now enjoying the last 5%25 of that time. We&#8217;re in the tail end.)</a>. I knew that the amount of time left with them is uncertain.</p><p>Feeling it was something else. What a cliche, right? I suspect that many young people have this same revelation, but that the catalysts vary.</p><p>For me, it was a short story.</p><p>~</p><p>Of the many possible catalysts, nothing resonated with me quite like &#8220;The Paper Menagerie&#8221;.</p><p>The story touched me in part because it is heartbreaking. It hurts reading about how the narrator's relationship with his mother deteriorated so completely. It's a beautiful and compelling depiction of resolution never reached.</p><p>Of course, Liu's award-winning work doesn't just depict a relationship between mother and son. It weaves fantasy elements into a story of racial identity and coming-of-age; my descriptions could never do it justice.</p><p>~</p><p>While in college, the narrator visits his dying mother. He's physically in the hospital, but his mind is elsewhere.</p><p>When I was 19, recruiting season and interviewing and internships seemed so important. The pressure and the culture and my naivet&#233; kept them stuck at the front of my mind.</p><p>When the narrator confessed the same, a part of me cried and screamed but a small part of me just understood.</p><p>~</p><p>The last time I initiated a phone call with my parents, it was January. I had just broken my wrist while snowboarding.</p><p>After finishing the story, 10 pm on a weekend, I called them.</p><p>We chatted about benign family things: my job, my diet, my mom's new job, my brother's first semester in college.</p><p>I told them how much I appreciated all of the ways they built me and my brother a better life than they had. I told them I loved them and missed them and think about them even though I've moved away.</p><p>They told me that they were surprised to hear from me.</p><p>They told me that they loved me too, that they're proud of me.</p><p>They told me that this call meant a lot to them.</p><p>~</p><p>At the end of <a href="https://www.avabear.xyz/p/entry-points">&#8220;entry points&#8221;</a>, Ava writes:</p><blockquote><p>In high school I volunteered for a couple years at a care home for people with dementia. All anyone there ever talked about was their children (I think their spouses were mostly already dead). The ones who had children who visited were happy and the ones who didn't weren't. Everything I needed to know about life was revealed to me right there, though it would take me a long time to see it.</p></blockquote><p>I think about this paragraph a lot. Mostly because it's an incredibly powerful closer to a great essay, but also because of the literal image it renders in my mind.</p><p>It takes so little effort to make your parents' day, and even if I can't convince you of it, I promise it will make your day too.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://seridescent.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[injecting narrative into breath of the wild]]></title><description><![CDATA[on the intersection of fun, freedom, and meaning]]></description><link>https://seridescent.substack.com/p/botw-narratives</link><guid isPermaLink="false">https://seridescent.substack.com/p/botw-narratives</guid><dc:creator><![CDATA[seridescent]]></dc:creator><pubDate>Thu, 15 May 2025 05:51:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zE0M!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4952bd1-5336-4a76-a74b-07b7a55f8102_350x350.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://seridescent.com/botw-narratives">synthesized from my website</a></p><p><em>This essay started as an explanation of my Breath of the Wild experience for a friend. Thus, it is relatively raw and unedited.</em></p><p><em>I hope that readers will find this essay an interesting retrospective on some elements of Breath of the Wild, but it is primarily a self-expression piece about the art forms that I love.</em></p><div><hr></div><p><em>Breath of the Wild</em> is an amazing game that is primarily characterized by its exploration affordances. It imposes almost no ordering on the player's actions; once you complete the Great Plateau, you can basically do whatever you want.</p><p>It's no surprise then that <em>Breath of the Wild</em>'s narrative elements take a back seat. Individual stories are generally standalone and small, since they have to make sense no matter what order the player encounters them. Since they are small, I argue that they lack depth. You'll spend your time talking to and helping, well, NPCs (in the more colloquial than literal sense) instead of full-blown characters.</p><p>Something similar can be said of Link's memories and the main storyline. Those memories can be collected in any order, so they can't be too tightly-coupled. If they were, I think the collection process would be more confusing than compelling.</p><p>In the grand scheme of things, the memories are also <em>short</em>. You can probably spend around 100 hours playing <em>Breath of the Wild</em>; less than 1% of that time would be spent watching memories. There's a fundamental limit to how much story can be crammed into such a form.</p><p>That's all fine; I don't think people pick up <em>Breath of the Wild</em> for its story. But if you're like me and particularly captured by narrative, I think you can get something uniquely beautiful by injecting narrative into your experience.</p><h2><strong>Pre-Calamity stories (or &#8220;Why should I fight Calamity Ganon?&#8221;)</strong></h2><p>There's nothing too crazy about <em>Breath of the Wild</em>'s main antagonist. Calamity Ganon isn't even really a character; he's just the big evil force that causes all your problems. The game doesn't try to make you care about defeating Ganon in particular. It's kind of a fact of life that you should ultimately seal him away because you are opposed to evil.</p><p>The narrative does provide another reason to defeat Ganon though: Princess Zelda. The game will periodically tell you that Zelda is trapped and that you should go free her. Just giving instructions isn't particularly interesting though, so the game has collectible memories that reveal Zelda's story leading up to Calamity.</p><p>Zelda has <em>some</em> characterization. By finding Link's memories, you'll learn like two obvious things about her: she struggles to access her power and she loves research. There are other more interesting character threads, like her relationship with Link and her father, but these are mostly expanded on by Zelda's diary.</p><p>The pre-Calamity story also has holes. Tons of them. The timeline is unclear, and things like why Zelda's power manifests itself the way it does aren't tied up nicely. That isn't a knock against the game; a tight and deep story about Zelda would be very difficult to fit into the game's storytelling mediums. It's just a tradeoff.</p><p>It takes significant creativity, in my opinion, to glean anything truly compelling from these glimpses of Zelda. The player is basically given the perspective of an uninterested spectator; Link never talks, so there isn't much interaction happening in most of the memories. While her diary provides insight that the memories cannot, it is terse, missable, and possibly only seen after you decided to go and fight Ganon. These narrative elements, while interesting, probably won't meaningfully change your motivation to defeat Ganon. You were probably going to do it anyway, <em>eventually</em>.</p><p>&#8220;Eventually&#8221; is the key. If you were deeply convinced that saving Zelda as soon as possible was of the utmost importance, you probably wouldn't take as many detours to pick mushrooms or chase frogs or climb mountains. Giving the player a high priority goal is antithetical to the game's open-world experience.</p><p>All of these points were true for the majority of my play-through. I was freeing the Champions and gearing up to free Zelda, but I was also wandering the mountains and hunting for Koroks and picking every apple in sight.</p><p>I was free, and I was unmoored. Without some higher motivator, my actions lacked weight. I ultimately didn't care when these main story things got done, if at all. There are no extrinsic motivators pushing me to complete the story, and the game can't adequately strengthen my intrinsic motivation to do so.</p><p>All of that changed when I read <a href="https://archiveofourown.org/works/10425738/chapters/23019495">&#8220;Calm Waters Run Deep&#8221;</a> by <a href="https://archiveofourown.org/users/MaryDragon/pseuds/MaryDragon">MaryDragon</a>. It's a fantastic Zelda POV &#8220;expansion of canon&#8221;. It can definitely be fluffy at times, which isn't everyone's cup of tea, but it really shines with its characterization of Zelda.</p><p>The story explores the story of a princess burdened with responsibility. Zelda has been failing to unlock this hereditary golden power for years, and the only person who would even understand this problem, her mother, has been dead for a decade. She's torn between her interests and her duty to her kingdom, and once Link appears, the pressure is all on her. These things are hinted at in the game, but "Calm Waters Run Deep" paints a heartfelt and compelling picture of Zelda's struggles.</p><p>The path the story takes to fill in the gaps between memories is also well-considered. What are Link and Zelda's trips to the springs really like? What about the moments after Link falls at Fort Hateno, when Zelda must face her destiny all alone? Small details from throughout the story come full circle to weave a tight and gorgeous tale of Zelda's last months before the Calamity.</p><p>This story was so well-done that it changed how I thought about the game. I felt like I had new insight into Zelda's story. This narrative sparked the intrinsic motivation that the game couldn't instill. I went through the rest of the game faster. My in-game actions felt more purposeful now that I was moving toward an ending I actually cared about. Isn't that kind of crazy? Having this extra narrative in my head injected meaning into the game.</p><h2><strong>Post-Calamity stories (or &#8220;Why should I help Hyrule's NPCs?&#8221;)</strong></h2><p>I'll be brief, but fan-made narratives had a similar effect on me with respect to <em>Breath of the Wild</em>'s villages and NPCs. There are good post-Calamity stories available online, and the ones that I liked the most generally offered two things: side-character expansions and an exploration of Zelda's adjustment to post-Calamity life in Hyrule.</p><p>Reading about side-characters is great because, like Zelda's pre-Calamity story, it gives emotional beats that the game simply cannot provide. Its the difference between "let me finish this Divine Beast" and "let me help these Rito that I genuinely care about reclaim their air space". It's <a href="https://www.dictionary.com/browse/sonder">sonder</a> but projected onto video game characters.</p><p>I mention Zelda's post-Calamity life because it also endears me to the main story. These stories are often about Zelda's recovery from spending 100 years in an ethereal state, as well as Hyrule's recovery from generations living under Calamity Ganon's influence. Both of these are heartwarming topics to me, and they give me something to &#8220;look forward&#8221; to from the events of the game.</p><h2><strong>Separating fun and meaning</strong></h2><p>After reading an initial version of this essay, my friend asked (approximately):</p><blockquote><p>If you love narrative so much, aren't there more fitting games out there for you than <em>Breath of the Wild</em>? Why play <em>Breath of the Wild</em> when you can read a book?</p></blockquote><p>I do love reading, but I wouldn't say it is fun in the way that a well-designed gameplay loop is fun. I primarily played games to have fun; <em>Breath of the Wild</em> was no exception. I had a great time playing it well before I read any of the game's fanfiction. If I instead never read any <em>Breath of the Wild</em> fanfiction, I'm sure I would still have a very high opinion of the game.</p><p>Thus, I wasn't surprised that I found the game fun, but I <em>was</em> surprised when I started finding meaning in its story. Having added narrative in mind didn't change how much fun I had playing the game, but it drastically changed my overall appreciation for <em>Breath of the Wild</em> as a work of art. Playing the game and reading these works in tandem evoked feelings that neither activity could do alone.</p><p>Needless to say, how I came to love <em>Breath of the Wild</em> was a particularly personal journey that I just wanted to write about. Everyone is different. I imagine that some people could experience the game the same way I did but still not be compelled.</p><p>And I bet that people like the authors of these fanfiction works didn't even need external narratives to be compelled by stories just below the surface of <em>Breath of the Wild</em>. The stories that I loved most felt like they were canon; it felt like those threads were there the whole time and I just needed someone to show me.</p><h2><strong>An aside on video game prescience and agency</strong></h2><p>In a normal play-through of <em>Breath of the Wild</em>, you don't <em>have</em> to do a lot of things. If you skip memories or Divine Beasts, the game doesn't lock itself up. Those narratives will just be lost to you. On the other end of the spectrum, there are story-driven games that require players to &#8220;play their part&#8221; to find out what comes next. You have very limited agency.</p><p>There was an interesting phenomenon that I encountered when I both knew the narrative and had agency. You'll have to suspend some disbelief here, since it is all in a video game.</p><p>Knowing about story elements like the construction of Tarrey Town or about individual NPCs that I hadn't &#8220;met&#8221; yet didn't ruin the game for me. Part of that is because, like I said before, <em>Breath of the Wild</em> is much more than its story. But the more interesting reason for that preservation of my experience was because prescience of an option didn't mean it had to happen. In my mind, a story's universe has a pre-determined path, but my save file's universe could still have its path shaped. I didn't <em>have</em> to finish the Tarrey Town side quest, and if I didn't, it just wouldn't exist in my save.</p><p>I often did follow through on these story beats though, and it was still a meaningful experience. I would liken it to something that the narrator of Ted Chiang's &#8220;Story of Your Life&#8221; describes.</p><p>In the process of learning Heptapod B, the narrator gains a teleological view of her life; she remembers events that haven't happened yet. Yet, knowledge of the future doesn't stop her from &#8220;playing her part&#8221;.</p><p>One could argue about what that means about free will, if one feels like arguing about a science fiction novella's universe. I don't really care though. At the end of the story, I interpret the narrator as choosing to have her daughter despite knowledge of her eventual death. She decides that the events that she remembers from her daughter's life are things worth experiencing. And I think that's a beautiful sentiment.</p><h2><strong>Some closing thoughts</strong></h2><p>There is a cynical part of me that reads this essay back in an unfavorable light. It's not everyday that you read about someone's headcanon inner lives of Nintendo characters, right? Good or bad, it is objectively weird. I've never written anything like this before, and it feels intensely vulnerable to do so.</p><p>Yet, this essay is also sincere to what I felt as I played through <em>Breath of the Wild</em>. Nothing compels me like narrative does; that's just who I am. Besides, what fun is life if you don't let art move you?</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://seridescent.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading seridescent! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item></channel></rss>