<?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[Game Production Alchemist]]></title><description><![CDATA[Prepare to encounter unconventional perspectives on game production, LiveOps, leadership and transmutation.]]></description><link>https://www.productionalchemist.com</link><image><url>https://substackcdn.com/image/fetch/$s_!0_I_!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8c8fe75-257b-4ce8-a63c-db3bd0401a49_256x256.png</url><title>Game Production Alchemist</title><link>https://www.productionalchemist.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 04 Jun 2026 18:32:20 GMT</lastBuildDate><atom:link href="https://www.productionalchemist.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Rob Sandberg]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[gameproductionalchemist@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[gameproductionalchemist@substack.com]]></itunes:email><itunes:name><![CDATA[Rob Sandberg]]></itunes:name></itunes:owner><itunes:author><![CDATA[Rob Sandberg]]></itunes:author><googleplay:owner><![CDATA[gameproductionalchemist@substack.com]]></googleplay:owner><googleplay:email><![CDATA[gameproductionalchemist@substack.com]]></googleplay:email><googleplay:author><![CDATA[Rob Sandberg]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[An AI Agent Set a Higher Bar for Design Pillars Than Your Studio Did]]></title><description><![CDATA[The Creative Director inside Claude Code Game Studios encodes standards the industry knows but rarely enforces]]></description><link>https://www.productionalchemist.com/p/an-ai-agent-set-a-higher-bar-for</link><guid isPermaLink="false">https://www.productionalchemist.com/p/an-ai-agent-set-a-higher-bar-for</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Wed, 03 Jun 2026 06:33:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aGyI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>The Creative Director agent in <a href="https://github.com/Donchitos/Claude-Code-Game-Studios">Claude Code Game Studios</a> requires falsifiable pillars with concrete design tests, a meaningfully higher standard than most studio GDDs ever reach</p></li><li><p>Anti-pillars, what the game explicitly is not, are specified as a hard requirement. The industry has always known this tool exists and consistently fails to use it</p></li><li><p>When pillars are vague enough to mean anything, they resolve nothing. The loudest voice in the room wins instead</p></li><li><p>An AI agent enforcing these standards on every session is uncomfortable evidence of how low the bar has been set</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aGyI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aGyI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!aGyI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!aGyI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!aGyI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aGyI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2390731,&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://gameproductionalchemist.substack.com/i/198524029?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.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_!aGyI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!aGyI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!aGyI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!aGyI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d655d51-3410-4a1c-a421-2d2d7797e68b_1477x1065.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 role="img" 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><title></title><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></figure></div><p>The industry knows what a good design pillar looks like. It just rarely writes one.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>I have been reading the <a href="https://github.com/Donchitos/Claude-Code-Game-Studios">Claude Code Game Studios repo</a> in detail over the past week. I wrote about its structural architecture and where it falls short <a href="https://gameproductionalchemist.substack.com/p/claude-code-game-studios-49-agents">in an earlier piece</a>, and about the production thinking encoded in its collaboration protocol <a href="https://gameproductionalchemist.substack.com/p/the-protocol-nobody-names">in a follow-up</a>. This piece is about something else: the Creative Director agent, which is the strongest single agent in the roster, and what it reveals about a failure the industry has been tolerating for a long time.</p><div><hr></div><h2>What the agent actually demands</h2><p>The Creative Director agent runs on Opus, Anthropic&#8217;s most capable model tier. That alone signals that the repo&#8217;s authors considered it the highest-stakes role in the system. Its Vision Articulation Framework asks five specific questions before any design work proceeds: the core fantasy, a unique hook tested with what the agent calls the &#8220;and also&#8221; test, the target MDA aesthetics ranked by priority, the emotional arc across a session, and anti-pillars. What the game explicitly is not.</p><p>The pillar methodology goes further. Pillars must be falsifiable. They must create tension with each other. They must apply to all departments, not just game design. Each must have a concrete design test: a real decision the pillar would resolve.</p><p>That last requirement is the one most studios skip. A pillar that cannot resolve a decision is not a pillar. It is a slogan. &#8220;Visceral, Cinematic, Deep&#8221;: three words on a deck that tell an engineer nothing about whether to cut or keep a feature. The agent will not accept it.</p><p>The scope cut framework is equally specific. Features are sorted from &#8220;cut first&#8221; (those that serve no pillar) through to &#8220;protect absolutely&#8221; (those that are the pillar). This mirrors how real triage works in production when you are over scope and the milestone is three weeks away. I have seen more poorly specified versions of this thinking in official game design documentation from studios with hundreds of people than I have in this single markdown file.</p><div><hr></div><h2>The anti-pillar is where it gets serious</h2><p>Most design frameworks tell you what a game is. Anti-pillars specify what it is not. The difference is not semantic. Scope creep rarely enters through features that were explicitly proposed and approved. It enters through features that were never explicitly ruled out, that slipped in because nobody had written down that this game does not do that.</p><blockquote><p>A pillar that cannot resolve a decision is not a pillar. It is a slogan.</p></blockquote><p>Anti-pillars close that door. If the agent requires you to specify what the game is not before it will proceed, you are forced to have the conversation that studios routinely defer until it is expensive. You cannot gesture at &#8220;immersive&#8221; as a pillar and then quietly add a fast-travel system in month eight if &#8220;no friction removal&#8221; is written as an anti-pillar at the start of pre-production.</p><p>The fact that the <a href="https://gamedesignskills.com/game-design/design-pillars/">design literature on pillars</a> consistently acknowledges this problem and consistently treats anti-pillars as optional is the tell. Designers know the tool exists. It does not get used because specifying what a game is not requires the room to commit, and commitment is uncomfortable when the creative director and the business lead have different ideas about what the game is.</p><div><hr></div><h2>What vague pillars actually cost</h2><p>I have been in greenlight and milestone reviews where the design pillars on the deck were so broad they could have described any game in the genre. I pushed back. The friction it created was not with the designers, who generally knew the pillars were thin. It was with business leadership, who had a tendency to oversimplify play mechanics and underestimate the complexity underneath them. Specific pillars constrain. Constraint is uncomfortable when you are not sure what you are building yet, and easier to avoid when the people with authority over the project prefer optionality.</p><p>The cost of that avoidance shows up later. Two features in conflict. A pillar too broad to resolve which one survives. The feature that shipped was the one backed by the loudest voice in the room, not the one better aligned with what the game was supposed to be. I have seen this pattern more than once across more than one project. The pillar was not absent. It was just vague enough to mean nothing when the decision actually needed to be made.</p><blockquote><p>When pillars are vague enough to mean anything, they resolve nothing. The loudest voice in the room wins instead.</p></blockquote><p><a href="https://thedesignlab.blog/2025/09/15/core-aesthetics-and-design-pillars-building-games-with-identity/">Falsifiable pillars with design tests</a> exist precisely to prevent that. If a pillar can resolve a specific decision, the decision does not depend on who shouts loudest. It depends on what the team agreed the game was. The agent makes this non-negotiable at the point where it is cheapest to enforce: before any design work has been committed to.</p><div><hr></div><h2>The uncomfortable question</h2><p>The standards the Creative Director agent enforces are not new. Falsifiable pillars, design tests, anti-pillars, the requirement that pillars apply across all departments and not just to game design: these appear in <a href="https://www.gamedeveloper.com/design/design-pillars-the-core-of-your-game">GDC talks</a>, in design textbooks, in the working practice of every experienced creative director who has shipped a game with a coherent identity. The knowledge has been there for decades.</p><p>The CCGS Creative Director agent refuses to accept anything less because it has no politics. It has no relationship with the creative director to protect. It does not nod along at a greenlight meeting because the executive producer is in the room and the last time someone pushed back on the vision document things got uncomfortable for a week. It will not approve a vague pillar because the alternative is a difficult conversation.</p><p>It will simply ask the question again.</p><p>That is not a capability gap the industry has been unable to close. It is a behaviour gap. The agent holds the standard non-negotiably because it was written to do so. The room often fails to hold the same standard because holding it has costs that fall on individuals rather than on documents.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/an-ai-agent-set-a-higher-bar-for/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/an-ai-agent-set-a-higher-bar-for/comments"><span>Leave a comment</span></a></p><p>If you have worked in production long enough to have been in that room, this comparison is not flattering. It is not meant to be.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/an-ai-agent-set-a-higher-bar-for?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/an-ai-agent-set-a-higher-bar-for?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/an-ai-agent-set-a-higher-bar-for?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Harvard Business Review Just Invented the Producer]]></title><description><![CDATA[How the most-starred AI game dev framework on GitHub accidentally ran a study in producer cognition]]></description><link>https://www.productionalchemist.com/p/hbr-just-invented-the-producer</link><guid isPermaLink="false">https://www.productionalchemist.com/p/hbr-just-invented-the-producer</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Mon, 01 Jun 2026 07:01:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xzjE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>Claude Code Game Studios hit 19,380 GitHub stars in three months with no shipped game, and its most-engaged thread is a question about why the AI won&#8217;t build anything without human direction</p></li><li><p>The users who fail treat it like autopilot; the users who succeed treat it like a studio that needs a managing director</p></li><li><p>In February 2026, Harvard Business Review published a new role to describe what producers have been doing for thirty years</p></li><li><p>Producer cognition is a specific set of moves, not instinct, and you can watch them fail in real time across three languages on a GitHub issue page</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xzjE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xzjE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!xzjE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!xzjE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!xzjE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xzjE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1891849,&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://gameproductionalchemist.substack.com/i/198527972?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.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_!xzjE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!xzjE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!xzjE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!xzjE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0139d3c-7187-47f5-a558-0b5941cbf65f_1477x1065.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 role="img" 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><title></title><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></figure></div><p>In February 2026, an open-source framework launched on GitHub with a clear pitch: turn a single Claude Code session into a full game development studio. By May, Claude Code Game Studios had 19,380 stars, 2,828 forks, and no shipped games. Its most active issue is a question: why does the AI generate elaborate design documents and sprint plans while producing almost no playable code?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>The answer sitting in that thread, in English, Chinese, and Russian, is the same one game studios spent decades learning. The studio doesn&#8217;t run itself. You do.</p><p>CCGS is a 49-agent framework built around a studio hierarchy: Tier 1 Directors, Tier 2 Department Leads, Tier 3 Specialists. It ships with 73 slash command skills, 12 automation hooks, and 41 document templates. The workflow runs from concept through game pillars, game design documents, architecture decision records, epics, user stories, and sprint planning before the agents touch code. That sequence exists for good reasons. It also means that for users expecting to describe a game and receive one, the first week is friction and consumed tokens producing nothing playable.</p><div><hr></div><p><strong>The expectation gap</strong></p><p>csn6666, posting in Issue #46: &#8220;I feel like there are too many documents and communications between agents and humans but nothing&#8217;s really built after burning 30% of my weekly quota.&#8221;</p><p>LeonPang, writing in Chinese in Issue #29: &#8220;I thought I&#8217;d pitch an idea and the AI would run with it. Instead it turned into me doing the designing and the AI reviewing me.&#8221;</p><p>These are honest accounts of a genuine mismatch. The framework produces exactly what it&#8217;s designed to produce: structured pre-production artefacts, gated by a human decision-maker at each stage. The gap is between the README&#8217;s implied promise and what the work demands from the person sitting with it.</p><p>The documents are the first deliverable of a studio with an absent director. The quota was spent correctly. The director wasn&#8217;t there to use them.</p><p>The Chinese-language threads mirror the English ones almost exactly. So do the Russian threads. When the same complaint surfaces in three languages on the same framework, the problem is structural. The friction is baked into the design assumptions. Those assumptions include a human who knows what to do with pre-production artefacts.</p><p>The README doesn&#8217;t mention that.</p><div><hr></div><p><strong>What the users who succeed are doing</strong></p><p>A user named elysi is 19 days into their current run. They have 188 GDScript files, 1,081 tests running via Godot Unit Testing at each code iteration, and a semi-playable pre-MVP baseline in Godot. They hit 100% of their weekly token limit by day 6 every week. They also trimmed CCGS to 49% of its original size after one restart, wrote 15 custom bash helper scripts to manage context consumption, and capped their deferred items register at 50, running a mid-sprint polish pass at 40 open items.</p><p>Their summary of what makes CCGS work: &#8220;The key to CCGS is the &#8216;studio&#8217; doesn&#8217;t build the game. You&#8217;re the managing director. You need to steer it.&#8221;</p><p>That sounds obvious until you look at what steering requires. Producers do three specific things before they do anything else.</p><p>The first is reading the room. elysi&#8217;s restart decision didn&#8217;t come from the framework flagging a problem. It came from noticing that agents were arguing, tech-debt was accumulating faster than it was resolving, and the system was drifting. Reading the room means recognising the state of a system before acting on it. The users who struggle are prompting into a degrading environment and expecting different results.</p><p>The second is active listening. There&#8217;s a difference between reading agent output for confirmation and reading it for signal. Agents drift. They develop inconsistencies. Issue #63 documents this precisely: the <code>/dev-story</code> skill re-reads full architecture decision records even when stories already contain embedded summaries designed to prevent exactly that duplication. An agent won&#8217;t flag this. You have to notice it. Active listening is the practice of reading outputs for what they reveal about system health, not just for whether they completed the task.</p><p>The third is sentiment in the artefacts. Before elysi&#8217;s restart, they didn&#8217;t check headline metrics. They went into the state of the repo: the comments in deferred items, the tech-debt register, the patterns in what was escalating. That&#8217;s the Jira and Confluence read a producer does on day one of a troubled project. Before meetings. Before conversations. The information is in the margins.</p><blockquote><p>&#8220;The key to CCGS is the &#8216;studio&#8217; doesn&#8217;t build the game. You&#8217;re the managing director. You need to steer it.&#8221; &#8212; elysi, GitHub Issue #46</p></blockquote><p>Technical skill accounts for little of the difference between elysi and the frustrated users in the same thread. smithjoshua125-rgb describes themselves as a complete novice and emerged from less than one week with a working prototype: a movement system, rollback netplay with client-side physics, and predictive replay working reliably at 100ms of simulated latency. They estimated the same work would have taken four to six months to learn and build manually. The difference: they treated CCGS as a framework to direct, not an autonomous builder to instruct. They went in knowing they were the director.</p><p>The CCGS community is discovering producer behaviours from first principles, without any production-methodology vocabulary. They aren&#8217;t talking about flow metrics or WIP limits. They&#8217;re working it out in GitHub threads because the work demanded it.</p><p>woobenny08, in the same Chinese-language thread as LeonPang: &#8220;Without the cognitive mindset of a &#8216;producer,&#8217; AI simply cannot help you make a competent game.&#8221;</p><p>That observation was posted on a game framework&#8217;s GitHub issues page, in Chinese. It is also the most precise summary I&#8217;ve read of the research literature on AI agent management from the last six months.</p><div><hr></div><p><strong>HBR named the role in February</strong></p><p>On February 12, 2026, Harvard Business Review published &#8220;To Thrive in the AI Era, Companies Need Agent Managers,&#8221; by Suraj Srinivasan and Vivienne Wei. The article introduces a new organisational role for overseeing AI agents: someone responsible for orchestrating how agents learn, collaborate, perform, and work safely alongside humans. They frame it as the role product managers played during the software revolution.</p><p>The strongest candidates, they argue, are people from operations and project management backgrounds. People who already understand the business process being automated deeply enough to evaluate whether an agent is executing it correctly.</p><p>They did not use the word &#8220;producer.&#8221; But the cognitive profile they describe is one game producers would recognise from their second week in the role.</p><p>The Salesforce agent manager they profile describes his daily routine as &#8220;Data, data, data. I start and end my day in dashboards, scorecards, and agent observability monitoring.&#8221; That is what a LiveOps producer&#8217;s Monday morning looks like, transposed to an enterprise AI context.</p><p>Srinivasan and Wei identify six competencies for the agent manager role. Three of them map directly onto what I described above. Understanding how agents function and how to diagnose failures. Knowing the domain process deeply enough to evaluate outputs. Defining when agents act alone and when they escalate to a human. These are reading the room, active listening, and sentiment in the artefacts. HBR named them for an audience that hadn&#8217;t encountered them before.</p><p>The broader data is consistent. Deloitte&#8217;s 2026 State of AI in the Enterprise report identifies the AI skills gap as the biggest barrier to integration and finds that only one in five companies has mature governance of autonomous AI agents. RAND Corporation&#8217;s 2025 analysis found 80.3% of AI projects fail to deliver intended business value. The Connext Global 2026 AI Oversight Report found only 17% of US adults consider workplace AI reliable without human oversight. A Workday analysis from January found roughly 40% of apparent AI productivity gains were being lost to rework and low-quality output. Every one of these reports describes the absence of producer work, in different vocabulary.</p><p>The game industry ran its own version of this study in 2025 through the &#8220;gameslop&#8221; wave: AI-assembled titles with no human curation that flooded storefronts and damaged player trust. The GDC 2026 State of the Game Industry report shows 52% of game professionals now view generative AI negatively, up from 30% the year before. The technical capability arrived faster than the understanding of how to direct it. That&#8217;s a different way of measuring the same skills gap Deloitte is tracking, and the same underlying problem.</p><div><hr></div><p><strong>The structural point</strong></p><p>CCGS is generating honest production data in public, across three languages, about what agentic development actually costs and what it actually requires. The 19,000 stars reflect real interest from developers who want to build games with AI agents. Some of them are succeeding.</p><p>But the thing the community keeps discovering, at every experience level and in every language, is the same gap. The framework tells you what the agents can do. It tells you very little about what you need to bring to it.</p><p>What you need to bring is the ability to read a system that is drifting, to hear what the agents are actually producing rather than what you asked them to produce, and to go into the artefacts for the signal that doesn&#8217;t make it into the summary reports. That combination of skills has a name. It has had one for thirty years. The CCGS community didn&#8217;t coin it. They just ran into it without warning.</p><p>HBR called this &#8220;agent management&#8221; in February. The CCGS community discovered it in May. Game studios have been hiring for it since before GitHub existed.</p><p>All three are describing the same gap.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/hbr-just-invented-the-producer/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/hbr-just-invented-the-producer/comments"><span>Leave a comment</span></a></p><blockquote><p>&#8220;Without the cognitive mindset of a &#8216;producer,&#8217; AI simply cannot help you make a competent game.&#8221; &#8212; woobenny08, GitHub Issue #29</p></blockquote><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/hbr-just-invented-the-producer?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/hbr-just-invented-the-producer?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/hbr-just-invented-the-producer?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Production 101 - #14 Scope Management and the Art of Cutting]]></title><description><![CDATA[How to manage what&#8217;s in the game before you run out of time to make decisions]]></description><link>https://www.productionalchemist.com/p/production-101-14-scope-management</link><guid isPermaLink="false">https://www.productionalchemist.com/p/production-101-14-scope-management</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Sun, 31 May 2026 16:04:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mGji!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406ba36b-a2c2-4809-a9bc-b5e6b2b4b784_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<ul><li><p>Scope management runs every week throughout production; a single kickoff agreement is a starting point, and a late descope conversation is evidence it stopped running.</p></li><li><p>Every uncontrolled change to scope is a hidden tax on the schedule; the change request process exists to make those costs visible.</p></li><li><p>MoSCoW (Must have, Should have, Could have, Won&#8217;t have) forces teams to sort features before the crisis, with full information and without time pressure.</p></li><li><p>Cutting a feature is a production decision; how you communicate it determines whether the team survives it intact.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mGji!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406ba36b-a2c2-4809-a9bc-b5e6b2b4b784_1456x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mGji!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406ba36b-a2c2-4809-a9bc-b5e6b2b4b784_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!mGji!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406ba36b-a2c2-4809-a9bc-b5e6b2b4b784_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!mGji!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406ba36b-a2c2-4809-a9bc-b5e6b2b4b784_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!mGji!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406ba36b-a2c2-4809-a9bc-b5e6b2b4b784_1456x1048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mGji!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406ba36b-a2c2-4809-a9bc-b5e6b2b4b784_1456x1048.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/406ba36b-a2c2-4809-a9bc-b5e6b2b4b784_1456x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2759674,&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://gameproductionalchemist.substack.com/i/199996393?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406ba36b-a2c2-4809-a9bc-b5e6b2b4b784_1456x1048.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_!mGji!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406ba36b-a2c2-4809-a9bc-b5e6b2b4b784_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!mGji!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406ba36b-a2c2-4809-a9bc-b5e6b2b4b784_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!mGji!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406ba36b-a2c2-4809-a9bc-b5e6b2b4b784_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!mGji!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406ba36b-a2c2-4809-a9bc-b5e6b2b4b784_1456x1048.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 role="img" 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><title></title><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></figure></div><p>This is part of the <a href="https://gameproductionalchemist.substack.com/p/production-101">Production 101</a> series.</p><div><hr></div><p>Features never get cut when they should. They get cut when there&#8217;s no other choice, usually three days before a milestone, in a meeting nobody wanted to call. The designers are furious, the engineers are exhausted, and the thing you&#8217;re cutting is the thing the team spent six weeks building.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>That&#8217;s disaster recovery. Scope management starts months earlier, in a conversation that nobody wanted to have when it was still optional.</p><p>The difference comes down to when you started. I&#8217;ve been on both sides of it, and I can tell you without hesitation: the disaster recovery version is worse in every possible way. It costs more time, more goodwill, and more schedule than the early conversation would have. The only reason it happens is that nobody wanted to be the person who said, early on, that this feature might not make it.</p><p>That person is the producer. That&#8217;s the job.</p><h2>What scope management actually is</h2><p>Scope management is the continuous discipline of keeping the work matched to what&#8217;s achievable. A single kickoff meeting where you agree on what&#8217;s in the game is a starting point, useful but insufficient. A panicked descope conversation three weeks before ship is an admission that the discipline wasn&#8217;t running. Scope management is the habit of checking, every week, whether what&#8217;s in the backlog still fits in the time available, and adjusting before the gap becomes a crisis.</p><p>The word &#8220;continuous&#8221; is doing real work there. Scope isn&#8217;t static. The team&#8217;s velocity changes. Dependencies shift. A feature that looked like two weeks of work turns out to be four. The things that were reasonable assumptions in pre-production get tested against reality in production, and some of them don&#8217;t survive the test.</p><p>The producer&#8217;s job is to keep the plan honest as that happens. Holding onto the original plan because everyone signed off on it at the start is how projects arrive at alpha in denial. A plan that has drifted from reality becomes a fiction that costs you the ability to see the actual problem.</p><blockquote><p>&#8220;A plan that has drifted from reality becomes a fiction that costs you the ability to see the actual problem.&#8221;</p></blockquote><p>This is why scope management pairs directly with scheduling. <a href="https://gameproductionalchemist.substack.com/p/production-101-13-how-to-build-a">Post #13 &#8212; How to Build a Milestone Schedule </a>covers how to build a schedule that&#8217;s honest about capacity. Scope management is what keeps it honest as the project moves forward.</p><div><hr></div><h2>Why you need a change request process</h2><p>Every uncontrolled change to scope is a hidden tax on the schedule and the team. The individual changes each seem small. &#8220;Can we just add a quick colour option to the character creator?&#8221; Fine. &#8220;Can we squeeze in one more map?&#8221; Sure, sounds manageable. &#8220;While we&#8217;re doing the UI pass, can we also rethink the inventory system?&#8221; That one feels slightly bigger but the art director really wants it.</p><p>Add these up over twelve weeks and you have a project that&#8217;s carrying six months of hidden work with no corresponding extension to the timeline. That&#8217;s how milestones slip: thirty reasonable decisions made independently, each below the threshold of alarm.</p><p>The change request process exists to make that accumulation visible. Before any addition to scope gets agreed, it goes through a fast, lightweight assessment: what does this actually cost in time and resource, who does the work, and what, if anything, comes out to make room for it? You answer those three questions and then you make the decision with full information.</p><p>The studios where I&#8217;ve seen scope creep worst were the ones where the change request process was either absent or so heavy that people routed around it. If adding a feature to scope requires filling out a five-page form and waiting two weeks for approval, people will just start the work and log it against a vague backlog item. The process has to be fast enough that using it is easier than bypassing it. A fifteen-minute conversation and a single-line entry in the change log is enough. The goal is a light gate, not a bureaucratic barrier.</p><h2>How to triage features under pressure</h2><p>There will come a point on almost every project where the honest answer to &#8220;will we ship everything on the list?&#8221; is no. The question then is which things go.</p><p>The quality/time/resource triangle is familiar territory, possibly too familiar. You can have any two of the three. Better quality in less time costs more resource. More features in the same time means lower quality or more resource. The triangle describes a real constraint. No amount of motivation or heroics moves it. The useful question when scope is too large is which of these three levers you actually have, given your real constraints.</p><p>But knowing the triangle doesn&#8217;t tell you which features to cut. For that you need a way to sort the backlog by actual necessity, not by loudness or seniority of the person who wants the feature.</p><p>MoSCoW is a framework I&#8217;ve used consistently for this. The letters stand for: Must have, Should have, Could have, Won&#8217;t have. The names are self-explanatory, which is part of why it works. You go through the feature list and every item gets placed in one of the four categories. Must haves are things the game cannot ship without; they define the product. Should haves are things that matter but won&#8217;t prevent the game from shipping if they&#8217;re absent. Could haves are desirable but genuinely optional. Won&#8217;t haves are explicitly out of scope for this release.</p><p>The value of MoSCoW is the conversation it forces. If three different stakeholders have different views about whether a feature is a Must or a Should, that disagreement needs to be surfaced and resolved before the crisis, not during it. The framework provides the vocabulary. The producer&#8217;s job in triage is to facilitate that conversation, drive it to a decision, and own the process rather than the answer. Scope cut decisions draw on three perspectives simultaneously: the PM brings product priority, the CD brings quality bar, and the producer brings feasibility; no single role owns the outcome, and how studios handle the final call varies.</p><blockquote><p>&#8220;The producer&#8217;s job in triage is to facilitate the conversation and own the process. The answer belongs to the team.&#8221;</p></blockquote><p>The MoSCoW sort should happen early in production and then be revisited at each major milestone. By the time you&#8217;re in alpha, the Won&#8217;t Have list should be long. A long Won&#8217;t Have list means the project has arrived at an honest picture of what it actually is. That&#8217;s a healthy sign.</p><div><hr></div><h2>Cutting without destroying morale</h2><p>Cutting a feature and dismissing the work that went into it are different things, and the difference matters.</p><p>When a feature gets cut, someone on the team built it, or spent weeks designing it, or argued for it in meetings. That work was real. The person who did it knows it was real. If you communicate the cut in a way that implies the work was wasted, or that it didn&#8217;t matter, you damage something that takes a long time to repair.</p><p>How to do it correctly: acknowledge that the work was good. Explain the constraint clearly, without softening it to the point of ambiguity. &#8220;We have eight weeks and fifty items on the Must Have list. This feature is a Could Have. It&#8217;s coming out.&#8221; That&#8217;s the whole message. No hedging, no false hope that it might come back, no suggestion that the decision is provisional when it isn&#8217;t.</p><p>The team can handle bad news. They&#8217;ve been in games long enough to know how this works. Bad news dressed up as something else is what breaks them. &#8220;We&#8217;re going to park this for now&#8221; when you mean &#8220;this is cut&#8221; is a form of dishonesty that people see through immediately and resent for months. Say the real thing.</p><p>In my experience, the teams that hold together through cuts are the ones where the producer told them the truth early and consistently. The teams that fracture are the ones where the cut felt sudden and unjustified, usually because the scope conversation had been avoided for weeks. The cut is survivable. The absence of honest conversation before it is what does the damage.</p><p>There&#8217;s also a practical dimension. If people don&#8217;t understand the real reason a feature was cut, they&#8217;ll invent one. The invented reasons are usually worse than the real one. They involve someone deciding their work doesn&#8217;t matter, or that there&#8217;s a political agenda, or that the project is secretly in worse shape than anyone is saying. Information vacuums fill with anxiety. Fill them with facts instead.</p><h2>How to say no to a stakeholder</h2><p>Saying no to a publisher request or a studio leadership directive on scope is a skill that takes time to develop, and getting it wrong is costly. The instinct, particularly early in a career, is either to say yes to everything or to say no in a way that sounds like reluctance rather than production reality. Both responses create problems.</p><p>The version that works is this: present the constraint as a production reality. &#8220;Here is what we can deliver in the available time, given current capacity and the features already committed.&#8221; That sentence invites a conversation about priorities. &#8220;That&#8217;s not possible&#8221; is an opinion and invites pushback about whether you&#8217;re trying hard enough. Those two responses land very differently in the room.</p><p>This only works if you have the data. Current velocity. Remaining capacity. A dependency map showing what blocks what. The outstanding Must Have list. With those things, the conversation is about facts that both parties are looking at together. Without them, it&#8217;s about whether people trust your judgment, which is a harder argument to win under pressure.</p><blockquote><p>&#8220;Present the constraint as a production reality. &#8216;Here is what we can deliver in the available time&#8217; invites a conversation. &#8216;That&#8217;s not possible&#8217; invites a fight.&#8221;</p></blockquote><p>When a stakeholder pushes back on a no, the question to ask is whether the push is about priority or about capacity. &#8220;We want this feature&#8221; is a priority argument; the answer is to show what comes out if it goes in. &#8220;We need this feature&#8221; suggests it should have been in the Must Have list; the answer is to go back to MoSCoW and reassess. In either case, you&#8217;re working from the plan, not from a negotiating position.</p><h2>How scope creep actually happens</h2><p>It&#8217;s rarely one big thing. The post-mortem of a slipped schedule almost always reveals the same pattern: thirty small things that each seemed reasonable at the time. A small UI improvement here, a quick feature there, an extra platform nobody formally agreed to. Each individual decision was made by a reasonable person responding to reasonable pressure.</p><p>Scope creep is an emergent property of reasonable people making reasonable decisions independently. Nobody sets out to sink a schedule. It happens because each individual change is too small to trigger alarm, and the accumulation only becomes visible when the schedule is already gone.</p><p>This is the argument for the change request process, and for keeping the MoSCoW list visible to the whole team. When individual decisions are made in isolation, the cost is invisible. When they go through a central point and land on a list that everyone can see, patterns emerge faster.</p><p>I&#8217;ve sat in post-mortems where the team was genuinely surprised by how much scope had drifted. They could name individual decisions that had seemed fine at the time. What they hadn&#8217;t seen was the aggregate. Running the MoSCoW list as a standing agenda item in production meetings is the simplest thing I know of for keeping that aggregate visible. It takes ten minutes. It pays for itself every time scope starts to drift.</p><p>The other thing scope creep teaches you is that &#8220;just a quick thing&#8221; is almost never just a quick thing. A small feature that touches the core game loop will generate testing requirements, tutorial copy, UI work, and at least one design iteration. The cost multiplies out from the initial estimate in ways that are predictable if you look at the dependency map, and invisible if you don&#8217;t. The change request process, done properly, makes you look at the dependency map every time.</p><p>If you&#8217;re working on the schedule that scope management feeds into, <a href="https://gameproductionalchemist.substack.com/p/production-101-13-how-to-build-a">Post #13 &#8212; How to Build a Milestone Schedule</a> covers the mechanics of keeping a milestone plan honest as conditions change. The two disciplines sit next to each other and work better together.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-14-scope-management/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/production-101-14-scope-management/comments"><span>Leave a comment</span></a></p><p></p><p>For a broader look at how production governance fits together, <a href="https://gameproductionalchemist.substack.com/p/production-101-8-legal-documents">Production 101 #8</a> on legal documents gives useful context on the contractual side of what goes in and comes out of a project.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-14-scope-management?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-14-scope-management?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/production-101-14-scope-management?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Production 101 - #13 How to Build a Milestone Schedule]]></title><description><![CDATA[Building timelines that survive contact with a development team]]></description><link>https://www.productionalchemist.com/p/production-101-13-how-to-build-a</link><guid isPermaLink="false">https://www.productionalchemist.com/p/production-101-13-how-to-build-a</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Sun, 31 May 2026 15:57:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_PBi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c4ee30f-fec4-42ea-af68-03728b34f02d_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<ul><li><p>A milestone schedule is a communication tool, not a prediction machine. It tells the team what they&#8217;re building to and when, tells leadership what to expect, and tells publishers and stakeholders when money moves.</p></li><li><p>Working backwards from a ship date is the right starting point. Find the hard external gates first, then fill in backwards from there.</p></li><li><p>Contingency placed evenly across a schedule tends to disappear. A single protected buffer late in the project is harder to erode than padding spread through every iteration.</p></li><li><p>Probabilistic forecasting, done well, lets you say &#8220;there&#8217;s a 75% chance we ship before March 22&#8221; instead of &#8220;we&#8217;ll ship on March 15.&#8221; The first statement is more honest and gives stakeholders something they can actually plan around.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_PBi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c4ee30f-fec4-42ea-af68-03728b34f02d_1456x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_PBi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c4ee30f-fec4-42ea-af68-03728b34f02d_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!_PBi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c4ee30f-fec4-42ea-af68-03728b34f02d_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!_PBi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c4ee30f-fec4-42ea-af68-03728b34f02d_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!_PBi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c4ee30f-fec4-42ea-af68-03728b34f02d_1456x1048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_PBi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c4ee30f-fec4-42ea-af68-03728b34f02d_1456x1048.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c4ee30f-fec4-42ea-af68-03728b34f02d_1456x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2713545,&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://gameproductionalchemist.substack.com/i/199995722?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c4ee30f-fec4-42ea-af68-03728b34f02d_1456x1048.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_!_PBi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c4ee30f-fec4-42ea-af68-03728b34f02d_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!_PBi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c4ee30f-fec4-42ea-af68-03728b34f02d_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!_PBi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c4ee30f-fec4-42ea-af68-03728b34f02d_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!_PBi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c4ee30f-fec4-42ea-af68-03728b34f02d_1456x1048.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 role="img" 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><title></title><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></figure></div><p></p><p>This is part of the <a href="https://gameproductionalchemist.substack.com/p/production-101">Production 101</a> series.</p><p>A schedule is a theory. The moment the project starts, reality runs an experiment to test it. The producers who understand this build schedules that break gracefully, in predictable places, with enough room to recover. The producers who treat the schedule as a fixed plan spend the back half of every project explaining why the theory was wrong.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2>What a milestone schedule is actually for</h2><p>Most people, when they think about a milestone schedule, think about prediction. The schedule will tell us when things will be done. That framing leads to disappointment almost immediately, because the schedule is not a prediction device. It&#8217;s a communication device.</p><p>The schedule talks to different audiences simultaneously, and each of them wants something different from it. The development team wants to know what they&#8217;re building to and when. They need enough structure to make decisions week to week without waiting for permission on every call. Leadership wants confidence in delivery. They need to see a credible path from where the project is now to a shipped product, with enough milestones along the way that they can track progress without reading every iteration update. Publishers and external stakeholders want to know when money moves, when they can plan marketing, when platform certification becomes a real conversation.</p><p>The same document has to serve all of them, which is part of why schedules are difficult to build well. You&#8217;re not writing one story. You&#8217;re writing a document that reads differently depending on who&#8217;s looking at it, and if you lose track of that, you end up with a schedule that tells the team too much and leadership too little, or vice versa.</p><blockquote><p>A schedule that serves the team but not the stakeholders will get ignored by the people who fund the project. A schedule that serves the stakeholders but not the team will be invisible in the room where the work actually happens. You need both.</p></blockquote><h2>Working backwards from the ship date</h2><p>The right starting point for any milestone schedule is the end. Find the hard external gates first: platform certification submission, marketing lock, gold master, press review build, the dates written into the contract. Those dates are not moveable, or they&#8217;re moveable only at significant cost. Everything else in the schedule fills in backwards from there.</p><p>This is how you find the critical path. The critical path is the chain of dependencies that determines the earliest possible ship date. It&#8217;s not the whole project. Most of the work on any project runs in parallel and only a subset of it directly controls when you can ship. Finding that chain is the first job, because until you know it, you don&#8217;t know where schedule pressure actually lands.</p><p>A common mistake is building the schedule by filling forward from the start date, estimating how long things will take, and seeing where you end up. The problem with this approach is that you find out late when there&#8217;s a problem, and by then the external gates haven&#8217;t moved but the available time has shrunk. Working backwards surfaces those conflicts early, while you still have options.</p><p>I&#8217;ve started projects both ways. The forward-fill approach always felt more natural at the start because you&#8217;re building the picture of the project rather than reasoning back from a date that feels arbitrary. But every time I built a schedule that way, I spent the first month in gentle denial about a conflict I&#8217;d have seen immediately if I&#8217;d worked backwards. The backwards approach forces honesty about whether the external constraints are even compatible with the work involved. That&#8217;s uncomfortable at the start and useful three months later.</p><h2>Estimating without deceiving yourself</h2><p>Teams have two competing instincts when it comes to estimation, and both create dysfunction.</p><p>The first instinct is inflation as protection. Teams pad their estimates because they&#8217;ve been burned before: they gave a realistic estimate, it was cut, and they missed the deadline. The padding is a rational response to a bad system. But a schedule built on padded estimates gives leadership a false picture of where time is actually going, and when everything looks like it&#8217;s on track right up until it isn&#8217;t, nobody is positioned to respond.</p><p>The second instinct is compression as optimism. Studios, and sometimes producers, compress estimates because they want the schedule to be possible. The work has to fit in the time available, so the estimates adjust until it does. A schedule built this way is one that nobody on the team actually believes, and when nobody believes the schedule, it stops having any effect on behaviour.</p><blockquote><p>The fundamental error is conflating estimation with commitment. When an estimate becomes a commitment before any work has started, both honesty and accuracy disappear. An estimate is a forecast. A commitment is something else, and it belongs later in the process.</p></blockquote><p>What historical velocity data gives you is a check on both failure modes. If your team has averaged 18 stories per iteration for the last six months and your new schedule assumes 30, something needs to change before you start. The data doesn&#8217;t tell you what the right estimate is. It tells you what the team has actually done, which is a much better starting point than asking people to say how long things will take under pressure.</p><p>The distinction to preserve is between estimation and commitment. An estimate says &#8220;this is our best current picture of the time this work will take.&#8221; A commitment says &#8220;we will deliver this thing by this date.&#8221; Teams make commitments. Schedules contain estimates. Treating them as interchangeable is where the dysfunction starts.</p><h2>Where to put contingency</h2><p>Every experienced producer has been told to include contingency in their schedule. Most of them have watched that contingency disappear. The question is where to put it.</p><p>Spreading contingency evenly across the schedule, a few days of buffer at the end of every iteration or milestone, sounds reasonable. It never works. The buffer disappears into Parkinson&#8217;s Law: work expands to fill the time available. A team with a week of buffer at the end of an iteration will unconsciously calibrate to use it. By the time the external milestone arrives, the buffer has been spent on tasks that felt urgent in the moment.</p><p>Student&#8217;s Syndrome adds a second problem. When people know that buffer time exists, they tend to start work later. The buffer becomes the safety net, and the safety net gets used not for genuine overruns but for the delay in starting. End result: the buffer is gone, but the tasks finished roughly when they would have anyway.</p><p>The alternative that holds up better in practice is a single protected contingency block late in the project. Not distributed throughout; concentrated at the end, explicitly labelled, and defended against anything that isn&#8217;t a genuine schedule threat. Teams can see it. They know it exists and they know why it exists. The social contract is that it doesn&#8217;t get raided for scope creep or features that should have been cut earlier.</p><p>The single-buffer approach works best when the producer is explicit about it. Not a hidden reserve, but a declared piece of the schedule: &#8220;We have three weeks of contingency before certification. We&#8217;re not spending it unless something in the critical path goes wrong.&#8221; Making it visible makes it harder to erode. Teams don&#8217;t spend budget they can see, nearly as readily as they spend time they can&#8217;t.</p><p>The other thing the single buffer does is concentrate schedule pressure. If every iteration has a cushion, nobody feels the urgency of the critical path. If the only buffer sits at the end, the cost of slipping any critical-path item is immediately visible. That&#8217;s uncomfortable, but it&#8217;s accurate, and accurate discomfort is more useful than comfortable imprecision.</p><div><hr></div><h2>Probabilistic forecasting</h2><p>There is a better answer to &#8220;when will we ship?&#8221; than a single date. That answer is a probability range, and it comes from the team&#8217;s actual throughput history rather than from estimates made at the start of the project.</p><p>Monte Carlo simulation treats your historical throughput data, how many tasks the team has completed per iteration or per week over the last several months, as the input and produces a distribution of likely completion dates. Instead of saying &#8220;we will ship on March 15,&#8221; you can say &#8220;based on current throughput, there&#8217;s a 75% probability we ship before March 22.&#8221; That second statement is more honest and, in practice, more useful for planning. A publisher who knows there&#8217;s a 25% chance of slipping past a date can make contingency plans. A publisher who was told &#8220;March 15&#8221; and finds out in February that it&#8217;s now April has nothing to work with.</p><p>I covered the mechanics of this approach in detail, including the specific tools and how to read the outputs, in <a href="https://gameproductionalchemist.substack.com/p/from-meteorology-to-project-management-c82">From Meteorology to Project Management: The Power of Predictive Modelling, Part 2</a>. If probabilistic forecasting is new territory, that post is the right place to start. What I&#8217;ll add here is that the confidence level you quote matters, and it should vary by audience. When you&#8217;re talking to the team about iteration planning, 50% confidence is a useful working target. When you&#8217;re quoting a date to a publisher or committing to a certification window, you want to be at 85% or higher. That difference is calibrating risk to consequence.</p><h2>Presenting the schedule to different audiences</h2><p>The version of the schedule you show to a publisher is not the version on the project board. The distinction is about signal-to-noise.</p><p>Technical teams need granularity. Which features are in which iteration. Which dependencies are in flight and where the handoffs happen. What&#8217;s been cut, what&#8217;s been added, and what&#8217;s still under discussion. The project board is their instrument panel and it needs to be accurate to be useful. A summary-level view strips out the information they need to do their jobs.</p><p>Executives need the headline range and the key dates. They are reading the schedule to understand whether the project is on track and whether the external commitments are safe. They do not need to see every task; they need to see the milestones, the current health indicator, and whether anything has changed since last time. The more detail you put in front of an executive, the less they see the signal. They start asking questions about the tasks rather than the delivery risk, and the conversation moves away from where it needs to be.</p><p>Publishers and platform stakeholders have a third set of requirements. They&#8217;re looking at certification windows, marketing beats, and whether the date in the contract still has a reasonable probability of holding. What they need is a clear statement of the key dates, the confidence level behind them, and a brief account of any risks that could move those dates. A publisher who receives a three-page Gantt chart learns less from it than a publisher who receives a single page with four dates, three risk items, and a current confidence rating.</p><blockquote><p>The mistake producers make is building one schedule and sending it to everyone. The project board is not a stakeholder communication. It&#8217;s an internal instrument. Build the communication layer on top of it rather than pointing people at the board and hoping they&#8217;ll find what they need.</p></blockquote><p>The practical approach is to maintain one source of truth at the task level, which the team uses, and to build audience-specific views on top of it for every other conversation. That separation takes about twenty minutes to set up and saves hours of misaligned expectations.</p><h2>Reading the warning signs</h2><p>By the time a milestone review tells you the schedule is in trouble, you&#8217;ve already missed your window to respond. The signals come earlier, and they&#8217;re readable if you know what to look for.</p><p>Velocity dropping is the most visible indicator. If the team has been averaging 20 stories per iteration and the last two iterations came in at 12 and 11, that&#8217;s not a bad week. That&#8217;s a pattern, and it&#8217;s pointing at something. The cause might be technical: something in the codebase has become harder to work with and estimates are growing. It might be people: someone key is distracted, stuck, or burning out. It might be process: a dependency with another team has created a bottleneck that&#8217;s not showing up in the task list. Whatever the cause, three iterations of dropping velocity is a schedule problem in progress, and you want to know about it before the milestone review does.</p><p>Tasks reopening is a close second. When work that was marked done comes back as incomplete, it means either the definition of done is unclear or quality issues are emerging that weren&#8217;t caught on the first pass. Either way, the time estimate for that work was wrong, and everything downstream of it needs adjusting.</p><p>Late estimates lengthening is harder to spot but important. When the team starts giving longer estimates for work in the current iteration than they did for equivalent work two months ago, it means they&#8217;re experiencing something that&#8217;s making the work harder. That could be scope creep absorbed into existing tasks, technical debt accumulating, or simply the fact that later-game integration work is almost always harder than early-project greenfield work. The estimates are trying to tell you something.</p><p>The leading indicator I&#8217;ve learned to watch most carefully is QA finding significantly more defects than expected in the last third of an iteration. That pattern, early progress followed by a late spike in issues, tends to mean that tasks are being marked complete before they&#8217;re genuinely integrated. The work is done in isolation but it hasn&#8217;t been tested against the rest of the build. When I see that pattern two or three iterations in a row, I start the investigation before the milestone review, not during it.</p><p>None of these signals require sophisticated tooling to spot. They require looking at the same numbers week over week and noticing when something changes. The status report discipline I covered in <a href="https://gameproductionalchemist.substack.com/p/production-101-9-why-status-reports">Production 101 #9</a> is part of what makes this possible: when you&#8217;re tracking the same metrics every week, the deviations are visible. When you&#8217;re writing status reports reactively, reconstructing the week from memory, the early signals tend to get smoothed over.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-13-how-to-build-a/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/production-101-13-how-to-build-a/comments"><span>Leave a comment</span></a></p><p>The question is not what to do when a milestone review confirms the schedule has slipped. The question is what to do when the leading indicators appear, when there&#8217;s still enough of the schedule left to respond. That&#8217;s a harder problem to solve, but it&#8217;s the one that actually matters.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-13-how-to-build-a?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-13-how-to-build-a?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/production-101-13-how-to-build-a?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Production 101 - #12 Agile for Game Producers]]></title><description><![CDATA[What the framework is, what it breaks on, and what to do instead]]></description><link>https://www.productionalchemist.com/p/production-101-12-agile-for-game</link><guid isPermaLink="false">https://www.productionalchemist.com/p/production-101-12-agile-for-game</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Sun, 31 May 2026 15:50:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nUvB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9865dea8-419f-42f5-b5df-c6604c96faa4_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>Agile is a set of values and principles from 2001. Scrum and Kanban are frameworks built on top of them, not synonyms for them.</p></li><li><p>Most studios run a Scrum-shaped process that breaks in predictable places: creative work, cross-discipline cycles, and anything with unpredictable incoming demand.</p></li><li><p>The GDD anti-pattern is the most common failure mode in game development: treating a fixed design document as requirements while claiming to run Agile.</p></li><li><p>What you need on day one is practical: how to run a sprint, a backlog, a standup, a retro. The framework debates can wait.</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nUvB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9865dea8-419f-42f5-b5df-c6604c96faa4_1456x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nUvB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9865dea8-419f-42f5-b5df-c6604c96faa4_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!nUvB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9865dea8-419f-42f5-b5df-c6604c96faa4_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!nUvB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9865dea8-419f-42f5-b5df-c6604c96faa4_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!nUvB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9865dea8-419f-42f5-b5df-c6604c96faa4_1456x1048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nUvB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9865dea8-419f-42f5-b5df-c6604c96faa4_1456x1048.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9865dea8-419f-42f5-b5df-c6604c96faa4_1456x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2808651,&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://gameproductionalchemist.substack.com/i/199994365?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9865dea8-419f-42f5-b5df-c6604c96faa4_1456x1048.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_!nUvB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9865dea8-419f-42f5-b5df-c6604c96faa4_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!nUvB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9865dea8-419f-42f5-b5df-c6604c96faa4_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!nUvB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9865dea8-419f-42f5-b5df-c6604c96faa4_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!nUvB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9865dea8-419f-42f5-b5df-c6604c96faa4_1456x1048.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 role="img" 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><title></title><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></figure></div><p>This is part of the <a href="https://gameproductionalchemist.substack.com/p/production-101">Production 101</a> series.</p><div><hr></div><p>Most studios say they do Scrum. Few actually do, and that&#8217;s probably fine. Scrum was designed for software development teams that could specify requirements in advance, work in stable two-week cycles, and ship something at the end of every sprint. Game development is none of those things. What matters is understanding why studios adapt Agile the way they do, so you&#8217;re making deliberate choices rather than inheriting someone else&#8217;s cargo cult.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><h2>What Agile actually is</h2><p>The Agile Manifesto was published in 2001 by seventeen software developers who were frustrated with heavyweight process. Waterfall development, with its years-long specification phases and big-bang releases, was failing teams at scale. The manifesto was a response to that failure, not a new methodology. It laid out four values and twelve principles. It named no tools, no ceremonies, no specific process of any kind.</p><p>The four values are worth knowing plainly:</p><p>Individuals and interactions over processes and tools. Working software over comprehensive documentation. Customer collaboration over contract negotiation. Responding to change over following a plan.</p><p>Each value has a qualifier: the right side still matters, the left side matters more. That qualifier gets ignored constantly. Teams that treat &#8220;working software over comprehensive documentation&#8221; as a licence to write nothing have misread the document.</p><p>The twelve principles build on those values. A few are particularly relevant to game development: delivering working software frequently, welcoming changing requirements even late in development, and maintaining a sustainable pace. All three are harder than they sound. Sustainable pace in particular is something the games industry has historically treated as optional.</p><blockquote><p>The manifesto was a critique, not a methodology. The Agile industry that grew up around it spent twenty years building methodologies and selling them back as if they were what the manifesto had asked for.</p></blockquote><p>I wrote about this in more depth in <a href="https://gameproductionalchemist.substack.com/p/agile-is-a-mindset-not-a-method">The Agile Manifesto Said Nothing About Scrum</a>. The short version: understanding why the manifesto was written helps you know which adaptations are legitimate and which ones are just drift.</p><h2>The GDD anti-pattern</h2><p>The most common Agile anti-pattern in game development is the Game Design Document used as a requirements specification.</p><p>The GDD has genuine uses. It&#8217;s a communication tool, a design memory, a way to align a team on what they&#8217;re building. But studios frequently write a comprehensive GDD in pre-production, treat it as fixed scope, and then attempt to run Agile sprints against it. That is, structurally, waterfall. You&#8217;ve done the big upfront requirements work. The sprints are just execution phases with more meetings.</p><p>The conflict with Agile&#8217;s fourth value is direct: responding to change over following a plan. A fixed GDD is a plan. Running sprints against it while calling it Agile is a costume, not a method.</p><p>The tell is how the team reacts when playtesting reveals the design doesn&#8217;t work. If the response is &#8220;the GDD says we&#8217;re building this, so we keep building it and see what happens,&#8221; the team is leaning towards waterfall thinking. If the response is &#8220;the design needs to change, let&#8217;s update the backlog,&#8221; they&#8217;re working in a way that&#8217;s closer to Agile in practice, regardless of what the GDD says. The document&#8217;s existence is less important than whether the team treats it as responsive to new information.</p><p>This doesn&#8217;t mean scrapping the GDD. It means understanding what it&#8217;s for. A living design document that gets updated as the team learns is compatible with Agile. A frozen specification document is not, regardless of what you call the execution process.</p><h2>Scrum: what it actually is</h2><p>Scrum is a framework built on Agile principles. It&#8217;s what most studios mean when they say &#8220;we do Agile.&#8221; If you&#8217;re starting a production role, you&#8217;ll encounter it.</p><p>The core structure is the sprint: a fixed-length work cycle, typically two weeks. Each sprint has a goal, which is a statement of what the team intends to deliver by the end. The sprint backlog is the set of tasks the team commits to for that cycle. At the end, the team delivers something reviewable, reviews it, reflects on the process, and plans the next sprint.</p><p>The ceremonies Scrum specifies are five. Sprint planning: the team selects items from the product backlog, breaks them into tasks, and commits to a sprint goal. The daily standup: a short synchronisation meeting, fifteen minutes, where each person covers what they did yesterday, what they&#8217;re doing today, and what&#8217;s blocking them. Sprint review: the team demonstrates what was completed to stakeholders and collects feedback. Sprint retrospective: the team examines its own process, identifies what worked and what didn&#8217;t, and commits to at least one improvement. Backlog refinement: an ongoing activity where the product backlog is reviewed, estimated, and ordered so that the top items are always ready to sprint.</p><blockquote><p>The daily standup is a synchronisation tool for the team. The moment it becomes a reporting mechanism, you&#8217;ve changed what it&#8217;s for.</p></blockquote><p>The two key roles are the Product Owner, who owns the backlog and represents business priorities, and the Scrum Master, who facilitates the process and removes impediments. In game studios these roles often get blurred. I&#8217;ve covered the Product Owner role in <a href="https://gameproductionalchemist.substack.com/p/production-101-7-what-does-a-product">Production 101 #7</a>. The producer often fills some of the Scrum Master function, though studios handle this differently.</p><p>Velocity is Scrum&#8217;s primary planning metric. Story points are estimates assigned to backlog items. Velocity is the number of story points a team completes per sprint. Over time, velocity becomes a forecasting tool: if the team consistently delivers forty points per sprint, you can estimate roughly how many sprints a given backlog will take.</p><h2>Where Scrum breaks in game development</h2><p>Scrum&#8217;s assumptions about work break in several places in game development, and understanding where helps you adapt more deliberately.</p><p>The first problem is decomposition. Scrum works well on discrete, describable features: build the login screen, implement the inventory system, fix the physics interaction on item pickup. Those things have a definition of done that a team can agree on in advance. A weapon feel pass doesn&#8217;t. You know it when it feels right. Iterating toward a feeling isn&#8217;t the same process as building a specification, and forcing it into sprint stories produces either vague tickets that don&#8217;t mean anything or artificially precise ones that miss the point.</p><p>The second problem is cross-discipline cycles. Art, design, and engineering operate on different rhythms. A piece of concept art might take a day. A finished environment asset might take three weeks. A coded feature and the art that goes with it rarely align on the same sprint boundary. Scrum assumes relatively homogeneous team output. Game development rarely has it.</p><p>I&#8217;ve seen sprints where the art team finished their items by Wednesday and spent Thursday and Friday pulling unplanned work, while the engineering team was still mid-implementation on items they&#8217;d estimated as three-pointers. I&#8217;ve also seen the opposite: work that would have taken three days if anyone had started Monday, somehow consuming the full two weeks because the sprint boundary was the deadline and the deadline felt far away. Parkinson&#8217;s Law at sprint scale. Both patterns produce the same result: the sprint boundary becomes a fiction the team works around rather than a real commitment structure. At that point you&#8217;re tracking velocity but getting little planning value from it.</p><p>The third problem is the definition of done. In software, done often means shipped and running. In game development, done can mean: grey-boxed, art-complete, audio-complete, balance-complete, QA-signed-off, or any combination of those. A feature that&#8217;s code-complete but has placeholder art and no audio isn&#8217;t done in any player-facing sense. The &#8220;potentially shippable product&#8221; that Scrum promises at the end of each sprint is difficult to produce when disciplines are at different stages of completion on the same feature.</p><p>The estimation problem compounds all of this. Story points work reasonably well when teams estimate similar work repeatedly and can calibrate from history. Creative work resists this. The first level of a new game takes longer than the twentieth because the team is still discovering what the game is. Point estimation on creative unknowns introduces false precision into planning, and teams learn to game the estimates to avoid being held to numbers they couldn&#8217;t honestly give.</p><h2>Kanban as an alternative</h2><p>Kanban is a different mental model entirely. Where Scrum organises work into time-boxed sprints with committed goals, Kanban organises work as a continuous flow through a series of stages. There are no sprints, no velocity, and no sprint planning ceremonies. Items move through the board from backlog to done as capacity opens up.</p><p>The two Kanban principles that matter most are WIP limits and cycle time. WIP limits: each column on the board has a maximum number of items allowed. When a column is full, the team cannot pull more work; they focus on clearing what&#8217;s blocked. This surfaces blockages rather than hiding them behind new work. Cycle time: the measure of how long a given item takes to move from &#8220;started&#8221; to &#8220;done.&#8221; Over a large enough sample, cycle time becomes the forecasting tool that velocity is in Scrum, and it&#8217;s grounded in what actually happened rather than what was estimated.</p><p>Kanban fits certain kinds of game work better than Scrum. Live operations work is the clearest example: incoming demand is unpredictable, items range from critical bugs to minor content updates, and time-boxing the work into sprints creates artificial urgency and artificial boundaries. A live service team running Kanban can pull the highest-priority item whenever capacity opens, without waiting for the next sprint planning meeting.</p><blockquote><p>Kanban makes the work&#8217;s actual state visible. WIP limits mean a blocked item can&#8217;t be buried under new items. The board stops being a progress display and starts being a diagnostic tool.</p></blockquote><p>I covered the Kanban approach in more depth in <a href="https://gameproductionalchemist.substack.com/p/evolve-from-scrum-to-kanban-flow">Scrum Was Never the Right Tool for Game Development</a>. The practical summary: Kanban is better for work with unpredictable demand, for support tracks running alongside development, and for any stream where continuous flow matters more than sprint commitments.</p><h2>What most studios actually run</h2><p>The purist version of either framework is rare in practice. Most studios run something hybrid. The development team runs a Scrum-like sprint structure, with planning, standups, review, and retro on a two-week cadence. The live ops or support team runs a Kanban-like flow board, pulling work as capacity opens without sprint commitments.</p><p>This works because the two types of work actually have different natures. Development work, even when it resists decomposition, benefits from the regular rhythm of sprint ceremonies: planning forces prioritisation, review creates a forcing function for demonstrable progress, and retros give the team a structured moment to examine how they&#8217;re working. Live and support work benefits from flow: it shouldn&#8217;t have to wait for a sprint boundary to address an urgent player issue.</p><p>I&#8217;ve run this kind of hybrid on multiple projects. The key is making the two tracks visible to each other without forcing them onto the same cadence. The development team&#8217;s sprint calendar becomes a loose synchronisation point for the live ops team, useful for coordination but not for work planning. The most important thing is that both teams know which system they&#8217;re operating in and why. Teams that don&#8217;t know why they&#8217;re using a framework can&#8217;t make sensible adaptations when the framework doesn&#8217;t fit.</p><p>The producer&#8217;s role here is to make the system work, not to defend its purity. I&#8217;ve seen producers spend real energy arguing about whether a team is doing &#8220;true Scrum&#8221; or &#8220;real Kanban.&#8221; That energy is better spent asking whether the team can plan effectively, whether work is moving without unnecessary friction, and whether the system surfaces problems early enough to address them. If it does, the label doesn&#8217;t matter.</p><div><hr></div><h2>What you actually need to know</h2><p>If you&#8217;re starting a production role, here&#8217;s what you&#8217;ll encounter on day one and need to be able to operate.</p><p>You need to know how to run a sprint. That means facilitating sprint planning: helping the team identify what&#8217;s realistic for the sprint, checking that tasks are decomposed enough to be estimated, and making sure there&#8217;s an actual sprint goal rather than just a pile of tickets. It means keeping the sprint moving: attending standups, tracking blockers, escalating impediments that the team can&#8217;t resolve on their own. It means facilitating the sprint review so the team demonstrates what was built rather than just reporting on it, and running a retrospective that generates at least one real change.</p><p>You need to know how to manage a backlog. Backlog items should be ordered by priority, not by who asked loudest. Each item should be understood well enough that the team can estimate it. Refinement is ongoing: items at the top of the backlog should be ready to sprint, items further down can stay rough until they get closer. A backlog that hasn&#8217;t been refined in three weeks is a planning liability.</p><p>You need to know what a board is for. The board, whether it&#8217;s a physical wall or Jira or something else, is a model of the work&#8217;s current state. The value is in keeping it accurate. A board where items haven&#8217;t moved in two weeks is lying to you. Part of the producer&#8217;s job is making sure the board reflects reality rather than what the team wishes were true.</p><blockquote><p>The ceremonies and tools are learnable. What takes longer is developing the instinct for when the system is working and when it&#8217;s become a performance that the team has learned to go through without getting anything from it.</p></blockquote><p>The deeper framework debates can wait until you&#8217;ve run a few sprints and seen where the friction lives: whether Scrum&#8217;s sprint reviews should produce a potentially shippable increment, whether velocity should be shared outside the team, whether Kanban or Scrum fits better for a given workstream. Theory is useful, but it&#8217;s grounded by experience.</p><p>If you want to go further: the Scrum Guide is free, thirteen pages, and worth reading before you run your first sprint. Mike Cohn&#8217;s work on user stories and estimation is the standard reference for story points and backlog refinement. For Kanban, the Kanban Guide is the equivalent starting point. For the values underpinning all of it, the original Agile Manifesto is available at agilemanifesto.org and takes about five minutes to read.</p><p>None of that reading replaces doing it. The ceremonies make more sense once you&#8217;ve run them badly a few times and had to figure out why.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-12-agile-for-game/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/production-101-12-agile-for-game/comments"><span>Leave a comment</span></a></p><div><hr></div><p>The next post in the <a href="https://gameproductionalchemist.substack.com/p/production-101">Production 101</a> series covers milestone scheduling: how to build a production schedule that&#8217;s honest about uncertainty rather than one that looks confident in a spreadsheet but falls apart at the first milestone.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-12-agile-for-game?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-12-agile-for-game?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/production-101-12-agile-for-game?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Production 101 - #11 Roadmaps in Live Service]]></title><description><![CDATA[When the roadmap never ends, the work of keeping it honest never ends either]]></description><link>https://www.productionalchemist.com/p/production-101-11-roadmaps-in-live</link><guid isPermaLink="false">https://www.productionalchemist.com/p/production-101-11-roadmaps-in-live</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Sun, 31 May 2026 15:30:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!epId!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04c9457d-28c3-4245-a610-fd42704e4894_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>A live service roadmap is always in progress: near-term precision is possible, far-term precision is fiction.</p></li><li><p>The live ops roadmap has fixed calendar dates that create hard obligations absent from all other roadmap types.</p></li><li><p>Player-facing roadmaps should contain only things you would be comfortable having quoted back to you.</p></li><li><p>Slipping and reprioritising are different things; communicating them as though they are the same creates a blame culture around bad news.</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!epId!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04c9457d-28c3-4245-a610-fd42704e4894_1456x1048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!epId!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04c9457d-28c3-4245-a610-fd42704e4894_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!epId!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04c9457d-28c3-4245-a610-fd42704e4894_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!epId!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04c9457d-28c3-4245-a610-fd42704e4894_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!epId!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04c9457d-28c3-4245-a610-fd42704e4894_1456x1048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!epId!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04c9457d-28c3-4245-a610-fd42704e4894_1456x1048.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/04c9457d-28c3-4245-a610-fd42704e4894_1456x1048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2792396,&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://gameproductionalchemist.substack.com/i/199992504?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04c9457d-28c3-4245-a610-fd42704e4894_1456x1048.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_!epId!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04c9457d-28c3-4245-a610-fd42704e4894_1456x1048.png 424w, https://substackcdn.com/image/fetch/$s_!epId!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04c9457d-28c3-4245-a610-fd42704e4894_1456x1048.png 848w, https://substackcdn.com/image/fetch/$s_!epId!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04c9457d-28c3-4245-a610-fd42704e4894_1456x1048.png 1272w, https://substackcdn.com/image/fetch/$s_!epId!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04c9457d-28c3-4245-a610-fd42704e4894_1456x1048.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 role="img" 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><title></title><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></figure></div><p><em>Production 101 is a series for people entering or early in game production. This post continues from <a href="https://gameproductionalchemist.substack.com/p/production-101-10-producers-impact">#10 &#8212; Producers&#8217; Impact on Product Roadmaps</a>. | Next: <a href="https://gameproductionalchemist.substack.com/p/production-101-12-agile-game-producers">#12 &#8212; Agile for Game Producers</a> | <a href="https://gameproductionalchemist.substack.com/p/production-101">Series index</a></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>A boxed game has a roadmap that covers one arc: development, certification, launch. Then it&#8217;s done. The roadmap gets filed, the team either pivots to DLC or moves to the next project, and nobody has to revise Q3 at the same time as they&#8217;re shipping Q2.</p><p>Live service removes that clean ending. You are planning what comes next while operating what&#8217;s already live, and both of those things are happening at the same time. The roadmap is always in progress. The near end is being revised because the team is working on it; the far end is being revised because the business has changed since you last looked at it. There is no version of a live service roadmap that is finished. There are only versions that are current and versions that have fallen behind reality.</p><p>That rhythm takes some getting used to, particularly if you&#8217;ve spent your career in pre-release development. The deadline was the anchor. Everything on the roadmap pointed toward it, and when you shipped, the document had served its purpose. In live service, the absence of that anchor changes how you hold the far end of the roadmap. The further out a planned feature sits, the less you should trust the precision of its placement. The business will have changed by then in ways you can&#8217;t fully anticipate now.</p><h2>The perpetual roadmap</h2><p>In pre-release production, a ship date stabilises the roadmap over time. As you approach launch, the remaining work becomes concrete, the estimates tighten, and the roadmap starts to look like a real schedule. In live service, that stabilising force is absent. There is no converging point that forces the far end to sharpen.</p><p>What you have instead is a rolling window of precision. The next six to eight weeks are specific: features are scoped, the team is working on them, and the estimates are as reliable as they&#8217;re going to be. The following quarter is thematic: you know the shape of what&#8217;s coming but not the granular detail. Anything beyond that is directional. You know what kind of content the game needs and roughly when, but the specifics are genuinely undecided.</p><p>The live service producer learns to hold the near end tightly and the far end loosely. Tightly at the near end means specific commitments, real estimates, and clear accountability for delivery. Loosely at the far end means not treating a quarter-level label as equivalent to a finished scope. When someone on the team asks &#8220;are we building this?&#8221; and points to something eight months out on the roadmap, the honest answer is usually: probably, but we haven&#8217;t designed it yet. That honesty is better than false confidence.</p><blockquote><p>The live service roadmap is an argument for a sequence of decisions, not a record of decisions already made. The near end is nearly decided. The far end is an intention.</p></blockquote><p>The practical implication is that roadmap updates are a normal, recurring part of the job rather than an admission of failure. A roadmap that never changes is a roadmap nobody is maintaining. The question is how you update it in a way that keeps stakeholders oriented without making them feel like the team is making it up as it goes. That distinction between expected revision and unexpected slip matters, and I&#8217;ll come back to it in the section on updating the roadmap without losing credibility.</p><div><hr></div><h2>The live ops roadmap specifically</h2><p>What distinguishes the live ops roadmap from all the others is that it often has genuinely fixed dates, and fixed dates change the production stakes considerably.</p><p>A seasonal event can&#8217;t slip because the season happens whether the team is ready or not. The Halloween event is in October. A feature slipping from Q2 to Q3 on the tactical roadmap is a planning problem. The team is frustrated, the PM adjusts the slide, and life goes on. The Halloween event not shipping in October is a live failure with immediate player-facing consequences. You either ship it broken, cancel it publicly, or ship a reduced version and explain why. There is no quiet option.</p><p>This creates a specific problem around confidence levels. Items on a live ops roadmap vary widely in certainty, but from the outside they all look identical on a slide. Some content has already been built and is in QA. Some is planned and development has started. Some is aspirational, included because someone on the team wanted to see if it might fit the window. The third category is a wish. When marketing treats it like the first category, you have a live problem.</p><p>The producer&#8217;s job on the live ops roadmap is to make those confidence levels explicit and keep them current. Confidence changes as development progresses, so this requires active maintenance throughout the cycle. Downstream teams like marketing and community need to know about those changes in time to adjust their plans. A community team that has been building social content around an event that turns out to be aspirational has wasted time and will feel misled when the information reaches them.</p><blockquote><p>The producer is the person who catches this before it becomes a promise. That means being in the room when the live ops calendar is being drafted, not being consulted after it&#8217;s been locked.</p></blockquote><p>I&#8217;ve worked on live service titles where the live ops roadmap was driven almost entirely by community and marketing, with production consulted after the calendar was finalised. The result was a content plan that looked coherent on a slide and fell apart the moment you set it against actual capacity. The fix was getting production into the planning process before the dates were committed, not after. Once the marketing team has built a campaign around a date, that date has an owner outside the development team, and unpicking it is a much harder conversation than preventing it.</p><div><hr></div><h2>Player-facing roadmaps</h2><p>Players are a third audience that the internal roadmap was never designed to serve. The strategic roadmap is for executives. The tactical roadmap is for the development team. The live ops roadmap coordinates the people who operate the game. None of them, in their internal form, are appropriate to share with players, but studios publish player-facing roadmaps anyway, usually because the community is asking what&#8217;s coming.</p><p>The problem is that players read roadmaps differently from internal stakeholders. An executive reading a rough quarter-level commitment understands implicitly that this is directional planning. A player reading the same information reads a promise. Communities have long memories and track commitments carefully. A forum post from eight months ago, a Discord screenshot, a tweet quoting a roadmap slide: these resurface when something changes.</p><p>I&#8217;ve worked on games where we published quarterly content previews with what we thought was appropriate hedging: plans may change, this is subject to revision, nothing is confirmed. The hedging was invisible to most of the community. When something slipped, the response was consistent: &#8220;You promised this.&#8221; After enough of those conversations, the lesson was clear. The internal roadmap can be ambitious. The external one should contain only things you would be comfortable having quoted back to you in the worst possible context, six months from now, by someone who is already disappointed.</p><p>That means the player-facing roadmap should be shorter and more conservative than the internal version, and deliberately vaguer about timing. &#8220;Coming this season&#8221; is a safer commitment than &#8220;releasing in October.&#8221; A broad content theme is safer than a specific feature name if the design hasn&#8217;t been finalised. The goal is to give players a genuine signal about direction without locking in specifics that might change.</p><div><hr></div><h2>What belongs on a live service roadmap</h2><p>The things that belong on a live service roadmap are the things that have been agreed, estimated, and at least partially scoped. Features, events, content cadence, the seasonal calendar, and the dependency structure between features that need to ship before other features can start.</p><p>The things that don&#8217;t belong are estimates presented as certainties, work that hasn&#8217;t been scoped, and features that are still at the concept stage but have been given a quarter assignment to make them look planned. A roadmap that treats conceptual work and nearly-finished work as equivalent is presenting a false picture, and someone will eventually make a decision based on it.</p><blockquote><p>The test is simple: if this roadmap were leaked to a journalist tomorrow, what would embarrass you? Anything that would embarrass you probably shouldn&#8217;t appear as a confirmed commitment.</p></blockquote><p>The honest version of a live service roadmap distinguishes confidence levels explicitly. Some teams label items: in development, planned, under consideration. Others use a colour scheme. The specific system matters less than having one. What matters is that when a downstream team looks at the roadmap, they can tell the difference between a commitment and an intention. When that distinction is absent, everyone makes conservative assumptions, marketing builds campaigns around aspirational items, and the first slip creates disproportionate damage to trust. Making confidence levels visible is an accurate representation of how live service development actually works.</p><h2>Updating it without losing credibility</h2><p>A changing roadmap is the expected condition of live service. The question is how you communicate changes without making stakeholders feel that the team doesn&#8217;t know what it&#8217;s doing.</p><p>The distinction worth drawing clearly is between slipping and reprioritising. These are different events, and they carry different weight.</p><p>Slipping means something took longer than expected. The work was planned, the estimate was wrong, and the item is moving to a later window. This happens. Teams should communicate it early, explain why it happened, and give a revised target. Slipping the same item twice is a different conversation, one about whether the estimate was realistic or whether something more structural is wrong.</p><p>Reprioritising means the business changed its mind. A commercial opportunity emerged. Player data came back showing something different from what was expected. A competitor moved in a direction that changed what the game needed to do. In these cases, the original item has been deprioritised in favour of something the business judged more important. That conversation is usually easier to have, because it reflects a decision rather than a failure to deliver.</p><p>Conflating the two is where teams get into trouble. When &#8220;the PM changed the priorities&#8221; gets communicated as &#8220;we&#8217;re slipping,&#8221; the team learns that slipping is always attributed to someone, so nobody admits to it early. The producer who knows the estimate is wrong stays quiet for an extra two weeks hoping the team can recover. The PM who changed the priorities doesn&#8217;t correct the characterisation because it deflects blame away from the product decision. The eventual conversation is twice as bad as it needed to be.</p><blockquote><p>Slipping and reprioritising look similar on a slide. They feel completely different to the team. The producer&#8217;s job is to communicate which is which, and why.</p></blockquote><h2>The producer&#8217;s ongoing role</h2><p>In live service, the roadmap conversation never stops. New data arrives, the business responds to it, priorities shift, and the roadmap has to reflect that. The producer&#8217;s role is to make sure those changes are translated into delivery reality accurately.</p><p>That means showing up to every roadmap revision with an honest account of what the team can build in the next window given what&#8217;s already live and what&#8217;s already in flight. It means tracking the difference between the capacity that existed when the previous roadmap was committed and the capacity available now. Any item resting on an estimate made before the design was finished needs a flag, particularly if that estimate is what&#8217;s holding up someone else&#8217;s plan.</p><p>The producer who defers in those conversations to avoid an uncomfortable exchange does the PM no favours. The PM needs accurate delivery input to make good product calls. A PM who has been told that everything is on track when it isn&#8217;t will make commitments based on that false picture, and the damage appears downstream when the team can&#8217;t deliver what was promised. The short-term comfort of not raising the problem costs more than the discomfort of raising it early.</p><p>The <a href="https://gameproductionalchemist.substack.com/p/production-101-7-what-does-a-product">product manager&#8217;s role</a> in this dynamic is worth understanding in its own right, because the producer-PM relationship is where most of the productive tension in live service roadmapping lives. The producer brings delivery reality. The PM brings product judgement. Neither is sufficient alone.</p><div class="directMessage button" data-attrs="{&quot;userId&quot;:124206240,&quot;userName&quot;:&quot;Rob Sandberg&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p>The work itself doesn&#8217;t change between years one and five of a live game: you&#8217;re still updating the same roadmap, having the same capacity conversations, catching the same optimistic estimates before they become public commitments. What changes is that you build a track record for accuracy, and that track record is the thing that earns you the credibility to be heard early rather than consulted late. The producer who has never told an executive things were fine when they weren&#8217;t is the one who gets believed when they say something is actually fine. That trust compounds over time. It&#8217;s the only part of live service that gets easier.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-11-roadmaps-in-live?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/production-101-11-roadmaps-in-live?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/production-101-11-roadmaps-in-live?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Production Context Stack]]></title><description><![CDATA[The third layer most studios haven&#8217;t built yet.]]></description><link>https://www.productionalchemist.com/p/the-production-context-stack</link><guid isPermaLink="false">https://www.productionalchemist.com/p/the-production-context-stack</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Wed, 27 May 2026 07:02:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9m7b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37700dec-503d-4175-800a-cc310f05913e_1478x1064.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>AI adoption in games is at 36%. Durable results are at 5%. The gap is structural.</p></li><li><p>A production now has deliverables, process, and a Production Context Stack</p></li><li><p>The Production Context Stack is version-controlled, agent-readable, and maintained like any other critical project asset</p></li><li><p>Here&#8217;s what it consists of and how to start building one</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9m7b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37700dec-503d-4175-800a-cc310f05913e_1478x1064.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9m7b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37700dec-503d-4175-800a-cc310f05913e_1478x1064.png 424w, https://substackcdn.com/image/fetch/$s_!9m7b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37700dec-503d-4175-800a-cc310f05913e_1478x1064.png 848w, https://substackcdn.com/image/fetch/$s_!9m7b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37700dec-503d-4175-800a-cc310f05913e_1478x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!9m7b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37700dec-503d-4175-800a-cc310f05913e_1478x1064.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9m7b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37700dec-503d-4175-800a-cc310f05913e_1478x1064.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/37700dec-503d-4175-800a-cc310f05913e_1478x1064.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2419122,&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://gameproductionalchemist.substack.com/i/199298330?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37700dec-503d-4175-800a-cc310f05913e_1478x1064.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_!9m7b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37700dec-503d-4175-800a-cc310f05913e_1478x1064.png 424w, https://substackcdn.com/image/fetch/$s_!9m7b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37700dec-503d-4175-800a-cc310f05913e_1478x1064.png 848w, https://substackcdn.com/image/fetch/$s_!9m7b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37700dec-503d-4175-800a-cc310f05913e_1478x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!9m7b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37700dec-503d-4175-800a-cc310f05913e_1478x1064.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 role="img" 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><title></title><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></figure></div><p>The <a href="https://www.businesswire.com/news/home/20260129438528/en/2026-State-of-the-Game-Industry-Report-Reveals-Widening-Effect-of-Layoffs-Broader-Perspectives-on-Generative-AI-Unionization-Tariffs-and-More">GDC 2026 State of the Game Industry survey</a> found that 36% of game industry professionals already use generative AI in their daily work. A separate <a href="https://hartmanncapital.substack.com/p/the-ai-revolution-reshaping-gaming">Q3 2025 report on AI in gaming</a> found that only 5% of pilot AI projects actually reach production and generate real benefits.</p><p>That gap, between widespread adoption and durable results, is not a model problem. The models are good enough. The gap is structural.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>I&#8217;ve watched this pattern up close. Producers who&#8217;ve adopted AI have generally done the same thing: they&#8217;ve added it to how they already work. They reach for Claude when they need a first draft, use Copilot when they need code, paste a spec into ChatGPT for a second opinion. This produces results. It is not infrastructure.</p><p>The difference between a tool and an agent is context. A tool does what you ask. An agent does what you mean, but only if it understands your project, your naming conventions, your definition of done, your team structure, your art pipeline review stages. And here&#8217;s the problem: every session starts from zero. The agent knows nothing. You brief it again. You explain the ticket hierarchy. You describe the LiveOps calendar. You clarify what &#8220;approved&#8221; means in your pipeline. Every time.</p><p>That briefing cost is invisible until you add it up. Every session you spend re-deriving state that should already exist is a session you didn&#8217;t spend building. The producers getting compound returns from AI aren&#8217;t better at prompting. They&#8217;ve built the layer that makes re-briefing unnecessary.</p><p>That layer has a name. Most people building it haven&#8217;t given it one yet, which is part of why it keeps getting built in fragments rather than as a system.</p><div><hr></div><p><strong>The three layers</strong></p><p>Every game production has two layers that people can name without thinking. The first is deliverables: features, specs, assets, tickets, design documents: the actual output. The second is process: Kanban, ceremonies, reviews, handoffs, the system governing how deliverables get made and shipped.</p><p>The third layer is newer, and most studios don&#8217;t have it. Call it the Production Context Stack: the configuration and context you build around the model so an agent is productive in your specific production context.</p><blockquote><p>The Production Context Stack is infrastructure. Version-controlled, agent-readable, maintained like any other critical project asset.</p></blockquote><p>The distinction matters practically. Tools get bolted on. Infrastructure gets built in. A producer who opens Claude each morning and briefs it from scratch is using a tool. A producer whose agent loads the project constitution, inherits the domain rules, and picks up where yesterday&#8217;s session ended is working with infrastructure.</p><p>The gap between those two experiences compounds over time. The first producer gets faster answers to individual questions. The second gets a system that accumulates institutional knowledge, maintains consistent conventions, and applies domain expertise without being taught it again each session. The production itself becomes a training environment, not for the model, but for the configuration around it.</p><p>Most producers who&#8217;ve been building seriously with AI for more than six months have started forming the third layer without recognising it as a category. A prompts folder they version-control. A naming conventions doc they paste into every session. A shortlist of trusted instructions they&#8217;ve learned through trial and error and now treat as standing rules. These are proto-Production-Layer artefacts. They&#8217;re working. The gap is usually three things: the pieces aren&#8217;t connected, they&#8217;re not maintained on a deliberate schedule, and they&#8217;re not designed to be read by an agent rather than a human.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!q1SI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19065119-7e47-4cbe-b6de-2a0aeec6e719_1440x2080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!q1SI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19065119-7e47-4cbe-b6de-2a0aeec6e719_1440x2080.png 424w, https://substackcdn.com/image/fetch/$s_!q1SI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19065119-7e47-4cbe-b6de-2a0aeec6e719_1440x2080.png 848w, https://substackcdn.com/image/fetch/$s_!q1SI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19065119-7e47-4cbe-b6de-2a0aeec6e719_1440x2080.png 1272w, https://substackcdn.com/image/fetch/$s_!q1SI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19065119-7e47-4cbe-b6de-2a0aeec6e719_1440x2080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!q1SI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19065119-7e47-4cbe-b6de-2a0aeec6e719_1440x2080.png" width="429" height="619.6666666666666" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/19065119-7e47-4cbe-b6de-2a0aeec6e719_1440x2080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2080,&quot;width&quot;:1440,&quot;resizeWidth&quot;:429,&quot;bytes&quot;:345099,&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://gameproductionalchemist.substack.com/i/199298330?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19065119-7e47-4cbe-b6de-2a0aeec6e719_1440x2080.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_!q1SI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19065119-7e47-4cbe-b6de-2a0aeec6e719_1440x2080.png 424w, https://substackcdn.com/image/fetch/$s_!q1SI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19065119-7e47-4cbe-b6de-2a0aeec6e719_1440x2080.png 848w, https://substackcdn.com/image/fetch/$s_!q1SI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19065119-7e47-4cbe-b6de-2a0aeec6e719_1440x2080.png 1272w, https://substackcdn.com/image/fetch/$s_!q1SI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19065119-7e47-4cbe-b6de-2a0aeec6e719_1440x2080.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 role="img" 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><title></title><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></figure></div><p><strong>What the Production Context Stack consists of</strong></p><p>The layer has seven components. They don&#8217;t need to be built simultaneously, but they have dependencies: the usefulness of each increases as the others exist.</p><p><strong>1. Project Constitution</strong></p><p>The durable, authoritative instruction file the agent reads at the start of every session. Ground rules, team structure, naming conventions, standard operating procedures, and the hard rules governing how the orchestrator behaves.</p><p>Three properties matter here. First, it&#8217;s version-controlled alongside your deliverables, not stored in a notes app or held in someone&#8217;s head. Second, it&#8217;s loaded fresh every session: updating it immediately changes agent behaviour across all future runs, no redeployment or restart required. Third, it defines the orchestrator constraint: the top-level agent routes and delegates, but never does substantive work directly. That single rule keeps the context window clean and the outputs auditable.</p><p>Think of it as the answer to one question: if an agent joined this production today with no briefing, what would it need to know to work correctly?</p><p><strong>2. Domain Rules</strong></p><p>Standing instructions for specific contexts: how you write specs, how the art pipeline review process works, what &#8220;done&#8221; means for a ticket at each stage, your LiveOps vocabulary, your localisation conventions. A domain rules file is a reference file any agent inherits automatically when working on a relevant task.</p><p>The practical difference between domain rules and a prompt is maintenance. A prompt lives in your head or in a notes doc. A domain rules file lives in version control, gets reviewed when the project changes, and accumulates institutional knowledge over time. When a new producer joins the team, domain rules files are their onboarding documentation. The work of writing them down pays dividends twice.</p><p><strong>3. Specialist Definitions</strong></p><p>Each domain gets its own agent file: identity, role, procedures, reference material, and rules. Creating the file creates the capability. Your roster extends by adding markdown files.</p><p>Model tiering matters here and saves real money at scale. Complex multi-file work warrants the most capable model. Standard design, engineering, and research tasks run on a mid-tier model. Administrative work (roster management, metadata updates, ticket triage) runs on a faster, cheaper model. A production generating hundreds of agent calls per day sees this difference in cost immediately.</p><blockquote><p>The file is the hire. When you need a new specialist, you write their brief, and the capability exists.</p></blockquote><p>When a task requires expertise the roster doesn&#8217;t cover, the system can research and create a new specialist file without requiring you to touch the core infrastructure. The roster is designed to grow with the production.</p><p><strong>4. Coordination Layer</strong></p><p>Multi-agent work needs a mechanism for passing work between specialists and back to you. The simplest version is a folder structure: deliverables queued for your review in one location, files moving between agents in another, completed items archived in a third.</p><p>A hook on session start checks for new files in the review queue and injects an alert into the agent&#8217;s context if anything is waiting. This creates an async notification system without polling, without a database, without a framework. Durable, inspectable, and version-controlled in git.</p><p>The coordination layer is where most producers who build multi-agent setups eventually spend their design attention, because it&#8217;s where the workflow bottlenecks surface most clearly. When the layer works, work flows. When it doesn&#8217;t, the agent does the right task in the wrong order and you don&#8217;t find out until too late.</p><p><strong>5. Persistent Memory</strong></p><p>Every agent starts a new session cold. Persistent memory is what gives it continuity without a database.</p><p>Each specialist has its own memory directory: preferences, prior decisions, project state, feedback corrections. A project-level index loads at session start, giving the orchestrator recall across conversations. Memory is typed (user preferences, project state, accumulated feedback, reference data) and stored as markdown files with metadata. When a session approaches the context window limit, the system compresses prior turns into a structured summary. The following session loads that summary and resumes.</p><blockquote><p>A long workflow spanning multiple days progresses across sessions without the user re-briefing the system. That&#8217;s where the returns compound.</p></blockquote><p>This is the component that most clearly separates working with an agent from working with a tool. A tool has no memory. An agent with persistent memory has accumulated context about your project, your preferences, and the decisions you&#8217;ve made. The longer you run it, the less you have to explain.</p><p><strong>6. Tool Integrations</strong></p><p>Your project management tool, wiki, and design tool are connected so agents can call them directly at the level of intent rather than infrastructure. An agent working in your PM tool operates on named actions (edit issue, create issue, search by query, transition status) rather than REST endpoints. No HTTP client code, no authentication handling, and no entire class of implementation error.</p><p>The scale consequence matters. Because each edit-issue call is independent, a specialist can fire dozens of API calls in a single pass. Reparenting fifty tickets, updating components, resetting fix versions: operations that would take a human project administrator close to an hour run in under two minutes. The pattern generalises to any task composed of independent, idempotent API calls.</p><p><strong>7. Self-Extension</strong></p><p>The mechanism that lets the system grow without touching core infrastructure. A specialist whose function is hiring other specialists. When a task requires expertise the roster doesn&#8217;t cover, this agent runs a two-phase process: research brief, then approval, then creates the agent file, updates the team profile, and initialises the memory stub.</p><p>Most producers skip this component. It&#8217;s the one that separates a static setup from a system that learns. A production is not a fixed domain. It changes scope, adds disciplines, hits unexpected technical problems. The Production Context Stack needs to grow with it, and that growth should cost one approval, not an afternoon of configuration work.</p><div><hr></div><p><strong>Building it</strong></p><p>The instinct when reading a seven-component framework is to conclude it needs to be built all at once. It doesn&#8217;t.</p><p>Start with the Project Constitution. Get the ground rules, naming conventions, and process standards into one version-controlled file. Load it at the start of every session. That single change ends the re-briefing cycle for the most common context, your project&#8217;s identity, and starts the habit of treating your AI configuration as a maintained asset.</p><p>Add domain rules one context at a time. Start with the context where the agent gets things wrong most often. If it keeps misformatting your tickets, write a ticket rules file. If it consistently misses your spec structure, write a spec conventions file. Each file narrows the gap between what the agent produces and what your production requires.</p><p>Build the coordination layer when you add a second specialist. The folder structure takes an afternoon. The hook that injects review alerts takes another hour. Once it exists, the shape of multi-agent work becomes visible in a way it wasn&#8217;t before: you can see where work is, what&#8217;s queued, and what&#8217;s completed.</p><p>Persistent memory follows naturally. Once you have specialists and a coordination layer, memory is the next missing piece. It&#8217;s also the component with the longest return horizon: the first week, it saves you from re-explaining the same preference twice. After six months, the agent&#8217;s accumulated context of your project is a production asset in its own right.</p><p>Tool integrations come when you identify the manual task you do most often that an agent could run at scale. For most productions that&#8217;s ticket management. Connect your PM tool, write the intent-level instructions, and watch an afternoon of administrative work become a two-minute batch operation. Then find the next one.</p><p>Self-extension is the last thing to build, and the most optional. Most productions don&#8217;t need it until the roster is already working well. When you reach the point where you&#8217;re regularly creating new specialist files, automate the process.</p><div><hr></div><p><strong>Keeping it alive</strong></p><p>The Production Context Stack needs an owner and a review cadence.</p><p>Review it every three to six months, and after every major model release. Delete rules written for a previous model&#8217;s limitations. A more capable model doesn&#8217;t need the guardrails you built because the last one kept making a specific mistake. Dead rules accumulate fast, and they degrade performance: the agent spends attention on constraints that no longer apply.</p><p>A standing session review (what worked, what didn&#8217;t, what the constitution should say differently) handles continuous maintenance. One owner handles the scheduled reviews. Those two inputs together address the two failure modes: drift from model improvement and drift from project change.</p><p>Add a third trigger to the review calendar: policy changes. Your organisation&#8217;s AI usage policy will evolve. If you&#8217;re delivering work to external clients, their policies may impose additional constraints on which tools you use, which data enters the context, and which integrations are permitted. The Project Constitution is the right place to encode those constraints. Check both sets of requirements when you build, and treat a policy update the same as a model release: a reason to review.</p><div><hr></div><p><strong>The competitive picture</strong></p><p>The <a href="https://www.businesswire.com/news/home/20260129438528/en/2026-State-of-the-Game-Industry-Report-Reveals-Widening-Effect-of-Layoffs-Broader-Perspectives-on-Generative-AI-Unionization-Tariffs-and-More">GDC 2026 survey</a> found that around 30% of AAA studios now report using proprietary AI systems built on internal data and assets. Two years ago that number was much lower. The studios investing in proprietary infrastructure aren&#8217;t doing it because the models got better. They&#8217;re doing it because internal AI infrastructure encodes something external tools can&#8217;t replicate: your team&#8217;s conventions, your project&#8217;s domain, your accumulated decisions.</p><p>A <a href="https://aakashgupta.medium.com/2025-was-agents-2026-is-agent-harnesses-heres-why-that-changes-everything-073e9877655e">January 2026 analysis by Aakash Gupta</a> on the agent infrastructure landscape put it plainly: you can&#8217;t download this from a package repository. You have to build, test, fail, learn, and rebuild. The Production Context Stack is bespoke by definition. It gets more valuable the longer you maintain it. And it&#8217;s not transferable to your competition.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/the-production-context-stack/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/the-production-context-stack/comments"><span>Leave a comment</span></a></p><p>Developers understood this first. The pattern is clear enough now that producers can follow it deliberately, rather than arriving at it by accident after a year of expensive iteration.</p><p>The model is commodity. The Production Context Stack is not.</p><div class="pullquote"><p>One note: I didn't mention Claude Code by name in this post. That's deliberate. The Production Context Stack is harness-agnostic. The same architecture works with OpenAI Codex, Cursor, Windsurf, Gemini CLI, Copilot Workspace, or any other agent runtime that can read files and call tools. The stack is the advantage, not the choice of harness.</p></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/the-production-context-stack?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/the-production-context-stack?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/the-production-context-stack?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Agentic AI Needed a Producer. It Got One by Accident.]]></title><description><![CDATA[The Q&#8594;O&#8594;D&#8594;D&#8594;A protocol in Claude Code Game Studios is the governance layer the industry keeps forgetting to build]]></description><link>https://www.productionalchemist.com/p/agentic-ai-needed-a-producer-it-got</link><guid isPermaLink="false">https://www.productionalchemist.com/p/agentic-ai-needed-a-producer-it-got</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Mon, 25 May 2026 07:01:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CAV9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca99f138-6a6b-40e3-8946-ecd656065184_1478x1064.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>Claude Code Game Studios encodes a five-step collaboration protocol into every agent interaction: Question, Options, Decision, Draft, Approval</p></li><li><p>This is not a code safety mechanism. It is a production discipline, and the distinction matters more than the repo&#8217;s 16,000 stars suggest</p></li><li><p>The producer agent in the system is explicitly forbidden from making decisions. Its job is to quantify scope and surface trade-offs. That is textbook producer behaviour</p></li><li><p>Producers have been running this protocol by hand for thirty years. The question is why it took this long for someone to write it into an AI system</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CAV9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca99f138-6a6b-40e3-8946-ecd656065184_1478x1064.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CAV9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca99f138-6a6b-40e3-8946-ecd656065184_1478x1064.png 424w, https://substackcdn.com/image/fetch/$s_!CAV9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca99f138-6a6b-40e3-8946-ecd656065184_1478x1064.png 848w, https://substackcdn.com/image/fetch/$s_!CAV9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca99f138-6a6b-40e3-8946-ecd656065184_1478x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!CAV9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca99f138-6a6b-40e3-8946-ecd656065184_1478x1064.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CAV9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca99f138-6a6b-40e3-8946-ecd656065184_1478x1064.png" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ca99f138-6a6b-40e3-8946-ecd656065184_1478x1064.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2589546,&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://gameproductionalchemist.substack.com/i/198520000?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca99f138-6a6b-40e3-8946-ecd656065184_1478x1064.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_!CAV9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca99f138-6a6b-40e3-8946-ecd656065184_1478x1064.png 424w, https://substackcdn.com/image/fetch/$s_!CAV9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca99f138-6a6b-40e3-8946-ecd656065184_1478x1064.png 848w, https://substackcdn.com/image/fetch/$s_!CAV9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca99f138-6a6b-40e3-8946-ecd656065184_1478x1064.png 1272w, https://substackcdn.com/image/fetch/$s_!CAV9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca99f138-6a6b-40e3-8946-ecd656065184_1478x1064.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 role="img" 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><title></title><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></figure></div><p>A few days ago I wrote about <a href="https://gameproductionalchemist.substack.com/p/claude-code-game-studios-49-agents">Claude Code Game Studios</a>, a GitHub repo that appeared last week with 49 specialised AI subagents, 73 workflow skills, and a studio hierarchy that mirrors real game development. I spent most of that piece on where the architecture falls short: the context window, the false independence of parallel reviewers, the markdown-as-institutional-memory problem. All of that stands.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>What I didn&#8217;t have room to say is that the repo accidentally got something right that almost nobody in agentic AI is getting right. And the reason it got it right is that it was thinking like a producer without knowing that&#8217;s what it was doing.</p><div><hr></div><h2>The protocol</h2><p>Buried in the repo&#8217;s <code>docs/COLLABORATIVE-DESIGN-PRINCIPLE.md</code> is a five-step workflow that every agent must follow on every interaction:</p><p><strong>Question. Options. Decision. Draft. Approval.</strong></p><p>The agent asks clarifying questions before proposing anything. It presents two to four options with reasoning and trade-offs. The human decides. The agent drafts based on that decision. Nothing goes to file without explicit sign-off.</p><p>It is worth noting the structural similarity to <a href="https://en.wikipedia.org/wiki/OODA_loop">John Boyd's OODA loop</a>, the decision framework developed for fighter pilots: Observe, Orient, Decide, Act. The parallel is real, but the difference is the point. OODA assumes the observer and the decision-maker are the same person, moving fast under pressure. Q&#8594;O&#8594;D&#8594;D&#8594;A splits them deliberately. The agent observes, researches, and generates options. The human decides. That separation is not a limitation of the system. It is the system. Boyd was designing for a solo pilot in a cockpit. This protocol is designed for a producer with a team.</p><p>The README makes the principle explicit: &#8220;you still make every decision.&#8221; The <code>CLAUDE.md</code> configuration reinforces it: &#8220;Agents MUST ask &#8216;May I write this to [filepath]?&#8217; before using Write/Edit tools.&#8221; This is not a suggestion. It is a constitutional constraint baked into every agent definition in the system.</p><p>Most people reading the repo are treating this as a cautious engineering choice. It is not. The repo has plenty of those: automated checks that run on every commit, rules that block dangerous commands, validation scripts that fire whenever an asset gets changed. Those are developer instincts applied to agent behaviour, and they are sensible. The Q&#8594;O&#8594;D&#8594;D&#8594;A protocol is doing something different. It is not preventing bad code. It is preventing bad decisions from being made by the wrong party.</p><p>That is a production instinct.</p><div><hr></div><h2>The tell</h2><p>The producer agent in the CCGS system has a specific, hard-coded constraint that reveals everything about where this thinking came from.</p><p>It is forbidden from making design decisions. It is forbidden from making technical decisions. Its job, as written in the agent spec, is to &#8220;quantify the production impact in concrete terms&#8221; and &#8220;surface the conflict to the user with the scope implications clearly stated.&#8221; When the creative director and technical director disagree, the producer does not pick a side. It calculates how many sprints the disagreement will cost and puts the trade-off in front of the human.</p><blockquote><p>The producer does not resolve conflicts. It prices them.</p></blockquote><p>If you have worked in production, that sentence will land immediately. If you have not, it might read as a limitation. It is the opposite. The moment a producer starts resolving creative or technical conflicts instead of surfacing them, they have stopped being a producer and started being a bottleneck with a title. The CCGS producer agent is correct about its own role in a way that most descriptions of the producer role get wrong.</p><p>A developer who worried about AI agents going off-script would build automated validation. CCGS has that too, and it is clearly developer-authored. But a developer worried about AI agents going off-script would not think to write a rule that says &#8220;do not make the decision, price the decision and give it back to the human.&#8221; That is thirty years of production instinct encoded in a markdown file.</p><div><hr></div><h2>What happens when you skip it</h2><p>I follow something close to Q&#8594;O&#8594;D&#8594;D&#8594;A in my own Claude Code work, mostly by habit. I ask before I let it write. I push for options before I commit to a direction. I approve file writes explicitly.</p><p>I did not always do this, and I have paid for the gaps.</p><p>The worst version of skipping the protocol is not an agent that writes the wrong file. It is an agent that confidently continues from stale context. In one session, old data crept in without my noticing. The agent had picked up assumptions from an earlier state of the project and started elaborating on them. By the time I caught it, those assumptions had propagated through several connected decisions. The cost was not just undoing the work. It was unpicking the scope implications, identifying everything the stale assumption had touched, and re-running the reasoning from the point where the corruption entered.</p><p>That is a familiar failure mode for any producer. It is what happens when a decision gets made in the wrong room, or by the wrong person, and nobody catches it until three sprints later when the dependencies start complaining. The Q&#8594;O&#8594;D&#8594;D&#8594;A protocol exists precisely to stop that from happening. The Question phase is the checkpoint where stale assumptions get caught. Skip it, and you are running without gates.</p><blockquote><p>The question phase is the checkpoint where stale assumptions get caught. Skip it, and you are running without gates.</p></blockquote><p>The autonomy narrative in agentic AI treats human checkpoints as friction to be eliminated. More speed, fewer interruptions, less oversight. The problem is that the checkpoints are not slowing the work down. They are the mechanism by which the work stays aligned with what the human actually wants. Remove them, and you get faster output and worse decisions.</p><div><hr></div><h2>Why this is a producer problem</h2><p>The industry arrived at agentic AI from the developer side. When everything looks like a nail, the hammer is autonomy: how much can the agent do without asking, how far can it run before it needs a human. The Q&#8594;O&#8594;D&#8594;D&#8594;A protocol comes from a different trade entirely. The question it is answering is not how to reduce human input. It is how to protect the decisions that matter while still letting the agent handle the execution.</p><p>Producers have been thinking about that question since before AI was in the room. The whole job is managing the boundary between what the team executes and what the human with authority over the product decides. A producer who can answer the question &#8220;who approved this?&#8221; at any point in production is doing their job. A producer who cannot is not.</p><p>CCGS encodes that accountability in its agent architecture. Every write requires approval. Every direction change goes through a decision step. The <code>--review solo</code> flag that turns off director gates for a game jam is the production equivalent of &#8220;we&#8217;re in crunch, skip the full review, get it done.&#8221; The review intensity modes, full versus lean versus solo, are a recognition that the overhead of governance scales with the stakes of the work. That is not a developer&#8217;s model. Developers tend to want consistent standards regardless of context. Producers live in the trade-off space.</p><p>The implication is uncomfortable for a field that has mostly thought of producers as project managers with Jira access. If the most sophisticated agentic AI system currently available for game development had to solve its core governance problem by reaching for production thinking, then production thinking is not a soft skill adjacent to the real work. It is the architecture.</p><div><hr></div><h2>What this means now</h2><p>The CCGS repo has over 16,000 stars. The discussion in its wake, on GitHub, on LinkedIn, in the AI newsletters that picked it up, is almost entirely about the technical achievement: 49 agents, 73 skills, three engine specialist sets. The Q&#8594;O&#8594;D&#8594;D&#8594;A protocol gets mentioned as a feature of the collaboration model. It is not a feature. It is the load-bearing wall.</p><p>Remove the protocol, and what you have is a collection of well-named agents that will confidently produce output based on whatever they last understood about your project. That is a faster way to build the wrong thing. The protocol is what makes the structure meaningful rather than decorative.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/agentic-ai-needed-a-producer-it-got/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/agentic-ai-needed-a-producer-it-got/comments"><span>Leave a comment</span></a></p><p>For producers moving into agentic AI workflows, the lesson is not that CCGS is the right system to use. I went into the structural limitations of the current implementation in detail <a href="https://gameproductionalchemist.substack.com/p/claude-code-game-studios-49-agents">in a recent piece</a>. The lesson is that the governance layer, the thing that determines who decides what and when, is not secondary to the agent design. It is the agent design. The engineers will build the capability. The producers are the ones who know how to build the constraint.</p><p>That combination is what the current moment actually needs.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/agentic-ai-needed-a-producer-it-got?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/agentic-ai-needed-a-producer-it-got?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/agentic-ai-needed-a-producer-it-got?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[I Don’t Know What I’m Doing. That’s the Point.]]></title><description><![CDATA[What dyslexia, a terminal, and thirty years of game production taught me about using Claude Code]]></description><link>https://www.productionalchemist.com/p/i-dont-know-what-im-doing-thats-the</link><guid isPermaLink="false">https://www.productionalchemist.com/p/i-dont-know-what-im-doing-thats-the</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Thu, 21 May 2026 07:01:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!e0kW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c7df1ee-5e1a-4611-b8bb-963eed2a104e_1482x1061.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>How a non-technical, dyslexic game producer uses Claude Code as a serious daily tool</p></li><li><p>Why &#8220;explain this like I&#8217;m ten&#8221; is a power move, not an admission of failure</p></li><li><p>The screenshot as interface: treating error output like a bug report you can&#8217;t read</p></li><li><p>What you actually need to understand before agentic tools will work for you</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!e0kW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c7df1ee-5e1a-4611-b8bb-963eed2a104e_1482x1061.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!e0kW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c7df1ee-5e1a-4611-b8bb-963eed2a104e_1482x1061.png 424w, https://substackcdn.com/image/fetch/$s_!e0kW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c7df1ee-5e1a-4611-b8bb-963eed2a104e_1482x1061.png 848w, https://substackcdn.com/image/fetch/$s_!e0kW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c7df1ee-5e1a-4611-b8bb-963eed2a104e_1482x1061.png 1272w, https://substackcdn.com/image/fetch/$s_!e0kW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c7df1ee-5e1a-4611-b8bb-963eed2a104e_1482x1061.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!e0kW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c7df1ee-5e1a-4611-b8bb-963eed2a104e_1482x1061.png" width="1456" height="1042" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3c7df1ee-5e1a-4611-b8bb-963eed2a104e_1482x1061.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1042,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:979508,&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://gameproductionalchemist.substack.com/i/198388762?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c7df1ee-5e1a-4611-b8bb-963eed2a104e_1482x1061.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_!e0kW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c7df1ee-5e1a-4611-b8bb-963eed2a104e_1482x1061.png 424w, https://substackcdn.com/image/fetch/$s_!e0kW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c7df1ee-5e1a-4611-b8bb-963eed2a104e_1482x1061.png 848w, https://substackcdn.com/image/fetch/$s_!e0kW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c7df1ee-5e1a-4611-b8bb-963eed2a104e_1482x1061.png 1272w, https://substackcdn.com/image/fetch/$s_!e0kW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c7df1ee-5e1a-4611-b8bb-963eed2a104e_1482x1061.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 role="img" 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><title></title><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></figure></div><p>When I write about Claude Code, I probably sound like someone who has a home server running Arch Linux and strong opinions about package managers. I want to set the record straight. I don&#8217;t know what Arch Linux is. I have no opinions about package managers. I have used a terminal for eighteen months and I remain, at best, an unreliable tenant.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>I am a game producer. I have been one for thirty years. I have shipped over twenty free-to-play titles, built production systems for studios with hundreds of people, and spent more time thinking about flow metrics and delivery cadence than most people consider healthy. I am not a developer. And I have dyslexia.</p><p>I mention both of those things together because they interact. Dyslexia is not, for me, primarily a reading problem. It is a processing problem. When I look at a wall of monospace text in a console window, my brain does not parse it the way yours might. Error messages, stack traces, dependency warnings. They blur. The structure disappears. I can read the individual words and still not extract what the text is telling me.</p><p>That is the starting point. Not a barrier I overcame. Just the context.</p><div><hr></div><p>About <a href="https://www.dyslexiauk.co.uk/how-common-are-dyslexia-and-dyscalculia-in-the-uk-updated-2024/">10% of the UK population is dyslexic</a>. Around <a href="https://www.prodyslexic.com/post/20-shocking-stats-that-reveal-the-truth-about-dyslexia-in-the-uk">73% of dyslexic employees have never received formal support at work</a>. That second number does not surprise me. Dyslexia is one of those conditions that companies acknowledge in their inclusion policies and then forget about the moment the work is actually happening. The support that exists is mostly designed around documents and communication, not around the specific texture of technical work.</p><p>Claude Code is not designed as an accessibility tool. But for me, it functions as one.</p><p>Here is what my working session with Claude Code actually looks like.</p><p>I have a project running. Something goes wrong, or I need to do something I have not done before, or a process I kicked off produces output I cannot interpret. My first move is a screenshot. I take a picture of whatever is on my screen and I paste it into Claude Code. Then I write: &#8220;This is what I see. I don&#8217;t understand it.&#8221; That is the whole message. Sometimes I add: &#8220;What do I do next?&#8221;</p><p>That is not a workaround. That is my interface.</p><p>The screenshot as communication method probably sounds primitive to a developer. It is, in some ways. But it is precise. I am not trying to describe what I am seeing and introducing translation errors. I am showing it directly. Claude Code can read the screen. It tells me what the error means, what caused it, and what I should do. Then I do that thing. If I do not understand the instruction, I ask again.</p><blockquote><p>&#8220;Read me step one like I&#8217;m a ten-year-old.&#8221;</p></blockquote><p>I say this regularly. I say it without embarrassment. Because &#8220;explain it simply&#8221; is not a confession of stupidity. It is the most efficient path through confusion when you are stuck and time matters. The developers who pride themselves on wrestling with documentation and figuring it out the hard way are doing something admirable and something slow. I am not there to be admirable. I am there to ship.</p><p>Between Claude Code and the console, my role is cut and paste. I take the output from the console, paste it in. I take what Claude Code tells me to run, paste it into the console. I am the messenger. This is not an embarrassing admission. The reasoning is happening. The work is getting done. My value is not in my ability to memorise terminal syntax. It is in my ability to understand what I am building, why it should work, and what to do when it does not.</p><div><hr></div><p>None of this means I skipped the foundations. I took the time, early on, to understand what these tools actually are.</p><p>What is a terminal? What is an agent? What is the difference between a model and a tool? Why does Claude Code need access to my file system? What happens when I run a command? I did not need to understand the implementation. But I needed to understand the concept well enough that I could make good decisions. That investment is not optional. You cannot successfully direct a tool you have no model of.</p><p>This is the line I think a lot of people miss. The promise of AI coding tools sometimes gets framed as: you do not need to understand anything, just talk to it. That is wrong. You need to understand the shape of what you are building. You need to know when something has gone sideways, even if you cannot diagnose it yourself. What you do not need is fluency in the syntax.</p><p>Those are different things.</p><p>I have built content generation pipelines, archive processing systems, project management integrations, and game prototypes, all using Claude Code as my primary development tool. None of those projects started as technical projects. They started as ideas I understood well enough to articulate. Claude Code handled the rest, with me asking questions at every stage and feeding error output back in whenever it appeared.</p><p><a href="https://www.crossrivertherapy.com/research/dyslexia-statistics">People with dyslexia have a 60% greater chance of connecting ideas through alternative methods</a>, according to some research. I do not know if that is me. But I do know that my instinct, when faced with something I cannot read, is to find another way to communicate it. The screenshot. The plain-English question. The &#8220;explain it to me simply&#8221; request that developers sometimes feel is beneath them.</p><p>Those are not workarounds. They are methods.</p><div><hr></div><p>Claude Code&#8217;s actual superpower, the one nobody writes about in the launch posts, is patience. It does not get frustrated when you paste the same error three times. It does not assume you know what it meant the first time. It does not care if your question has a typo in it. It adjusts when you tell it you did not follow.</p><p>For someone who has spent thirty years in environments that were not built for how my brain works, that is not a small thing.</p><p>I am not suggesting that Claude Code is a perfect accessibility tool, or that it solves the problems dyslexic professionals face at work. It does not. Most of those problems are structural, and they sit well above what any software can fix.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/i-dont-know-what-im-doing-thats-the?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/i-dont-know-what-im-doing-thats-the?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p>But I am saying this: if you have been looking at Claude Code and thinking it is for developers, or for people who are more technical than you, you have misread the situation. The thing that makes it work is not syntax knowledge. It is the willingness to ask the question, however simple the question sounds, and to keep asking until you understand the answer.</p><p>I have been doing that for thirty years in meetings, reviews, and postmortems. The terminal is just a new room to do it in.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/i-dont-know-what-im-doing-thats-the?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/i-dont-know-what-im-doing-thats-the?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/i-dont-know-what-im-doing-thats-the?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[100 Articles]]></title><description><![CDATA[Thank you!]]></description><link>https://www.productionalchemist.com/p/100-articles</link><guid isPermaLink="false">https://www.productionalchemist.com/p/100-articles</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Wed, 20 May 2026 10:58:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!f-9-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b37203-0827-4a38-990f-eba13d8f4536_1477x1065.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!f-9-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b37203-0827-4a38-990f-eba13d8f4536_1477x1065.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!f-9-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b37203-0827-4a38-990f-eba13d8f4536_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!f-9-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b37203-0827-4a38-990f-eba13d8f4536_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!f-9-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b37203-0827-4a38-990f-eba13d8f4536_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!f-9-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b37203-0827-4a38-990f-eba13d8f4536_1477x1065.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!f-9-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b37203-0827-4a38-990f-eba13d8f4536_1477x1065.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/28b37203-0827-4a38-990f-eba13d8f4536_1477x1065.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2402024,&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://gameproductionalchemist.substack.com/i/198540616?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b37203-0827-4a38-990f-eba13d8f4536_1477x1065.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_!f-9-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b37203-0827-4a38-990f-eba13d8f4536_1477x1065.png 424w, https://substackcdn.com/image/fetch/$s_!f-9-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b37203-0827-4a38-990f-eba13d8f4536_1477x1065.png 848w, https://substackcdn.com/image/fetch/$s_!f-9-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b37203-0827-4a38-990f-eba13d8f4536_1477x1065.png 1272w, https://substackcdn.com/image/fetch/$s_!f-9-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28b37203-0827-4a38-990f-eba13d8f4536_1477x1065.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 role="img" 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><title></title><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></figure></div><p>I genuinely did not think I would get here. A few months ago I thought I was done with this. I stepped away, told myself I had run out of things to say, and half-expected not to come back.</p><p>I was wrong.</p><p>I am back now, and I have more energy for this than I have had at any point since I started. There is a lot more to write.</p><p>To those of you who have been here from the beginning: I see you. You stayed when the readership was tiny and the posts were rough. That meant more than you probably know.</p><p>To everyone who has joined along the way: glad you are here too.</p><p>This newsletter has always been a conversation, even when it felt like I was writing into the void. If something lands, or frustrates you, or sparks an idea, say so. Comment, reply to this email, reach out directly. I read everything.</p><p>Here is to the next hundred.</p><p>Rob</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Claude Code Game Studios: 49 Agents, One Context Window]]></title><description><![CDATA[The most structured attempt I&#8217;ve seen at agentic game production. Here&#8217;s what that reveals.]]></description><link>https://www.productionalchemist.com/p/claude-code-game-studios-49-agents</link><guid isPermaLink="false">https://www.productionalchemist.com/p/claude-code-game-studios-49-agents</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Tue, 19 May 2026 08:46:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!W3MJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ec7a89-8d79-4b97-acd7-419b99eb49b3_1478x1064.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>The project organises 49 Claude Code subagents into a three-tier studio hierarchy that mirrors how real game teams actually work</p></li><li><p>Its director gate system, path-scoped coding rules, and review intensity modes solve genuine coordination problems in intelligent ways</p></li><li><p>But all 49 agents share one session context, session memory is a markdown file, and parallel &#8220;independent&#8221; reviewers are the same model running different prompts</p></li><li><p>Understanding the gap between the architecture&#8217;s ambition and its constraints tells you something useful about where agentic AI actually sits right now</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W3MJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ec7a89-8d79-4b97-acd7-419b99eb49b3_1478x1064.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W3MJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ec7a89-8d79-4b97-acd7-419b99eb49b3_1478x1064.heic 424w, https://substackcdn.com/image/fetch/$s_!W3MJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ec7a89-8d79-4b97-acd7-419b99eb49b3_1478x1064.heic 848w, https://substackcdn.com/image/fetch/$s_!W3MJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ec7a89-8d79-4b97-acd7-419b99eb49b3_1478x1064.heic 1272w, https://substackcdn.com/image/fetch/$s_!W3MJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ec7a89-8d79-4b97-acd7-419b99eb49b3_1478x1064.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W3MJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ec7a89-8d79-4b97-acd7-419b99eb49b3_1478x1064.heic" width="1456" height="1048" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a2ec7a89-8d79-4b97-acd7-419b99eb49b3_1478x1064.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1048,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:199457,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://gameproductionalchemist.substack.com/i/198378980?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ec7a89-8d79-4b97-acd7-419b99eb49b3_1478x1064.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!W3MJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ec7a89-8d79-4b97-acd7-419b99eb49b3_1478x1064.heic 424w, https://substackcdn.com/image/fetch/$s_!W3MJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ec7a89-8d79-4b97-acd7-419b99eb49b3_1478x1064.heic 848w, https://substackcdn.com/image/fetch/$s_!W3MJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ec7a89-8d79-4b97-acd7-419b99eb49b3_1478x1064.heic 1272w, https://substackcdn.com/image/fetch/$s_!W3MJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ec7a89-8d79-4b97-acd7-419b99eb49b3_1478x1064.heic 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 role="img" 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><title></title><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></figure></div><p>A GitHub repo called Claude Code Game Studios appeared about a week ago. By the time I found it, it had 16,000 stars and 2,400 forks. The pitch is direct: one Claude Code session, 49 specialised AI subagents, 73 workflow skills, a studio hierarchy mirroring real game development. Directors at the top, department leads in the middle, specialists at the bottom. Creative director guards the vision. Technical director owns the architecture. Producer coordinates across departments. Gameplay programmers implement stories. QA lead signs things off.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>I spent some time reading the repo carefully, not the README, but the actual implementation: the agent definitions, the skill workflows, the hooks, the director gate system, the coordination rules. It&#8217;s worth the time. The project is doing something genuinely interesting, and the places where it falls short reveal as much as the places where it works.</p><div><hr></div><h2>What&#8217;s actually there</h2><p>The structure is clean. Agents are defined as markdown files with YAML frontmatter, carrying a name, description, permitted tools, model tier assignment, and a detailed system prompt. The three-tier hierarchy is real, not decorative. Directors run on Opus. Leads and specialists run on Sonnet. Read-only status checks get Haiku. That tiering reflects an actual cost/capability trade-off rather than a cosmetic decision.</p><p>The 73 skills are slash commands, each with their own SKILL.md file defining a multi-phase workflow. <code>/dev-story</code> is a good example to read in detail. It loads a story file, cross-references it against a technical requirements registry, finds the governing Architecture Decision Record, checks the control manifest for the story&#8217;s layer, validates dependencies, checks for manifest version staleness, routes to the right programmer agent based on story type and layer, spawns an engine specialist as a secondary agent when risk is flagged as high, collects results, and updates session state. That&#8217;s a serious piece of workflow design. It isn&#8217;t just &#8220;ask Claude to write some code.&#8221;</p><p>The director gate system is where the project gets genuinely clever. Rather than embedding gate prompts inside individual skills, it maintains a single <code>director-gates.md</code> reference with named gates: <code>CD-PILLARS</code>, <code>TD-ARCHITECTURE</code>, <code>PR-SPRINT</code>, <code>QL-STORY-READY</code>, and so on. Skills reference gates by ID. The Creative Director, spawned via a Task subagent, returns a structured verdict on its own line, <code>[GATE-ID]: APPROVE</code> or <code>[GATE-ID]: CONCERNS</code>, because the calling skill reads that line programmatically rather than parsing prose. That is tidy engineering.</p><p>The review intensity system shows genuine production thinking. Three modes: <code>full</code> (every director gate active at every step), <code>lean</code> (phase gates only, skip per-skill gates), <code>solo</code> (no gates, maximum speed). You set it once in a text file, override it per-run with a flag. A game jam does not need the same overhead as a pre-production milestone review. The project knows this and accounts for it.</p><p>Path-scoped coding rules are another quiet win. The rules directory contains eleven separate files, each scoped to a specific path pattern. <code>gameplay-code.md</code> enforces data-driven values, delta-time usage, no direct UI references. <code>prototype-code.md</code> relaxes everything and just requires a README with a documented hypothesis. These rules fire automatically when an agent edits files in the relevant directories. You do not have to remember to invoke them.</p><p>The collaboration protocol is the right instinct for agentic work: agents must ask &#8220;May I write this to [filepath]?&#8221; before any write operation. They must show drafts before requesting approval. Multi-file changes require explicit sign-off for the full changeset. The README puts it plainly: &#8220;you still make every decision.&#8221; In a year when agentic tools have repeatedly surprised developers by doing more than expected, encoding human-in-the-loop approval at the architectural level is the correct call.</p><div><hr></div><h2>Where it hits the wall</h2><p>The context window is the problem that does not get solved.</p><p>The <code>/dev-story</code> skill asks Claude to simultaneously load: the story file, the TR registry at <code>docs/architecture/tr-registry.yaml</code>, the governing ADR, the control manifest, engine preferences, and the engine version reference. Then it spawns a programmer agent via Task, which carries its own context budget. If engine risk is flagged high, it spawns an engine specialist as a secondary. A medium-complexity game project will have a GDD for every system, multiple ADRs, a growing TR registry, and a growing epic/story directory. The context will compress constantly. The project ships <code>pre-compact.sh</code> and <code>post-compact.sh</code> hooks, and there&#8217;s an <code>active.md</code> session state file, but a markdown file is thin institutional memory for a system of this complexity.</p><p>This is not a criticism of the project specifically. It is the fundamental constraint every multi-agent Claude Code system faces right now. The project at least acknowledges it with the compaction hooks. But it does not solve it, and the skill workflows do not account for what degrades when context gets compressed mid-session.</p><blockquote><p>Agents that ask before writing, show drafts before committing, and surface blockers before ploughing through them, are safer to work with than agents that sprint.</p></blockquote><p>The second problem is the independence of parallel reviewers.</p><p>The director gate system is designed so that the Creative Director and Technical Director review a design simultaneously and independently, with the strictest verdict winning. In a real studio, that catches real errors, because the creative director has genuinely different knowledge, intuitions, and blind spots from the technical director. Here, both agents are the same model running different system prompt priming on the same session context. They share latent biases. They have read the same documents. A creative director spawned from Claude Sonnet and a technical director spawned from Claude Sonnet, both reading the same GDD in the same session, will not give you the same quality of independent review that two humans in different disciplines give you. They will probably catch formal and structural errors well. They will not reliably catch the errors that require genuinely different institutional knowledge.</p><p>The session memory problem is related. The project has a single <code>MEMORY.md</code> file in <code>.claude/agent-memory/lead-programmer/</code>. One file, for one agent, covering the entire project history. The creative director&#8217;s opinion about your crafting system from session four does not exist in session eight unless someone wrote it down correctly in session four. The producer&#8217;s risk log is only as good as what the producer wrote to disk before the session ended. Real studios carry institutional memory in human heads, in culture, in the relationships between people who have shipped things together. This system carries it in markdown files that agents read at session start. That is not nothing, but it is also not a studio.</p><blockquote><p>Real studios carry institutional memory in human heads, in culture, in the relationships between people who have shipped things together. This system carries it in markdown files.</p></blockquote><p>The third problem is the maintenance burden on the person the system is supposed to help.</p><p>The project targets solo and indie developers. The README says as much. But the system it delivers has 49 agent definitions, 73 skills with multi-phase SKILL.md workflows, 12 hooks, 11 rules, 41 document templates, three engine reference directories (Godot, Unity, Unreal) each with module-by-module API notes and deprecation logs, and an UPGRADING.md for managing migration between versions. Who maintains the engine reference docs when Godot 4.6 ships something relevant? Who keeps the 73 SKILL.md files accurate as Claude Code&#8217;s capabilities change? Who runs <code>/skill-improve</code> and <code>/skill-test</code> across the full catalog regularly?</p><p>A solo developer who lacks production discipline, which is the person this system is designed for, now has a meta-production system to maintain on top of the game they are trying to build.</p><blockquote><p>The Microsoft Project problem, applied to Claude Code. The planning tool becomes the project.</p></blockquote><div><hr></div><h2>What genuine value remains</h2><p>Here is what I think the project actually delivers, as opposed to what it claims.</p><p>For a developer who has never worked in a structured production environment, the template provides a forcing function. The GDD templates are well-structured. The story lifecycle, readiness check into implementation into code review into story done, mirrors a real workflow. The <code>design/</code>, <code>docs/</code>, <code>production/</code>, <code>src/</code> directory structure enforces separation between the game design artefacts and the code. The <code>/gate-check</code> command at phase transitions is a real accountability moment, even if the reviewers are not truly independent.</p><p>The collaboration protocol is valuable in ways that go beyond gate theatre. Agents that ask before writing, show drafts before committing, and surface blockers before ploughing through them, are safer to work with than agents that sprint. The explicit <code>--review solo</code> mode for game jams is practical. The path-scoped rules that apply different standards to <code>prototypes/</code> versus <code>src/</code> are the right model for how coding standards should work in a game project.</p><p>The engine knowledge gap documentation is addressing a real problem. Claude&#8217;s training cutoff means it does not know whether a Godot API changed in the last release, or whether a Unity plugin deprecated a key function. The engine reference directory, with version numbers and a knowledge cutoff acknowledgment per engine, is the right shape of solution even if the manual maintenance burden is significant.</p><p>The project has over 16,000 GitHub stars five days after launch. That is signal. The idea of structured agentic game production is clearly resonating with people who have hit the limits of open-ended vibe-coding on a big project and want something with more scaffolding. The hunger for this kind of structure is real.</p><div><hr></div><h2>What this tells you about agentic AI right now</h2><p>Claude Code Game Studios is worth studying not because it fully works, but because it is one of the most honest attempts I have seen at mapping what agentic AI can currently do in a complex creative production context.</p><p>It works where structure provides value regardless of whether the agents are truly independent: forcing documentation, enforcing coding standards by path, creating a collaboration protocol that requires human approval. These things help even if the underlying model is the same in every agent.</p><p>It strains where the gap between the metaphor and the mechanism is largest: context that collapses under the weight of a real project, reviewers who share more than they should, memory that lives in files that have to be managed. These are constraints of where the technology sits in mid-2026, not permanent features of the architecture.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/claude-code-game-studios-49-agents/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/claude-code-game-studios-49-agents/comments"><span>Leave a comment</span></a></p><p>The project&#8217;s ambition is running slightly ahead of the tools. That is not unusual. The interesting question is whether the structure it imposes now, while the tools are still catching up, produces better games than the alternative. My guess is that for a certain kind of developer on a certain kind of project, it probably does. For others, the meta-system overhead will outpace the benefit.</p><p>The only way to find out is to ship something with it.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/claude-code-game-studios-49-agents?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/claude-code-game-studios-49-agents?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/claude-code-game-studios-49-agents?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[98% of the Work Has Nothing to Do With AI]]></title><description><![CDATA[Producers have been doing 98% of this work since before AI was in the conversation.]]></description><link>https://www.productionalchemist.com/p/98-of-the-work-has-nothing-to-do</link><guid isPermaLink="false">https://www.productionalchemist.com/p/98-of-the-work-has-nothing-to-do</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Wed, 13 May 2026 07:00:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!L1K1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2567232-c7e6-4549-a425-9be572872d0f_1456x1040.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>Researchers who tore apart Claude Code&#8217;s source code found it&#8217;s 98.4% deterministic infrastructure and 1.6% AI decision logic</p></li><li><p>In March 2026, Claude Code degraded for six weeks. The model didn&#8217;t change. Three infrastructure changes did.</p></li><li><p>The producer&#8217;s job has always been this ratio: build the conditions for good decisions, not make every decision yourself</p></li><li><p>The producers building the surrounding system are running a fundamentally different operation to those still prompting</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L1K1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2567232-c7e6-4549-a425-9be572872d0f_1456x1040.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L1K1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2567232-c7e6-4549-a425-9be572872d0f_1456x1040.png 424w, https://substackcdn.com/image/fetch/$s_!L1K1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2567232-c7e6-4549-a425-9be572872d0f_1456x1040.png 848w, https://substackcdn.com/image/fetch/$s_!L1K1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2567232-c7e6-4549-a425-9be572872d0f_1456x1040.png 1272w, https://substackcdn.com/image/fetch/$s_!L1K1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2567232-c7e6-4549-a425-9be572872d0f_1456x1040.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L1K1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2567232-c7e6-4549-a425-9be572872d0f_1456x1040.png" width="1456" height="1040" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2567232-c7e6-4549-a425-9be572872d0f_1456x1040.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1040,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2361969,&quot;alt&quot;:&quot;&quot;,&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://gameproductionalchemist.substack.com/i/196088632?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2567232-c7e6-4549-a425-9be572872d0f_1456x1040.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!L1K1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2567232-c7e6-4549-a425-9be572872d0f_1456x1040.png 424w, https://substackcdn.com/image/fetch/$s_!L1K1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2567232-c7e6-4549-a425-9be572872d0f_1456x1040.png 848w, https://substackcdn.com/image/fetch/$s_!L1K1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2567232-c7e6-4549-a425-9be572872d0f_1456x1040.png 1272w, https://substackcdn.com/image/fetch/$s_!L1K1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2567232-c7e6-4549-a425-9be572872d0f_1456x1040.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 role="img" 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><title></title><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></figure></div><p>Researchers at Mohamed bin Zayed University of AI just published a <a href="https://zhiqiangshen.com/projects/Claude_Code_Report/Claude_Code_Report.pdf">46-page teardown of Claude Code&#8217;s TypeScript source</a>. They counted what&#8217;s actually in there. The model, the AI reasoning layer, the part that actually &#8220;thinks&#8221;? That&#8217;s 1.6% of the codebase. The remaining 98.4% is deterministic infrastructure: permission gates, context pipelines, compaction layers, recovery logic, tool routing.</p><p>That number lands differently if you&#8217;re a producer.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2>What surrounds the model</h2><p>The 98.4% has a name. In agent system design, it&#8217;s called the harness. It&#8217;s everything that surrounds the model: the structures that determine what information the AI sees, what actions it&#8217;s permitted to take, what happens when something goes wrong, and how the system recovers without interrupting the human.</p><p>In Claude Code, the model never directly touches the filesystem. It never runs a shell command on its own authority. Every action it proposes passes through layers of deterministic infrastructure first. Permission rules. Safety classifiers. Sandboxing. Context management pipelines that run five separate compression strategies before every model call, each cheaper than the last, escalating only when the previous layer wasn&#8217;t enough.</p><p>The model reasons. The surrounding system enforces, routes, recovers, and manages constraints. The researchers described the design philosophy plainly: the harness creates conditions under which the model can decide well, rather than constraining its choices.</p><p>That sentence is worth sitting with.</p><p>Because the inverse is also true. A badly designed surrounding system creates conditions under which even a capable model decides poorly. The model is not the variable. The infrastructure is.</p><h2>When the surrounding system breaks</h2><p>In April 2026, Anthropic published a <a href="https://www.anthropic.com/engineering/april-23-postmortem">postmortem</a> explaining why Claude Code had felt noticeably worse for the previous six weeks. Users across GitHub and Reddit described what they called &#8220;AI shrinkflation.&#8221; The model felt less intelligent, more repetitive, prone to choosing the simplest fix rather than the correct one.</p><p>The model hadn&#8217;t changed. Three infrastructure changes had.</p><p>On 4 March, Anthropic lowered Claude Code&#8217;s default reasoning effort from high to medium to reduce UI latency. On 26 March, a caching bug caused the model&#8217;s reasoning history to be wiped on every subsequent turn instead of just once after an hour of inactivity. On 16 April, a system prompt addition capping responses at 25 words between tool calls caused a measurable drop in coding quality. Three separate infrastructure decisions. None of them touched the model. All of them changed what users experienced as the model&#8217;s intelligence.</p><p>Because each change affected a different slice of traffic on a different schedule, the aggregate effect looked like broad, inconsistent degradation. Users blamed themselves. Wrong prompts, wrong approach. One AMD engineer published an <a href="https://github.com/anthropic/claude-code/issues/42796">exhaustive audit</a> of 6,852 Claude Code session files and 234,000 tool calls, documenting that reasoning depth had collapsed. Third-party benchmarks measured Opus 4.6&#8217;s accuracy dropping from 83.3% to 68.3%. Anthropic&#8217;s ranking among production coding models fell from second to tenth. The raw API, hitting the model directly without the Claude Code layer, was unaffected throughout.</p><blockquote><p>The model was fine. What surrounded it wasn&#8217;t.</p></blockquote><p>This is the clearest demonstration I&#8217;ve seen of something the research paper makes explicit but most producers haven&#8217;t internalised. The surrounding system is not a wrapper around capability. It is a significant portion of the capability itself. Change it and you change the outcome, whether or not a single model weight has shifted.</p><h2>The ratio producers already know</h2><p>Here&#8217;s what experienced producers will recognise in that 98.4%.</p><p>The best producers I&#8217;ve worked with don&#8217;t spend most of their time making calls. They spend it building the conditions under which good calls get made reliably, by the right people, with the right information, at the right point in the process. Milestone structures. Escalation paths. The discipline of deciding what information reaches the team, and when, and in what form. Permission models that specify who can approve what without asking upward. Recovery procedures for when things go sideways, so the project doesn&#8217;t stall waiting for a human to unblock something that could have been handled automatically.</p><p>That&#8217;s the 98.4%. It just doesn&#8217;t have that name in game production.</p><p>The producers who struggle with AI workflows are often the ones trying to get the ratio backwards. They build decision scaffolding. They prompt-engineer every interaction. They sit in the loop for each action, approving, redirecting, correcting. They&#8217;re doing the 1.6% work while leaving the 98.4% unbuilt. The result is an AI that feels unreliable, because it is. The infrastructure isn&#8217;t there to make it reliable.</p><blockquote><p>The model will do what models do. Everything else is yours to build.</p></blockquote><p>A production team works the same way. The producer who has to approve every asset, attend every standup, and unblock every dependency hasn&#8217;t built a production system. They&#8217;ve built a bottleneck with good intentions. The work still gets done. It just goes through them every time, which means it only moves as fast as they can clear the queue.</p><p>The fix, in both cases, is the same. Build the structure that lets the right output happen at the right level without constant intervention. Then get out of the way.</p><h2>The thing that changed for me</h2><p>The lightbulb moment, for me, was not about capability. It was about something more specific.</p><p>For most of my career, getting work done well has involved other people. That&#8217;s mostly a feature. Cross-discipline experience improves the work. Different perspectives catch things you&#8217;d miss. But working through other people also means negotiating assumptions. Someone arrives with ideas about how it should be done, formed at a previous studio. Someone else defaults to the format they&#8217;re comfortable with rather than the one you specified. You ask for X, you get something adjacent to X, shaped by whoever made it and what they thought you probably meant.</p><p>With a well-built surrounding system, that stops happening.</p><p>The first time I ran a spec authoring workflow where the output matched exactly what I&#8217;d specified, with no interpretive drift and no unasked-for opinions about how they used to do it somewhere else, I found it disorienting. The deviations that did exist were mine to fix, not someone else&#8217;s to defend. There was no negotiation. No &#8220;I thought you meant...&#8221; No prior studio habits quietly baked into the output.</p><p>I value other people&#8217;s input. Most of the time it makes the work better. But sometimes you want what you want, without it going through someone else&#8217;s prior experience first. A well-built surrounding system gives you that option.</p><p>What made it possible was not the model. It was what I&#8217;d put around it: context documents that specified the format precisely, scope limits that kept the agent inside the brief, output standards that left nothing to interpretation. The agent wasn&#8217;t guessing at what I wanted. It was executing against a spec. The spec was mine, unmediated.</p><p>That&#8217;s the operational infrastructure. The model just ran inside it.</p><h2>What to actually build</h2><p>The research paper identifies several layers in Claude Code&#8217;s surrounding system: context assembly, permission rules, memory hierarchy, tool routing, and a five-stage compaction pipeline that manages what the model sees at any given moment. For producers building their own agent workflows, the equivalent work looks like this.</p><p><strong>Context architecture.</strong> What does the agent know, and in what order does it learn it? Your GDD, naming conventions, milestone structure, output format standards, all of it needs deliberate structure. The agent needs to know which document is authoritative and which is reference material. This is information architecture work, and producers already do it. The difference is the audience.</p><p><strong>Scope and permissions.</strong> What can the agent touch, and what is it not permitted to touch? This is a quality question as much as a safety one. An agent without clear scope fills gaps with assumptions. Clear boundaries keep the output inside the territory you&#8217;ve defined. Scope that&#8217;s too broad produces work that&#8217;s technically correct and contextually wrong.</p><p><strong>Output standards.</strong> What does good look like? Not in general terms. For this deliverable, in this workflow, at this stage. Agents don&#8217;t have taste. They have context. Give them enough of it and they&#8217;ll execute reliably. Give them too little and they&#8217;ll interpolate from training data that may not match what you actually want.</p><p><strong>Recovery procedures.</strong> What happens when the output is wrong? The question most producers skip is not how to correct it manually but how the system catches it without your manual intervention. This is the difference between a workflow and a process you have to babysit.</p><p>None of this is prompting. It&#8217;s system design. The prompting is the 1.6%.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/98-of-the-work-has-nothing-to-do/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/98-of-the-work-has-nothing-to-do/comments"><span>Leave a comment</span></a></p><div><hr></div><p>Anthropic&#8217;s postmortem ended with a list of internal changes the company committed to: a larger share of staff using the exact public build, broader evaluation suites for every system prompt change, tighter controls on what gets deployed and when. Every item on the list is an infrastructure decision. None of them involve changing the model.</p><p>The producers who understand that ratio are not using AI better than everyone else. They&#8217;re building something structurally different.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/98-of-the-work-has-nothing-to-do?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/98-of-the-work-has-nothing-to-do?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/98-of-the-work-has-nothing-to-do?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Engineers Constrain Agents. Producers Brief Them.]]></title><description><![CDATA[Thirty years of production thinking turns out to be the correct mental model for agentic AI. The research explains why.]]></description><link>https://www.productionalchemist.com/p/engineers-constrain-agents-producers</link><guid isPermaLink="false">https://www.productionalchemist.com/p/engineers-constrain-agents-producers</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Mon, 11 May 2026 07:00:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YleU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486d7342-a96d-4e3d-93b7-f77736474476_1456x1040.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>When something goes wrong in an agent workflow, engineers add a constraint. Producers fix the brief. These are not the same response.</p></li><li><p>The Claude Code architecture paper validates the producer approach: minimal decision scaffolding, maximal operational infrastructure</p></li><li><p>An engineer&#8217;s system accumulates constraints over time. A producer&#8217;s system accumulates clarity. One gets more rigid; one gets better.</p></li><li><p>Vibe-production is not a low-structure mode. It&#8217;s what the right mental model looks like in practice.</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YleU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486d7342-a96d-4e3d-93b7-f77736474476_1456x1040.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YleU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486d7342-a96d-4e3d-93b7-f77736474476_1456x1040.png 424w, https://substackcdn.com/image/fetch/$s_!YleU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486d7342-a96d-4e3d-93b7-f77736474476_1456x1040.png 848w, https://substackcdn.com/image/fetch/$s_!YleU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486d7342-a96d-4e3d-93b7-f77736474476_1456x1040.png 1272w, https://substackcdn.com/image/fetch/$s_!YleU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486d7342-a96d-4e3d-93b7-f77736474476_1456x1040.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YleU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486d7342-a96d-4e3d-93b7-f77736474476_1456x1040.png" width="1456" height="1040" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/486d7342-a96d-4e3d-93b7-f77736474476_1456x1040.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1040,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1831561,&quot;alt&quot;:&quot;&quot;,&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://gameproductionalchemist.substack.com/i/195732831?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486d7342-a96d-4e3d-93b7-f77736474476_1456x1040.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!YleU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486d7342-a96d-4e3d-93b7-f77736474476_1456x1040.png 424w, https://substackcdn.com/image/fetch/$s_!YleU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486d7342-a96d-4e3d-93b7-f77736474476_1456x1040.png 848w, https://substackcdn.com/image/fetch/$s_!YleU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486d7342-a96d-4e3d-93b7-f77736474476_1456x1040.png 1272w, https://substackcdn.com/image/fetch/$s_!YleU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486d7342-a96d-4e3d-93b7-f77736474476_1456x1040.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 role="img" 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><title></title><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></figure></div><p>When something goes wrong in an agent workflow, engineers and producers do different things.</p><p>The engineer adds a constraint. A rule, a conditional, a state node, a tighter prompt. The mental model is that the agent is an unreliable function that needs to be pinned down. It did the wrong thing, so you restrict what it can do next time. The fix lives in the code.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>The producer asks what the agent didn&#8217;t know. Or what it wasn&#8217;t clear on. Or whether the scope was tight enough to prevent it from drifting. The mental model is that the agent is capable but underinformed. It did the wrong thing because the conditions weren&#8217;t right, not because it needed a shorter leash. The fix lives in the brief.</p><p>Those are not different tactics. They&#8217;re different operating philosophies, and they produce structurally different systems over time.</p><div><hr></div><h2>How engineers build agent systems</h2><p><a href="https://www.langchain.com/langgraph">LangGraph</a> is the clearest expression of the engineering instinct. It models agent workflows as directed graphs: nodes for each state, typed edges for each transition, explicit decision logic at every branch point. The developer defines exactly what the agent can do at each step, what it can do next, and what happens when specific conditions are met. Control is the design goal. Predictability is the design goal. The agent&#8217;s autonomy is precisely bounded by the graph.</p><p>This is good software engineering. State machines are a solved problem. Finite, auditable, testable. When something breaks you can trace it to a node. When something needs to change you update the edge. The system is explicit about everything.</p><p>It is also, in the framing of the <a href="https://github.com/VILA-Lab/Dive-into-Claude-Code">research paper</a> that tore apart Claude Code&#8217;s source architecture, the opposite of what the most capable production agent systems actually do.</p><p>The paper contrasts Claude Code&#8217;s approach directly with LangGraph and systems like it. Claude Code uses a single reactive loop. The model reasons about what to do, the surrounding infrastructure handles execution, permission checking, context management, and recovery. There are no explicit state graphs constraining the model&#8217;s choices. There is no developer-defined decision logic routing the model from node to node.</p><p>The design bet, stated plainly in the paper: increasingly capable models benefit more from a rich operational environment than from frameworks that constrain their choices.</p><p>That is not how an engineer&#8217;s instinct reads the problem. And it is exactly how a producer&#8217;s does.</p><h2>How producers build agent systems</h2><p>A producer&#8217;s mental model for a team member is not a state machine.</p><p>You don&#8217;t manage a designer by defining every possible state they can be in and specifying which transitions are permitted. You brief them. You tell them what good looks like. You give them the context they need to make the right call without asking you first. You define the scope clearly enough that their judgment operates inside the territory you&#8217;ve agreed on. When something goes wrong, the first question is whether the brief was clear, not whether you need tighter rules.</p><p>This is so instinctive to producers that most don&#8217;t think of it as a method. It&#8217;s just how you work with people.</p><p>It turns out it&#8217;s also how you work with agents.</p><p>When my agent workflows produce wrong output, the fix is almost never to add a constraint. It&#8217;s to look at what the agent was working with. Did it have the right context document? Was the output format specified precisely enough, or was it left to interpretation? Did the scope allow it to make a judgment call where I should have made a decision in advance?</p><p>The answer is usually one of those three. I update the brief. The next run is better. I didn&#8217;t write any code. I didn&#8217;t add a rule. I clarified the conditions.</p><blockquote><p>The engineer&#8217;s system grows by accumulating constraints on what the agent can do. The producer&#8217;s system grows by accumulating clarity about what good looks like.</p></blockquote><p>Those trajectories diverge fast. The constraint-based system gets more rigid as rules multiply, harder to change, more brittle when the task changes shape. The clarity-based system gets more reliable as the brief sharpens, more adaptable, because clearer conditions work across more situations than narrow rules do.</p><h2>What the research validates</h2><p>The Claude Code paper identifies thirteen design principles behind the architecture. One of them is called &#8220;minimal scaffolding, maximal operational harness.&#8221; The description: invest in the infrastructure that lets the model reason freely, not in scaffolding-side reasoning that constrains its choices.</p><p>The paper estimates that roughly 1.6% of Claude Code&#8217;s codebase is AI decision logic. The remaining 98.4% is deterministic infrastructure: context assembly, permission rules, recovery logic, tool routing, compaction pipelines. None of that infrastructure tells the model what to decide. It creates the conditions under which the model can decide well.</p><p>The contrast with LangGraph is explicit. LangGraph &#8220;encodes decision logic as explicit state graphs with typed edges, choosing scaffolding over minimal harness.&#8221; Claude Code does the opposite: &#8220;the harness creates conditions under which the model can decide well, rather than constraining its choices.&#8221;</p><p>Anthropic built one of the most widely used production coding agents in the world on the producer&#8217;s mental model. Not because producers were consulted. Because the model&#8217;s capabilities had advanced to the point where constraint-based design was the wrong tool. The model doesn&#8217;t need a shorter leash. It needs better conditions.</p><p>This is the structural advantage that producers bring to agentic AI, and most of them don&#8217;t know they have it.</p><h2>Why the difference compounds</h2><p>The March 2026 Claude Code regression is instructive here, even for producers building their own workflows rather than using Claude Code directly. Anthropic published a <a href="https://www.anthropic.com/engineering/april-23-postmortem">postmortem</a> confirming that three infrastructure changes had degraded the system for six weeks. None of them added constraints. They removed conditions: less reasoning time, lost reasoning history, truncated responses. The model&#8217;s capabilities hadn&#8217;t changed. The environment it was operating in had gotten worse.</p><p>Anthropic&#8217;s fix was not to add more rules. It was to restore the conditions. Revert the reasoning effort. Fix the caching bug. Remove the verbosity cap. Put back what had been taken away.</p><p>The engineering instinct, faced with a system behaving badly, is to add control. The production instinct, faced with a team member behaving badly, is to check the conditions first. Are they missing context? Are they unclear on the scope? Do they understand what good looks like?</p><p>Those instincts produce different responses to the same problem. In the Claude Code case, and in most agent workflow failures I&#8217;ve seen, the production instinct is the correct one.</p><h2>What this looks like in practice</h2><p>I&#8217;ve written before about vibe-production as a distinct way of working with agents. The producer-vs-engineer contrast gives me a more precise way to define it.</p><p>Vibe-production is not low-structure work. It&#8217;s a specific structure. The investment goes into the brief: context documents, output standards, scope definitions, permission models. The agent then operates inside that brief with significant autonomy. You review the output. You refine the brief. You don&#8217;t add rules unless a rule is genuinely what the situation requires, which is less often than you&#8217;d think.</p><p>I direct agents the way I&#8217;d direct a senior team member on a tight brief. I don&#8217;t specify every step. I specify the destination, the format, the constraints that are genuinely constraints, and the context they need to get there without asking me. When the output is wrong, I look at the brief before I look at the agent.</p><p>This works because capable models, briefed well, make good decisions. They don&#8217;t need a state graph. They need to know what you actually want.</p><p>The producers who haven&#8217;t figured this out yet are building agent workflows that feel like managing a difficult contractor: constant correction, constant intervention, outputs that never quite match the spec. The problem is almost never the model. It&#8217;s that the brief is doing work it isn&#8217;t equipped to do, and the conditions that would let the model succeed on its own haven&#8217;t been built.</p><p>The producers who have figured it out are running something closer to a well-briefed team on a clear project. The agent executes. They review. They sharpen the brief. The system improves without getting more complicated.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/engineers-constrain-agents-producers/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/engineers-constrain-agents-producers/comments"><span>Leave a comment</span></a></p><div><hr></div><p>The engineering instinct and the production instinct are both coherent. For constraint-based problems with predictable shapes, state machines are the right tool. For open-ended work with capable models, they&#8217;re the wrong one.</p><p>The research says so. The architecture of the most capable production agents says so. Thirty years of production practice says so, for anyone who was paying attention to what they were actually doing.</p><p>The structural advantage was there the whole time. Most producers just hadn&#8217;t needed to name it yet.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/engineers-constrain-agents-producers?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/engineers-constrain-agents-producers?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/engineers-constrain-agents-producers?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[What the video game lawyer got wrong about AI]]></title><description><![CDATA[His IP warning targets 19% of how game studios actually use these tools]]></description><link>https://www.productionalchemist.com/p/what-the-video-game-lawyer-got-wrong</link><guid isPermaLink="false">https://www.productionalchemist.com/p/what-the-video-game-lawyer-got-wrong</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Thu, 07 May 2026 17:54:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YuGV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73df017d-2cd5-44ef-8dc0-337291649b84_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>Nick Allan&#8217;s London Games Festival warning to swerve generative AI targets a use case that is roughly one-fifth of how the industry actually uses it</p></li><li><p>GDC 2026 State of the Game Industry data shows 81% of devs using AI deploy it for research and brainstorming, only 19% for asset generation, only 5% for player-facing features</p></li><li><p>Allan&#8217;s claim of &#8220;no IP ownership&#8221; in AI-generated work is overstated even in his home jurisdiction, where Section 9(3) of the CDPA grants 50-year copyright to computer-generated works</p></li><li><p>The legal defensibility argument against vibe-coding ignores that game cloning lawsuits do not turn on source code copyright</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YuGV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73df017d-2cd5-44ef-8dc0-337291649b84_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YuGV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73df017d-2cd5-44ef-8dc0-337291649b84_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!YuGV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73df017d-2cd5-44ef-8dc0-337291649b84_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!YuGV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73df017d-2cd5-44ef-8dc0-337291649b84_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!YuGV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73df017d-2cd5-44ef-8dc0-337291649b84_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YuGV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73df017d-2cd5-44ef-8dc0-337291649b84_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73df017d-2cd5-44ef-8dc0-337291649b84_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2471864,&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://gameproductionalchemist.substack.com/i/196807557?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73df017d-2cd5-44ef-8dc0-337291649b84_1536x1024.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_!YuGV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73df017d-2cd5-44ef-8dc0-337291649b84_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!YuGV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73df017d-2cd5-44ef-8dc0-337291649b84_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!YuGV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73df017d-2cd5-44ef-8dc0-337291649b84_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!YuGV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73df017d-2cd5-44ef-8dc0-337291649b84_1536x1024.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 role="img" 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><title></title><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></figure></div><p>Nick Allan, partner and head of video games at Mishcon de Reya, <a href="https://www.gamedeveloper.com/business/video-game-lawyer-implores-devs-to-understand-ownership-and-swerve-generative-ai">told an audience at London Games Festival</a> to avoid using generative AI to produce key assets. Game Developer&#8217;s Chris Kerr summarised the tenor of the talk as advice to swerve genAI like the plague. The number to set against that advice is nineteen.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>That is the percentage of game industry professionals using AI tools who are using them for asset generation, according to the <a href="https://www.gamedeveloper.com/business/one-third-of-game-workers-use-generative-ai-but-half-think-it-s-bad-for-the-industry">GDC 2026 State of the Game Industry survey</a> published in January. Eighty-one percent are using AI for research and brainstorming. Forty-seven for code assistance. Five percent for player-facing features. Allan&#8217;s warning targets the part of the surface area that is, by some distance, the smallest.</p><p>Before getting into where the framing comes apart, one part of his talk earns its place. Allan told indie devs that any IP created by people who aren&#8217;t employees, by which he means contractors, freelancers, and external developers, is probably not going to be owned by the studio. It will be owned by them. He is right, and this catches indie devs out repeatedly. The default position under both UK and US law is that contractors retain ownership of what they create unless there is a written assignment, regardless of whether the studio paid in full. <a href="https://www.gamedeveloper.com/business/5-minute-legal-lessons-for-indie-devs---part-1-employees-contractors-and-ip">Specialist game lawyers</a> have been making this point year after year, and I have seen it bite small studios more than once. If Allan&#8217;s whole talk had been about that one issue, it would have been a more useful piece of journalism than the one Game Developer published.</p><p>But on generative AI specifically, the framing falls apart in three places.</p><h2>The nineteen percent problem</h2><p>The GDC survey is the closest thing the industry has to a representative snapshot. Over 2,300 professionals responded. Across the full population, <a href="https://gdconf.com/article/gdc-2026-state-of-the-game-industry-reveals-impact-of-layoffs-generative-ai-and-more/">thirty-six percent</a> said they use generative AI as part of their job. That headline number is the one most coverage focused on. The interesting numbers are inside it.</p><p>Of those thirty-six percent, here is what they are doing with the tools. Eighty-one percent for research and brainstorming. Forty-seven for code assistance. Forty-seven for writing emails. Thirty-five for prototyping. Twenty-two for testing and debugging. Asset generation comes in at nineteen. Procedural generation at ten. Player-facing features at five.</p><blockquote><p>Asset generation: nineteen. Procedural generation: ten. Player-facing features: five.</p></blockquote><p>The IP question Allan is warning about applies most directly to the bottom three of those numbers. It applies barely at all to the top five.</p><p>There is a reason the breakdown looks like that. Generating a key character, a background environment, a piece of music, or a story bible with a prompt and shipping that artefact as the studio&#8217;s IP is the use case where the legal risk Allan flags is most relevant. Using a model to interrogate a design decision, scaffold a piece of code, write a meeting summary, or produce a test plan is a different activity. None of those outputs are claimed as the studio&#8217;s copyright in the first place. There is nothing to register, nothing to defend, nothing to lose.</p><p>Half the industry has decided generative AI is having a <a href="https://www.gamedeveloper.com/business/one-third-of-game-workers-use-generative-ai-but-half-think-it-s-bad-for-the-industry">negative impact on game development</a>, up from thirty percent the year before and eighteen the year before that. Seven percent think the impact is positive. Those numbers are real and worth taking seriously. But the same survey shows that the people most opposed to genAI on principle are not the people who have stopped using it. They are using it. They are using it cautiously, and for the things where they think the trade-off is worth it. Research, brainstorming, code assistance, prototyping. The legal advice to swerve the technology assumes a use pattern that the data does not support.</p><h2>Two risk profiles</h2><p>A lawyer&#8217;s job is to minimise litigation risk. That is what they are good at. That is what their clients pay them for. When a specialist video games partner at a Tier 1 firm tells a room of indie devs to avoid generative AI, he is making the right recommendation against the risk profile he is paid to optimise.</p><p>A studio&#8217;s job is different. Studios survive or die on shipping velocity, runway management, and parity with competitors who are using the same tools. The risk a studio is optimising against is whether it will still exist in twelve months. Litigation in three years is somewhere lower on the list.</p><p>These two risk profiles point in different directions when it comes to genAI tooling. A studio that swerves AI to preserve theoretical IP defensibility is paying a real shipping-velocity cost to mitigate a hypothetical legal cost. The first cost shows up on the burndown chart this sprint. The second cost might never arrive at all, and if it does, will arrive in a form the studio will not be in business to face.</p><p>Reporting after GDC noted that <a href="https://www.prismnews.com/hobbies/mobile-gaming/gdc-2026-highlights-ai-tools-neural-graphics-and-mobile">adaptability to AI tools is becoming a hiring prerequisite</a>, with job listings in 2026 considerably more likely to mention AI proficiency than they were a year earlier. Thirty-five percent of studios are now relying primarily on self-funding. The market is tighter, the runway is shorter, and the studios still standing have the most reason to take the productivity gains AI tooling actually delivers, rather than worry about hypothetical IP exposure that may never crystallise.</p><p>This is what I mean when I say legal advice and studio survival are pointing in different directions. They address different risks. They cannot be optimised together by the same heuristic. A studio that takes Allan&#8217;s advice without filtering it for relevance is solving the wrong problem.</p><p>Allan said that &#8220;most jurisdictions will just say there&#8217;s no IP ownership&#8221; in AI-generated work. Kerr did not push back on this in the article. It is worth pushing back on. Allan and his audience were both based in the UK, and the UK is one of the few jurisdictions on earth that does grant copyright to computer-generated works without a human author.</p><p><a href="https://www.gov.uk/government/consultations/copyright-and-artificial-intelligence/copyright-and-artificial-intelligence">Section 9(3) of the Copyright, Designs and Patents Act 1988</a> provides fifty-year copyright protection to literary, dramatic, musical or artistic works &#8220;generated by computer in circumstances such that there is no human author of the work.&#8221; Authorship is attributed to &#8220;the person by whom the arrangements necessary for the creation of the work are undertaken.&#8221; The UK government&#8217;s own consultation paper notes that for a general-purpose AI generating output from a prompt, &#8220;the author will usually be the person who inputted the prompt.&#8221; The UK is one of perhaps four major jurisdictions globally with this kind of provision, alongside Ireland, India, and Singapore. Most of the rest of the world, including the US, has no equivalent and treats fully AI-generated work as uncopyrightable.</p><blockquote><p>The UK is one of the few countries on earth that does grant copyright to computer-generated works without a human author.</p></blockquote><p>The provision is contested. The government <a href="https://www.gov.uk/government/publications/copyright-and-artificial-intelligence-progress-report">consulted on it</a> between December 2024 and February 2025 and received over eleven thousand responses. It may be repealed. But it is currently the law, and a London-based partner addressing a London audience telling them there is no IP ownership in AI-generated work is glossing over the bit of the law that contradicts him.</p><h2>What cloning lawsuits actually turn on</h2><p>Allan&#8217;s other genAI argument concerned source code. Using a tool like Claude to vibe-code a video game, he said, will not necessarily create an ownership issue, but if someone copies your source code, &#8220;you probably wouldn&#8217;t be able to sue them in the way that you would if it had been written by human beings.&#8221;</p><p>This is technically arguable. It is also practically irrelevant for the vast majority of game studios.</p><p>Game cloning lawsuits do not turn on source code copyright. They turn on audiovisual look-and-feel, trade dress, character likeness, and trademark. The leading authority is <a href="https://en.wikipedia.org/wiki/Tetris_Holding,_LLC_v._Xio_Interactive,_Inc.">Tetris Holding LLC v Xio Interactive Inc</a> (2012), where Tetris won on the protectable expression of the game&#8217;s visual elements and the trade dress of its piece colours, playfield ratio, and packaging. The court explicitly distinguished protectable expression from unprotectable rules and functionality. Xio&#8217;s source code was never the issue.</p><p>The same pattern holds across the canonical game cloning cases. Spry Fox v LOLApps (Triple Town v Yeti Town, 2012) followed Tetris reasoning before settling. Atari v Amusement World (1981). Capcom v Data East (1994). The Fortnite dance emote suits. All of them turned on expressive elements. None turned on source code.</p><p>There is a structural reason for this. Source code is rarely accessible to a cloner in the first place. Compiled game binaries do not include readable source. Cloners are looking at the running game from the outside, screenshotting it, prototyping a copy of what they can observe, and rebuilding the implementation from scratch. The thing being copied is the audiovisual surface, not the codebase. Source code copyright is the wrong tool for the job because the situation in which it applies almost never arises. A studio worried about clones is worried about the trade dress, the character art, the music, the iconic mechanics expressed as visible behaviour. None of those are at additional legal risk because the underlying code was scaffolded by Claude.</p><p>Here is the point. If your studio&#8217;s competitive moat depended on source code copyright, you would have a problem. But it does not. The moat for any small studio is execution speed, brand, and the audiovisual expression you ship around the code. The legal defensibility argument against vibe-coding solves for a category of risk that does not exist for small studios in the games space. It is solving the wrong problem twice over: once for being targeted at the wrong type of asset, and once for being relevant to a kind of dispute that does not happen.</p><h2>Where the moat actually sits</h2><p>What survives all this is a smaller, sharper version of Allan&#8217;s advice. The contractor IP point is right, and indie studios should fix it on Monday morning. Trademark in your core markets is cheap and obvious. Avoid Ferraris and real-world logos in scenes you can replace with originals. None of this is new. All of it is bedrock. All of it gets ignored.</p><p>Where the framing comes apart is the genAI specific advice. The legal exposure on AI-generated assets is real for the nineteen percent doing asset generation and the five percent doing player-facing features. Those teams should think carefully about which outputs they treat as protectable studio IP and which they ship behind the work of human creators who can take authorship of the final form.</p><p>I have been in this fight. On a recent cricket project for a client extremely averse to infringement risk, the generated outputs kept producing real-world brand logos because the models had been trained on millions of images of actual cricket. Logos ghosted into helmet stickers, shirt sponsors, sightscreens, anywhere a real broadcast frame would carry them. I spent more time than I would have liked correcting them out in post. None of it was even for production assets. It was material going in front of the client. The risk Allan describes is real for this slice of the work, and managing it means clean-up workflows, prompt discipline, and human authorship layered over the generated output. The fix lives in the workflow.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/what-the-video-game-lawyer-got-wrong/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/what-the-video-game-lawyer-got-wrong/comments"><span>Leave a comment</span></a></p><p>For everyone else using AI for the things the data shows they are using it for, the swerve costs more than it saves. The competitive advantage in this market is in the scaffolding around the model. The skill files, the prompts, the orchestration, the pipeline glue, the choice of when to call which model on which problem.</p><blockquote><p>The moat is in the scaffolding around the model.</p></blockquote><p>Almost none of that scaffolding is what Allan was warning about. Almost none of it is at legal risk. The studios that confuse one risk for the other will spend the next twelve months losing on shipping velocity to the studios that don&#8217;t.</p><div><hr></div><p><em>I am not an attorney. This piece is a producer&#8217;s read of the debate, not legal counsel. If you are making real decisions about your studio&#8217;s IP, hire a specialist.</em></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/what-the-video-game-lawyer-got-wrong?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/what-the-video-game-lawyer-got-wrong?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/what-the-video-game-lawyer-got-wrong?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Who’s Going to Supervise the AI?]]></title><description><![CDATA[The industry is worried about the wrong thing.]]></description><link>https://www.productionalchemist.com/p/whos-going-to-supervise-the-ai</link><guid isPermaLink="false">https://www.productionalchemist.com/p/whos-going-to-supervise-the-ai</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Wed, 06 May 2026 07:00:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aCj_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e39c905-6f77-44ff-bf3b-8d83a87f0671_1920x1072.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>52% of game industry professionals think generative AI is bad for the industry, up from 18% two years ago</p></li><li><p>Layoffs have hit junior roles hardest. Studios are having seniors absorb the work that used to develop junior talent</p></li><li><p>The paradox of supervision: you need craft to supervise AI well, and AI is eliminating the work that builds craft</p></li><li><p>Nobody is building a replacement pathway. Nobody is admitting that yet either</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aCj_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e39c905-6f77-44ff-bf3b-8d83a87f0671_1920x1072.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aCj_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e39c905-6f77-44ff-bf3b-8d83a87f0671_1920x1072.png 424w, https://substackcdn.com/image/fetch/$s_!aCj_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e39c905-6f77-44ff-bf3b-8d83a87f0671_1920x1072.png 848w, https://substackcdn.com/image/fetch/$s_!aCj_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e39c905-6f77-44ff-bf3b-8d83a87f0671_1920x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!aCj_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e39c905-6f77-44ff-bf3b-8d83a87f0671_1920x1072.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aCj_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e39c905-6f77-44ff-bf3b-8d83a87f0671_1920x1072.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e39c905-6f77-44ff-bf3b-8d83a87f0671_1920x1072.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1630515,&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://gameproductionalchemist.substack.com/i/195734225?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e39c905-6f77-44ff-bf3b-8d83a87f0671_1920x1072.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_!aCj_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e39c905-6f77-44ff-bf3b-8d83a87f0671_1920x1072.png 424w, https://substackcdn.com/image/fetch/$s_!aCj_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e39c905-6f77-44ff-bf3b-8d83a87f0671_1920x1072.png 848w, https://substackcdn.com/image/fetch/$s_!aCj_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e39c905-6f77-44ff-bf3b-8d83a87f0671_1920x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!aCj_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e39c905-6f77-44ff-bf3b-8d83a87f0671_1920x1072.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 role="img" 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><title></title><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></figure></div><p>&#8220;Everyone is just having seniors do the work.&#8221;</p><p>A veteran game developer at Xbox <a href="https://www.wired.com/story/gamers-worst-nightmares-about-ai-are-coming-true/">said that to Wired</a> earlier this year. It was offered as an observation about how studios are coping with layoffs and AI adoption simultaneously. It sounds like pragmatism. It sounds like studios making do. It isn&#8217;t. It&#8217;s a description of a pipeline eating itself.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><h2>What the industry thinks the problem is</h2><p>The <a href="https://gdconf.com/article/gdc-2026-state-of-the-game-industry-reveals-impact-of-layoffs-generative-ai-and-more/">2026 State of the Game Industry report</a>, based on responses from more than 2,300 professionals, found that 52% of game industry workers now think generative AI is having a negative impact on the industry. Two years ago that figure was 18%. Only 7% think it&#8217;s having a positive impact, and that number has declined every year since tracking began.</p><p>The fears driving those numbers are real. Job displacement. Creative erosion. A quality floor that keeps dropping as AI-generated content floods storefronts. Studios using AI to justify headcount reductions they were planning anyway. These are legitimate grievances and they deserve serious attention.</p><p>But they&#8217;re pointing at the wrong problem.</p><p>The conversation the industry is having is about what AI takes away now. The conversation it isn&#8217;t having is about what AI takes away over the next ten years, quietly, from a generation of developers who never get the chance to become senior.</p><h2>The paradox of supervision</h2><p>Research into AI-assisted software development produced a finding that should make anyone who manages creative teams uncomfortable. Developers working with AI assistance <a href="https://arxiv.org/abs/2601.20245">scored 17% lower on code comprehension tests</a> than those working without it. The more work they delegated to AI, the less capable they became of supervising the AI&#8217;s output. The researchers called it the paradox of supervision: the tool that amplifies your capability today degrades the capability you need to use it well tomorrow.</p><p>Game production has the same structural problem. Possibly worse. Code comprehension is at least testable. Production judgment isn&#8217;t. You can&#8217;t give a producer a comprehension test and find out whether they actually understand what a schedule is telling them, or whether they&#8217;re pattern-matching on surface features and calling it instinct.</p><p>Production judgment is built through accumulation. A specific kind of accumulation: doing things badly, recovering from them, and carrying the scar tissue forward.</p><h2>What junior production work actually builds</h2><p>I&#8217;m not going to romanticise the entry-level production experience. It&#8217;s mostly unglamorous. Chasing people for updates. Maintaining schedules nobody reads until something slips. Running triage meetings where you make calls on incomplete information and find out two weeks later whether you called it right. Preparing milestone builds and having a lead tell you that what you thought was done isn&#8217;t.</p><p>But that accumulation installs something. Dependency tracking you let slip and had to claw back teaches you what a schedule is actually measuring, which is risk, not time. Bug triage under pressure teaches you to make decisions without complete information and live with the consequences. Milestone preparation where someone pushes back on your definition of done teaches you the difference between activity and progress. Stakeholder communication when a project is in trouble teaches you to read what people aren&#8217;t saying.</p><p>None of that knowledge transfers through observation. You don&#8217;t get it by watching a senior producer do it. You don&#8217;t get it from a postmortem or a course or a framework document. You get it by doing it badly enough that it costs you something, and then doing it again.</p><p>That&#8217;s the pipeline. That&#8217;s always been the pipeline. Thirty years in production is thirty years of recoverable mistakes compounding into judgment.</p><blockquote><p>&#8220;You don&#8217;t get it by watching a senior producer do it. You get it by doing it badly enough that it costs you something, and then doing it again.&#8221;</p></blockquote><h2>The pipeline is now broken from both ends</h2><p>Here&#8217;s what&#8217;s happening structurally. Layoffs across the industry have disproportionately hit junior roles. 28% of the professionals surveyed in the GDC report were laid off in the past two years, rising to 33% for US-based workers. The roles that went first were the ones at the bottom: coordinators, associate producers, junior designers. Studios responded to the capacity gap by having seniors absorb the work. Which is where the Xbox developer&#8217;s observation comes in.</p><p>At the same time, AI is handling an increasing share of the work that used to sit at the junior level. Scheduling support. Documentation. Status reporting. Research and brainstorming. The GDC report found that the professionals most likely to use generative AI are business professionals and upper management, not rank-and-file developers. The tool is being adopted most enthusiastically by exactly the people who already have the judgment to supervise it, and applied most directly to the work that used to build that judgment in the people coming up behind them.</p><p>Junior roles are being eliminated from above by layoffs and from below by automation. What&#8217;s left is a generation of people entering the industry with fewer opportunities to do the painful, developmental work that produces senior producers.</p><h2>The question nobody is asking</h2><p>The industry&#8217;s anger about AI is focused on the present. Whose job does it take. What it does to creative work. Whether it degrades quality. All worth debating.</p><p>The question that isn&#8217;t being asked is ten years out. Who supervises the AI in 2036? Not in the abstract sense, but specifically: where are the producers with thirty years of recoverable mistakes behind them, the ones who can look at an AI-generated production plan and know, from the scar tissue, exactly where it&#8217;s going to fail?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/whos-going-to-supervise-the-ai/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/whos-going-to-supervise-the-ai/comments"><span>Leave a comment</span></a></p><p>That cohort is currently being trained, or it isn&#8217;t. The conditions that produce it are either in place or they&#8217;re not. And as far as I can tell, the industry is so focused on the immediate disruption that it hasn&#8217;t noticed the developmental pipeline quietly draining.</p><p>Nobody is building a replacement pathway. As far as I can tell, nobody is admitting that yet either.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/whos-going-to-supervise-the-ai?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/whos-going-to-supervise-the-ai?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/whos-going-to-supervise-the-ai?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Trap]]></title><description><![CDATA[Thirty years in the industry, and why I did it anyway]]></description><link>https://www.productionalchemist.com/p/the-trap</link><guid isPermaLink="false">https://www.productionalchemist.com/p/the-trap</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Mon, 04 May 2026 07:00:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aZ8V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6268ba3b-01c6-47de-9f46-93ff0f5f5ddd_1482x1148.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>In 2015 I defended the F2P model using the industry&#8217;s own vocabulary. In 2017 I called myself a parasite. This is what happened in between.</p></li><li><p>The dirtiest secret in the industry: everyone knows these are addiction machines. The career-limiting move is saying it out loud.</p></li><li><p>The model is broken. I accept that. I&#8217;d still tell a junior producer to take the job.</p></li><li><p>Part four of a four-part series on the F2P trap.</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aZ8V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6268ba3b-01c6-47de-9f46-93ff0f5f5ddd_1482x1148.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aZ8V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6268ba3b-01c6-47de-9f46-93ff0f5f5ddd_1482x1148.png 424w, https://substackcdn.com/image/fetch/$s_!aZ8V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6268ba3b-01c6-47de-9f46-93ff0f5f5ddd_1482x1148.png 848w, https://substackcdn.com/image/fetch/$s_!aZ8V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6268ba3b-01c6-47de-9f46-93ff0f5f5ddd_1482x1148.png 1272w, https://substackcdn.com/image/fetch/$s_!aZ8V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6268ba3b-01c6-47de-9f46-93ff0f5f5ddd_1482x1148.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aZ8V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6268ba3b-01c6-47de-9f46-93ff0f5f5ddd_1482x1148.png" width="1456" height="1128" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6268ba3b-01c6-47de-9f46-93ff0f5f5ddd_1482x1148.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1128,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:467023,&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://gameproductionalchemist.substack.com/i/194530333?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6268ba3b-01c6-47de-9f46-93ff0f5f5ddd_1482x1148.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_!aZ8V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6268ba3b-01c6-47de-9f46-93ff0f5f5ddd_1482x1148.png 424w, https://substackcdn.com/image/fetch/$s_!aZ8V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6268ba3b-01c6-47de-9f46-93ff0f5f5ddd_1482x1148.png 848w, https://substackcdn.com/image/fetch/$s_!aZ8V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6268ba3b-01c6-47de-9f46-93ff0f5f5ddd_1482x1148.png 1272w, https://substackcdn.com/image/fetch/$s_!aZ8V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6268ba3b-01c6-47de-9f46-93ff0f5f5ddd_1482x1148.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 role="img" 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><title></title><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></figure></div><p>If you&#8217;ve read parts one through three, you&#8217;ve seen the evidence. The science behind Skinner box mechanics and variable reinforcement. The whale economy where 5% of players fund 65% of revenue. The FTC settlements totalling billions. The regulatory wave crossing continents. The self-regulation theatre that failed by every measure the industry&#8217;s own trade body set.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>Now read this again:</p><blockquote><p>&#8216;I don&#8217;t make Skinner Boxes. I do use reward schedules in an attempt habitualize behaviour as a tactic, but main difference is my players are not confined and focused on the reinforcement apparatus. They have free will and lots of distractions. The cleverest engagement gag cannot trick a player into doing something that is not fun or lacks anticipation of a reward.&#8217;</p></blockquote><p>I wrote that in April 2015. I was a producer at a free-to-play studio in Toronto. I&#8217;d spent the previous three years studying the psychology of compulsion, reading books on applied behavioural economics, deconstructing competitor games, and building pitch decks with core loop diagrams showing sources and sinks. The whiteboard scenes in &#8216;Freemium Isn&#8217;t Free&#8217; hit too close to home because I had stood in front of actual whiteboards making those exact presentations, with real data instead of Canadough.</p><p>I wrote that post for my friends. The ones who stayed in console and PC development, making what the industry quietly calls &#8216;real games&#8217;. I felt them judging me. Hedonic adaptation, appointment sessions, operant conditioning: that vocabulary was a performance of expertise designed to make my work look legitimate to the people whose opinion mattered to me. I wanted to be seen as someone who understood the craft at a level most people didn&#8217;t.</p><p>Two years later, Facebook surfaced the post as a memory. I shared it with a new caption:</p><blockquote><p>&#8216;Damn, I was really drinking the coolaid back then justifying my parasitic profession of making free to play &#8220;games&#8221;. At least I became a very good parasite.&#8217;</p></blockquote><p>The question this series has been building toward: what happened in between?</p><div><hr></div><p>It started in 2012 at Fuse Powered Games. The free-to-play gold rush was underway and Smurfs&#8217; Village had written the template: place buildings, wait for them to produce currency, collect rewards, reinvest. Optional purchases to skip the wait. That loop, simple as it looked, became the foundation for an entire genre. I played Smurfs&#8217; Village for hundreds of hours. I was a grinder and a payer, studying the compulsion from the inside while it worked on me.</p><p>I read Nicholas Lovell&#8217;s <em>Design Rules for Free-to-Play Games</em>, with its chapters on operant conditioning and whale economics. I read Natasha Dow Sch&#252;ll&#8217;s <em>Addiction by Design</em>, about how slot machines engineer the &#8216;machine zone&#8217; of repetitive play. The appendices of both books took me deeper into academic papers on variable reinforcement and dopamine regulation. I was assembling the same reading list a regulator would use to build a prosecution, and I was using it to build pitch decks.</p><p>I thought this was my ticket to a life-changing cheque. I became a student of the craft. I did extensive research. I was obsessed.</p><p>We produced Universal Movie Tycoon. Kingdom Vail. Zoo Country. Duck Dynasty. I pitched and built more that never got past soft launch. None of those games hit the revenue targets. I assumed I hadn&#8217;t cracked the formula yet. The next one would work.</p><p>Then I worked at studios where the formula had been cracked. At Product Madness and Zynga, I worked on games that made hundreds of millions of dollars. The model, when it works, works at a scale that makes every justification easier to maintain and every doubt easier to shelve. When the numbers are that big, the room stops asking whether the design is ethical and starts asking how to do more of it. Over twenty free-to-play games across my career. Some failed. Some made fortunes. The ones that made fortunes used every mechanic the South Park episode described.</p><div><hr></div><p>Then the money people arrived.</p><p>When acquisition costs were modest, it was just producers and developers trying to figure out the model. There was room to tell yourself this was craft. You were a student of the game. But as the stakes grew, the investors showed up. Then the product managers. Then the data scientists. The language in the room changed. It stopped being about making a game that worked and started being about optimising a revenue instrument. The moment the data scientists walked into the meeting, I stopped being the expert. I became the content wrapper for their monetisation model.</p><p>All the executives saw was dollar signs. There was big money on the line and we all wanted a piece. I kept doubling down. But the distance between what I told myself I was doing (making games) and what I was actually doing (building systems designed to extract money from compulsive behaviour) got harder to maintain with each project that shipped.</p><p>I read the revenue reports. I data-mined for whales. I have family members who have had gambling problems, and I knew there were players of my game spending $1,000 a day. I didn&#8217;t picture a nameless data point. I pictured a specific person. Someone I knew. Sitting at a screen, doing the same thing my family member did at a betting terminal, except my name was on the product.</p><div><hr></div><p>There&#8217;s a moment I think about more than any other.</p><p>I was honest in the office. Too honest, apparently. I said out loud what I&#8217;d come to believe: that we did not make games. We made addiction machines.</p><p>A boss I hold in high regard pulled me aside. The conversation was not about ethics. It was career advice. Saying things like that around the office was self-limiting and not a good look.</p><p>The problem was never the addiction machines. The problem was naming them.</p><p>This is the dirtiest secret in the industry, and nobody talks about it. In every top-grossing studio, in every monetisation meeting, in every room where the core loop diagrams go up on the whiteboard, people know. The producers know. The designers know. The data scientists definitely know. The first rule of the addiction machine is that you don&#8217;t call it an addiction machine. You call it engagement. You call it retention. You call it live ops. You call it player lifetime value. You never call it what it is, because calling it what it is ends the conversation, and ending the conversation is a career-limiting move.</p><p>My boss was right, by the way. It was career-limiting. I don&#8217;t hold it against them. They were trying to protect me. That&#8217;s what the trap looks like from the inside: the people who care about you telling you to stop saying the thing that&#8217;s true.</p><div><hr></div><p>So here&#8217;s where I&#8217;ve landed after thirty years.</p><p>The model is broken. I accept that. The science from part two confirms it. The regulatory wave from part three confirms it. My own experience confirms it.</p><p>I also don&#8217;t hide my past. I&#8217;m proud of the games I worked on. People fed their families. I got to travel the world. I worked with talented people who brought genuine craft to the UI design, the content, the production pipelines, the shipping discipline. The work had value. I separate the craft from the model. I can be proud of the work without endorsing the system it sat inside.</p><p>But I don&#8217;t pretend that separation is comfortable.</p><p>The 2015 post was me performing expertise to an audience that mattered to me, using vocabulary borrowed from the very research that now underpins FTC enforcement actions. The 2017 post was me dropping the performance. The industry hadn&#8217;t changed between those two dates. I had. I&#8217;d seen enough revenue reports, sat in enough meetings, built enough core loops, data-mined enough whales. I stopped being able to maintain the distinction between what I said I was doing and what I was actually doing.</p><p>The question I get asked now, by mentees and junior producers who read the GPA blog, is whether ethical free-to-play is possible. Whether you can build a F2P game without the predatory mechanics. Whether there&#8217;s a clean version of the model.</p><p>I don&#8217;t have a good answer. I&#8217;ve come to terms with the fact that the model, as it exists, is broken. That doesn&#8217;t mean every F2P game is evil. It means the economic structure rewards the worst version of itself, and the further you go toward the money, the more the worst version wins.</p><p>The question I get asked even more often is simpler. A junior producer, or someone looking to break in, wants to know: I&#8217;ve been offered a role on a F2P mobile game. Should I take it?</p><p>Given today&#8217;s industry, with the layoffs, the studio closures, the thousands of experienced people looking for work, I am compelled to say: take it. Break in any way you can. But know that mobile is a specific subset and it is hard to pivot to AAA. I have mentees in that boat right now.</p><p>Take the job. Learn the craft. Understand the systems. Go in with your eyes open about what you&#8217;re building. And if one day a boss pulls you aside and tells you to stop saying the quiet part out loud, know that you&#8217;re not wrong. You&#8217;re just inside the trap.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/the-trap/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/the-trap/comments"><span>Leave a comment</span></a></p><p>That&#8217;s where this ends. The F2P model is a collective trap. The people who see it clearly, Parker and Stone, the regulators, the researchers, the thirty-year veterans who added &#8216;Minister of Just Barely Fun&#8217; to their Facebook profiles, all end up either participating or watching others participate, because the economics leave few alternatives. The system is the problem. The trap is structural. And the broken model is the one hiring.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/the-trap?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/the-trap?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/the-trap?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Your Jira Already Knows. You’re Just Not Listening.]]></title><description><![CDATA[A practical look at what an agent can pull out of your issue tracker that a burndown will never show you.]]></description><link>https://www.productionalchemist.com/p/your-jira-already-knows-youre-just</link><guid isPermaLink="false">https://www.productionalchemist.com/p/your-jira-already-knows-youre-just</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Wed, 29 Apr 2026 07:01:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yQyl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2fd738-9f1b-4654-a7fc-330447111e44_1500x1000.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>Why burndown charts throw away most of what your Jira instance actually knows</p></li><li><p>How an agent connected to a Jira project can surface sentiment, risk, and team health</p></li><li><p>A practical look at what AI agents are actually good at</p></li><li><p>The producer&#8217;s qualitative override, made legible and repeatable for the first time</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yQyl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2fd738-9f1b-4654-a7fc-330447111e44_1500x1000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yQyl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2fd738-9f1b-4654-a7fc-330447111e44_1500x1000.png 424w, https://substackcdn.com/image/fetch/$s_!yQyl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2fd738-9f1b-4654-a7fc-330447111e44_1500x1000.png 848w, https://substackcdn.com/image/fetch/$s_!yQyl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2fd738-9f1b-4654-a7fc-330447111e44_1500x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!yQyl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2fd738-9f1b-4654-a7fc-330447111e44_1500x1000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yQyl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2fd738-9f1b-4654-a7fc-330447111e44_1500x1000.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6b2fd738-9f1b-4654-a7fc-330447111e44_1500x1000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2878347,&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://gameproductionalchemist.substack.com/i/194054377?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2fd738-9f1b-4654-a7fc-330447111e44_1500x1000.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_!yQyl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2fd738-9f1b-4654-a7fc-330447111e44_1500x1000.png 424w, https://substackcdn.com/image/fetch/$s_!yQyl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2fd738-9f1b-4654-a7fc-330447111e44_1500x1000.png 848w, https://substackcdn.com/image/fetch/$s_!yQyl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2fd738-9f1b-4654-a7fc-330447111e44_1500x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!yQyl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2fd738-9f1b-4654-a7fc-330447111e44_1500x1000.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 role="img" 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><title></title><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></figure></div><p>A few weeks ago I <a href="https://open.substack.com/pub/gameproductionalchemist/p/agents-cant-replace-monte-carlo-they?r=21y65c&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=true">argued that agentic AI shouldn&#8217;t replace Monte Carlo simulation in agile forecasting</a>, and that the interesting play is to point agents at the contextual layer Monte Carlo was never designed to see.</p><p>Several people asked the obvious follow-up. What does that actually look like on a Tuesday morning?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>This is the answer. The cheapest, most informative version of &#8220;agents in production for game producers&#8221; is connecting one to your Jira instance and asking it the questions a burndown chart can&#8217;t.</p><p>Your Jira instance is one of the largest unstructured-data corpora your studio owns. Tickets, descriptions, comments, transition histories, linked PRs, attachment threads, watchers, label changes, time-in-status, reopen counts, sub-task dependencies. Every interaction is logged, timestamped, attributed, and stored.</p><p>And what does the standard agile-reporting toolkit do with all of it? It counts the tickets and draws a line.</p><p>The <a href="https://jellyfish.co/library/jira-performance-metrics/">Jellyfish guide to Jira metrics</a> admits this directly. &#8220;Jira metrics may not capture the full context of a project. Excessive focus on performance metrics alone can lead to tunnel vision, neglecting qualitative aspects of development.&#8221; That&#8217;s not a hot take from a critic. That&#8217;s a vendor selling Jira reporting tools, telling you their own product category has a blind spot.</p><p>Burndowns and velocity charts are a severe information loss function applied to a rich source. The qualitative layer is right there, sitting in your database, and the standard reports are designed to throw it away.</p><p>Good producers already know this, even if they&#8217;ve never put it in those words. Every experienced producer I know reads their Jira for qualitative signal as well as quantitative.</p><p>They scan the comment threads on the bug ticket that&#8217;s been reopened three times. They notice the tone shift in the lead engineer&#8217;s standup notes. They spot the dependency that&#8217;s been quietly slipping for two sprints, mentioned in passing in three different tickets, formalised as a blocker in none of them.</p><p>None of that work shows up in any chart. It happens in the producer&#8217;s head, lives in the producer&#8217;s notebook, and disappears the moment the producer leaves the room or rotates onto a different project.</p><p>An agent connected to Jira makes that labour legible, auditable, and repeatable across teams that don&#8217;t have a senior producer reading every comment. The point is to make the producer&#8217;s already-existing judgement work at scale.</p><p>There are three categories of signal worth looking at first. Each one is something an agent can do well, that a burndown cannot do at all.</p><p><em>Sentiment.</em></p><p>Researchers have been mining issue trackers for developer sentiment for over a decade. There&#8217;s a <a href="https://arxiv.org/abs/1603.04287">2016 study by M&#228;ntyl&#228; et al.</a> that analysed 700,000 Jira issue reports containing more than 2,000,000 comments, using Valence-Arousal-Dominance metrics to detect symptoms of productivity loss and burnout in software engineering teams. The <a href="https://github.com/collab-uniba/Senti4SD">Senti4SD classifier</a>, trained specifically on Stack Overflow developer language, reaches accuracy levels that off-the-shelf consumer sentiment tools never match, because developer language is its own dialect with its own emotional register and its own vocabulary for frustration.</p><p>A more recent study evaluated machine learning classifiers on 10,000 GitHub commit comments and reported 98% accuracy on developer sentiment classification with a tuned Support Vector Classifier.</p><p>None of this is speculative. It&#8217;s an established academic field that producers have somehow never operationalised.</p><p>What it looks like in practice on your Jira project: an agent flags that comment sentiment on the combat module has shifted measurably negative over the last three sprints. One engineer&#8217;s responses have moved from problem-solving to terse acknowledgement. The team&#8217;s previously playful ticket descriptions have stopped being playful. A ticket that used to attract quick collaborative replies now sits for a day before anyone responds.</p><p>None of these signals appear in a burndown. None of them are visible on a velocity chart. All of them are visible to a producer who reads every comment, which no producer at scale does.</p><blockquote><p>The corpus has been there the whole time. The agent&#8217;s contribution is having the time to read it.</p></blockquote><p><em>Risk.</em></p><p>Move from people to work. The agent reads ticket bodies, comment threads, linked PRs, and attachment text to surface risk signals that the structured fields are blind to.</p><p>A ticket flagged &#8220;low priority&#8221; in the priority field but whose comment thread contains the words &#8220;save system&#8221;, &#8220;regression risk&#8221;, &#8220;we should probably look at this&#8221; buried in a sub-thread from October. A cluster of recently created tickets that all touch the same module with no parent epic linking them. A dependency on an external API that&#8217;s been mentioned in five separate tickets across two sprints but has no formal &#8220;blocks&#8221; relationship in the issue graph.</p><p>Risk in production is rarely what&#8217;s labelled risky. It&#8217;s what&#8217;s been talked about in a worried tone with no structured field to capture the worry. Producers know this, which is why we spend so much of our time reading between the lines of tickets that the priority field would tell us to ignore.</p><p>The agent&#8217;s job is to find the worry. To pull together the half-formed concerns scattered across twenty tickets into a single observation: <em>&#8220;There are seven tickets created in the last two sprints that mention the audio middleware in their comments, none of them linked, and three of them include the phrase &#8216;this is going to be a problem&#8217;. Worth a look.&#8221;</em></p><p>That&#8217;s a sentence Monte Carlo cannot produce, a sentence a burndown cannot produce, and a sentence a producer would absolutely produce if they had the time to read seven tickets they&#8217;d otherwise have skimmed past.</p><p><em>Team health.</em></p><p>Carnegie Mellon&#8217;s research on toxicity in open source communities is the academic anchor here, but the production application is more modest and more useful. We are not trying to detect toxicity. We are trying to detect pattern changes in a small, known team.</p><p>The engineer who used to comment on five tickets a day and is now commenting on one. The reviewer whose code review comments have shortened from paragraphs to single lines. The QA lead whose &#8220;blocked&#8221; tickets used to come with detailed reproduction steps and now come with &#8220;see Slack&#8221;. The artist whose tickets used to close in two days and now close in five, with no explanation in the comments.</p><p>These are the early warning signs of disengagement, burnout, fatigue, or one of the half-dozen other things that producers exist to notice. Every producer should care about them. No burndown chart will surface them.</p><p>The important thing about the agent in this category is what it doesn&#8217;t do. It doesn&#8217;t diagnose. It doesn&#8217;t tell you the engineer is burning out. It doesn&#8217;t tell you the QA lead is checked out. It surfaces a pattern, attributes it to specific tickets and timestamps, and lets the producer decide whether the pattern means what it might mean.</p><blockquote><p>The agent doesn&#8217;t diagnose. It flags patterns worth a conversation, then gets out of the way.</p></blockquote><p>Producers still do the producer&#8217;s job. The agent makes sure the producer has time to do it on the things that matter.</p><p>Bringing this back to the Monte Carlo post: the agent in this configuration is not generating reports for executives. It&#8217;s not predicting ship dates. It&#8217;s not pretending to be a forecasting tool. It&#8217;s reading the corpus your producers don&#8217;t have time to read and surfacing the signals that should make them ask better questions.</p><p>Monte Carlo still does the maths. Burndowns still do whatever it is burndowns do for the people who like burndowns. The agent fills the gap between what the structured fields capture and what the unstructured fields actually contain.</p><p>Same configuration as the Monte Carlo piece, applied to a different tool. Neither pretending to be the other.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/your-jira-already-knows-youre-just/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/your-jira-already-knows-youre-just/comments"><span>Leave a comment</span></a></p><p>The connection itself is trivial. Atlassian&#8217;s MCP server makes hooking an agent to a Jira project a job for an afternoon, not a quarter. The hard part is not the integration. The hard part is deciding what questions to ask, which is the producer&#8217;s job, which is the job producers were already doing in their heads.</p><p>Your Jira already knows. The interesting question is whether you&#8217;re willing to listen to it.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/your-jira-already-knows-youre-just?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/your-jira-already-knows-youre-just?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/your-jira-already-knows-youre-just?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Drink Responsibly, Play Responsibly]]></title><description><![CDATA[Why the games industry borrowed the alcohol playbook, and why regulators finally noticed]]></description><link>https://www.productionalchemist.com/p/drink-responsibly-play-responsibly</link><guid isPermaLink="false">https://www.productionalchemist.com/p/drink-responsibly-play-responsibly</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Mon, 27 Apr 2026 07:01:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!PLU5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F875628c8-8683-4494-9b52-0ff8c54a7028_1482x1148.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>The games industry&#8217;s response to criticism follows the same self-regulation playbook as alcohol and tobacco, documented in peer-reviewed research.</p></li><li><p>The UK&#8217;s voluntary loot box rules had less than 10% compliance. The self-regulation experiment failed.</p></li><li><p>Belgium banned loot boxes. Brazil banned them for minors. The EU is drafting continent-wide rules. The FTC has settled for billions.</p></li><li><p>Part three of a four-part series on the F2P trap.</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PLU5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F875628c8-8683-4494-9b52-0ff8c54a7028_1482x1148.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PLU5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F875628c8-8683-4494-9b52-0ff8c54a7028_1482x1148.png 424w, https://substackcdn.com/image/fetch/$s_!PLU5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F875628c8-8683-4494-9b52-0ff8c54a7028_1482x1148.png 848w, https://substackcdn.com/image/fetch/$s_!PLU5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F875628c8-8683-4494-9b52-0ff8c54a7028_1482x1148.png 1272w, https://substackcdn.com/image/fetch/$s_!PLU5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F875628c8-8683-4494-9b52-0ff8c54a7028_1482x1148.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PLU5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F875628c8-8683-4494-9b52-0ff8c54a7028_1482x1148.png" width="1456" height="1128" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/875628c8-8683-4494-9b52-0ff8c54a7028_1482x1148.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1128,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:82219,&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://gameproductionalchemist.substack.com/i/194529197?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F875628c8-8683-4494-9b52-0ff8c54a7028_1482x1148.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_!PLU5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F875628c8-8683-4494-9b52-0ff8c54a7028_1482x1148.png 424w, https://substackcdn.com/image/fetch/$s_!PLU5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F875628c8-8683-4494-9b52-0ff8c54a7028_1482x1148.png 848w, https://substackcdn.com/image/fetch/$s_!PLU5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F875628c8-8683-4494-9b52-0ff8c54a7028_1482x1148.png 1272w, https://substackcdn.com/image/fetch/$s_!PLU5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F875628c8-8683-4494-9b52-0ff8c54a7028_1482x1148.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 role="img" 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><title></title><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></figure></div><p>In the episode, the Minister of Mobile Gaming proposes an awareness campaign to promote responsible freemium spending. He points to the alcohol industry as the model. The show then cuts to a parody advert: thirty seconds of fast cars, tuxedos, attractive people drinking, and a half-second flash of &#8216;Drink Responsibly&#8217; at the end. The Minister makes the pitch explicit:</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><blockquote><p>&#8216;You think the f*cking alcohol industry cares? They don&#8217;t care that 10% are gonna get addicted. They&#8217;re counting on it! It&#8217;s the same with us.&#8217;</p></blockquote><div id="youtube2-cZDuqwMQPI4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;cZDuqwMQPI4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/cZDuqwMQPI4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>In 2014, critics treated this as a comic exaggeration. In 2023, a <a href="https://academic.oup.com/eurpub/article/33/2/305/7059266">study in the European Journal of Public Health</a> analysed how the alcohol and gambling industries respond to government consultations about regulation. The researchers found that both industries use identical framing strategies: emphasise that harm only affects a minority, present themselves as socially responsible, and promote voluntary codes to block population-level regulation. The study was peer-reviewed and published by Oxford Academic.</p><p>South Park&#8217;s satirical comparison between &#8216;drink responsibly&#8217; and &#8216;play responsibly&#8217; is now an empirically documented industry strategy. The joke became a journal article.</p><div><hr></div><p>Part 1 and 2:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;cfce9954-aac1-4f69-a5d7-fd98359da78d&quot;,&quot;caption&quot;:&quot;In 2014, South Park made six specific claims about free-to-play monetisation. Everyone is now the subject of enforcement action or legislation.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;South Park Was Right&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124206240,&quot;name&quot;:&quot;Rob Sandberg&quot;,&quot;bio&quot;:&quot;Seasoned game producer with 30 years in the field. I blend insight with fun, mentor teams, and champion agile, efficient game production. Focused on player experience, I build consensus and value adaptability in this ever-evolving industry.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72cb7a5b-f489-4eab-9035-6339bf2007fa_457x573.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-04-20T07:00:23.594Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!42Uw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8cfcf5-9754-4cb8-8062-0ee3c016a3ce_1482x1148.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://gameproductionalchemist.substack.com/p/south-park-was-right&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:194514318,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:7,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2231603,&quot;publication_name&quot;:&quot;Game Production Alchemist&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!jlza!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F850908ea-c245-40ba-81a8-5f3380bd524d_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;ab7e77eb-4a8b-4c6f-a1fd-56e8d05a9f70&quot;,&quot;caption&quot;:&quot;Satan&#8217;s dopamine monologue was dismissed as pop psychology in 2014. The neuroscience now backs every claim he made.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Satan Was Right About Dopamine&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124206240,&quot;name&quot;:&quot;Rob Sandberg&quot;,&quot;bio&quot;:&quot;Seasoned game producer with 30 years in the field. I blend insight with fun, mentor teams, and champion agile, efficient game production. Focused on player experience, I build consensus and value adaptability in this ever-evolving industry.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72cb7a5b-f489-4eab-9035-6339bf2007fa_457x573.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-04-22T07:01:08.128Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!zczn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c93f8a-ae6b-4899-b9bb-d3ac4f6ac951_1482x1148.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://gameproductionalchemist.substack.com/p/satan-was-right-about-dopamine&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:194527118,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:8,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2231603,&quot;publication_name&quot;:&quot;Game Production Alchemist&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!jlza!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F850908ea-c245-40ba-81a8-5f3380bd524d_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p>The playbook works like this.</p><p>Step one: frame the problem as individual, not systemic. The alcohol industry says most people drink responsibly. The gaming industry says most players spend responsibly (or spend nothing at all). Both are true in isolation. Both are designed to make population-level regulation seem like an overreaction that punishes the responsible majority.</p><p>Step two: invest in visible self-regulation. Create an industry body. Publish guidelines. Announce voluntary codes of conduct. The alcohol industry <a href="https://academic.oup.com/heapro/article/27/3/307/754330">spends less than 1.25% of its advertising budget</a> on &#8216;drink responsibly&#8217; messaging. The rest goes to advertising that makes drinking look glamorous, social, and consequence-free. The self-regulation budget is a rounding error. Its purpose is to exist, not to work.</p><p>Step three: cite the self-regulation as evidence that legislation is unnecessary. When government asks if the industry needs regulation, the industry points to its voluntary codes and says it&#8217;s already handling it.</p><p>This is the pattern the games industry adopted. I&#8217;ve been in meetings where it was deployed. I&#8217;ve watched the language shift from &#8216;how do we make this less predatory&#8217; to &#8216;how do we demonstrate responsible practices&#8217; without the underlying design changing at all. The conversations regulators are now having, I had versions of those conversations years ago. The difference is that in those meetings, the conclusion was always &#8216;add a disclaimer&#8217; rather than &#8216;change the system&#8217;.</p><div><hr></div><p>The UK ran the cleanest test case for industry self-regulation.</p><p>In 2020, the government launched a call for evidence on loot boxes as part of a broader review of the Gambling Act. It received over 32,000 responses and 50 submissions from the gaming industry. 98% of players who responded said they had opened a loot box. The government <a href="https://www.lexology.com/library/detail.aspx?g=6779705d-3000-4825-92c4-7c5b8a901ada">published its formal response in July 2022</a> and concluded that there was a link between loot box use and problem gambling.</p><p>The decision: let the industry self-regulate. The UK trade body Ukie introduced voluntary rules covering disclosure, parental controls, and advertising standards. The government promised it would &#8216;not hesitate to consider legislative change&#8217; if the self-regulation proved ineffective.</p><p>In 2025, <a href="https://royalsociety.org/blog/2025/06/video-game-industry-loot-boxes/">Leon Y. Xiao</a>, a Presidential Assistant Professor at the City University of Hong Kong, published the results in Royal Society Open Science. His team found that fewer than 10% of social media ads for games containing loot boxes disclosed the presence of those loot boxes, as required by Ukie&#8217;s own rules. Games reported to Ukie and the UK government for non-compliance had no enforcement action taken against them, even after six months. They remained available for download.</p><p>Xiao&#8217;s conclusion: &#8216;the industry self-regulation experiment has failed again&#8217;. He called on the UK government to stop relying on what he described as &#8216;demonstrably ineffective industry self-regulation&#8217; and to adopt stricter rules with proper enforcement.</p><p>The government promised to act if self-regulation failed. The research says it failed. The government has not yet acted.</p><div><hr></div><p>The FTC has been less patient.</p><p>In January 2025, the FTC <a href="https://www.lexology.com/library/detail.aspx?g=6779705d-3000-4825-92c4-7c5b8a901ada">settled with Cognosphere</a>, the developer of Genshin Impact, over charges that the company deceived users about the real costs of in-game transactions and the odds of obtaining rare items. The settlement required age verification, odds disclosure, and parental controls.</p><p>The <a href="https://allaboutlawyer.com/what-are-dark-patterns-in-gaming-legal-risks-after-the-fortnite-settlement/">Epic Games settlement</a> totalled $520 million. $245 million went to refunds for players who had been charged through what the FTC called dark patterns: confusing button layouts, single-tap purchase flows, and designs that facilitated charges during loading screens and sleep-mode wakes. In <a href="https://allaboutlawyer.com/what-are-dark-patterns-in-gaming-legal-risks-after-the-fortnite-settlement/">June 2025, the FTC distributed $126 million</a> to nearly one million Fortnite players.</p><p>The <a href="https://btlj.org/2025/11/trapped-by-design-how-dark-patterns-manipulate-your-choices-and-the-regulators-fighting-back/">Amazon Prime settlement</a> reached $2.5 billion. The FTC alleged that Amazon used deceptive flows to sign up consumers for Prime subscriptions and then made cancellation deliberately difficult. Amazon&#8217;s internal codename for the cancellation flow was &#8216;Iliad&#8217;, a reference to the Trojan Horse. The company was required to simplify enrolment, provide a clear decline button, and submit to oversight by an independent monitor.</p><p>A <a href="https://www.pearlcohen.com/ftc-uncovers-widespread-use-of-manipulative-dark-patterns/">2024 sweep by the FTC, ICPEN, and GPEN</a> reviewed 1,010 websites and apps and found that 76% used at least one dark pattern, with 67% using multiple.</p><div id="youtube2-C5lm5DbXrOU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;C5lm5DbXrOU&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/C5lm5DbXrOU?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>The term &#8216;dark patterns&#8217; didn&#8217;t exist in 2014. The episode described the mechanics before the vocabulary caught up: deliberately confusing interfaces, obscured costs, premium currencies that hide real-money spending, friction engineered to push purchases. Everything the FTC now prosecutes, the Minister of Mobile Gaming explained on a whiteboard a decade earlier.</p><div><hr></div><p>The regulatory response outside the United States is fragmented but accelerating.</p><p><a href="https://blog.empiredrop.com/are-loot-boxes-gambling-the-legal-debate-explained/">Belgium</a> classified paid loot boxes as gambling in 2018, effectively banning them. Fines run up to &#8364;800,000, with potential prison sentences for company officers. The Netherlands banned certain loot boxes the same year. <a href="https://lovethynerd.com/loot-boxes-are-still-a-problem-in-2026-why-micro-gambling-culture-hasnt-gone-away/">Brazil signed a child-safety law in 2025</a> banning loot box sales to minors under 18, effective March 2026. <a href="https://completeaitraining.com/news/2026-gaming-law-ai-lawsuits-child-safety-loot-boxes-and-a/">Australia now rates chance-based purchases at 15+</a>. <a href="https://completeaitraining.com/news/2026-gaming-law-ai-lawsuits-child-safety-loot-boxes-and-a/">Germany&#8217;s Bundesrat</a> is pushing for stricter rules that would classify loot boxes as gambling, requiring an 18+ rating.</p><p>In October 2025, the <a href="https://esportslegal.news/2025/12/11/us-uk-and-eu-loot-box-strategies/">EU Parliament&#8217;s Internal Market and Consumer Protection Committee</a> adopted a report urging the European Commission to solve jurisdictional inconsistencies and ban loot boxes in games accessible to minors. The EU&#8217;s proposed <a href="https://esportslegal.news/2025/12/11/us-uk-and-eu-loot-box-strategies/">Digital Fairness Act</a>, expected in Q4 2026, will likely include loot box provisions. The loot box market generates an estimated <a href="https://esportslegal.news/2025/12/11/us-uk-and-eu-loot-box-strategies/">$15 billion per year globally</a>.</p><p>The pattern from part two&#8217;s Smurfs&#8217; Village is still visible at industrial scale. In 2010, players made accidental purchases and the publisher added warnings. In 2025, the FTC is distributing $126 million in refunds to Fortnite players. The response has always been the same: problems visible from day one, disclaimers added after the damage, regulation arriving because disclaimers were never going to be enough.</p><p>The industry had fifteen years to fix this. It chose the &#8216;drink responsibly&#8217; playbook instead. The regulators have arrived.</p><blockquote><p>&#8216;Alright, alright, I never played it. I stay away from the stuff. I just push it to people because I need the money.&#8217;</p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/drink-responsibly-play-responsibly/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/drink-responsibly-play-responsibly/comments"><span>Leave a comment</span></a></p><p>That&#8217;s Jimmy, confessing that he pushed the Terrance and Phillip game like a street-level dealer while being addicted to a different freemium game himself. He needed the money. He knew what it was. He did it anyway.</p><p>Part four is about what that feels like when it&#8217;s your career, not a cartoon.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/drink-responsibly-play-responsibly?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/drink-responsibly-play-responsibly?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/drink-responsibly-play-responsibly?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Satan Was Right About Dopamine]]></title><description><![CDATA[Skinner boxes, whale economics, and the science the industry hoped you wouldn&#8217;t read]]></description><link>https://www.productionalchemist.com/p/satan-was-right-about-dopamine</link><guid isPermaLink="false">https://www.productionalchemist.com/p/satan-was-right-about-dopamine</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Wed, 22 Apr 2026 07:01:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zczn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c93f8a-ae6b-4899-b9bb-d3ac4f6ac951_1482x1148.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>Satan&#8217;s dopamine monologue was dismissed as pop psychology in 2014. The neuroscience now backs every claim he made.</p></li><li><p>B.F. Skinner&#8217;s variable ratio reinforcement is the foundational mechanic behind loot boxes, gacha, and every &#8216;one more go&#8217; loop in mobile gaming.</p></li><li><p>5% of players generate 65% of all in-app purchase revenue. The model runs on the people it hooks hardest.</p></li><li><p>Part two of a four-part series on the F2P trap.</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zczn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c93f8a-ae6b-4899-b9bb-d3ac4f6ac951_1482x1148.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zczn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c93f8a-ae6b-4899-b9bb-d3ac4f6ac951_1482x1148.png 424w, https://substackcdn.com/image/fetch/$s_!zczn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c93f8a-ae6b-4899-b9bb-d3ac4f6ac951_1482x1148.png 848w, https://substackcdn.com/image/fetch/$s_!zczn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c93f8a-ae6b-4899-b9bb-d3ac4f6ac951_1482x1148.png 1272w, https://substackcdn.com/image/fetch/$s_!zczn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c93f8a-ae6b-4899-b9bb-d3ac4f6ac951_1482x1148.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zczn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c93f8a-ae6b-4899-b9bb-d3ac4f6ac951_1482x1148.png" width="1456" height="1128" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b7c93f8a-ae6b-4899-b9bb-d3ac4f6ac951_1482x1148.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1128,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:623187,&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://gameproductionalchemist.substack.com/i/194527118?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c93f8a-ae6b-4899-b9bb-d3ac4f6ac951_1482x1148.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_!zczn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c93f8a-ae6b-4899-b9bb-d3ac4f6ac951_1482x1148.png 424w, https://substackcdn.com/image/fetch/$s_!zczn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c93f8a-ae6b-4899-b9bb-d3ac4f6ac951_1482x1148.png 848w, https://substackcdn.com/image/fetch/$s_!zczn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c93f8a-ae6b-4899-b9bb-d3ac4f6ac951_1482x1148.png 1272w, https://substackcdn.com/image/fetch/$s_!zczn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c93f8a-ae6b-4899-b9bb-d3ac4f6ac951_1482x1148.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 role="img" 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><title></title><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></figure></div><p>In season 18, episode 6 of South Park, Stan Marsh gets on his knees and prays for help understanding his addiction to a freemium mobile game. Satan appears. And then Satan, of all possible characters, delivers the most accurate explanation of behavioural reinforcement in the history of animated television:</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><blockquote><p>&#8216;So you&#8217;ve got dopamine, right? That&#8217;s the chemical that gets released in your brain whenever you do something pleasurable like eating, sex. And that&#8217;s just nature, right? Like, rabbits and fish and shit, they need dopamine so that they want to consume and reproduce. But because humans have progressed and now have access to all the shit they want whenever they want it, it&#8217;s easy for them to overdo and have dopamine problems. You know, it&#8217;s not fucking rocket science, this stuff.&#8217;</p></blockquote><div id="youtube2-B29YStCYorY" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;B29YStCYorY&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/B29YStCYorY?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>A week after the episode aired, Eric Seufert at <a href="https://mobiledevmemo.com/south-park-freemium-pop-psychology/">Mobile Dev Memo</a> published a rebuttal. He called the episode&#8217;s dopamine argument &#8216;pop psychology at its worst&#8217;. He argued that low conversion rates in freemium are a feature, that most people play for free and get genuine value, and that comparing game spending to substance addiction is a category error.</p><p>In 2014, that was a reasonable position. In 2026, it&#8217;s harder to defend. The science moved. The money moved. The regulators moved. Satan, it turns out, was doing a better job of reading the literature than most of us in the industry were.</p><div><hr></div><p>Part 1:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;60f937fd-ed0c-492c-a935-18a6440b178c&quot;,&quot;caption&quot;:&quot;In 2014, South Park made six specific claims about free-to-play monetisation. Everyone is now the subject of enforcement action or legislation.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;South Park Was Right&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:124206240,&quot;name&quot;:&quot;Rob Sandberg&quot;,&quot;bio&quot;:&quot;Seasoned game producer with 30 years in the field. I blend insight with fun, mentor teams, and champion agile, efficient game production. Focused on player experience, I build consensus and value adaptability in this ever-evolving industry.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72cb7a5b-f489-4eab-9035-6339bf2007fa_457x573.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-04-20T07:00:23.594Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!42Uw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8cfcf5-9754-4cb8-8062-0ee3c016a3ce_1482x1148.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://gameproductionalchemist.substack.com/p/south-park-was-right&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:194514318,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:6,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2231603,&quot;publication_name&quot;:&quot;Game Production Alchemist&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!jlza!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F850908ea-c245-40ba-81a8-5f3380bd524d_512x512.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p>The science behind Satan&#8217;s monologue starts with a man named B.F. Skinner and a box full of rats.</p><p>In 1957, Skinner published his findings on operant conditioning. The setup was simple. Put a rat in a box. Give it a lever. When the rat presses the lever, sometimes it gets food. The critical finding was about the schedule. Fixed rewards (press the lever ten times, get a pellet) produced steady but moderate behaviour. <a href="https://en.wikipedia.org/wiki/Compulsion_loop">Variable rewards</a> (press the lever, maybe get a pellet, maybe not, you won&#8217;t know until you press) produced behaviour that was extraordinarily resistant to extinction. The rat kept pressing long after the rewards stopped coming. Skinner himself compared it to a slot machine.</p><p>That comparison is now the foundation of a $104 billion industry.</p><p>Every freemium game with a loot box, a gacha pull, a spin-the-wheel daily reward, or a mystery chest is running a variable ratio reinforcement schedule. The player performs an action. The reward is randomised. The uncertainty is the mechanism. The player keeps pressing.</p><p>I knew this. I studied it. In 2012, I was working at a free-to-play studio in Toronto and I read two books back to back. The first was Nicholas Lovell&#8217;s <em><a href="https://gamesbrief.com/">Design Rules for Free-to-Play Games</a></em>, which had chapters on operant conditioning, Skinner boxes, appointment mechanics, and whale economics. The second was Natasha Dow Sch&#252;ll&#8217;s <em><a href="https://press.princeton.edu/books/paperback/9780691160887/addiction-by-design">Addiction by Design</a></em>, published the same year, about how slot machines engineer compulsive play through what Sch&#252;ll calls &#8216;the machine zone&#8217;. The appendices of both books led me deeper into academic papers on variable reinforcement, dopamine regulation, and loss aversion.</p><p>I was reading the game design playbook and the addiction research side by side. The same reading list a regulator would use to build a prosecution. I was using it to build games.</p><div><hr></div><p>Satan&#8217;s monologue gets the mechanism slightly wrong and the principle completely right. Dopamine is more complicated than &#8216;the pleasure chemical&#8217;. Current neuroscience shows that dopamine release peaks during anticipation of a reward, not during receipt. The hit comes before the chest opens, before the gacha animation resolves, before the loot box reveals its contents. Every spinning wheel, every countdown timer, every slow-reveal animation in a free-to-play game is engineered to stretch that anticipation window. The longer the player spends in the state of not knowing, the more dopamine the brain produces.</p><p>A <a href="https://jcoma.com/index.php/JCM/article/download/352/192">2025 study by Kumar and Manohar</a> in the Journal of Communication and Management analysed the dopamine loop mechanics in Genshin Impact, Fortnite, Clash of Clans, and Candy Crush Saga. They confirmed that variable reward systems trigger dopamine release, encourage habitual play, and drive microtransaction spending. The study also raised the question that the industry has spent a decade trying not to answer: where does engagement end and exploitation begin?</p><p>The answer, at the neurochemical level, is that the distinction may not exist. A <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC3920462/">study published in PMC</a> demonstrated that rats exposed to variable-ratio reinforcement schedules (the same pattern used in slot machines and loot boxes) developed dopamine sensitisation equivalent to that produced by amphetamine exposure. The variable schedule itself, without any drug, caused the same neuroplastic changes associated with substance addiction.</p><p>Satan called the game &#8216;a blatant Skinner box manipulation&#8217;. The research says he undersold it.</p><div id="youtube2-zqk9V0fBl7w" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zqk9V0fBl7w&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/zqk9V0fBl7w?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><p>The episode&#8217;s Minister of Mobile Gaming explains who pays for all of this:</p><blockquote><p>&#8216;The truth is a very small percentage of people who download freemium games ever pay anything for them. It&#8217;s all about finding the heaviest users and extracting the most amount of cash from them.&#8217;</p></blockquote><p>He was right too. The numbers in 2026 are more extreme than anything the episode depicted.</p><p><a href="https://rec0ded88.com/statistics/in-game-purchase-spending-habit-statistics/">Unity&#8217;s 2025 Gaming Report</a> found that 5% of players generate 65% of all in-app purchase revenue. 72% of players spend nothing at all. <a href="https://www.blog.udonis.co/mobile-marketing/mobile-games/mobile-games-whales">Industry data from Udonis</a> puts it starker: 1&#8211;2% of the player base, the whales, fund 50&#8211;70% of a game&#8217;s total IAP revenue. The top 5% of spenders average roughly $66 per day across genres. In casual games, that figure peaked near $100 during the hyper-casual boom. Companies routinely pay upwards of $500 to acquire a single &#8216;super whale&#8217;.</p><p>Mobile in-app purchase revenue reached <a href="https://xtendedview.com/mobile-games-statistics/">$92.6 billion in 2024</a> and is projected to exceed $104 billion by 2026. The entire model, all of it, runs on the small percentage of people whose brains respond most strongly to variable reinforcement. South Park said 1%. The real number is 1&#8211;5%, depending on genre. The revenue concentration is steeper than the cartoon version.</p><p>I have a specific memory of this. I played Smurfs&#8217; Village for hundreds of hours, as both a free player grinding through the progression and a paying player buying my way past the friction. Smurfs&#8217; Village was the seminal free-to-play village-builder, released in 2010: rebuild the Smurfs&#8217; home after Gargamel scattered them, place buildings, wait for them to produce currency, collect rewards, reinvest. Optional in-app purchases (Smurfberries) let you skip the wait. That loop became the template for an entire genre. It also became one of the first F2P controversies: players made large accidental purchases, and the publisher had to add warnings that Smurfberries cost real money. The problems the FTC would prosecute fifteen years later were visible from day one. I was studying it from the inside, feeling the compulsion loop work on me in real time, while taking notes on how to reproduce it. The line between &#8216;I love this game&#8217; and &#8216;I know exactly how this game is manipulating me&#8217; was never clean. I was the player and the producer at the same desk.</p><div><hr></div><p>The strongest counterargument to all of this deserves a fair hearing. Seufert&#8217;s <a href="https://mobiledevmemo.com/south-park-freemium-pop-psychology/">2014 rebuttal</a> made four points that still circulate in industry discussions.</p><p>First: low conversion is the entire point of freemium. Most people play for free and get genuine value. The model lets millions access entertainment that would otherwise cost money upfront.</p><p>Second: in-game currency is a convenience mechanism. Skype uses credits. iTunes uses gift cards. Obfuscation is not the only explanation.</p><p>Third: comparing game spending to substance addiction is a category error. Most people who spend money on games they enjoy are making a consumer choice, not feeding an addiction.</p><p>Fourth: the Pareto distribution (a small percentage generating most revenue) applies to every consumer product. This is not unique to gaming and is not, by itself, evidence of exploitation.</p><p>These arguments were more persuasive in 2014 than they are in 2026. The <a href="https://allaboutlawyer.com/what-are-dark-patterns-in-gaming-legal-risks-after-the-fortnite-settlement/">FTC did not settle with Epic Games for $520 million</a> over a convenience mechanism. <a href="https://blog.empiredrop.com/are-loot-boxes-gambling-the-legal-debate-explained/">Belgium did not classify Kinder Eggs as gambling</a>. The <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC3920462/">PMC study</a> did not find that fixed-price consumer goods cause amphetamine-equivalent neuroplasticity. The distinction between &#8216;some people choose to pay&#8217; and &#8216;the system is engineered to exploit a neurochemical vulnerability in a small population&#8217; has sharpened considerably in the twelve years since Seufert wrote his piece.</p><p>The counterargument describes what freemium is supposed to be. The data describes what it became.</p><div><hr></div><p>Three years after Parker and Stone made the sharpest critique of freemium ever broadcast, Ubisoft released <em>South Park: Phone Destroyer</em>. A free-to-play card battler. Premium currency. Loot packs. Microtransaction-driven progression. It <a href="https://kotaku.com/the-south-park-mobile-game-warns-you-about-its-own-micr-1820332604">launched with a disclaimer</a> warning players about its own monetisation, echoing the show&#8217;s content warnings. Tongue in cheek. Self-aware. <a href="https://tvtropes.org/pmwiki/pmwiki.php/YMMV/SouthParkS18E6FreemiumIsntFree">TV Tropes filed it under &#8216;Broken Aesop&#8217;</a>.</p><p>The people who understood the problem best, who did the research, who wrote the satire, who animated Satan explaining dopamine to a ten-year-old, still released the game. Because the model works. Because the money is real. Because the economics of mobile gaming in 2017 left very few alternatives for a franchise that wanted to exist on phones.</p><p>The science is settled. Variable reinforcement causes compulsive behaviour. The revenue model depends on a small population of heavy spenders. The dopamine mechanics are the same ones that power slot machines. None of this is disputed by anyone who has read the research.</p><p>So the question is no longer &#8216;is this wrong?&#8217; The question is: what did the industry do about it?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/satan-was-right-about-dopamine/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/satan-was-right-about-dopamine/comments"><span>Leave a comment</span></a></p><p>Part three covers the answer. It involves the alcohol industry&#8217;s playbook, a decade of self-regulation theatre, and a regulatory wave that arrived because the industry chose not to fix itself.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/satan-was-right-about-dopamine?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/satan-was-right-about-dopamine?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/satan-was-right-about-dopamine?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[South Park Was Right]]></title><description><![CDATA[How a cartoon predicted the FTC&#8217;s enforcement agenda a decade early]]></description><link>https://www.productionalchemist.com/p/south-park-was-right</link><guid isPermaLink="false">https://www.productionalchemist.com/p/south-park-was-right</guid><dc:creator><![CDATA[Rob Sandberg]]></dc:creator><pubDate>Mon, 20 Apr 2026 07:00:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!42Uw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8cfcf5-9754-4cb8-8062-0ee3c016a3ce_1482x1148.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><ul><li><p>In 2014, South Park made six specific claims about free-to-play monetisation. Everyone is now the subject of enforcement action or legislation.</p></li><li><p>Parker and Stone were pitched a South Park freemium game, thought it was offensive, and made an episode about it instead.</p></li><li><p>One producer&#8217;s path from defending the model in 2015 to calling himself a parasite in 2017.</p></li><li><p>Part one of a four-part series on the F2P trap.</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!42Uw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8cfcf5-9754-4cb8-8062-0ee3c016a3ce_1482x1148.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!42Uw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8cfcf5-9754-4cb8-8062-0ee3c016a3ce_1482x1148.png 424w, https://substackcdn.com/image/fetch/$s_!42Uw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8cfcf5-9754-4cb8-8062-0ee3c016a3ce_1482x1148.png 848w, https://substackcdn.com/image/fetch/$s_!42Uw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8cfcf5-9754-4cb8-8062-0ee3c016a3ce_1482x1148.png 1272w, https://substackcdn.com/image/fetch/$s_!42Uw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8cfcf5-9754-4cb8-8062-0ee3c016a3ce_1482x1148.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!42Uw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8cfcf5-9754-4cb8-8062-0ee3c016a3ce_1482x1148.png" width="1456" height="1128" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d8cfcf5-9754-4cb8-8062-0ee3c016a3ce_1482x1148.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1128,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:596610,&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://gameproductionalchemist.substack.com/i/194514318?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8cfcf5-9754-4cb8-8062-0ee3c016a3ce_1482x1148.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_!42Uw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8cfcf5-9754-4cb8-8062-0ee3c016a3ce_1482x1148.png 424w, https://substackcdn.com/image/fetch/$s_!42Uw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8cfcf5-9754-4cb8-8062-0ee3c016a3ce_1482x1148.png 848w, https://substackcdn.com/image/fetch/$s_!42Uw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8cfcf5-9754-4cb8-8062-0ee3c016a3ce_1482x1148.png 1272w, https://substackcdn.com/image/fetch/$s_!42Uw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8cfcf5-9754-4cb8-8062-0ee3c016a3ce_1482x1148.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 role="img" 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><title></title><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></figure></div><p>In April 2015, five months after South Park aired an episode called &#8216;Freemium Isn&#8217;t Free&#8217;, I was still quite defensive about it.  I wrote this on Facebook:</p><blockquote><p>&#8216;I don&#8217;t make Skinner Boxes. I do use reward schedules in an attempt habitualize behaviour as a tactic, but main difference is my players are not confined and focused on the reinforcement apparatus. They have free will and lots of distractions. The cleverest engagement gag cannot trick a player into doing something that is not fun or lacks anticipation of a reward.&#8217;</p></blockquote><p>Hedonic adaptation. Appointment sessions. Operant conditioning. I threw the whole vocabulary at it. I was a producer at a free-to-play studio in Toronto, and I wanted my friends in the industry, the ones still making &#8216;real games&#8217;, to know I understood the craft. That what I did was legitimate.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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://www.productionalchemist.com/subscribe?"><span>Subscribe now</span></a></p><p>Two years later, Facebook surfaced the post as a memory. I shared it with a new caption:</p><blockquote><p>&#8216;Damn, I was really drinking the coolaid back then justifying my parasitic profession of making free to play &#8220;games&#8221;. At least I became a very good parasite.&#8217;</p></blockquote><p>I&#8217;d also added &#8216;Canadian Department of Mobile Gaming, Minister of Just Barely Fun&#8217; to my Facebook employment history. I was living in Canada. The episode&#8217;s satirical Canadian government conspiracy to fund the country through predatory mobile apps hit close enough that I made it part of my identity. I thought it was funny. It was funny. It was also true.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!q-Gj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd38c4252-e952-43d5-a30f-ab0b5bee87a8_3094x484.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!q-Gj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd38c4252-e952-43d5-a30f-ab0b5bee87a8_3094x484.png 424w, https://substackcdn.com/image/fetch/$s_!q-Gj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd38c4252-e952-43d5-a30f-ab0b5bee87a8_3094x484.png 848w, https://substackcdn.com/image/fetch/$s_!q-Gj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd38c4252-e952-43d5-a30f-ab0b5bee87a8_3094x484.png 1272w, https://substackcdn.com/image/fetch/$s_!q-Gj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd38c4252-e952-43d5-a30f-ab0b5bee87a8_3094x484.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!q-Gj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd38c4252-e952-43d5-a30f-ab0b5bee87a8_3094x484.png" width="476" height="74.53846153846153" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d38c4252-e952-43d5-a30f-ab0b5bee87a8_3094x484.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:228,&quot;width&quot;:1456,&quot;resizeWidth&quot;:476,&quot;bytes&quot;:544126,&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://gameproductionalchemist.substack.com/i/194514318?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd38c4252-e952-43d5-a30f-ab0b5bee87a8_3094x484.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_!q-Gj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd38c4252-e952-43d5-a30f-ab0b5bee87a8_3094x484.png 424w, https://substackcdn.com/image/fetch/$s_!q-Gj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd38c4252-e952-43d5-a30f-ab0b5bee87a8_3094x484.png 848w, https://substackcdn.com/image/fetch/$s_!q-Gj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd38c4252-e952-43d5-a30f-ab0b5bee87a8_3094x484.png 1272w, https://substackcdn.com/image/fetch/$s_!q-Gj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd38c4252-e952-43d5-a30f-ab0b5bee87a8_3094x484.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>This is part one of a four-part series about the free-to-play model, what South Park got right, what the industry got wrong, and why people like me kept building the thing we were laughing at.</p><div><hr></div><p>The episode aired on 5 November 2014. Season 18, episode 6. Trey Parker wrote and directed it. He and Matt Stone had been pitched by multiple companies on the idea of creating a South Park freemium mobile game. On the <a href="https://en.wikipedia.org/wiki/Freemium_Isn't_Free">DVD commentary</a>, they said they thought the model was &#8216;pretty offensive&#8217; in how shamelessly it asked for money, so they did what they called &#8216;a shit load of research&#8217;. They turned the pitch into a satirical episode instead.</p><p>The episode made six specific claims about freemium games. I&#8217;m going to state them plainly because the precision matters.</p><p>One: freemium games are deliberately boring. The tedium is the product. You pay to skip it.</p><p>Two: premium currencies (the episode&#8217;s fictional &#8216;Canadough&#8217;) obscure the real cost of purchases. The conversion from dollars to in-game currency lowers the player&#8217;s inhibitions around spending.</p><p>Three: revenue depends on a tiny minority of players with addictive tendencies. The Minister of Mobile Gaming explains this directly:</p><blockquote><p>&#8216;The truth is a very small percentage of people who download freemium games ever pay anything for them. It&#8217;s all about finding the heaviest users and extracting the most amount of cash from them. That&#8217;s how you get addicts to pay 200 bucks for a game that&#8217;s not even worth 40 cents.&#8217;</p></blockquote><p>Four: the dopamine reward loop in freemium games mirrors gambling and substance addiction. Satan (yes, Satan) appears to explain the neuroscience to Stan in a monologue about variable reinforcement schedules and dopamine regulation.</p><p>Five: the industry&#8217;s &#8216;play responsibly&#8217; messaging is cosmetic. The episode draws a direct parallel to alcohol industry self-regulation, complete with a parody &#8216;drink responsibly&#8217; advert that spends thirty seconds glamorising drinking before flashing the disclaimer.</p><p>Six: the people pushing the games (represented by Jimmy acting as a street-level dealer) are themselves victims of the same system.</p><p>The Prince of Canada sums up the business model in one line:</p><blockquote><p>&#8216;Freemium. The &#8220;mium&#8221; is Latin for &#8220;not really&#8221;.&#8217;</p></blockquote><div id="youtube2-wET5qy5ZLBU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;wET5qy5ZLBU&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/wET5qy5ZLBU?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><p>Critics were mixed. The <a href="https://www.avclub.com/south-park-freemium-isn-t-free-1798181825">AV Club</a> gave it a B-minus and wrote that drawing a line between freemium games, gambling, and alcohol addiction &#8216;seemed like a bit of a stretch&#8217;. <a href="https://southpark.fandom.com/wiki/Freemium_Isn't_Free">IGN</a> gave it a 7.5 and complained about &#8216;longwinded explanations of freemium games and how they worked&#8217;. The general consensus was that the target was valid but the execution was heavy-handed. Too much teaching, too little comedy.</p><p>Parker and Stone called it their favourite episode of the season.</p><p>The episode was nominated for a Primetime Emmy for Outstanding Animated Program. It didn&#8217;t win. The industry didn&#8217;t listen. And then, three years later, Ubisoft released <em>South Park: Phone Destroyer</em>, a free-to-play card battler with premium currency, loot packs, and microtransaction-driven progression. It launched with a <a href="https://kotaku.com/the-south-park-mobile-game-warns-you-about-its-own-micr-1820332604">tongue-in-cheek disclaimer</a> warning players about its own monetisation. The franchise that produced the sharpest critique of freemium ever broadcast went ahead and released the exact game it had satirised. <a href="https://tvtropes.org/pmwiki/pmwiki.php/YMMV/SouthParkS18E6FreemiumIsntFree">TV Tropes</a> catalogues this as a &#8216;Broken Aesop&#8217;. That&#8217;s generous.</p><p>More on Phone Destroyer in part two. For now, what matters is the scorecard. Here&#8217;s where the episode&#8217;s six claims stand in 2026.</p><p>Claim one, deliberate tedium: the FTC now prosecutes &#8216;dark patterns&#8217; in games, including designs that create friction to push spending. <a href="https://allaboutlawyer.com/what-are-dark-patterns-in-gaming-legal-risks-after-the-fortnite-settlement/">Epic Games settled for $520 million</a>. <a href="https://btlj.org/2025/11/trapped-by-design-how-dark-patterns-manipulate-your-choices-and-the-regulators-fighting-back/">Amazon settled for $2.5 billion</a> over deceptive enrolment and cancellation flows.</p><p>Claim two, currency obfuscation: in January 2025, the <a href="https://www.lexology.com/library/detail.aspx?g=6779705d-3000-4825-92c4-7c5b8a901ada">FTC settled with Cognosphere</a>, the developer of Genshin Impact, over charges that the company deceived users about the real costs of in-game transactions and the odds of obtaining rare items.</p><p>Claim three, whale dependence: <a href="https://rec0ded88.com/statistics/in-game-purchase-spending-habit-statistics/">Unity&#8217;s 2025 Gaming Report</a> found that 5% of players generate 65% of all in-app purchase revenue. 72% of players spend nothing. The model runs on the people it hooks hardest.</p><p>Claim four, the gambling parallel: <a href="https://blog.empiredrop.com/are-loot-boxes-gambling-the-legal-debate-explained/">Belgium classified paid loot boxes as gambling in 2018</a>. <a href="https://lovethynerd.com/loot-boxes-are-still-a-problem-in-2026-why-micro-gambling-culture-hasnt-gone-away/">Brazil banned loot box sales to minors in 2025</a>, effective March 2026. The <a href="https://esportslegal.news/2025/12/11/us-uk-and-eu-loot-box-strategies/">EU Parliament&#8217;s consumer protection committee adopted a report in October 2025</a> urging a continent-wide ban on loot boxes in games accessible to minors. The EU&#8217;s proposed <a href="https://esportslegal.news/2025/12/11/us-uk-and-eu-loot-box-strategies/">Digital Fairness Act</a> is expected in late 2026.</p><p>Claim five, self-regulation theatre: a <a href="https://royalsociety.org/blog/2025/06/video-game-industry-loot-boxes/">2025 Royal Society study</a> found that fewer than 10% of social media ads for games with loot boxes disclosed their presence as required by the UK industry&#8217;s own voluntary rules. The lead researcher concluded that &#8216;the industry self-regulation experiment has failed again&#8217;. A <a href="https://academic.oup.com/eurpub/article/33/2/305/7059266">2023 study in the European Journal of Public Health</a> found that the alcohol and gambling industries use identical strategies: frame the harm as affecting only a minority, present themselves as responsible, and promote voluntary codes to block actual regulation.</p><p>Claim six, the pushers are victims too: I&#8217;ll get to that in part four. That one&#8217;s mine.</p><p>Every claim the episode made in 2014 is now backed by enforcement action, academic research, or pending legislation. The <a href="https://www.avclub.com/south-park-freemium-isn-t-free-1798181825">AV Club</a> thought the gambling comparison was a stretch. The FTC disagreed. Belgium disagreed. Brazil disagreed. The European Parliament disagreed.</p><p>A cartoon saw it. The industry that made the cartoon saw it. The producer writing this post saw it, added &#8216;Minister of Just Barely Fun&#8217; to his Facebook profile, and went back to work the next morning.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/south-park-was-right/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/south-park-was-right/comments"><span>Leave a comment</span></a></p><p>If a comedy show could see this coming a decade early, why didn&#8217;t the industry course-correct? And why did the people who agreed with the critique, people who laughed at the joke, who shared the clips, who understood the references, keep building the thing they were laughing at?</p><p>That&#8217;s what this series is about.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/south-park-was-right?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Game Production Alchemist! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.com/p/south-park-was-right?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.productionalchemist.com/p/south-park-was-right?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.productionalchemist.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 Game Production Alchemist! 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></channel></rss>