<script data-pm-proxy="intercept"></script><?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[The Solo Gamedev]]></title><description><![CDATA[Hacks for learning, productivity, having work-life-passion balance and finally game development!]]></description><link>https://gamedevdairy.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!-7-F!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3033e0cd-c443-4a40-9257-523c85e9ea6a_256x256.png</url><title>The Solo Gamedev</title><link>https://gamedevdairy.substack.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 02 Sep 2026 11:59:09 GMT</lastBuildDate><atom:link href="/__u/gamedevdairy.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Mariusz]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[sologamedev@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[sologamedev@substack.com]]></itunes:email><itunes:name><![CDATA[Maurice Klimek]]></itunes:name></itunes:owner><itunes:author><![CDATA[Maurice Klimek]]></itunes:author><googleplay:owner><![CDATA[sologamedev@substack.com]]></googleplay:owner><googleplay:email><![CDATA[sologamedev@substack.com]]></googleplay:email><googleplay:author><![CDATA[Maurice Klimek]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Why John Romero hates prototypes?]]></title><description><![CDATA[And why Nintendo can afford to love them.]]></description><link>https://gamedevdairy.substack.com/p/why-john-romero-hates-prototypes</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/why-john-romero-hates-prototypes</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 31 Aug 2026 09:59:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3Eup!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92c5bfd6-c53c-45f4-80b9-51d3fa201561_580x580.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You might think that each game should start from a prototype. It sounds so obvious! You could see that in the indie-darling <strong>Celeste</strong>, which was first done in the Pico-8 console.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!3Eup!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92c5bfd6-c53c-45f4-80b9-51d3fa201561_580x580.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!3Eup!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92c5bfd6-c53c-45f4-80b9-51d3fa201561_580x580.png 424w, /__u/substackcdn.com/image/fetch/$s_!3Eup!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92c5bfd6-c53c-45f4-80b9-51d3fa201561_580x580.png 848w, /__u/substackcdn.com/image/fetch/$s_!3Eup!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92c5bfd6-c53c-45f4-80b9-51d3fa201561_580x580.png 1272w, /__u/substackcdn.com/image/fetch/$s_!3Eup!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92c5bfd6-c53c-45f4-80b9-51d3fa201561_580x580.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!3Eup!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92c5bfd6-c53c-45f4-80b9-51d3fa201561_580x580.png" width="580" height="580" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/92c5bfd6-c53c-45f4-80b9-51d3fa201561_580x580.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:580,&quot;width&quot;:580,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Celeste&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Celeste" title="Celeste" srcset="/__u/substackcdn.com/image/fetch/$s_!3Eup!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92c5bfd6-c53c-45f4-80b9-51d3fa201561_580x580.png 424w, /__u/substackcdn.com/image/fetch/$s_!3Eup!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92c5bfd6-c53c-45f4-80b9-51d3fa201561_580x580.png 848w, /__u/substackcdn.com/image/fetch/$s_!3Eup!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92c5bfd6-c53c-45f4-80b9-51d3fa201561_580x580.png 1272w, /__u/substackcdn.com/image/fetch/$s_!3Eup!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92c5bfd6-c53c-45f4-80b9-51d3fa201561_580x580.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Or in the fact that <strong>the proto&#173;type for Splatoon was about blocks of tofu shooting paint</strong>.</p><p>A prototype doesn&#8217;t have to be pretty. You don&#8217;t have to sell it. It doesn&#8217;t have to be polished. And it can have one core feature to focus on.</p><p>And yet, each time I see someone making prototypes I remind myself of what John Romero once said:</p><blockquote><p>No prototypes. Just make the game.</p></blockquote><p>Having Nintendo in one corner, and game making legend John Romero in the other, I wonder which approach is better for indies? </p><p>And <strong>why would Romero discourage developers from making prototypes?</strong></p><p>I think I know why, and I don&#8217;t think it&#8217;s about the prototype. It&#8217;s more about risk management.</p><p>I'm not saying Mr. Romero is wrong. As a matter of fact, I think he is right. In most of the gamedev cases.</p><p><strong>Like, when you have a team.</strong></p><p>Let&#8217;s imagine <strong>you're in charge of the money</strong> as well. It doesn&#8217;t matter how large the team is, but let's assume <strong>you have a budget</strong> for two years.</p><p>You decide to make a prototype.</p><h2>If you make a prototype and it works...</h2><p>Great! Good for you! There is the risk that in order to make it work as fast as possible, <strong>the quality may be on a makeshift level</strong>. Is that a problem, you ask? Well, it might. Depending on how much time you already worked on building a prototype. From my experience, I can tell you that <strong>developers RARELY throw away the proto&#173;type to build the product from scratch with the knowledge gained</strong>. They build upon the prototype.</p><p>The slop becomes the basis of the architecture. Why? <strong>Because it works, and you already spent some time on it</strong>. Sunk cost fallacy at its finest! If the team is experienced and aware of good practices it might not hurt much.</p><h2>But what if the prototype fails?</h2><p>Well, since you did waste some of the budget, what should be the next step?</p><p>Should you try to fix the prototype?</p><p>Or start a new prototype hoping this one will work?</p><p>Or do you make something you know how to make, so you don't waste more of the budget? Even if it can only lead to the conclusion: now <strong>why didn't I go that road from the beginning?</strong></p><p>That's the problem with prototypes: <strong>they are experiments. And experiments can, and often do, fail.</strong></p><p>A prototype works, in my opinion, for two types of scenarios:</p><ul><li><p>crazy rich Asian corporations like Nintendo</p></li><li><p>hobbyists who have different sources of income.</p></li></ul><p>Both of them can minimize the risk.</p><h2>The benefits of doing prototypes when being a solo gamedev</h2><p>I do think that the budget problem is only a problem when you have to think about salaries and monthly payments. Everything that puts your employees&#8217; payday at risk should be avoided.</p><p><strong>Unless... you're all alone! </strong></p><p><strong>Or treat making games as a side project.</strong></p><p>Sure, you'll never be making a game entirely alone. Even if you hire contractors occasionally, being on your own minimizes the liability.<strong> It's all about risk management.</strong></p><p><strong>The truth is: a solo dev risks mostly their time, not other people&#8217;s employment!</strong></p><h2>What to do with a prototype?</h2><p>One thing that should result from making a prototype is extensive testing. Someone needs to test the prototype and provide feedback on what works and what does not.</p><p>In a company, you can start with your own employees, focus groups, and so on.</p><p><strong>But what can a solo indie game developer do?</strong></p><p>Well...</p><p>You don&#8217;t have an in-house QA department or focus groups, but you have the open web. Publish your prototypes. Test out ideas on smaller games and release them before committing them to bigger projects.</p><p>Make an MVP based on the prototype and publish it on some smaller platform, like itch.io or something similar. </p><p>It's all about feedback, and these platforms should provide it faster.</p><p>Then you just iterate.</p><p>Enhance your idea.</p><p>Fix bugs.</p><p>Show it again!</p><p>The sooner you show the prototype, the better game you'll make later!</p><p>Do you show your prototypes, or do you keep them locked in a vault until they're perfect? &#128521;</p>]]></content:encoded></item><item><title><![CDATA[Don’t Start With Dwarf Fortress!]]></title><description><![CDATA[This weekend I was supposed to work on my game.]]></description><link>https://gamedevdairy.substack.com/p/dont-start-with-dwarf-fortress</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/dont-start-with-dwarf-fortress</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 24 Aug 2026 09:59:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JZZb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3b0abd-4c06-4016-97f7-b00e85ba5c94_1200x675.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This weekend I was supposed to work on my game, but I watched a YouTube video called <a href="https://youtu.be/iCMA2jQsWxQ?si=s-QmcHu1QhEKN_4A">7 Levels of Video Game Complexity</a> instead. And yes, I want to share my notes.</p><p>The video&#8217;s title seems self-describing, so let&#8217;s go straight to the thing:</p><h2>The Seven Levels</h2><h3>Level one</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!_HPW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db88017-cdfc-4fd6-9259-700e1545fdfc_526x296.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!_HPW!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db88017-cdfc-4fd6-9259-700e1545fdfc_526x296.webp 424w, /__u/substackcdn.com/image/fetch/$s_!_HPW!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db88017-cdfc-4fd6-9259-700e1545fdfc_526x296.webp 848w, /__u/substackcdn.com/image/fetch/$s_!_HPW!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db88017-cdfc-4fd6-9259-700e1545fdfc_526x296.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!_HPW!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db88017-cdfc-4fd6-9259-700e1545fdfc_526x296.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!_HPW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db88017-cdfc-4fd6-9259-700e1545fdfc_526x296.webp" width="526" height="296" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8db88017-cdfc-4fd6-9259-700e1545fdfc_526x296.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:296,&quot;width&quot;:526,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Dino T-Rex &#8211; Aplikacje w Google Play&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dino T-Rex &#8211; Aplikacje w Google Play" title="Dino T-Rex &#8211; Aplikacje w Google Play" srcset="/__u/substackcdn.com/image/fetch/$s_!_HPW!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db88017-cdfc-4fd6-9259-700e1545fdfc_526x296.webp 424w, /__u/substackcdn.com/image/fetch/$s_!_HPW!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db88017-cdfc-4fd6-9259-700e1545fdfc_526x296.webp 848w, /__u/substackcdn.com/image/fetch/$s_!_HPW!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db88017-cdfc-4fd6-9259-700e1545fdfc_526x296.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!_HPW!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db88017-cdfc-4fd6-9259-700e1545fdfc_526x296.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The simplest games are built on a single mechanic, like <strong>Alto&#8217;s Adventure</strong>, <strong>Geometry Dash</strong>, or the <strong>Google Dino</strong>. You jump. That&#8217;s the whole game.</p><p>This would be the place where most <strong>platformers</strong> fit.</p><h3>Level two</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!kttD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03304cbb-f23f-4c1b-bcd7-afe0a2c70ec2_1440x795.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!kttD!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03304cbb-f23f-4c1b-bcd7-afe0a2c70ec2_1440x795.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!kttD!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03304cbb-f23f-4c1b-bcd7-afe0a2c70ec2_1440x795.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!kttD!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03304cbb-f23f-4c1b-bcd7-afe0a2c70ec2_1440x795.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!kttD!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03304cbb-f23f-4c1b-bcd7-afe0a2c70ec2_1440x795.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!kttD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03304cbb-f23f-4c1b-bcd7-afe0a2c70ec2_1440x795.jpeg" width="1440" height="795" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03304cbb-f23f-4c1b-bcd7-afe0a2c70ec2_1440x795.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:795,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot; &quot;,&quot;title&quot;:&quot; &quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt=" " title=" " srcset="/__u/substackcdn.com/image/fetch/$s_!kttD!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03304cbb-f23f-4c1b-bcd7-afe0a2c70ec2_1440x795.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!kttD!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03304cbb-f23f-4c1b-bcd7-afe0a2c70ec2_1440x795.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!kttD!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03304cbb-f23f-4c1b-bcd7-afe0a2c70ec2_1440x795.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!kttD!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03304cbb-f23f-4c1b-bcd7-afe0a2c70ec2_1440x795.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>These games look identical to the player as level one games. Simple controls, but underneath, systems run wild. </p><p><strong>Kingdom</strong> hides an economy, a day/night cycle and base defense behind &#8220;walk left, walk right&#8221;. </p><p><strong>Vampire Survivors</strong> hides literally everything. You just move.</p><p>I think most games are here.</p><h3>Level three </h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!_8NK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb279c0-7dd7-4f73-8a8b-71dfab788a9b_526x296.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!_8NK!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb279c0-7dd7-4f73-8a8b-71dfab788a9b_526x296.png 424w, /__u/substackcdn.com/image/fetch/$s_!_8NK!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb279c0-7dd7-4f73-8a8b-71dfab788a9b_526x296.png 848w, /__u/substackcdn.com/image/fetch/$s_!_8NK!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb279c0-7dd7-4f73-8a8b-71dfab788a9b_526x296.png 1272w, /__u/substackcdn.com/image/fetch/$s_!_8NK!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb279c0-7dd7-4f73-8a8b-71dfab788a9b_526x296.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!_8NK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb279c0-7dd7-4f73-8a8b-71dfab788a9b_526x296.png" width="526" height="296" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3eb279c0-7dd7-4f73-8a8b-71dfab788a9b_526x296.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:296,&quot;width&quot;:526,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Zrzut ekranu&quot;,&quot;title&quot;:&quot;Zrzut ekranu&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Zrzut ekranu" title="Zrzut ekranu" srcset="/__u/substackcdn.com/image/fetch/$s_!_8NK!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb279c0-7dd7-4f73-8a8b-71dfab788a9b_526x296.png 424w, /__u/substackcdn.com/image/fetch/$s_!_8NK!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb279c0-7dd7-4f73-8a8b-71dfab788a9b_526x296.png 848w, /__u/substackcdn.com/image/fetch/$s_!_8NK!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb279c0-7dd7-4f73-8a8b-71dfab788a9b_526x296.png 1272w, /__u/substackcdn.com/image/fetch/$s_!_8NK!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb279c0-7dd7-4f73-8a8b-71dfab788a9b_526x296.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Here, game mechanics talk to each other. In games like <strong>Minecraft</strong>, <strong>Terraria</strong>, <strong>Subnautica</strong> night falls, monsters spawn, so you need a shelter, so you need wood, so you need an axe. A chain reaction of problems creating each other.</p><h3>Level four </h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Kjd3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facc7a386-5fff-4a75-9096-8002c4d4ff59_1920x1080.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Kjd3!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facc7a386-5fff-4a75-9096-8002c4d4ff59_1920x1080.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!Kjd3!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facc7a386-5fff-4a75-9096-8002c4d4ff59_1920x1080.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!Kjd3!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facc7a386-5fff-4a75-9096-8002c4d4ff59_1920x1080.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!Kjd3!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facc7a386-5fff-4a75-9096-8002c4d4ff59_1920x1080.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Kjd3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facc7a386-5fff-4a75-9096-8002c4d4ff59_1920x1080.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/acc7a386-5fff-4a75-9096-8002c4d4ff59_1920x1080.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Steam :: Project Zomboid :: BagZ of fun&quot;,&quot;title&quot;:&quot;Steam :: Project Zomboid :: BagZ of fun&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Steam :: Project Zomboid :: BagZ of fun" title="Steam :: Project Zomboid :: BagZ of fun" srcset="/__u/substackcdn.com/image/fetch/$s_!Kjd3!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facc7a386-5fff-4a75-9096-8002c4d4ff59_1920x1080.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!Kjd3!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facc7a386-5fff-4a75-9096-8002c4d4ff59_1920x1080.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!Kjd3!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facc7a386-5fff-4a75-9096-8002c4d4ff59_1920x1080.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!Kjd3!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facc7a386-5fff-4a75-9096-8002c4d4ff59_1920x1080.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Project Zomboid</strong> tracks your diet, your mood, the seasons, and whether that sandwich in your backpack went bad.</p><h3>Level five</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!JZZb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3b0abd-4c06-4016-97f7-b00e85ba5c94_1200x675.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!JZZb!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3b0abd-4c06-4016-97f7-b00e85ba5c94_1200x675.webp 424w, /__u/substackcdn.com/image/fetch/$s_!JZZb!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3b0abd-4c06-4016-97f7-b00e85ba5c94_1200x675.webp 848w, /__u/substackcdn.com/image/fetch/$s_!JZZb!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3b0abd-4c06-4016-97f7-b00e85ba5c94_1200x675.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!JZZb!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3b0abd-4c06-4016-97f7-b00e85ba5c94_1200x675.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!JZZb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3b0abd-4c06-4016-97f7-b00e85ba5c94_1200x675.webp" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f3b0abd-4c06-4016-97f7-b00e85ba5c94_1200x675.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Frostpunk - Official Frostpunk Wiki&quot;,&quot;title&quot;:&quot;Frostpunk - Official Frostpunk Wiki&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Frostpunk - Official Frostpunk Wiki" title="Frostpunk - Official Frostpunk Wiki" srcset="/__u/substackcdn.com/image/fetch/$s_!JZZb!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3b0abd-4c06-4016-97f7-b00e85ba5c94_1200x675.webp 424w, /__u/substackcdn.com/image/fetch/$s_!JZZb!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3b0abd-4c06-4016-97f7-b00e85ba5c94_1200x675.webp 848w, /__u/substackcdn.com/image/fetch/$s_!JZZb!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3b0abd-4c06-4016-97f7-b00e85ba5c94_1200x675.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!JZZb!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3b0abd-4c06-4016-97f7-b00e85ba5c94_1200x675.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You stop babysitting one character and start managing hundreds, e.g. <strong>Frostpunk</strong>, <strong>Banished</strong>, or <strong>SimCity</strong>. Every decision cascades. Build a factory, hire people, produce value, publish game, achieve success, lay off people anyway, get regret.</p><h3>Level six</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!jFe1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da2f8c4-1f58-41b1-b49c-6bbf598bad5e_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!jFe1!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da2f8c4-1f58-41b1-b49c-6bbf598bad5e_1280x720.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!jFe1!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da2f8c4-1f58-41b1-b49c-6bbf598bad5e_1280x720.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!jFe1!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da2f8c4-1f58-41b1-b49c-6bbf598bad5e_1280x720.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!jFe1!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da2f8c4-1f58-41b1-b49c-6bbf598bad5e_1280x720.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!jFe1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da2f8c4-1f58-41b1-b49c-6bbf598bad5e_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6da2f8c4-1f58-41b1-b49c-6bbf598bad5e_1280x720.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Factorio - Trailer 2020 - YouTube&quot;,&quot;title&quot;:&quot;Factorio - Trailer 2020 - YouTube&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Factorio - Trailer 2020 - YouTube" title="Factorio - Trailer 2020 - YouTube" srcset="/__u/substackcdn.com/image/fetch/$s_!jFe1!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da2f8c4-1f58-41b1-b49c-6bbf598bad5e_1280x720.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!jFe1!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da2f8c4-1f58-41b1-b49c-6bbf598bad5e_1280x720.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!jFe1!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da2f8c4-1f58-41b1-b49c-6bbf598bad5e_1280x720.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!jFe1!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da2f8c4-1f58-41b1-b49c-6bbf598bad5e_1280x720.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This level belongs to engineers. Like in games like <strong>Factorio</strong>, <strong>Satisfactory</strong>. Supply chains, throughput, optimization. Spreadsheets disguised as games. I mean that as a compliment.</p><h3>Level seven</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!HlnA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41ae7db-a99f-41fb-9dee-fca316ae265e_1200x800.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!HlnA!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41ae7db-a99f-41fb-9dee-fca316ae265e_1200x800.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!HlnA!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41ae7db-a99f-41fb-9dee-fca316ae265e_1200x800.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!HlnA!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41ae7db-a99f-41fb-9dee-fca316ae265e_1200x800.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!HlnA!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41ae7db-a99f-41fb-9dee-fca316ae265e_1200x800.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!HlnA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41ae7db-a99f-41fb-9dee-fca316ae265e_1200x800.jpeg" width="1200" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d41ae7db-a99f-41fb-9dee-fca316ae265e_1200x800.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Dwarf Fortress: in praise of the impossible, beautifully ...&quot;,&quot;title&quot;:&quot;Dwarf Fortress: in praise of the impossible, beautifully ...&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dwarf Fortress: in praise of the impossible, beautifully ..." title="Dwarf Fortress: in praise of the impossible, beautifully ..." srcset="/__u/substackcdn.com/image/fetch/$s_!HlnA!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41ae7db-a99f-41fb-9dee-fca316ae265e_1200x800.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!HlnA!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41ae7db-a99f-41fb-9dee-fca316ae265e_1200x800.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!HlnA!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41ae7db-a99f-41fb-9dee-fca316ae265e_1200x800.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!HlnA!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd41ae7db-a99f-41fb-9dee-fca316ae265e_1200x800.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And here, the classic rogue-likes: <strong>Dwarf Fortress</strong>, <strong>NetHack</strong>, <strong>Caves of Qud</strong>. Worlds so detailed that one dwarf having a bad day can end your entire fortress. No cutscene can compete with a dwarf going insane because his favorite chair got flooded.</p><p>Those level seven stories are exactly the kind of emergent drama I keep saying games should have. If only one could make them look and play like a Mass Effect game &#128521;</p><h2>So which level should you do first?</h2><p>My first projects will be tiny arcade things. But I constantly find myself sketching full economy systems. While making games with no economy.</p><p><strong>But this might become a new criteria to <s>rate</s> prioritize my game ideas.</strong></p><p>Every level multiplies systems to build, systems to balance, systems to debug. If you look at the games mentioned above you&#8217;ll see that most of these games were made by teams. Sometimes by big ones. With the funny exception of Dwarf Fortress being most complicated and having the smallest team &#128514;</p><p>The sweet spot for solo devs like us might be level two. Simple input, hidden systems. Which is funny given that most games seem to be on this level. But they do not go into systems too much. </p><p>Still, comparing these games along with the team size shows one very important conclusion: <strong>complexity is not a badge, it&#8217;s a budget.</strong></p><h2>Question to you!</h2><p>What is your favorite type of complexity in games?</p>]]></content:encoded></item><item><title><![CDATA[Why Open Source Needs to Reject Vibe Coders]]></title><description><![CDATA[I&#8217;m building games with AI, but I&#8217;m glad language maintainers are telling us to back off.]]></description><link>https://gamedevdairy.substack.com/p/why-open-source-needs-to-reject-vibe</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/why-open-source-needs-to-reject-vibe</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 17 Aug 2026 09:59:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!GqOd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d93208f-3ef8-4c4a-a560-476c4e7e110b_1148x1832.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Many Open Source tools do not accept contributions if they&#8217;re written with the help of GenAI.</p><p>There&#8217;s <a href="https://godotengine.org/article/contribution-policy-2026/">Godot</a>, Zig the programming language, <a href="/__u/weeklyrust.substack.com/p/rusts-llm-policy-is-terrific">Rust the programming language</a>, Gentoo Linux, GIMP, cURL, the list goes on.</p><p>I remember when Zig made their announcement&#8212;some were convinced it was the beginning of the end for the language. Who will want to use Zig at this point? Who will want to contribute?</p><p>But the problem is - a lot of people, because that&#8217;s not how it works. You do not pick your tool based on the fact whether people identifying themselves as vibe coders contribute or not. This is not about diversity of tools, this is about competence.</p><p>And what do I think about it? Me - the soon to become a vibe game developer?</p><p>I think it&#8217;s a good approach!</p><p>I assume you&#8217;re pretty mind blown about my stance, but hear me out.</p><p>I did not change my mind about using GenAI for games, applications and so on. Even game engines. Some of them.</p><p>But there is a big but. And I like big buts and I cannot lie &#128521;</p><p>Let me give you a bird&#8217;s eye view first.</p><p>There are many layers to applications.</p><p>There are Operating Systems, then there are tools you use to build other tools (and this can be a real layer cake, as you can use some tools to build other tools - there can be many layers like this &#128540;), and then there are the end-products - the games, the todo lists, the text editors, and so on.</p><p>There&#8217;s nothing wrong when you use GenAI to make products for the last layer. In the end, there&#8217;s not so much to break. And given Cyberpunk&#8217;s premiere - I still think we should consider this not much for the sake of this argument. </p><p>But tools can be something different. Depending on the level of their complexity. Programming languages, game engines, and the like are built by very competent people, and it should stay like that.</p><p>Imagine you are the owner of an Open Source project, like a programming language, or a game engine. And some young developer (not-experienced in making these but passionate as Greta Thunberg) wants to contribute. Unaware of his own lack of experience, he just wants to contribute. He wants to add some code he thinks is good. He makes a Pull Request and waits.</p><p>Meanwhile, from the perspective of the maintainer. He has to read EVERY pull request.</p><p>But here&#8217;s the plot twist. He doesn&#8217;t get one-two weekly. He gets more than a dozen a day (for more popular projects), and that was before vibe coding was a thing. Because now - PRs are flooding everything. Leaving him with no time for doing his tasks, securing his code, helping other people, marketing his tool, living his life. That&#8217;s because he&#8217;s the human in the loop, and he has to stay focused. This is no place for junior devs who have an idea of the direction of the product and feel entitled to be listened to. Like all the other junior devs sitting in the same line. This work requires competence. This work requires deep domain competence. Knowing how to use AI like a pro isn't just about typing prompts&#8212;it's about knowing what to ask and rigorously auditing the output. And they just don't have that experience yet. They&#8217;re indies, they can make their game using Claude Code or any of the sort. But they don&#8217;t have experience on how to do it, like a pro. And sometimes they don&#8217;t even ask the AI how to do it like a pro. They just git commit, git push, and expect to be focused on.</p><p>And the maintainer&#8230; well, that&#8217;s not the only junior he has to focus on. There are hundreds of them now. With their ideas.</p><p>Do you know what you get when you let passionate junior programmers contribute vibed code to a big project like that?</p><p>You get <s>what you deserve</s> Windows 11!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!GqOd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d93208f-3ef8-4c4a-a560-476c4e7e110b_1148x1832.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!GqOd!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d93208f-3ef8-4c4a-a560-476c4e7e110b_1148x1832.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!GqOd!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d93208f-3ef8-4c4a-a560-476c4e7e110b_1148x1832.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!GqOd!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d93208f-3ef8-4c4a-a560-476c4e7e110b_1148x1832.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!GqOd!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d93208f-3ef8-4c4a-a560-476c4e7e110b_1148x1832.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!GqOd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d93208f-3ef8-4c4a-a560-476c4e7e110b_1148x1832.jpeg" width="1148" height="1832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d93208f-3ef8-4c4a-a560-476c4e7e110b_1148x1832.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1832,&quot;width&quot;:1148,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Zdj&#281;cie&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Zdj&#281;cie" title="Zdj&#281;cie" srcset="/__u/substackcdn.com/image/fetch/$s_!GqOd!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d93208f-3ef8-4c4a-a560-476c4e7e110b_1148x1832.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!GqOd!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d93208f-3ef8-4c4a-a560-476c4e7e110b_1148x1832.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!GqOd!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d93208f-3ef8-4c4a-a560-476c4e7e110b_1148x1832.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!GqOd!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d93208f-3ef8-4c4a-a560-476c4e7e110b_1148x1832.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This meme is never getting old. </p><p>But this is in a way weird thing. It sure looks like only junior devs are building operating systems in Microsoft now. Makes you wonder - where are the regression tests? where are the automated tests? </p><p>I know a thing about projects, team work, and pull requests. And trust me, you want your tools to be as stable as possible. </p><p>When a tool used to build other tools (or games) break, all hell breaks loose soon after. Such tools require a far more rigorous approach, because all errors go further up. An error in Semi-Realistic Engine would propagate to all games made in it. Of course, they are hidden in the feature, so everything depends on how often is that feature used. And how many games are implemented in it. But imagine an error in the programming language that Semi-Realistic Engine is built with. It can potentially affect the entire engine. But also other tools written in it.</p><p>So, you might ask: how can I contribute AI-generated code to my favorite project, whose maintainers are rather reluctant to accept AI-code?</p><p>Well, I would suggest not doing it. Or doing a git fork and making an alternative. But leave the tool to the competent people. It&#8217;s not worth breaking it not only for yourself but also for everyone else.</p>]]></content:encoded></item><item><title><![CDATA[Code is not the value, you're gatekeeping boilerplate]]></title><description><![CDATA[I started writing this issue like a meltdown.]]></description><link>https://gamedevdairy.substack.com/p/code-is-not-the-value-youre-gatekeeping</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/code-is-not-the-value-youre-gatekeeping</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 10 Aug 2026 09:59:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5NIe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ad2b04-fc93-420f-92b7-e3375c97f6a6_1398x470.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I started writing this issue like a meltdown. Inspired by ignorants talking bullshit on the Internet, and their sheeple clapping to everything they say. </p><p>But instead I went to bed and woke up realizing something...</p><p>You remember Marcus Notch Persson? The maker of Minecraft, OG Indie Games Jesus<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>, who sold his life&#8217;s work to Microslop<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a> and become that interesting social media persona. Many funny anecdotes about him can be told, definitely.</p><p>You can tell he was high on something last month...</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!5NIe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ad2b04-fc93-420f-92b7-e3375c97f6a6_1398x470.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!5NIe!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ad2b04-fc93-420f-92b7-e3375c97f6a6_1398x470.png 424w, /__u/substackcdn.com/image/fetch/$s_!5NIe!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ad2b04-fc93-420f-92b7-e3375c97f6a6_1398x470.png 848w, /__u/substackcdn.com/image/fetch/$s_!5NIe!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ad2b04-fc93-420f-92b7-e3375c97f6a6_1398x470.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5NIe!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ad2b04-fc93-420f-92b7-e3375c97f6a6_1398x470.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!5NIe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ad2b04-fc93-420f-92b7-e3375c97f6a6_1398x470.png" width="1398" height="470" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a2ad2b04-fc93-420f-92b7-e3375c97f6a6_1398x470.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:470,&quot;width&quot;:1398,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:111133,&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://gamedevdairy.substack.com/i/210351374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ad2b04-fc93-420f-92b7-e3375c97f6a6_1398x470.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!5NIe!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ad2b04-fc93-420f-92b7-e3375c97f6a6_1398x470.png 424w, /__u/substackcdn.com/image/fetch/$s_!5NIe!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ad2b04-fc93-420f-92b7-e3375c97f6a6_1398x470.png 848w, /__u/substackcdn.com/image/fetch/$s_!5NIe!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ad2b04-fc93-420f-92b7-e3375c97f6a6_1398x470.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5NIe!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2ad2b04-fc93-420f-92b7-e3375c97f6a6_1398x470.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I won&#8217;t go deep into responses, but they were two kinds of:</p><ul><li><p>&#8220;No&#8221;</p></li><li><p>&#8220;Thanks, Satan.&#8221;</p></li><li><p>&#8220;Heartbreaking: The Worst Person You Know Just Made a Great Point.&#8221;</p></li></ul><p>I mean, Notch is hardly Satan. He&#8217;s also not the Worst Person. Maybe the worst Persson, but to be sure I&#8217;d have to know other Perssons, and I hardly know this one.</p><p>But give a persson ten days and he&#8217;s like:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!5ZB1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c9a9638-20dc-4aa2-91a6-923ada426814_1386x894.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!5ZB1!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c9a9638-20dc-4aa2-91a6-923ada426814_1386x894.png 424w, /__u/substackcdn.com/image/fetch/$s_!5ZB1!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c9a9638-20dc-4aa2-91a6-923ada426814_1386x894.png 848w, /__u/substackcdn.com/image/fetch/$s_!5ZB1!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c9a9638-20dc-4aa2-91a6-923ada426814_1386x894.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5ZB1!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c9a9638-20dc-4aa2-91a6-923ada426814_1386x894.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!5ZB1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c9a9638-20dc-4aa2-91a6-923ada426814_1386x894.png" width="1386" height="894" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c9a9638-20dc-4aa2-91a6-923ada426814_1386x894.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:894,&quot;width&quot;:1386,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:174829,&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://gamedevdairy.substack.com/i/210351374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c9a9638-20dc-4aa2-91a6-923ada426814_1386x894.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!5ZB1!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c9a9638-20dc-4aa2-91a6-923ada426814_1386x894.png 424w, /__u/substackcdn.com/image/fetch/$s_!5ZB1!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c9a9638-20dc-4aa2-91a6-923ada426814_1386x894.png 848w, /__u/substackcdn.com/image/fetch/$s_!5ZB1!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c9a9638-20dc-4aa2-91a6-923ada426814_1386x894.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5ZB1!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c9a9638-20dc-4aa2-91a6-923ada426814_1386x894.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Outside of the fact that he will &#8220;feel less bad about firing a chat bot&#8221; which tells everyone that he crossed the river of &#8220;I make millions of dollars, people are Excel shits to me&#8221;. </p><p>But, of course, he sees the first benefit: <strong>making the &#8220;dull tools&#8221; faster</strong>. Like a map editor, a node graph visualizer (I wonder what&#8217;s that for?), but also <strong>bounce esoteric ideas at</strong>. </p><p>When you think about, there&#8217;s a whole lot of tools you might want to build faster. In the end every game is a collection of data files. And managing data files manually is a Goddamn&#8217; CHORE!</p><p>You might prioritize art, music, and story script. But one thing is to just make art and the other is to make them work inside your game, work along your game engine. After all, a game is more than just a book you can read. It&#8217;s an entire system.</p><p>In the end, to make your game you need a shitload of tools. You can have a game engine with all those tools implemented, but the truth is: someone handpicked those tools for you, and you still have to learn how to use them!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!nl8t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92f4ac6-b923-4608-9c5f-5c76d6e65f1d_1396x476.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!nl8t!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92f4ac6-b923-4608-9c5f-5c76d6e65f1d_1396x476.png 424w, /__u/substackcdn.com/image/fetch/$s_!nl8t!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92f4ac6-b923-4608-9c5f-5c76d6e65f1d_1396x476.png 848w, /__u/substackcdn.com/image/fetch/$s_!nl8t!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92f4ac6-b923-4608-9c5f-5c76d6e65f1d_1396x476.png 1272w, /__u/substackcdn.com/image/fetch/$s_!nl8t!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92f4ac6-b923-4608-9c5f-5c76d6e65f1d_1396x476.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!nl8t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92f4ac6-b923-4608-9c5f-5c76d6e65f1d_1396x476.png" width="1396" height="476" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f92f4ac6-b923-4608-9c5f-5c76d6e65f1d_1396x476.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:476,&quot;width&quot;:1396,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:101569,&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://gamedevdairy.substack.com/i/210351374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92f4ac6-b923-4608-9c5f-5c76d6e65f1d_1396x476.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!nl8t!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92f4ac6-b923-4608-9c5f-5c76d6e65f1d_1396x476.png 424w, /__u/substackcdn.com/image/fetch/$s_!nl8t!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92f4ac6-b923-4608-9c5f-5c76d6e65f1d_1396x476.png 848w, /__u/substackcdn.com/image/fetch/$s_!nl8t!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92f4ac6-b923-4608-9c5f-5c76d6e65f1d_1396x476.png 1272w, /__u/substackcdn.com/image/fetch/$s_!nl8t!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92f4ac6-b923-4608-9c5f-5c76d6e65f1d_1396x476.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Sure you can make fun of vibe coders. And other people who want to one-shot everything. And investors who believe in this shit.</p><p>(You can study notch&#8217;s tweets here: <a href="https://x.com/notch">https://x.com/notch</a>. Not the most often updated profile &#128521;)</p><p>But he&#8217;s not the first person to achieve much in gaming or IT to speak positively about recent AI usages. Where notch is giving you his diary from the trenches, John Carmack shows you AI from the perspective of how the software architecture was changing:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!0rJS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd582ae-1b7e-47bc-b263-50a82bdbe21c_1400x1456.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!0rJS!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd582ae-1b7e-47bc-b263-50a82bdbe21c_1400x1456.png 424w, /__u/substackcdn.com/image/fetch/$s_!0rJS!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd582ae-1b7e-47bc-b263-50a82bdbe21c_1400x1456.png 848w, /__u/substackcdn.com/image/fetch/$s_!0rJS!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd582ae-1b7e-47bc-b263-50a82bdbe21c_1400x1456.png 1272w, /__u/substackcdn.com/image/fetch/$s_!0rJS!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd582ae-1b7e-47bc-b263-50a82bdbe21c_1400x1456.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!0rJS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd582ae-1b7e-47bc-b263-50a82bdbe21c_1400x1456.png" width="1400" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bdd582ae-1b7e-47bc-b263-50a82bdbe21c_1400x1456.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:301746,&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://gamedevdairy.substack.com/i/210351374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd582ae-1b7e-47bc-b263-50a82bdbe21c_1400x1456.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!0rJS!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd582ae-1b7e-47bc-b263-50a82bdbe21c_1400x1456.png 424w, /__u/substackcdn.com/image/fetch/$s_!0rJS!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd582ae-1b7e-47bc-b263-50a82bdbe21c_1400x1456.png 848w, /__u/substackcdn.com/image/fetch/$s_!0rJS!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd582ae-1b7e-47bc-b263-50a82bdbe21c_1400x1456.png 1272w, /__u/substackcdn.com/image/fetch/$s_!0rJS!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd582ae-1b7e-47bc-b263-50a82bdbe21c_1400x1456.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://x.com/ID_AA_Carmack/status/1762110222321975442">Source</a></figcaption></figure></div><p>I read the first sentence and I know why this guy deserves a gaming temple!</p><p>Hear that, anti-AI folks talking about &#8220;replacing talent of coders&#8221; or that &#8220;slop is slop&#8221;? CODING IS NOT THE SOURCE OF VALUE! You solve problems. Code solves problem. You design the solution, or use design patterns or other people&#8217;s knowledge (and yes, since AI is trained on the Internet it basically means it has this knowledge).</p><p>Comparing anti-AI to a person who uses Assembly Language and doesn&#8217;t want to switch to C seems spot on!</p><p>But wait, there&#8217;s more!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!So_R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2eb0b47-0f18-4abc-8583-9b1128045c6f_1032x1504.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!So_R!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2eb0b47-0f18-4abc-8583-9b1128045c6f_1032x1504.png 424w, /__u/substackcdn.com/image/fetch/$s_!So_R!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2eb0b47-0f18-4abc-8583-9b1128045c6f_1032x1504.png 848w, /__u/substackcdn.com/image/fetch/$s_!So_R!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2eb0b47-0f18-4abc-8583-9b1128045c6f_1032x1504.png 1272w, /__u/substackcdn.com/image/fetch/$s_!So_R!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2eb0b47-0f18-4abc-8583-9b1128045c6f_1032x1504.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!So_R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2eb0b47-0f18-4abc-8583-9b1128045c6f_1032x1504.png" width="1032" height="1504" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2eb0b47-0f18-4abc-8583-9b1128045c6f_1032x1504.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1504,&quot;width&quot;:1032,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:403129,&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://gamedevdairy.substack.com/i/210351374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2eb0b47-0f18-4abc-8583-9b1128045c6f_1032x1504.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!So_R!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2eb0b47-0f18-4abc-8583-9b1128045c6f_1032x1504.png 424w, /__u/substackcdn.com/image/fetch/$s_!So_R!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2eb0b47-0f18-4abc-8583-9b1128045c6f_1032x1504.png 848w, /__u/substackcdn.com/image/fetch/$s_!So_R!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2eb0b47-0f18-4abc-8583-9b1128045c6f_1032x1504.png 1272w, /__u/substackcdn.com/image/fetch/$s_!So_R!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2eb0b47-0f18-4abc-8583-9b1128045c6f_1032x1504.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://x.com/ID_AA_Carmack/status/1909311174845329874">Source</a></figcaption></figure></div><p>Notice the paragraph about the tools and manual labor for game devs.</p><p>Game engines, y&#8217;know that automation tool that makes your coder talent useless and turns you into a scripter and not a proper game developer (wink wink), actually opened the doors for people to get into game development. Could it be that AI can do the same for you?</p><blockquote><p><span>AI tools will allow the best to reach even greater heights, while enabling smaller teams to accomplish more, and  bring in some completely new creator demographics.</span></p></blockquote><p>That is the opinion of the guy who created the first person perspective game genre. Have that in mind. This is not a rich-investor-moron with an opinion. This is American answer to Shigeru Miyamoto.</p><p>Although I&#8217;m not that sure when reading</p><blockquote><p><span>we will get to a world where you can get an interactive game (or novel, or movie) out of a prompt</span></p></blockquote><p>But I understand people who won&#8217;t be wanting to read/watch that. After all, one prompt to create a script, design characters, and so on. It&#8217;s not impossible, but that part of AI is something I do not buy for many reasons. It might work, but not on a regular basis.</p><p>I like the answer to John&#8217;s tweet that right under:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!lAz6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d86a9e-f78d-4105-a85a-352d35a7b66b_1512x420.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!lAz6!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d86a9e-f78d-4105-a85a-352d35a7b66b_1512x420.png 424w, /__u/substackcdn.com/image/fetch/$s_!lAz6!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d86a9e-f78d-4105-a85a-352d35a7b66b_1512x420.png 848w, /__u/substackcdn.com/image/fetch/$s_!lAz6!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d86a9e-f78d-4105-a85a-352d35a7b66b_1512x420.png 1272w, /__u/substackcdn.com/image/fetch/$s_!lAz6!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d86a9e-f78d-4105-a85a-352d35a7b66b_1512x420.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!lAz6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d86a9e-f78d-4105-a85a-352d35a7b66b_1512x420.png" width="1456" height="404" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d4d86a9e-f78d-4105-a85a-352d35a7b66b_1512x420.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:404,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:116512,&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://gamedevdairy.substack.com/i/210351374?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d86a9e-f78d-4105-a85a-352d35a7b66b_1512x420.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!lAz6!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d86a9e-f78d-4105-a85a-352d35a7b66b_1512x420.png 424w, /__u/substackcdn.com/image/fetch/$s_!lAz6!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d86a9e-f78d-4105-a85a-352d35a7b66b_1512x420.png 848w, /__u/substackcdn.com/image/fetch/$s_!lAz6!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d86a9e-f78d-4105-a85a-352d35a7b66b_1512x420.png 1272w, /__u/substackcdn.com/image/fetch/$s_!lAz6!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d86a9e-f78d-4105-a85a-352d35a7b66b_1512x420.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Because it&#8217;s the same with 99% of gaming without AI. </p><h2>Games are 90% boilerplate</h2><p>Hear me out! Maybe 1% of game devs are doing something fresh. The rest just remodels the blocks. </p><p>That&#8217;s what indies do these days. They create tutorial so people can copy their solutions. People search for these tutorials to know how to implement a mechanic they don&#8217;t know how to implement. You derive what your game is from the work of others all the time. You are not original. Your script might be different, your art might be different, but your game in 99% is not. Sorry to put it that way. When did you last played a game that was completely different from everything that is on the market? You didn&#8217;t. These times are over. All games resemble other games. This is the postmodernism of games. </p><p>You might think it&#8217;s not true, but you use a game engine and that is 80% of the boilerplate, because a lot of people use the same engine as you do &#128521; Nobody cancels such people, but AI-using people yes? </p><p>How is it that people are so worried about &#8220;coder talent&#8221; and yet sleeps on the fact that most of the people copy tutorials?</p><p>Canceling people who just use new tools and not just another game engine is just gatekeeping.</p><h2>Why don&#8217;t gamers listen to accomplished game developers?</h2><p>Well, they&#8217;re obviously not that liked these days. Their experience doesn&#8217;t matter for today&#8217;s gamers. Or gamers think they are just wrong.</p><p>But I prefer to listen to competent people. </p><p>Experienced people.</p><p>People I&#8217;d learn from.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>I think this is taken now by Jonathan Blow&#8230; what is it with indie Jesuses and no hair?</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Not because they use AI but because of the quality of their deliverables and decisions </p></div></div>]]></content:encoded></item><item><title><![CDATA[How to make game choices more meaningful?]]></title><description><![CDATA[Blast from the past!]]></description><link>https://gamedevdairy.substack.com/p/how-to-make-game-choices-more-meaningful</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/how-to-make-game-choices-more-meaningful</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 03 Aug 2026 09:59:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-7-F!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3033e0cd-c443-4a40-9257-523c85e9ea6a_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Some time ago, I reminded an oldie but goodie article about choices in Inside:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;bc015749-4e20-473c-af37-01a4b4d4848b&quot;,&quot;caption&quot;:&quot;Four years ago, I finished Inside. And I still find myself thinking about it. This game should be used in gamedev schools when discussing building atmosphere, background storytelling, and level-building that leads the player by the designer's invisible hand.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How Inside makes choices intuitive&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:10432226,&quot;name&quot;:&quot;Maurice Klimek&quot;,&quot;bio&quot;:&quot;I build roads for wannabe indie game devs. \nI'm the guy you know from the sandbox that did a little more than you did. And I want to help you get better!\n\nAlso: .NET Developer | Gamer (Switch, PC) | Catholic | Nerd | Husband | Father&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F963828a9-eed9-4f5d-a9ab-603b665d4700_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-06-08T08:59:23.277Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!3afE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://gamedevdairy.substack.com/p/how-inside-makes-choices-intuitive&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:200866311,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:2,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1661168,&quot;publication_name&quot;:&quot;The Solo Gamedev&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!-7-F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3033e0cd-c443-4a40-9257-523c85e9ea6a_256x256.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>The choices in Inside are invisible and intuitive. Today I wanted to revisit another piece that continues on the thread. But we will jump to a different genre, one that is more obvious when it comes to choices: the RPG.</p><p>I will complain a lot, but basically I want to refresh <strong>how I think RPGs should be made</strong>. </p><p>I have not played all of the existing RPGs (which means that there might be a game that fulfills all of these ideas, and if there is - I consider them my next favorite games), so I might be late to the party ;-)</p><p>And for many ideas, my point of entry will come from gaming's favorite beating bag - <strong>Mass Effect 3</strong>. I love Mass Effect, in a way. It was an unforgettable experience, and many times I think of making an RPG I find myself thinking how did Mass Effect (first among many) address that. Or, thinking</p><div class="pullquote"><p>well, Mass Effect did it this way, but I would&#8217;ve done it differently</p></div><p>My ideas and conclusions exist only because someone tried to do the best they could and unfortunately failed (debatable). That said I want to highlight that I respect the craft of all BioWare employees, and would love to have a percentage of their skills.</p><p>I consider Mass Effect a masterpiece of its era. And maybe that&#8217;s why its limitations stand out so much today. Without it, none of my ideas would exist. Best case scenario, I would just create another Mass Effect instead.</p><p>But let us start with the end.</p><h2><strong>Choosing the color of the ending</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!2Vdr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb53c7606-4064-409d-9f4f-1ee35157b9b7_588x294.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!2Vdr!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb53c7606-4064-409d-9f4f-1ee35157b9b7_588x294.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!2Vdr!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb53c7606-4064-409d-9f4f-1ee35157b9b7_588x294.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!2Vdr!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb53c7606-4064-409d-9f4f-1ee35157b9b7_588x294.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!2Vdr!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb53c7606-4064-409d-9f4f-1ee35157b9b7_588x294.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!2Vdr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb53c7606-4064-409d-9f4f-1ee35157b9b7_588x294.jpeg" width="588" height="294" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b53c7606-4064-409d-9f4f-1ee35157b9b7_588x294.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:294,&quot;width&quot;:588,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;The Final Choice ME3 : r/masseffect&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The Final Choice ME3 : r/masseffect" title="The Final Choice ME3 : r/masseffect" srcset="/__u/substackcdn.com/image/fetch/$s_!2Vdr!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb53c7606-4064-409d-9f4f-1ee35157b9b7_588x294.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!2Vdr!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb53c7606-4064-409d-9f4f-1ee35157b9b7_588x294.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!2Vdr!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb53c7606-4064-409d-9f4f-1ee35157b9b7_588x294.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!2Vdr!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb53c7606-4064-409d-9f4f-1ee35157b9b7_588x294.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>What I don't like in games like Mass Effect 3 (and Deus Ex: Human Revolution, and yes I know it was in the first Deus Ex, but THAT WAS TEN YEARS BEFORE!) is that the decision about the finale takes place right before it!&nbsp;I consider this a major BUT in the design: you finish two games, make countless choices, BUT you choose the ending at the end anyw&#173;ay.</p><p>People highlight that your choices matter, but the problem is not in the final cutscene. You could read about it, but it would be better to see it before. Sure, I gave the Krogans a chance, but I didn't see the Krogan opera! Or the aftermath of the Quarian-Geth war. It shouldn't be only about numbers in the final battle. It should be about different landscapes, not necessarily in a cutscene.</p><p>There are important decisions to be made in the game, but the results&nbsp;are in the wrong places! </p><p>When trying to place them correctly I think of the <strong>3 acts structure for drama</strong>. But game oriented.</p><p>Let&#8217;s dive in!</p><h1>Game-oriented 3 acts structure</h1><h2><strong>Act 1 (Minimal Choice)</strong></h2><p>Introduction to the world, characters, and game mechanics. Good place for tutorials, introductions, and so on. And a place of minimum choices. I think that character customization should be the majority of choices here ;-) For all games&#8217; sake, this one can be even 100% scripted.</p><h2><strong>Act 2 (Maximum Choice)</strong></h2><p>This is the place the choices should rule. All of the important choices are made here. Hell, most of them are made here. This is the core gameplay act. 50% of what is happening should be scripted, max. There should be a place for player freedom.</p><h2><strong>Act 3 (Maximum Consequence)</strong></h2><p>The finale should be an avalanche of choice results. <strong>Minimum choices. Skeleton script</strong>. A grand emotional finale, where all your choices should play out. <strong>Here you should see the consequences.</strong> But not as you did in Mass Effect 3, but larger. And the larger you get, the less scripted it becomes. </p><p>If I did Mass Effect 3, I would consider even having an ending where you fight alongside Cerberus to beat the Reapers ;-)</p><p>There should be no obvious solutions and at some point no good conclusions, only the best you can get, but never THE best. You always lose something, and it's a thought that should be represented.</p><p>When presenting choices, Act 3 should give you only the ones that are about damage control. Not deciding about endings.</p><h2><strong>But what about brands, and sequels?</strong></h2><p>Something that seems to be at the heart of the problem of "my choices do not matter" is the way brands are thought of. The problem is not in creating another game set in a specific brand's world. The problems are in a sequel/prequel. The resulting worlds are limited by default. Sequels naturally constrain choice. If they try to honor every branch, they risk spreading scope too thin. If they ignore them, they make your previous playthrough feel meaningless.&nbsp;This way, making the sequel is easier, because they look the same no matter the choice. But for prequels? If a prequel is published after the game it precedes, no choices will in fact prevail.</p><p>Not to mention <strong>the pathology of the canonical ending</strong>, or rather the mourning that my choices did not matter to the developers because they chose a different ending as the basis for the next game. Canon endings make the time spent on alternative player choices meaningless. They undercut the role playing experience.</p><p>Frankly, only once I saw a slightly different approach. The Legend Of Zelda series introduced a choice in Ocarina of Time. And based on that three timelines occur. Why is it different? Because <strong>each timeline has a different set of sequels set in them</strong>. Fun approach, but I can't imagine a choice-heavy game where each decision results in a separate game. Or even better - each set of choices you make ;-)&nbsp;The dev budget alone would break physics. But as a thought experiment, it shows just how trapped we are by linear brand continuity.</p><p>In some cases the best solution is to set a bigger time gap between the games or have an idea for a world's history timeline that cannot be affected by the player. Players can affect lives, but not history in the long run.</p><p>In the end, it's all about having either a perfect algorithm or a perfect script. I don't think algorithms can win with the best scripts, but some games create intricate events, like FTL, or Frostpunk.  </p><p>There's room for improvement. And although scripts will win for some time, I think we should still try to beat them with an algorithm.</p><p>Procedural stories present many challenges if you want to deliver a AAA RPG experience. For example: spoken dialogue! The fact that we need to record every (let&#8217;s assume all are recorded) line of dialogue leads to limitations. Outside of using AI, the more lines of dialogue you have, the more recording sessions with actors are needed. Can you imagine a procedural story with so much dialogue, that the dialogue budget is the largest part of the game? I can&#8217;t. I suspect that spoken dialogue limits the amount of dialogue whatsoever. And that also limits choices.</p><p>Also, cutscenes are more than just story. They&#8217;re a reward for the player. But most cutscenes are non-changeable scripted solutions, they scream restriction! The challenge here is, if you decide not to use them, how are you going to reward the player? Reward doesn't always have to be a rendered movie. It can be an emerging ecosystem - a unique faction alignment, an altered city layout, or an unexpected mechanic unlocked solely by your path. But how much work would that cost the devs?</p><p>Although I enjoy typical script-driven stories in RPGs, as a developer I think of more procedural solutions. Still, I want to marry fire with water and achieve the best of both worlds. To what extent is that impossible task possible?</p><h2><strong>Question to you!</strong></h2><p>Would you prefer a fully voice-acted game with scripted cutscenes, or a procedural RPG with generated text and unlimited narrative choices? Or is there a sweet spot in the middle I'm missing?</p>]]></content:encoded></item><item><title><![CDATA[How much can you subtract from a game?]]></title><description><![CDATA[Sometimes I think I should organize my thoughts into a book, title it &#8220;How to remain a gamer when you&#8217;re becoming a dad?&#8221; and sell it on Gumroad or something &#128521;]]></description><link>https://gamedevdairy.substack.com/p/how-much-can-you-subtract-from-a</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/how-much-can-you-subtract-from-a</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 27 Jul 2026 09:59:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4Pmw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1064596-8d9b-4261-824f-e5f653665a02_640x480.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Sometimes I think I should organize my thoughts into a book, title it &#8220;How to remain a gamer when you&#8217;re becoming a dad?&#8221; and sell it on Gumroad or something &#128521;</p><p>My daughter is almost 8 now. She already plays Pokemon on my Switch 2, but this almost-decade period of fatherhood taught me many new habits that help me play games. </p><p>I would love to say that going from gaming not-daddy to gaming daddy period went without a loss. But accidentally there was a loss. Audio.</p><p>These days, I play on my headphones but I cover only one ear. Why? Well, when you have a kid, you gotta stay alert. I cannot immerse myself in a game fully. Sure, if a cutscene would appear my experience would be half of what it should be, but some games, even when they have the best music, can be played without its music!</p><p>I rarely turn off the music entirely in a game. I did it once playing Arcanum because the music (not voices or sounds) was irritating me. But it didn&#8217;t harm the overall experience.</p><p>And don&#8217;t get me wrong. I listen to soundtracks all the time. But for many games they seem optional. </p><p>Still, many games don&#8217;t have memorable soundtracks, or sound is not crucial to enjoying it. Characters don&#8217;t speak with sound, or audio is not necessary to proceed (the game is not a horror, or it is not cinematic). Hence, I can disable audio. I was playing Fallout 2 for the nth time recently (with the goal of finishing it) and I&#8217;m playing on mute. I already know the soundtrack. I do think it&#8217;s good. Still, I heard it multiple times, and even the voices do not do much difference. I still can play the game and appreciate it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!4Pmw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1064596-8d9b-4261-824f-e5f653665a02_640x480.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!4Pmw!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1064596-8d9b-4261-824f-e5f653665a02_640x480.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!4Pmw!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1064596-8d9b-4261-824f-e5f653665a02_640x480.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!4Pmw!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1064596-8d9b-4261-824f-e5f653665a02_640x480.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!4Pmw!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1064596-8d9b-4261-824f-e5f653665a02_640x480.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!4Pmw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1064596-8d9b-4261-824f-e5f653665a02_640x480.jpeg" width="640" height="480" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e1064596-8d9b-4261-824f-e5f653665a02_640x480.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Fallout 2: A Post Nuclear Role Playing Game&quot;,&quot;title&quot;:&quot;Fallout 2: A Post Nuclear Role Playing Game&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Fallout 2: A Post Nuclear Role Playing Game" title="Fallout 2: A Post Nuclear Role Playing Game" srcset="/__u/substackcdn.com/image/fetch/$s_!4Pmw!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1064596-8d9b-4261-824f-e5f653665a02_640x480.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!4Pmw!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1064596-8d9b-4261-824f-e5f653665a02_640x480.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!4Pmw!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1064596-8d9b-4261-824f-e5f653665a02_640x480.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!4Pmw!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1064596-8d9b-4261-824f-e5f653665a02_640x480.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I heard that you can play Geneforge this way because it doesn&#8217;t have music (still have sounds). Perfect for dad-gamers.</p><p>Of course, a game with absolutely no audio is a very risky choice, because of gamers who do need audio. You should have sounds, and you could have music. </p><p><strong>But let&#8217;s think about it from a game designer&#8217;s perspective!</strong></p><p>As a person fascinated by game design, you&#8217;re probably familiar with &#8220;designing by subtraction&#8221; (with the Ico being the poster boy of this approach).</p><p>Any budget limitation can be part of your style. If you&#8217;re an indie and you always think about making a whole game without any additional costs: Why not start cost-cutting with music? For some it will work, but for some it won&#8217;t. But it&#8217;s always worth to try it out.</p><p>Think about UI minimaps, quest markers, or even jump buttons &#8212; we treat them as defaults, but games like Breath of the Wild prove you can cut them and create something better.</p><p>What is a feature gamers take for granted which you could remove without harm to your game?</p><p>What game succeeds in subtracting a lot?</p>]]></content:encoded></item><item><title><![CDATA[Why I haven't created a Discord Community]]></title><description><![CDATA[But does it mean I won't create a community, like, never?]]></description><link>https://gamedevdairy.substack.com/p/why-i-havent-created-a-discord-community</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/why-i-havent-created-a-discord-community</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 20 Jul 2026 09:59:13 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1763136469632-f6d78a9d3f4c?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNnx8ZGlzY29yZHxlbnwwfHx8fDE3ODQzMjA5MDd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A Discord community. Everyone and their mother has a Discord community. Except me.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1763136469632-f6d78a9d3f4c?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNnx8ZGlzY29yZHxlbnwwfHx8fDE3ODQzMjA5MDd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1763136469632-f6d78a9d3f4c?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNnx8ZGlzY29yZHxlbnwwfHx8fDE3ODQzMjA5MDd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1763136469632-f6d78a9d3f4c?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNnx8ZGlzY29yZHxlbnwwfHx8fDE3ODQzMjA5MDd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1763136469632-f6d78a9d3f4c?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNnx8ZGlzY29yZHxlbnwwfHx8fDE3ODQzMjA5MDd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1763136469632-f6d78a9d3f4c?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNnx8ZGlzY29yZHxlbnwwfHx8fDE3ODQzMjA5MDd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1763136469632-f6d78a9d3f4c?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNnx8ZGlzY29yZHxlbnwwfHx8fDE3ODQzMjA5MDd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="3000" height="2000" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1763136469632-f6d78a9d3f4c?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNnx8ZGlzY29yZHxlbnwwfHx8fDE3ODQzMjA5MDd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2000,&quot;width&quot;:3000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Close-up of a black keyboard with blue keys&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Close-up of a black keyboard with blue keys" title="Close-up of a black keyboard with blue keys" srcset="https://images.unsplash.com/photo-1763136469632-f6d78a9d3f4c?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNnx8ZGlzY29yZHxlbnwwfHx8fDE3ODQzMjA5MDd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1763136469632-f6d78a9d3f4c?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNnx8ZGlzY29yZHxlbnwwfHx8fDE3ODQzMjA5MDd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1763136469632-f6d78a9d3f4c?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNnx8ZGlzY29yZHxlbnwwfHx8fDE3ODQzMjA5MDd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1763136469632-f6d78a9d3f4c?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNnx8ZGlzY29yZHxlbnwwfHx8fDE3ODQzMjA5MDd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@gavinspavin">Gavin Phillips</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p>I&#8217;m not an enemy of communities. I belong to some of them, I am a happy person belonging to the Substack gaming community. And as much as a person who likes secret elite societies, I will never be part of one that relies on Discord.</p><p>I guess it's fun, for some people.</p><p>Not for me. </p><p>I removed my Facebook account, I blocked the home page and recommendations on YouTube to limit the "interesting" videos. I open Twitter mostly for the memes. In the end, the only place I am on is Substack. I consolidated all the social media I&#8217;m addicted to into one. </p><p>Not counting the communities I&#8217;m in.</p><p>And none of them have Discord.</p><p>Still, there are communities inaccessible for me. Why? Because they have a Discord.</p><p>YouTube channels I subscribe to have Discord.</p><p>Programming languages and engines I want to use (or wanted in the past) have Discords. </p><p>Discords take me back. Way back. To my beginnings in the Internet, where browser based poor alternatives to irc ruled e-Poland. These were years of my disrespect to my own time. I wasn&#8217;t productive then, hell, I was in high school. The point is - I had time to waste, and I sure wasted it. </p><p>These days, I don&#8217;t have time to waste to be active on chats. I don&#8217;t like to waste time. If I could I would not sleep. Or sleep 4h. I know that&#8217;s not necessarily healthy. When I&#8217;m awake, I don&#8217;t want to waste a single minute.</p><p>However, when I try Discord I end up quitting it.</p><p>I realized that Discord is nothing more than just another social media platform, only modeled by an old social media approach - chats and discussion forums. I don't think there's a Discord for wannabe-productive people, you cannot be productive and be on Discord. Or even many Discords.</p><p>Being on Discord is a job in itself. The chat user experience is so shit, it&#8217;s hard to be up to date with anything. Entering it shows you a lot of unread messages. Not to mention the 300 unread messages in #general. Only to learn they&#8217;re all about the friggin weather! Is there anything worthy inside? Maybe. But don&#8217;t you dare leave the chat now, it&#8217;s the same as marking it read. You can&#8217;t just return to it. Now imagine being on one of those programming/engine Discords where some knowledge is lost to everyone, and maybe (just maybe) you can retrieve it with the search feature... Complete mess!</p><p>You can visit regularly and maybe be up to date. But visit after a few days and you&#8217;ll drown.</p><p>Who knows, maybe that&#8217;s the point? Lure as many as you can, and make them unproductive by forcing them to be up to date? </p><p>You can either do the stuff you want or become a part of a gossiping community. At some point, you gotta leave the world, stay alone and work. But not on Discord.</p><p>If I ever start a community, it will not have a Discord. Last thing I need is another day job.</p>]]></content:encoded></item><item><title><![CDATA[On becoming a game dev vs. joining game dev companies]]></title><description><![CDATA[These days, you cannot read about gamedev, and not read about layoffs.]]></description><link>https://gamedevdairy.substack.com/p/on-becoming-a-game-dev-vs-joining</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/on-becoming-a-game-dev-vs-joining</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 13 Jul 2026 09:59:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bGDf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecb70d4e-0cd6-4f6a-8bfc-476846cc4d24_640x543.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>These days, you cannot read about gamedev, and not read about layoffs. Like here:</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:206469929,&quot;url&quot;:&quot;https://amandalynnchartier.substack.com/p/if-youre-an-employed-game-dev-working&quot;,&quot;publication_id&quot;:2750438,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;All Things Games with Amanda Lynn&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!b9-Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa4b3c97-02c4-4d5c-99d8-e0636ed03f3d_400x400.jpeg&quot;,&quot;title&quot;:&quot;If you're an employed game dev working to ship a game, you're probably scared right now&quot;,&quot;truncated_body_text&quot;:&quot;Disclaimer: Everything I write on this Substack is my own opinion, and does not reflect my time with, nor is sponsored by, any particular employer, past, present, or future. Any likeness to reality is purely coincidental.&quot;,&quot;date&quot;:&quot;2026-07-10T17:28:07.932Z&quot;,&quot;like_count&quot;:12,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:250056614,&quot;name&quot;:&quot;Amanda Lynn&quot;,&quot;handle&quot;:&quot;amandalynnchartier&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa4b3c97-02c4-4d5c-99d8-e0636ed03f3d_400x400.jpeg&quot;,&quot;bio&quot;:&quot;Narrative-type Pok&#233;mon in the games industry since 2006 &#8211; writing, design, direction, production, leadership. Currently: AAA dev by day @ TNM; solo indie dev by night on my debut game, a \&quot;walking novel\&quot; called [SELF:STORAGE].&quot;,&quot;profile_set_up_at&quot;:&quot;2024-07-01T00:02:31.292Z&quot;,&quot;reader_installed_at&quot;:&quot;2025-04-09T18:04:42.108Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:2792074,&quot;user_id&quot;:250056614,&quot;publication_id&quot;:2750438,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:2750438,&quot;name&quot;:&quot;All Things Games with Amanda Lynn&quot;,&quot;subdomain&quot;:&quot;amandalynnchartier&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;I've got 20 years in the games industry under my belt &#8212; writing, design (both pen'n'paper and technical in-engine), direction, production, leadership. Writing about all that and All Things Games&#8482;&#65039;.&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa4b3c97-02c4-4d5c-99d8-e0636ed03f3d_400x400.jpeg&quot;,&quot;author_id&quot;:250056614,&quot;primary_user_id&quot;:250056614,&quot;theme_var_background_pop&quot;:&quot;#6B26FF&quot;,&quot;created_at&quot;:&quot;2024-07-01T00:02:43.542Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Amanda Lynn&quot;,&quot;founding_plan_name&quot;:&quot;Founding Member&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;magaziney&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}}],&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:null,&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:false,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="/__u/amandalynnchartier.substack.com/p/if-youre-an-employed-game-dev-working?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="/__u/substackcdn.com/image/fetch/$s_!b9-Z!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa4b3c97-02c4-4d5c-99d8-e0636ed03f3d_400x400.jpeg"><span class="embedded-post-publication-name">All Things Games with Amanda Lynn</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">If you're an employed game dev working to ship a game, you're probably scared right now</div></div><div class="embedded-post-body">Disclaimer: Everything I write on this Substack is my own opinion, and does not reflect my time with, nor is sponsored by, any particular employer, past, present, or future. Any likeness to reality is purely coincidental&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">2 months ago &#183; 12 likes &#183; Amanda Lynn</div></a></div><p>At some point in my life I was thinking whether I really want to become a full time game developer, you know as in join a gamedev company to make games there. And to be honest... I still kinda don&#8217;t ;-) </p><p>I had my reasons before, but 4 years later I realized I have only more reasons to stand by this stance.</p><h2>Is it worth to join an existing game making company?</h2><p>Joining a gamedev company seems to have some benefits. </p><p>Making games during work hours, and not only that - you also make games and learn as a day job. You&#8217;ll have much more time for your passion project after hours. But you will make games, and the existence of a team implies that you will make more and more complex games. </p><blockquote><p>Digression (because for some reason footnotes do not work this week on substack): My very first job was at a company who ported mobile games to different systems. That was before iOS and Android. And let me tell you: after 8h of work in games, I kind of didn&#8217;t want to even play games in the evening. Good thing I lasted there 2 months.</p></blockquote><p>I guess all those possibilities are true. But...</p><p>In the end, money won&#8217;t be as satisfying as it is in a normal corporate job. Not only less, but it also might not be even regular. Not the thing you might consider when thinking about having a family ;-)</p><p>Not to mention layoffs. I got laid off many times, but I can tell when it was my fault. But what you can learn from Amanda&#8217;s newsletter (and the meme she shared) being laid off is a bit different in gamedev. You get laid off if you&#8217;re bad, you get laid off if you&#8217;re good. That&#8217;s just weird.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!bGDf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecb70d4e-0cd6-4f6a-8bfc-476846cc4d24_640x543.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!bGDf!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecb70d4e-0cd6-4f6a-8bfc-476846cc4d24_640x543.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!bGDf!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecb70d4e-0cd6-4f6a-8bfc-476846cc4d24_640x543.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!bGDf!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecb70d4e-0cd6-4f6a-8bfc-476846cc4d24_640x543.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!bGDf!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecb70d4e-0cd6-4f6a-8bfc-476846cc4d24_640x543.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!bGDf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecb70d4e-0cd6-4f6a-8bfc-476846cc4d24_640x543.jpeg" width="640" height="543" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ecb70d4e-0cd6-4f6a-8bfc-476846cc4d24_640x543.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:543,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;No alternative text description for this image&quot;,&quot;title&quot;:&quot;No alternative text description for this image&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="No alternative text description for this image" title="No alternative text description for this image" srcset="/__u/substackcdn.com/image/fetch/$s_!bGDf!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecb70d4e-0cd6-4f6a-8bfc-476846cc4d24_640x543.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!bGDf!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecb70d4e-0cd6-4f6a-8bfc-476846cc4d24_640x543.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!bGDf!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecb70d4e-0cd6-4f6a-8bfc-476846cc4d24_640x543.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!bGDf!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecb70d4e-0cd6-4f6a-8bfc-476846cc4d24_640x543.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Then of course, you have little control what you want to make. Not always, of course, but often it will be the case. </p><p>Joining some of these companies will result in partaking in their brand enslavement. Join CD Project RED, and all you will do will be a Witcher/Cyberpunk thing, and publish rarely. People can find themselves in such predicaments. I couldn&#8217;t. I have millions of ideas, not all of them can fit the templates I would be given. Call me proud, call me full of shit, I know what I want. And this is very important to me. To play with my ideas. I can&#8217;t achieve that in someone else&#8217;s company. So I choose to go solo, and self-funded.</p><blockquote><p>Of course, there are companies like Double Fine and their incredible Amnesia Fortnight competition (which in itself is a handbook on how to lead a gamedev company) that prove it&#8217;s possible, but they operate under a completely different set of problems.</p></blockquote><p>Even if I found a place like that, it would feel unfair to the people who already work there. These guys have their own ideas for games. A noob gets in and gets to realize his own ideas? While they&#8217;re still waiting? Wouldn&#8217;t want to be in this situation. This doesn&#8217;t feel earned. And I don&#8217;t have enough skills to earn my place among serious specialists with actual experience.</p><p>Big companies rarely take risks when making games. And I understand that. If I had to pay all those salaries I would also limit the risk. But I don&#8217;t hire, so I can still make my own ideas. And fail safely.</p><h2><strong>That&#8217;s why I chose to do it for 1h daily... Now what?</strong></h2><p>Congratulations, I said to myself, you are a passionate man! You sure are also screwed...</p><p><strong>No chance of thinking about developing a studio</strong>. #foreverAlone I can drop the dreams about becoming a charismatic leader or the artist in lead or whatever. Seems sad, but frankly, it&#8217;s about time to stop &#128540; I&#8217;m sure I&#8217;ll still have a chance to work with some contractors &#128521;</p><p>Instead, I think of the time I have left in life (I&#8217;m 41) and I realized I might not be able to give form to all of my ideas. Not only that - there will be a limit to the complexity of the games I will create. </p><p>Unless I want to create Dwarf Fortress. With all due respect to the creators, but I have way too many ideas to focus on just one &#128521; </p><p>But going indie as an evening passion project may not end up in making The Witcher 3, but I will learn how the sausage is made. </p><p>I will have to reverse-engineer the process, gathering information as I go. </p><p>And turn it into an experiment: how complex a game can a single person build? How long will it take? How far can I push AI? And is it even possible to make a profit?</p><p>It&#8217;s about testing the limits of one person. In the age of AI.</p><p>I won&#8217;t be making the Witcher 3... And that&#8217;s OK. The goal is not to create Renaissance-level graphics. I lack the graphical skills for that. Instead, I will focus on the systems needed to build the games I want. Turn it into a research project, an experiment. If it wins, it wins. If it fails, at least I tried. It&#8217;s the side effects that interest me most! And the fact that I won&#8217;t die of starvation in the process.</p><div data-component-name="FragmentNodeToDOM"><p></p></div>]]></content:encoded></item><item><title><![CDATA[Achievements are not what you think! A conspiracy theory]]></title><description><![CDATA[Oldie but goodie. Since I'm in the loop of looking busy, including moving out, I decided to re-introduce you to one of my best revelations ;-)]]></description><link>https://gamedevdairy.substack.com/p/achievements-are-not-what-you-think</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/achievements-are-not-what-you-think</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 06 Jul 2026 09:59:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fOaR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee4bbcdf-d076-46a8-9c76-30312dd9648e_1024x776.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>4 years ago, The Nintendo Switch did not have many things: proper eShop user experience, 60 fps, 4K, achievements...</p><p>That did not stop Breath of the Wild to remain one of my favorite games and<strong> </strong>not because of the story ;-) </p><p>There were other reasons to keep me playing for 160 hours. One of them is the never-satisfied urge for exploration. I almost become a 100% completionist. Got all the memories, unlocked all the shrines... I kinda skipped the Korok seeds, but that was near the 160th hour when I realized I still have a backlog of games I need to finish someday.</p><p>Fun fact - none of these were rewarded by an achievement.</p><p>Only the Internet suggested things I missed, or what can still be done...</p><p>Like when I outrussianed Vladimir Putin by riding a bear bare-chested. Do you think I&#8217;m joking?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!XOtT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27a0a46-a8ea-4775-9b34-84a9a238b8eb_1200x675.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!XOtT!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27a0a46-a8ea-4775-9b34-84a9a238b8eb_1200x675.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!XOtT!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27a0a46-a8ea-4775-9b34-84a9a238b8eb_1200x675.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!XOtT!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27a0a46-a8ea-4775-9b34-84a9a238b8eb_1200x675.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!XOtT!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27a0a46-a8ea-4775-9b34-84a9a238b8eb_1200x675.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!XOtT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27a0a46-a8ea-4775-9b34-84a9a238b8eb_1200x675.jpeg" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d27a0a46-a8ea-4775-9b34-84a9a238b8eb_1200x675.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!XOtT!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27a0a46-a8ea-4775-9b34-84a9a238b8eb_1200x675.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!XOtT!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27a0a46-a8ea-4775-9b34-84a9a238b8eb_1200x675.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!XOtT!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27a0a46-a8ea-4775-9b34-84a9a238b8eb_1200x675.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!XOtT!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27a0a46-a8ea-4775-9b34-84a9a238b8eb_1200x675.jpeg 1456w" sizes="100vw" loading="lazy" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Everything I did seemed fresh and felt like an achievement of its own. I did not have to look at the achievement list and check what to expect. I immersed myself in the game almost entirely.</p><p>Perhaps this sounds pretentious, but for me, it was a breath of wild fresh air.</p><p>Or maybe I played too many games that try to be like Assassin&#8217;s Creed or were just badly designed ;-)</p><h3><strong>You don&#8217;t really need achievements, so why are they here?</strong></h3><p>Achievements can have many purposes:</p><ul><li><p>collectibles</p></li><li><p>pointing the players to some things waiting to be found</p></li><li><p>suggesting to the players that you could do some funny/weird thing.</p></li></ul><p>Oh yeah, and player choice. Supposedly. I would&#8217;ve believed that if games were designed to honor the choice player makes.</p><p>Some games give you a choice whether you&#8217;d like to take a stealthy approach or a &#8220;take no prisoners&#8221; approach. But reward you only if you choose the stealthy approach (like Deus Ex: Human Revolution). </p><p>Other games can become overly-judgmental and summa&#173;rize endings as good/bad (this goes beyond achievements, but they do give you achievements for unlocked endings and call them good/bad, like Catherine for example).</p><p>And there are the achievements I deem pointless. Each time I get one I ask: &#8222;What was the point of that?&#8221;. Like when you launch Gamedev T&#173;ycoon and get rewarded with an achievement just for launching a game! Talk about the low self-esteem of game developers! </p><p>Or when you finish a chapter and you get an achievement for it. Like finishing a chapter wasn&#8217;t a reward by itsel&#173;f!</p><h3><strong>So what are achievements actually for?</strong></h3><p>And then enlightenment struck me down!</p><p>Achievements aren&#8217;t for gamers.</p><p>Completionists are maybe 5% of all gamers (10% if you look at Bartle&#8217;s Taxonomy which count them as Achievers). From a business perspective there&#8217;s little point in maintaining a feature that 10% people max use! So the completionists are not the point of us having achievements.</p><p><strong>They&#8217;re for the game developers! They provide statistics on how the games are played.</strong></p><p>You don&#8217;t get an achievement for completing a chapter because you deserve a pat on the back. It&#8217;s the game developers gathering data on how far you&#8217;ve come (or rather: when did you give up).</p><p>There&#8217;s no Rambo achievement for people who did not go full ninja. Not because they&#8217;re unfair, but because (probably, my hunch) they want to check how many people tried to play it as a challenge ;-) </p><p>Combined with other data (also achievements) one can learn a lot about the designers&#8217; (bot game and level) choices. What worked and what did not work. And be astounded <a href="https://www.eurogamer.net/it-turns-out-9-out-of-10-mass-effect-players-were-paragon">how few people decided to be a renegade in Mass Effect</a>.</p><p>Weird, no one wants to be an asshole? ;-)</p><p>The devs of Gamedev Tycoon did not have low self-esteem when they put that achievement at the game&#8217;s start... Nah, they definitely had low self-esteem ;-)</p><p>The reason why most achievements suck is because they&#8217;re not achievements! They&#8217;re just stats! Stats that show game devs how their game is played. You don&#8217;t fill in enough surveys, so you&#8217;re surveyed all the time.</p><p>It&#8217;s just a stat.</p><p>Or is it...</p><h3>TINFOIL HATS ON!</h3><p>A very convenient solution for game developers was that achievements were implemented by digital distribution services. If every game would send some (encrypted, but still sent from your computer) data to a remote server that would raise suspicions, wouldn&#8217;t it? That, or GDPR-related allegations.</p><p>Perhaps achievements are no danger to your private data, but they can still profile you, Cambridge Analytica style. Or rather Sam Barlow in Silent Hill: Shattered Memories style.</p><p>Sam Barlow had a great way of making different endings. He literally added psychiatric profiling to the game. Instead of throwing achievement notifications at you (were there achievements on the Wii?), the game quietly made your profile which resulted in what ending were you getting&#8230; </p><p>WOAH! Genius overload!</p><div id="youtube2-DbTtK-kK2zo" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;DbTtK-kK2zo&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/DbTtK-kK2zo?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>Games like Catherine ask you a lot of questions regarding couple relations. If you don&#8217;t role play when playing it and answer how you think in real life - you&#8217;re basi&#173;cally being profiled. You may not play the asshole, because you&#8217;re not an asshole. But that doesn&#8217;t matter.</p><p>Well, unless you play on the Nintendo Switch where there is no achievement system implemented, therefore no data is secretly stored, right? ;-)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!fOaR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee4bbcdf-d076-46a8-9c76-30312dd9648e_1024x776.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!fOaR!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee4bbcdf-d076-46a8-9c76-30312dd9648e_1024x776.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!fOaR!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee4bbcdf-d076-46a8-9c76-30312dd9648e_1024x776.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!fOaR!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee4bbcdf-d076-46a8-9c76-30312dd9648e_1024x776.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!fOaR!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee4bbcdf-d076-46a8-9c76-30312dd9648e_1024x776.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!fOaR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee4bbcdf-d076-46a8-9c76-30312dd9648e_1024x776.jpeg" width="1024" height="776" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ee4bbcdf-d076-46a8-9c76-30312dd9648e_1024x776.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:776,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Is my password safe from Russian hackers? DA.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Is my password safe from Russian hackers? DA." title="Is my password safe from Russian hackers? DA." srcset="/__u/substackcdn.com/image/fetch/$s_!fOaR!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee4bbcdf-d076-46a8-9c76-30312dd9648e_1024x776.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!fOaR!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee4bbcdf-d076-46a8-9c76-30312dd9648e_1024x776.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!fOaR!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee4bbcdf-d076-46a8-9c76-30312dd9648e_1024x776.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!fOaR!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee4bbcdf-d076-46a8-9c76-30312dd9648e_1024x776.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>But you can basically summarize a gamer based on his achievements...</p><p>And yes - I ignored the entire history of the achievement system on purpose. What&#8217;s the fun in making a conspiracy theory if you have to take all the facts into consideration?</p><p>The only winning move isn&#8217;t &#8220;not to play&#8221;. It&#8217;s to role play multiple roles. And pray that no other information on you allow devs in our Achievement dystopia to contradict data and learn the real you. Who knows, maybe the future of ads lays in achievement systems?</p><h3><strong>TINFOIL HATS OFF!</strong></h3><p>I sometimes think that achievements might&#8217;ve been used more extensively.</p><p>My first suggestion would be to choose canonical endings based on majority votes. Because I hate the good/bad/neutral/canon ending. There&#8217;s always the risk of bland endings, but nothing a good writer can&#8217;t accomplish, right?</p><p>And I&#8217;d really love if achievements felt like a breath of the wild air again...</p>]]></content:encoded></item><item><title><![CDATA[Will the next game developer giants #buildinpublic?]]></title><description><![CDATA[Blast from the past. Old but good!]]></description><link>https://gamedevdairy.substack.com/p/will-the-next-game-developer-giants</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/will-the-next-game-developer-giants</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 29 Jun 2026 09:59:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dAlO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3562e36a-fc81-44a9-a6aa-04a733e72fd8_640x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong>Are we standing on the shoulder of giants? Yes, but actually no.</strong></h2><p>A friend of mine sometimes uses an argument when complaining:</p><blockquote><p>Why does game X, published in 2022, doesn't have a feature that Y had 20 years ago?</p></blockquote><p>My first reaction would always be "dude, chill out", but my second one is more worthy of sharing :-)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!rhIK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2629d179-62c6-4580-8b7f-98c07d0c977a_686x386.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!rhIK!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2629d179-62c6-4580-8b7f-98c07d0c977a_686x386.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!rhIK!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2629d179-62c6-4580-8b7f-98c07d0c977a_686x386.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!rhIK!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2629d179-62c6-4580-8b7f-98c07d0c977a_686x386.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!rhIK!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2629d179-62c6-4580-8b7f-98c07d0c977a_686x386.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!rhIK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2629d179-62c6-4580-8b7f-98c07d0c977a_686x386.jpeg" width="686" height="386" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2629d179-62c6-4580-8b7f-98c07d0c977a_686x386.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:386,&quot;width&quot;:686,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;He's out of line but he's right.he's out of line but he's ...&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="He's out of line but he's right.he's out of line but he's ..." title="He's out of line but he's right.he's out of line but he's ..." srcset="/__u/substackcdn.com/image/fetch/$s_!rhIK!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2629d179-62c6-4580-8b7f-98c07d0c977a_686x386.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!rhIK!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2629d179-62c6-4580-8b7f-98c07d0c977a_686x386.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!rhIK!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2629d179-62c6-4580-8b7f-98c07d0c977a_686x386.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!rhIK!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2629d179-62c6-4580-8b7f-98c07d0c977a_686x386.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When you think of it, some very old games had some very impressive feats. Take <strong>Lure of the Temptress</strong>&nbsp;as an example.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!dAlO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3562e36a-fc81-44a9-a6aa-04a733e72fd8_640x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!dAlO!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3562e36a-fc81-44a9-a6aa-04a733e72fd8_640x400.png 424w, /__u/substackcdn.com/image/fetch/$s_!dAlO!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3562e36a-fc81-44a9-a6aa-04a733e72fd8_640x400.png 848w, /__u/substackcdn.com/image/fetch/$s_!dAlO!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3562e36a-fc81-44a9-a6aa-04a733e72fd8_640x400.png 1272w, /__u/substackcdn.com/image/fetch/$s_!dAlO!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3562e36a-fc81-44a9-a6aa-04a733e72fd8_640x400.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!dAlO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3562e36a-fc81-44a9-a6aa-04a733e72fd8_640x400.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3562e36a-fc81-44a9-a6aa-04a733e72fd8_640x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!dAlO!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3562e36a-fc81-44a9-a6aa-04a733e72fd8_640x400.png 424w, /__u/substackcdn.com/image/fetch/$s_!dAlO!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3562e36a-fc81-44a9-a6aa-04a733e72fd8_640x400.png 848w, /__u/substackcdn.com/image/fetch/$s_!dAlO!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3562e36a-fc81-44a9-a6aa-04a733e72fd8_640x400.png 1272w, /__u/substackcdn.com/image/fetch/$s_!dAlO!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3562e36a-fc81-44a9-a6aa-04a733e72fd8_640x400.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>This point &amp; click implemented a time-of-day cycle, which let the devs make non-player characters live their lives and actually have a schedule for the day (I think they called it Virtual Theatre). You could miss them when you arrived at their store at the wrong moment. </p><p>It was as annoying as it was beautiful. And yet, many games afterward could, but did not implement such a feature. They often prefer to react to gamer actions only. Not all of them, but definitely most of them. Of course, such a feature is not mandatory for all games, But some games would benefit from it.</p><p>There may be many reasons for that. None of them include game developers' competencies, lack of goodwill, ambition, or anything. I think there is mostly one reason: game designers are control freaks, and adding an NPC-schedule feature would make their vision more complicated to finish, then test it and expect everything will work as planned.</p><p>There are many revolutionary features like that. They delight us, they give us wonderful experiences. They also build expectations from the next games. <strong>We do not stand on the shoulder of giants, we are expected to stand on them.</strong>&nbsp;</p><p>These giants, rarely share, or at least they rarely delve into such technicalities. Some of them do, and some of them are so afraid they'll lose the only thing that differentiates them on the market. So much they patent their solutions so that no one can even imitate their achievements.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!eHf7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc19cb6-9469-464f-bd20-80cf118def3c_1200x675.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!eHf7!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc19cb6-9469-464f-bd20-80cf118def3c_1200x675.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!eHf7!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc19cb6-9469-464f-bd20-80cf118def3c_1200x675.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!eHf7!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc19cb6-9469-464f-bd20-80cf118def3c_1200x675.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!eHf7!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc19cb6-9469-464f-bd20-80cf118def3c_1200x675.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!eHf7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc19cb6-9469-464f-bd20-80cf118def3c_1200x675.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1fc19cb6-9469-464f-bd20-80cf118def3c_1200x675.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!eHf7!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc19cb6-9469-464f-bd20-80cf118def3c_1200x675.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!eHf7!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc19cb6-9469-464f-bd20-80cf118def3c_1200x675.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!eHf7!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc19cb6-9469-464f-bd20-80cf118def3c_1200x675.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!eHf7!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc19cb6-9469-464f-bd20-80cf118def3c_1200x675.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Yes, I know you're reading, Warner Bros.! You too, Nintendo!</p><h2><strong>What if games were made like some of the startups of our age?</strong></h2><p>Things did change in the case of expertise sharing.</p><p>We get game engines, people share their knowledge on social media, I don't count indies as they want to build hype around their games more than share technical competencies.</p><p>In the startup universe, a trend is rising called <strong>build in public</strong>. What is it about? Well, you share your code while building it. When you think about it at first it sounds scary. After all, they might rip you off ;-) After all, when referred to SaaSes, they even share UI.</p><p>If we decide to build a game in public and minimize the rip-off scenario by...</p><ul><li><p>no sharing of graphics</p></li><li><p>no sharing of audio</p></li><li><p>no sharing of story scripts</p></li></ul><p>What is left? Well, the code, of course. A gameplay prototype (with some free assets to launch and test). With the possibility of early feedback from interested gamers. You might say it's like early access, but then again early access is like publishing a game and pretending everyone will treat it like beta ;-) What I'm talking about is a game MVP.</p><p>Sharing the gameplay prototype would require the game to be much more than just the art style, sound, and script. It most definitely would not work for most game genres.</p><p>But perhaps it's worth it. Not only one can test his gameplay ideas, but he can also leave them for the next developers willing to learn from the same experience, and build upon it much easier and with already used features :-)</p><p>Few will walk this route, as I suppose no studio will.</p><p>And screw all the greedy bastards and their game mechanic patents!</p>]]></content:encoded></item><item><title><![CDATA[How I Tackle Multiple Projects (Without Burning Out)]]></title><description><![CDATA[Having multiple projects can be troublesome.]]></description><link>https://gamedevdairy.substack.com/p/how-i-tackle-multiple-projects-without</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/how-i-tackle-multiple-projects-without</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 22 Jun 2026 09:59:17 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1620809975674-10b8ff5f8e58?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxvdmVyd2hlbG18ZW58MHx8fHwxNzgxMjkwODExfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Having multiple projects can be troublesome. </p><p>Sometimes you need to step aside and do something different. Or accidentally start a new project. </p><p>The good thing about doing all of them at once is that whenever I feel overwhelmed by what I need to do in a project, I can switch to another project. The bad thing... well, if I do too much at the same time, I feel lost and not sure how to proceed.</p><p>Focus is hard either way. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1620809975674-10b8ff5f8e58?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxvdmVyd2hlbG18ZW58MHx8fHwxNzgxMjkwODExfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1620809975674-10b8ff5f8e58?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxvdmVyd2hlbG18ZW58MHx8fHwxNzgxMjkwODExfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1620809975674-10b8ff5f8e58?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxvdmVyd2hlbG18ZW58MHx8fHwxNzgxMjkwODExfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1620809975674-10b8ff5f8e58?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxvdmVyd2hlbG18ZW58MHx8fHwxNzgxMjkwODExfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1620809975674-10b8ff5f8e58?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxvdmVyd2hlbG18ZW58MHx8fHwxNzgxMjkwODExfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1620809975674-10b8ff5f8e58?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxvdmVyd2hlbG18ZW58MHx8fHwxNzgxMjkwODExfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="5184" height="3456" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1620809975674-10b8ff5f8e58?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxvdmVyd2hlbG18ZW58MHx8fHwxNzgxMjkwODExfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3456,&quot;width&quot;:5184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;stressed woman with head in hands at laptop&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="stressed woman with head in hands at laptop" title="stressed woman with head in hands at laptop" srcset="https://images.unsplash.com/photo-1620809975674-10b8ff5f8e58?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxvdmVyd2hlbG18ZW58MHx8fHwxNzgxMjkwODExfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1620809975674-10b8ff5f8e58?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxvdmVyd2hlbG18ZW58MHx8fHwxNzgxMjkwODExfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1620809975674-10b8ff5f8e58?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxvdmVyd2hlbG18ZW58MHx8fHwxNzgxMjkwODExfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1620809975674-10b8ff5f8e58?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxvdmVyd2hlbG18ZW58MHx8fHwxNzgxMjkwODExfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Photo by <a href="https://unsplash.com/@elisa_ventur">Elisa Ventur</a> on <a href="https://unsplash.com">Unsplash</a></em></figcaption></figure></div><p>Having one hour, maybe two if I&#8217;m not falling asleep, it&#8217;s hard to do many things &#8220;at once&#8221;. So once in a while, I test a new idea. Especially when the old ones don&#8217;t seem to work as well anymore. One day, I will discover a method that stimulates my brain all the time :-)</p><h3><strong>How I used to do it</strong></h3><p>My previous approach resulted in me having my daily Todoist with multiple tasks that I do not finish in a day.</p><p>Why? To remember them. But each task was something to do. An implementation detail that needs to be done. And of course, some tasks are not able to be done in an hour in the evening.</p><p>And the rest of the tasks? They just land on the next day. I don&#8217;t change the date. I just watch them with guilt as they have the same date from the past. The problem is, I never achieve inbox zero, or at least &#8220;inbox without a scrollbar&#8221;. I see too many things that need to be done.</p><p>Planning an evening is impossible for me. Call it an evening executive dysfunction, but the fact is, sometimes I don&#8217;t feel like doing &#8220;that&#8221;. But I might do something else. So I can&#8217;t just plan each day for different projects.</p><h3><strong>What I&#8217;m doing now</strong></h3><p>Right now, I create a single task in Todoist. I call it &#8220;Patchwork&#8221;, and I set it to &#8220;daily&#8221; occurrence. If I click it as done, it will recreate itself the next day. That is by design!</p><p>Inside, I create subtasks. Each for one current project. If I manage to move the needle in one of them, I check the box and go to the next project. Or call it a day. I don&#8217;t have to check them all in one day; mind you, I can, but I don&#8217;t force myself to. Once I mark them all as done, I just click the Patchwork task as done, and it recreates the next day with all the tasks not done, like they&#8217;re brand new.</p><p>Of course, one has to make something for the hamster wheel to feel more satisfying. That&#8217;s why I added two additional tasks - a gaming evening and one episode of any series. So every cycle has these reward-type tasks.</p><p><strong>Wait... can I reward myself without doing any work?</strong> Yes, but actually no. If I do rewards first and check them as done in this iteration, I still have the work tasks to finish. Without them I won&#8217;t click the Patchwork task as done, and they won&#8217;t unlock again. It&#8217;s a mind trick. My rule of engagement.</p><p><strong>In what order do I do the tasks?</strong> Any order. What I feel like.</p><p><strong>How many tasks do I have right now?</strong> Including rewards? 7. But the plan is to make it less. Soon.</p><p><strong>How do I know what needs to be done?</strong> The Patchwork task stores only a list of projects in which I need to move the needle. And for every subtask, there is a corresponding project in Todoist. This is where the implementation details are, broken down as much as possible and mapped out on a roadmap, so I know what and when to do it best. Here is the direction of the needle.</p><p>The guilt of multiple not started tasks staying in the Inbox is gone (ish).</p><p>How do you tackle multiple projects at once? Do you use any "mind tricks" to handle your evening energy drops?</p>]]></content:encoded></item><item><title><![CDATA[Can you one-shot a game using AI?]]></title><description><![CDATA[Imagine my face, when I completed a new newsletter issue and got a new issue of a different newsletter I subscribe to.]]></description><link>https://gamedevdairy.substack.com/p/can-you-one-shot-a-game-using-ai</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/can-you-one-shot-a-game-using-ai</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 15 Jun 2026 10:00:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ENlW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d8d409-b74f-4c05-ad35-d8cc63d98e7d_300x330.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Imagine my face, when I completed a new newsletter issue and got a new issue of a different newsletter I subscribe to. And the rest of the evening looks like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!ENlW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d8d409-b74f-4c05-ad35-d8cc63d98e7d_300x330.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!ENlW!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d8d409-b74f-4c05-ad35-d8cc63d98e7d_300x330.png 424w, /__u/substackcdn.com/image/fetch/$s_!ENlW!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d8d409-b74f-4c05-ad35-d8cc63d98e7d_300x330.png 848w, /__u/substackcdn.com/image/fetch/$s_!ENlW!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d8d409-b74f-4c05-ad35-d8cc63d98e7d_300x330.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ENlW!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d8d409-b74f-4c05-ad35-d8cc63d98e7d_300x330.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!ENlW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d8d409-b74f-4c05-ad35-d8cc63d98e7d_300x330.png" width="300" height="330" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9d8d409-b74f-4c05-ad35-d8cc63d98e7d_300x330.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:330,&quot;width&quot;:300,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:14103,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!ENlW!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d8d409-b74f-4c05-ad35-d8cc63d98e7d_300x330.png 424w, /__u/substackcdn.com/image/fetch/$s_!ENlW!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d8d409-b74f-4c05-ad35-d8cc63d98e7d_300x330.png 848w, /__u/substackcdn.com/image/fetch/$s_!ENlW!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d8d409-b74f-4c05-ad35-d8cc63d98e7d_300x330.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ENlW!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d8d409-b74f-4c05-ad35-d8cc63d98e7d_300x330.png 1456w" sizes="100vw" loading="lazy" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Someone is wrong on the Internet!</figcaption></figure></div><p>The article in question is </p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:201751704,&quot;url&quot;:&quot;https://someguyfrombrooklyn.substack.com/p/can-ai-develop-games&quot;,&quot;publication_id&quot;:1818591,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;Some Bits &amp; Bytes From Brooklyn&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!rsbs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59471c70-7cc6-4850-a8c9-e6352db59475_1024x1024.png&quot;,&quot;title&quot;:&quot;Can AI Develop Games?&quot;,&quot;truncated_body_text&quot;:&quot;As per usual, with the release of a new Anthropic Claude Model (Fable) the internet is in a craze overestimating what it can do. One of the largest use cases I&#8217;ve seen marketed is for game development. A creator over on TikTok claimed he used Fable to recreate the &#8220;entirety&#8221; of Minecraft with a &#8220;single prompt&#8221; as well as GTA.&quot;,&quot;date&quot;:&quot;2026-06-12T20:39:48.374Z&quot;,&quot;like_count&quot;:1,&quot;comment_count&quot;:2,&quot;bylines&quot;:[{&quot;id&quot;:157984430,&quot;name&quot;:&quot;Some Guy From Brooklyn&quot;,&quot;handle&quot;:&quot;someguyfrombrooklyn&quot;,&quot;previous_name&quot;:&quot;Chris Hernandez&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/899c5ea2-7cb0-482e-a2cf-83a561d79152_560x560.jpeg&quot;,&quot;bio&quot;:&quot;Games, tech, and what&#8217;s actually worth your time; for grown-up players and the parents raising the next ones.&quot;,&quot;profile_set_up_at&quot;:&quot;2023-07-20T12:25:00.798Z&quot;,&quot;reader_installed_at&quot;:&quot;2023-07-20T11:54:27.194Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:1803453,&quot;user_id&quot;:157984430,&quot;publication_id&quot;:1818591,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:1818591,&quot;name&quot;:&quot;Some Bits &amp; Bytes From Brooklyn&quot;,&quot;subdomain&quot;:&quot;someguyfrombrooklyn&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Video Games, Tech, and things that are worth your time. Both for grown gaming/tech enthusiasts &amp; parents raising kids in a digital world.&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/59471c70-7cc6-4850-a8c9-e6352db59475_1024x1024.png&quot;,&quot;author_id&quot;:157984430,&quot;primary_user_id&quot;:157984430,&quot;theme_var_background_pop&quot;:&quot;#121BFA&quot;,&quot;created_at&quot;:&quot;2023-07-20T23:42:47.827Z&quot;,&quot;email_from_name&quot;:&quot;Some Bits &amp; Bytes Substack&quot;,&quot;copyright&quot;:&quot;Chris Hernandez&quot;,&quot;founding_plan_name&quot;:null,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;disabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}}],&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:null,&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:false,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="/__u/someguyfrombrooklyn.substack.com/p/can-ai-develop-games?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="/__u/substackcdn.com/image/fetch/$s_!rsbs!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59471c70-7cc6-4850-a8c9-e6352db59475_1024x1024.png"><span class="embedded-post-publication-name">Some Bits &amp; Bytes From Brooklyn</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">Can AI Develop Games?</div></div><div class="embedded-post-body">As per usual, with the release of a new Anthropic Claude Model (Fable) the internet is in a craze overestimating what it can do. One of the largest use cases I&#8217;ve seen marketed is for game development. A creator over on TikTok claimed he used Fable to recreate the &#8220;entirety&#8221; of Minecraft with a &#8220;single prompt&#8221; as well as GTA&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">3 months ago &#183; 1 like &#183; 2 comments &#183; Some Guy From Brooklyn</div></a></div><p>In which Mr &#8220;Guy Brooklyn&#8221; tries to one shot some games and kinda succeeds but kinda fails at it. It shows also some weak techniques in prompting an AI.</p><p>First of all, Mr Brooklyn prompts the AI to:</p><blockquote><p>Make a game like Hexen but instead it&#8217;s Vikings. Three classes are berserker, Valkyrie, and Shaman.</p></blockquote><p>Even the AI highlights that it can refer to one of two games. Here we already see that using the AI requires you to be specific, as specific as possible. Would be better to say &#8220;Make a first person perspective game like Hexen from 1995&#8221; to limit the query. </p><p>Don&#8217;t make the AI guess. Really, it has a lot of info to guess from. That&#8217;s not always a good thing.</p><p>Secondly, as Mr Brooklyn quotes Claude <s>Strife</s>:</p><blockquote><p>I&#8217;m planning to build a raycasting-based dungeon crawler in HTML canvas</p></blockquote><p>Make a game in HTML? I mean, I understand, some people can do that. Just look at <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;JSLegendDev&quot;,&quot;id&quot;:173229486,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/146d4f55-ad77-459b-a94c-fe5922268673_250x250.png&quot;,&quot;uuid&quot;:&quot;8c900cfc-53d0-47fe-a524-374e7cebe7c1&quot;}" data-component-name="MentionToDOM"></span>! He achieves a lot using JavaScript engines, but even there you can see the challenges when you want to treat your games like a publishable solution.</p><p>Of course, you should think seriously about a web build to show off your game as a prototype. It&#8217;s a benefit, as long as your tech stack supports it. But starting a serious game in HTML? Risky choice. Unless you want to make only web games. </p><p>Remember, AI is trained on specific type of programming languages. It might choose to pick Python (happened once to me, one of those WTF moments). <strong>If you want to use AI to make games, pick the tech stack yourself!</strong></p><p>Later on we learn one of the next prompts from Mr Brooklyn:</p><blockquote><p>There are building materials randomly generated on the map. Please make it so that the player has to gather materials from their <strong>proper places</strong>.</p></blockquote><p>Poorly defined. What is a proper place. There are spaces where you want the AI to fill in the blanks, but I&#8217;m not sure that&#8217;s level design. This you want to do yourself. Also, if you don&#8217;t specify what a proper place is, AI will guess. Oh, shit...</p><p>Also, Mr Brooklyn says,</p><blockquote><p>when launched, <strong>it was difficult to figure out how to attack or gather materials</strong>.</p></blockquote><p>Would be easier to specify that in the prompt, to be honest. You can&#8217;t be sure if AI would even implement controls. I once implemented a PONG game, and the AI forgot about viewing the score. Dumbass&#8230; Wait, I should&#8217;ve specified that. I&#8217;m the dumbass :D</p><blockquote><p>The island is also very small with tons of enemies. Very odd design choices for this one.</p></blockquote><p>No, Mr Brooklyn, you are the designer! You make the game! You should make the choices! AI is your skilled intern. Skilled, but still intern.</p><h2>Can you one-shot a AAA game with AI? Or any game?</h2><p>Mr Brooklyn said it himself:</p><blockquote><p>a full game can&#8217;t be generated in a single prompt</p></blockquote><p>And that is VERY TRUE!</p><p>Myself, I don&#8217;t even make a game by prompts. I design the game in markdown files, where I define what I want it to do, then refine it, and then use it for implementing.</p><p>Why in separate files? Well, these files, are my history, my point of reference, my documentation, and my user stories. Like the Constitution, or your Job Contract, you want to have that in a separate document.</p><p>You should also have a file that teaches your AI how it should work with you and what you expect from it.</p><p>Consider that your programming environment. Every programmer configures one.</p><h2>But why can&#8217;t I just one-shot a game?</h2><p>Well, it all comes down to a few things. Let&#8217;s start with the fact, that the more complicated the process the more control you want to have over it.</p><p>Secondly, if you don&#8217;t work in iterations, step by step, you end up having something you don&#8217;t like. So you want to design your process to have checkpoints. And from time to time, you check the state of your game. Does it work? Does it have the additional features you want to implement in this iteration? Does it have any bugs? Did it break anything you implemented before it? Do you like the direction in which you&#8217;re going? This AGILE approach is very needed when using an AI.</p><p>You are not only the designer now, you're also the code&#8217;s first tester. And quality assurance. And responsible for the result. Not the AI, you.</p><p>And don&#8217;t even get me started on Polish. </p><p>Not Polish language, Game Polish! </p><p>There was never a game that didn&#8217;t require any polish. Game feel is impossible without you. </p><p>You need to play the game, test it, provide feedback, and enhance it.</p><h2>What does it mean for game developers?</h2><p>Well, apparently, you can&#8217;t just know nothing, use an AI, and create a game. The gates are defended! The gatekeepers won! You still have to learn how the sausage is made. All parts of it.</p><p>You can use AI to help you with it. But you have to know what needs to be done. AI will help in this, but you don&#8217;t want it to make all the choices. You want to make the choices. You are the creator, the game designer, the Hideo Kojima of your studio!</p><p>That doesn&#8217;t make you a person who sits in a chair smoking a cigar and throwing ideas at the screen. The organizational job is yours, anyways.</p><p>Even if you want to use AI (like I do, but I&#8217;m not a person to look up too... yet), ask yourself one thing: Who are you in your team (even if it&#8217;s a one-man-army)? Are you the storyteller? Are you the game designer? Are you the artist? Because you have to be some artistic person there. These games need to be yours, not AIs. Your vision comes first. AI is the helper, not the designer, not the story writer, not the artist. It&#8217;s the helper. It helps, not decides, not does everything for you.</p><p>If you want to use AI, you need to know what do you need it for. Because there&#8217;s a reason you want to make games, and that blank you fill yourself! You tell the stories, you design the game! AI helps you implement it.</p><p>Also, making games is not only about the game itself. It&#8217;s also about the tools. Sometimes you will use tools made by other devs. But back in the day, real men made their own tools ;-) And yes, that is another project. And it requires time. And you can use AI to do it.</p><h2>But why do they show that you can one-shot everything?</h2><p>I guess this is to convince some people of the capabilities of AI. And especially investors. These investors, they&#8217;re very specific people.</p><p>Some people listen to those opinions, but investors? They snort these opinions like they&#8217;re cocaine lines. And then they do some weird investor stuff, throw money at the companies and we learn how much they are now worth. Obviously, I&#8217;m not the person to talk to when it comes to stock market. But we all know of the impact stock market made on the game industry. Which leads me to a lack of trust to these people. They need to be convinced - for the money. But somebody forgot that not only they are listening.</p><h2>On demos and men...</h2><p>Also, what we see shown on these presentations are demos. And they always make it look easy. You know what isn&#8217;t easy? It&#8217;s every project made in any tech that doesn&#8217;t resemble the demo. Believe me, I saw it multiple times in web development.</p><p>In games it&#8217;s like using a game engine which (unlike Unity or Godot) are usually very specialist in nature. Remember when DICE made their Frostbite engine (specialized in first person shooters like Battlefield) and then EA said: hey guys, you want to make Dragon Age? Do it in Frostbite!</p><p>That was not the purpose of this engine. It can be used for it, but it will require some additional work. And it did. </p><p>It is the same with AI - it won&#8217;t work for serious projects without the preparation you need to make.</p><h2>Conclusion</h2><p>I appreciate people like Some Guy From Brooklyn, because they actually put in the work to test the new tech. </p><p>Not to mention ask excellent questions like:</p><ul><li><p>If we develop a game completely with AI, can I actually sell that for money? </p></li><li><p>If a game is fully created using AI, how does one protect the games IP?</p></li></ul><p>But the conclusion that it&#8217;s good for prototypes but not the whole game development process sounds a bit overshot. Sure, you can one shot a prototype, but not one-shot a game. I agree.</p><p>But that doesn&#8217;t mean you cannot use AI in making games. You still can do it, but you need to learn how to use AI.</p><h2>A real world AI use case</h2><p>I work in a company that decided to embrace AI and see how it works for us. And the truth is - it works great! You can use it in enterprise solutions. But you don&#8217;t one shot them. You work like you have always worked, but the actual process of implementing things are delegated to the AI. You still control what has to be done, you do not rely on that on AI to figure it out. You still talk with other people. But you can achieve things faster. </p><p>A security expert once looked at an old project I was maintaining and suggested an important security change. He said that it would take 2-4 weeks. With AI, it took me one to two days. Including testing. AI not only understood what I wanted to do. It also knew how to do it. It found edge cases I wasn&#8217;t thinking about. It found spaces that would be affected that I forgot about. It understood how to tackle some errors, faster than I could google them. But I was still in charge of the process. And I still tested it to check whether it was still working. And sometimes, AI helped me even create testing scenarios, write them to text files, and use them to check certain use cases.</p><p>Importantly, no one was fired from my company. It&#8217;s not about saving money. It&#8217;s about doing more in less time. It&#8217;s about empowering. Expertise and speciality are still valued. </p><p>Companies that fire with AI as an excuse have different problems. And AI did not solve them. It just gave a reason to fire people. Don&#8217;t be like that. Don&#8217;t be like an investor. Detached from the real world.</p>]]></content:encoded></item><item><title><![CDATA[How Inside makes choices intuitive]]></title><description><![CDATA[Revisiting some old posts of mine! Fixing my shitty English, and doing some adjustments just for you ;-)]]></description><link>https://gamedevdairy.substack.com/p/how-inside-makes-choices-intuitive</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/how-inside-makes-choices-intuitive</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 08 Jun 2026 08:59:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3afE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Four years ago, I finished Inside. And I still find myself thinking about it. This game should be used in gamedev schools when discussing building atmosphere, background storytelling, and level-building that leads the player by the designer's invisible hand.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!3afE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!3afE!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!3afE!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!3afE!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!3afE!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!3afE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!3afE!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!3afE!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!3afE!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!3afE!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Frankly, on finishing, I did not get the answers I wanted.</p><p>What is the protagonist's motivation?</p><p>How does he know where to go and what to do?</p><p>What is that place?</p><p>And WTF is with that ending?</p><p>I had some theories, but none of them made sense with all the information I gathered. That's why I turned to Google. Let's skip the fact that some of the interpretations are even more WTF than the game itself ;-) But I learned that some people have seen a different ending...</p><h1>The invisible hand of narration</h1><p>It was a surprising revelation.</p><p>While playing Inside, I was quite sure that the game was linear and had only one end! Not only was there no backtracking, with movement restricted to going left or right (2.5D, as some people call it), but each puzzle felt unique in its solution.</p><p>Never have I felt the temptation to check a solution on the Internet. Every time each part of the puzzle was visible and I could Sherlock the shit out of it on my own.</p><p>Imagine my surprise when I learned that somewhere in the game, branching was actually done.</p><p>Some time ago, I would have considered this a design flaw. <strong>How would I know this moment was important if it wasn't highlighted?</strong> Well, that's the point. Thanks to this approach, Inside became <strong>an experience</strong>. No moments of pause for thinking, while the background music is dominated by a &#8222;Who Wants to be a Millionaire" like music.</p><p><strong>So how do you know where to make a decision? You make o decisions every time, don't you? And when you don't know which moment counts, you will make the most intuitive choice; the most "you-do-you" choice you can!</strong></p><p>I don't think I will replay Inside to know the other endings. I might check them out on YouTube, but I will probably not replay the entire game. It's a complete story for me, whether I understand it or not, it's emotionally complete.</p><h1>How do games do it, and should they do it this way?</h1><p>Games rarely seem to go this way. I do remember reading once how Call of Duty Black Ops 2 does the same thing: hiding the choice in the gameplay.</p><p>More often, there is some highlighting of the moment of choice. Be it right before or right after.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!_W_d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d4d34d-a513-4e8b-aef5-1ec5dd0deb52_600x338.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!_W_d!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d4d34d-a513-4e8b-aef5-1ec5dd0deb52_600x338.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!_W_d!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d4d34d-a513-4e8b-aef5-1ec5dd0deb52_600x338.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!_W_d!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d4d34d-a513-4e8b-aef5-1ec5dd0deb52_600x338.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!_W_d!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d4d34d-a513-4e8b-aef5-1ec5dd0deb52_600x338.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!_W_d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d4d34d-a513-4e8b-aef5-1ec5dd0deb52_600x338.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81d4d34d-a513-4e8b-aef5-1ec5dd0deb52_600x338.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!_W_d!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d4d34d-a513-4e8b-aef5-1ec5dd0deb52_600x338.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!_W_d!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d4d34d-a513-4e8b-aef5-1ec5dd0deb52_600x338.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!_W_d!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d4d34d-a513-4e8b-aef5-1ec5dd0deb52_600x338.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!_W_d!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d4d34d-a513-4e8b-aef5-1ec5dd0deb52_600x338.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Like Dreamfall Chapters suggesting the importance of choice by actually telling about the percentage of people making each choice (why? isn't this supposed to be your choice?) or doing this post-decision Telltale style:</p><p>(You said this to Clementine) Clemen&#173;tine will remember that.</p><p>(Telltale fires employees) Employees will remember that.</p><p>Not sure what the point is. <strong>Can you, like, rewind and make that choice again? Or is it to spark guilt and prepare you for the next choices?</strong> I always considered them debugging messages the developers forgot about, and then it became a "Telltale signature" item.</p><p>And there's, of course, the dialog option. Something that can be seen in "I don't feel my choices matter" games, like Mass Ef&#173;fect.</p><p>Of course, your choices did matter there. The consequences were just poorly shown.</p><p>The problem with interactive dialogue is that we (or just me?) expect that each choice (read: each time I pick a dialogue option) leads to or builds a different outcome, with the consequences visible much earlier than the game&#8217;s ending.</p><p><strong>I'm a bit unfair towards Mass E&#173;ffect, but I do have a love-hate relationship with this game ;-)</strong></p><h1>Can we use this knowledge to design an RPG?</h1><p>When I think about it, it seems almost impossible to design an RPG to deliver the flawless experience of gut decisions like Inside does, mostly because you know when to expect a branching possibility.</p><p>Sure, the game would benefit from different branching points: battle outcomes, money manage&#173;ment, and side effects of your choices (more than you&#8217;d expect from the dialogue options you choose). Shortly: less scripted and more algorithmic outcomes.</p><p>Do you know games like that? Tell me! Would love to test them. Someday, I'd love to make them!</p><p>Until then, it's up to games like Inside to provide short, intense experiences!</p>]]></content:encoded></item><item><title><![CDATA[Pick my next experiment!]]></title><description><![CDATA[OK, I gotta admit, I didn't have an idea what to write about, so I decided to ask you about some experiments I&#8217;m trying and see which one you would like to read about.]]></description><link>https://gamedevdairy.substack.com/p/pick-my-next-experiment</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/pick-my-next-experiment</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 01 Jun 2026 09:59:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!u_0q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660d88fa-514e-47dc-8bfe-d1e415720a1d_1345x960.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>OK, I gotta admit, I didn't have an idea what to write about, so I decided to ask you about some experiments I&#8217;m trying and see which one you would like to read about. Of course, I&#8217;m pushing the needle in vibing Pong and creating some assets and skills I need to create the very next game :-) No worries ;-)</p><p>So, here are my ideas:</p><h2>Feed my Substack to an AI to help me get better (but not write it)</h2><p>I need some data analysis of my newsletter. But not only what I can get from the Substack dashboard. That&#8217;s why I was thinking about downloading an export of all my data and connecting an AI to interpret my newsletter content.</p><p>Perhaps I can converse with a fake-newsletter-analyst and learn what the most liked content I&#8217;m producing (well, it&#8217;s about time to check that), what is my model statistical reader (not that I ever cared...), what is my worst content, and so on.</p><p>Unfortunately, the content I made before going to Substack has no stats. </p><p>Is this the time to repost my content? (of course, updating it to be up to date)</p><h2>PARA-Vault and AI</h2><p>As you probably know, I&#8217;m a big fan of Obsidian vaults. I maintain mostly two (work and personal), sometimes I create smaller vaults for reusable knowledge (but this one isn&#8217;t working as I expected). I still struggle with whether I should consequently use folders to divide data, or to consequently keep everything in one folder and not use a folder explorer anymore.</p><p>In the meantime, I started using Notion because it was the best online database for us, poor people. Still manage my gaming backlog and read books through it. And more, but I already forgot what &#8220;more&#8221; was there; I don&#8217;t visit them so often.</p><p>Then, Obsidian introduced properties and database querying. And if it wasn&#8217;t for the fact that Notion is always online, I would probably already have migrated everything back to Obsidian. But some things are worth keeping in the file system on your cloud drive!</p><p>And then I started using the PARA method (both folders and tags), and things started to get more and more notes inside.</p><p>And then I realized... what if I used a CLI AI to manage it? Maybe this could help even more!</p><p>Of course, my personal vault is a mess, so I started with my work vault, which is much smaller and more task-oriented.</p><p>And... my productivity visibly skyrocketed!</p><div class="pullquote"><p>PARA + AI + md files</p></div><h2>A description of my User Stories as Code idea</h2><p>I think I have a semi-complete vision for structuring a game in descriptions. Not yet battle-tested, though (as in: did not use AI to vibe code something based on it). Still, it can make the project more readable for both humans and AI.</p><h2>Pokedex?</h2><p>Or maybe I should make that Pokedex? </p><p>Of course, this is a project that might easily go on hiatus, since at some point I will have to go from software to hardware, and that will cost... </p><p>Still, making an app to serve Pok&#233;mon data like a Pokedex might be fun :D</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!u_0q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660d88fa-514e-47dc-8bfe-d1e415720a1d_1345x960.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!u_0q!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660d88fa-514e-47dc-8bfe-d1e415720a1d_1345x960.png 424w, /__u/substackcdn.com/image/fetch/$s_!u_0q!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660d88fa-514e-47dc-8bfe-d1e415720a1d_1345x960.png 848w, /__u/substackcdn.com/image/fetch/$s_!u_0q!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660d88fa-514e-47dc-8bfe-d1e415720a1d_1345x960.png 1272w, /__u/substackcdn.com/image/fetch/$s_!u_0q!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660d88fa-514e-47dc-8bfe-d1e415720a1d_1345x960.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!u_0q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660d88fa-514e-47dc-8bfe-d1e415720a1d_1345x960.png" width="1345" height="960" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/660d88fa-514e-47dc-8bfe-d1e415720a1d_1345x960.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:960,&quot;width&quot;:1345,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Pokedex | Figma&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Pokedex | Figma" title="Pokedex | Figma" srcset="/__u/substackcdn.com/image/fetch/$s_!u_0q!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660d88fa-514e-47dc-8bfe-d1e415720a1d_1345x960.png 424w, /__u/substackcdn.com/image/fetch/$s_!u_0q!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660d88fa-514e-47dc-8bfe-d1e415720a1d_1345x960.png 848w, /__u/substackcdn.com/image/fetch/$s_!u_0q!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660d88fa-514e-47dc-8bfe-d1e415720a1d_1345x960.png 1272w, /__u/substackcdn.com/image/fetch/$s_!u_0q!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660d88fa-514e-47dc-8bfe-d1e415720a1d_1345x960.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Srsly, what are all these buttons for?</figcaption></figure></div><p>So... what do you think?</p><div class="poll-embed" data-attrs="{&quot;id&quot;:521501}" data-component-name="PollToDOM"></div><div class="poll-embed" data-attrs="{&quot;id&quot;:521490}" data-component-name="PollToDOM"></div><p></p>]]></content:encoded></item><item><title><![CDATA[If you have a simple game, overthink!]]></title><description><![CDATA[I created a Pong MVP!]]></description><link>https://gamedevdairy.substack.com/p/if-you-have-a-simple-game-overthink</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/if-you-have-a-simple-game-overthink</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 25 May 2026 09:59:25 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1731834452142-8c174570cfb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMnx8cG9uZ3xlbnwwfHx8fDE3Nzk1Njg5MDZ8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I created a Pong MVP! I vibe-coded it in Rust and Bevy.</p><p>Why do I call it an MVP? Well, I have a working game loop. And that&#8217;s it. Earlier, I was thinking that MVP doesn&#8217;t make any sense when you make games, but right now I think of MVP as a prototype.</p><p>Let me tell you what I think about phases right now:</p><ol><li><p><strong>MVP</strong> (prototype; working game loop) - what I have right now.</p></li><li><p><strong>Vertical Slice</strong> (a working one level of content) - makes more sense when you make a bigger game than Pong, obviously; but it should contain one level, or one map, or one world, but has all game features to be included in the end game.</p></li><li><p><strong>Alpha </strong>(a working game, but not in a state that can be shown to a player/customer, polish phase begins here)</p></li><li><p><strong>Beta / Early Access </strong>- I think this is obvious ;-)</p></li></ol><h2>What&#8217;s next for Pong?</h2><p>Quite recently, I thought that the best thing you can do if you have a simple project is to overthink it :D</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1731834452142-8c174570cfb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMnx8cG9uZ3xlbnwwfHx8fDE3Nzk1Njg5MDZ8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1731834452142-8c174570cfb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMnx8cG9uZ3xlbnwwfHx8fDE3Nzk1Njg5MDZ8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1731834452142-8c174570cfb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMnx8cG9uZ3xlbnwwfHx8fDE3Nzk1Njg5MDZ8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1731834452142-8c174570cfb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMnx8cG9uZ3xlbnwwfHx8fDE3Nzk1Njg5MDZ8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1731834452142-8c174570cfb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMnx8cG9uZ3xlbnwwfHx8fDE3Nzk1Njg5MDZ8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1731834452142-8c174570cfb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMnx8cG9uZ3xlbnwwfHx8fDE3Nzk1Njg5MDZ8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="5184" height="3456" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1731834452142-8c174570cfb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMnx8cG9uZ3xlbnwwfHx8fDE3Nzk1Njg5MDZ8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3456,&quot;width&quot;:5184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A couple of machines sitting next to each other&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A couple of machines sitting next to each other" title="A couple of machines sitting next to each other" srcset="https://images.unsplash.com/photo-1731834452142-8c174570cfb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMnx8cG9uZ3xlbnwwfHx8fDE3Nzk1Njg5MDZ8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1731834452142-8c174570cfb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMnx8cG9uZ3xlbnwwfHx8fDE3Nzk1Njg5MDZ8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1731834452142-8c174570cfb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMnx8cG9uZ3xlbnwwfHx8fDE3Nzk1Njg5MDZ8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1731834452142-8c174570cfb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMnx8cG9uZ3xlbnwwfHx8fDE3Nzk1Njg5MDZ8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@partrickl">P. L.</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p>So here&#8217;s what I want to do for my Pong game:</p><ul><li><p>Implement some powerups :-)</p></li><li><p>Add some new rules - ball speeds up in time</p></li><li><p>Implement an AI-like for the second paddle</p></li><li><p>Render game art instead of simple shapes</p></li><li><p>Make it publishable on the web</p></li><li><p>Play sound/music</p></li><li><p>Implement a joypad?</p></li><li><p>Add structure to the project to make a nice template out of it.</p></li></ul><h2>User Stories as Code</h2><p>Speaking of templates.</p><p>Long before AI was the only topic in the world, the IT industry started some interesting practices. One of them was &#8220;SMTH as code&#8221;, where SMTH can be anything ;-)</p><p>One of my favorites is &#8220;Infrastructure as Code&#8221;, which basically means that all the building scripts (those that build your game for release) you usually clicked and kept on some SaaS (or self-hosted equivalent) were now kept in the codebase as simple code. Readable, history in Git (or whatever you&#8217;re using). Transparent as possible.</p><p>AIs like text more than all those binaries and clickology of some systems. They work better with game frameworks than in game engines (not that they don&#8217;t, but when you write everything by code, they definitely have more leverage). They would work better with infrastructure as code. Why not keep your game design document/user stories/whatever as code as well?</p><p>So I try to figure out a great way to store tasks as text and turn it into a system that's not only understandable to humans but also to LLMs. I might, of course, use any system for it (be it Jira, or maybe some Linear instance), but I&#8217;m aware that I&#8217;m very easy to forget where I kept it and not update it. That&#8217;s why I want to keep it beside the repository. These specs will be my game design document, my roadmap of features to implement, and my way to communicate with the AI. I&#8217;m thinking of merging a tree structure with a Zettelkasten-like addressing. But for that, I think I will need another issue, once I have the idea done and tested.</p><h2>Side Projects</h2><p>As you know, I have a range of side projects I&#8217;m doing at the same time ;-) As I&#8217;m getting quite better in one of them, a new one appeared. And something tells me it might be a fun one :D As long as I finish it before my daughter grows out of Pok&#233;mon ;-)</p><div class="comment" data-attrs="{&quot;url&quot;:&quot;https://open.substack.com/&quot;,&quot;commentId&quot;:260466164,&quot;comment&quot;:{&quot;id&quot;:260466164,&quot;date&quot;:&quot;2026-05-17T13:10:56.882Z&quot;,&quot;edited_at&quot;:null,&quot;body&quot;:&quot;Everytime my daughter asks me &#8220;Dad, can we check on which level Pokemon X evolves to Y?&#8221; I kind of want to buy a Raspberry Pi and build a pokedex for her&#8230;&quot;,&quot;body_json&quot;:{&quot;type&quot;:&quot;doc&quot;,&quot;attrs&quot;:{&quot;schemaVersion&quot;:&quot;v1&quot;,&quot;title&quot;:null},&quot;content&quot;:[{&quot;type&quot;:&quot;paragraph&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;Everytime my daughter asks me &#8220;Dad, can we check on which level Pokemon X evolves to Y?&#8221; I kind of want to buy a Raspberry Pi and build a pokedex for her&#8230;&quot;}]}]},&quot;restacks&quot;:0,&quot;reaction_count&quot;:5,&quot;children_count&quot;:3,&quot;attachments&quot;:[],&quot;name&quot;:&quot;Maurice Klimek&quot;,&quot;user_id&quot;:10432226,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F963828a9-eed9-4f5d-a9ab-603b665d4700_400x400.jpeg&quot;,&quot;user_bestseller_tier&quot;:null,&quot;userStatus&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:null,&quot;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}},&quot;source&quot;:null,&quot;forumChannel&quot;:null}" data-component-name="CommentPlaceholder"></div><p>Might as well start a YouTube channel and wait for Nintendo lawyers ;-)</p>]]></content:encoded></item><item><title><![CDATA[Don't use nostalgia against yourself!]]></title><description><![CDATA[It&#8217;s good to have role models, even among game developers.]]></description><link>https://gamedevdairy.substack.com/p/dont-use-nostalgia-against-yourself</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/dont-use-nostalgia-against-yourself</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 18 May 2026 09:59:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!6XY4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac3aff16-915f-438e-ac1a-a5ec4738ddf7_736x736.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s good to have role models, even among game developers. But sometimes their existence puts us down instead of lifting us.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!6XY4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac3aff16-915f-438e-ac1a-a5ec4738ddf7_736x736.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!6XY4!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac3aff16-915f-438e-ac1a-a5ec4738ddf7_736x736.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!6XY4!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac3aff16-915f-438e-ac1a-a5ec4738ddf7_736x736.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!6XY4!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac3aff16-915f-438e-ac1a-a5ec4738ddf7_736x736.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!6XY4!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac3aff16-915f-438e-ac1a-a5ec4738ddf7_736x736.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!6XY4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac3aff16-915f-438e-ac1a-a5ec4738ddf7_736x736.jpeg" width="736" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac3aff16-915f-438e-ac1a-a5ec4738ddf7_736x736.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:736,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Strong people don't put others down. They lift them up. Darth Vader ...&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Strong people don't put others down. They lift them up. Darth Vader ..." title="Strong people don't put others down. They lift them up. Darth Vader ..." srcset="/__u/substackcdn.com/image/fetch/$s_!6XY4!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac3aff16-915f-438e-ac1a-a5ec4738ddf7_736x736.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!6XY4!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac3aff16-915f-438e-ac1a-a5ec4738ddf7_736x736.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!6XY4!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac3aff16-915f-438e-ac1a-a5ec4738ddf7_736x736.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!6XY4!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac3aff16-915f-438e-ac1a-a5ec4738ddf7_736x736.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I remember when, still in school, talking with fellow gamers about the dreams of becoming a gamedev led to some interesting models of thinking. </p><p>Not necessarily the lifting ones, that&#8217;s for sure.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Wsiu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F633f2631-abbf-47e1-a4ff-2cb93c409126_1920x1080.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Wsiu!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F633f2631-abbf-47e1-a4ff-2cb93c409126_1920x1080.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!Wsiu!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F633f2631-abbf-47e1-a4ff-2cb93c409126_1920x1080.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!Wsiu!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F633f2631-abbf-47e1-a4ff-2cb93c409126_1920x1080.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!Wsiu!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F633f2631-abbf-47e1-a4ff-2cb93c409126_1920x1080.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Wsiu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F633f2631-abbf-47e1-a4ff-2cb93c409126_1920x1080.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/633f2631-abbf-47e1-a4ff-2cb93c409126_1920x1080.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;John Carmack, l'un des fondateurs d'id Software, annonce son d&#233;part de ...&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="John Carmack, l'un des fondateurs d'id Software, annonce son d&#233;part de ..." title="John Carmack, l'un des fondateurs d'id Software, annonce son d&#233;part de ..." srcset="/__u/substackcdn.com/image/fetch/$s_!Wsiu!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F633f2631-abbf-47e1-a4ff-2cb93c409126_1920x1080.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!Wsiu!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F633f2631-abbf-47e1-a4ff-2cb93c409126_1920x1080.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!Wsiu!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F633f2631-abbf-47e1-a4ff-2cb93c409126_1920x1080.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!Wsiu!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F633f2631-abbf-47e1-a4ff-2cb93c409126_1920x1080.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>John Carmack is probably every aspiring game dev&#8217;s (I know) Fairy Godfather. He&#8217;s the man! Capable of writing your own engine! This man never heard that he has a &#8220;Skill Issue&#8221;! Contrary to us...</p><p>And everybody wanted to be a John Carmack and make their own engine.</p><p>But being John Carmack is not about making a game engine. John Carmack (along with the id crew) revolutionized gaming. They made Wolfenstein 3D, then Doom. It took them X years to do that (Wolfenstein 4 months and Doom 1 year). With today&#8217;s tutorials, you can do that in a few hours. If you use an AI agent, maybe even half an hour. But I&#8217;m not saying this to downgrade Carmack&#8217;s achievements, but to highlight the progress gaming has made thanks to them.</p><p>You will never be John Carmack. John Carmack is something more than the level of understanding of code and structure! You can achieve this!</p><p>He made progress because time was on his side, not to mention that he did the things that pushed everything forward. But everything (the industry, the state of games, and so on) was different than today. That world is no more.</p><p>You cannot reach the level of status of John Carmack because you&#8217;d have to do what he did in the times when he did them. Imagine doing the next big thing in video games now. And by next big thing, I don&#8217;t mean a game that reaches the top ten of Steam. I mean the one specific game that actually pushes the capabilities of game engines, graphics, or computer rendering. When was the last time you heard someone did that?</p><p>People who do that today show how nerdy, how specialistic, how technical John Carmack was back then (he probably still is, just in different ways). If you&#8217;re just like that, you might achieve it. But don&#8217;t overthink it.</p><p>Takes 20 years to become an overnight success.</p><p>Name your hero!</p><ul><li><p>Is it Chris Sawyer who made Rollercoaster Tycoon in assembly language? (awesome achievement, but hell, when porting to other machines)</p></li><li><p>Is it the guy who made VVVVVV all alone?</p></li><li><p>Is it Hideo Kojima? Do you remember that he started his career with a penguin racing game, Antarctic Adventure, for the MSX and then the NES? ;-)</p></li><li><p>Is it Blizzard? Funny, you would mention a company with so many dependencies these days :-)</p></li></ul><p>It&#8217;s hard to take a stance while having no achievements of my own.</p><p>But I learned that ambition is what pushes you forward, not what brings you down with comparison.</p><p>Your ego (and thinking about your heroes is an ego thing) is the enemy.</p><p>The ego doesn&#8217;t matter; only the work you can do matters.</p><p>Focus on that.</p><p>And someday, you might meet your heroes and other game developers. As equals. As people who know the cost, the effort, the path.</p><p>But do not want to meet your heroes.</p><p>Just do the work.</p><p>And once you are done, as the Tech Lead once said, do the extra mile. It&#8217;s less crowded there.</p>]]></content:encoded></item><item><title><![CDATA[LLMs can build "The Next Big Game", so why am I still recreating Pong?]]></title><description><![CDATA[So I got this question recently:]]></description><link>https://gamedevdairy.substack.com/p/llms-can-build-the-next-big-game</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/llms-can-build-the-next-big-game</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 11 May 2026 09:59:26 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1522435229388-6f7a422cd95b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx0aGlua2luZ3xlbnwwfHx8fDE3NzgyOTgyMTV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>So I got this question recently:</p><div class="callout-block" data-callout="true"><p>Why go through the entire history of games and recreate them if you can use AI to make those games?</p></div><p>And it got me thinking. Doing the 20 games challenge does seem overwhelming. But so is doing an entire game.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1522435229388-6f7a422cd95b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx0aGlua2luZ3xlbnwwfHx8fDE3NzgyOTgyMTV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1522435229388-6f7a422cd95b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx0aGlua2luZ3xlbnwwfHx8fDE3NzgyOTgyMTV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1522435229388-6f7a422cd95b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx0aGlua2luZ3xlbnwwfHx8fDE3NzgyOTgyMTV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1522435229388-6f7a422cd95b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx0aGlua2luZ3xlbnwwfHx8fDE3NzgyOTgyMTV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1522435229388-6f7a422cd95b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx0aGlua2luZ3xlbnwwfHx8fDE3NzgyOTgyMTV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1522435229388-6f7a422cd95b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx0aGlua2luZ3xlbnwwfHx8fDE3NzgyOTgyMTV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="4608" height="3072" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1522435229388-6f7a422cd95b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx0aGlua2luZ3xlbnwwfHx8fDE3NzgyOTgyMTV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3072,&quot;width&quot;:4608,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;gray monkey in bokeh photography&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="gray monkey in bokeh photography" title="gray monkey in bokeh photography" srcset="https://images.unsplash.com/photo-1522435229388-6f7a422cd95b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx0aGlua2luZ3xlbnwwfHx8fDE3NzgyOTgyMTV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1522435229388-6f7a422cd95b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx0aGlua2luZ3xlbnwwfHx8fDE3NzgyOTgyMTV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1522435229388-6f7a422cd95b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx0aGlua2luZ3xlbnwwfHx8fDE3NzgyOTgyMTV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1522435229388-6f7a422cd95b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx0aGlua2luZ3xlbnwwfHx8fDE3NzgyOTgyMTV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@earbiscuits">Juan Rumimpunu</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p>If you use YouTube, you probably have seen once or twice that someone decided to make a low-poly GTA clone, because that&#8217;s proof that making AAA games with AI will be easy, right? Well, no. It seems easy when you&#8217;re trying to make the rest, but it will fall apart like that Google demo after 1 minute of play. Why? Because no matter what awesome tool you have, you have to learn how to use it, and you have to know how a game is made to build it further and fix its bugs.</p><p>If I wanted to become a barista, I would start by grinding the coffee beans naturally, instead of using a top-notch coffee express for big bucks. I would prefer to learn the grind before I optimize.</p><p>The same goes for games. In order to make my ideas come true, I need to learn how games are made. All games. Because each game gives a new understanding of how a game is structured, each game shows something completely new, but remains a basic implementation. It gives me knowledge on how to break down my task to reach the goal I set for myself.</p><p>In the end, it doesn&#8217;t matter how advanced your tool is. What matters is how much you understand it. It can be coffee, it can be a car. The more you know about what&#8217;s under the hood, the better driver you become.</p><p>Optimization is a trap if you don&#8217;t understand the essence.</p><p>This need for fundamental understanding isn&#8217;t unique to engineering. It&#8217;s a staple of art, too. It reminds me of a paradox. When you see classic paintings, you often see baskets full of fruit. Actually, I visited many friends and family members and noticed that this topic prevails on their walls. Which is funny, because these paintings are nothing but practice necessary to master the craft. They probably thought that this was just a warm-up before doing the next big thing. But I digress.</p><p>It&#8217;s not about making one game and proving it can be done. It&#8217;s about making multiple games. Many different games. It&#8217;s about polishing game mechanics. It&#8217;s about learning how to instruct an LLM, not being dependent on how an LLM understands a high-level description. I still want to be in charge, but for that, I need to understand how all this works.</p><p>To achieve that, I design prompts around simpler and already-made games. Not only will that lead me to speak &#8220;game dev&#8221; to LLMs, but also build mental models. Step by step, more complex games, but also similar to my goals. Using the techniques required, but in a simpler example!</p><p>Don&#8217;t be worried that you&#8217;re not working on The Game. Start with that fruit basket. </p>]]></content:encoded></item><item><title><![CDATA[Writing your own Bevy plugins, so you don't write stuff again]]></title><description><![CDATA[One of the best practices I added to my &#8220;AGENTS.md&#8221; prompt file is that each game feature should be a plugin.]]></description><link>https://gamedevdairy.substack.com/p/writing-your-own-bevy-plugins-so</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/writing-your-own-bevy-plugins-so</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 04 May 2026 10:00:05 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1758518731049-84eef34d8ba2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb21wdXRlciUyMHNob2NrfGVufDB8fHx8MTc3Nzc1MTAwOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>One of the best practices I added to my &#8220;AGENTS.md&#8221; prompt file is that each game feature should be a plugin. </p><p>And to my joy, AI has already made basic implementations according to what the code does and what it (AI) is supposed to do about it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1758518731049-84eef34d8ba2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb21wdXRlciUyMHNob2NrfGVufDB8fHx8MTc3Nzc1MTAwOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1758518731049-84eef34d8ba2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb21wdXRlciUyMHNob2NrfGVufDB8fHx8MTc3Nzc1MTAwOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1758518731049-84eef34d8ba2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb21wdXRlciUyMHNob2NrfGVufDB8fHx8MTc3Nzc1MTAwOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1758518731049-84eef34d8ba2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb21wdXRlciUyMHNob2NrfGVufDB8fHx8MTc3Nzc1MTAwOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1758518731049-84eef34d8ba2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb21wdXRlciUyMHNob2NrfGVufDB8fHx8MTc3Nzc1MTAwOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1758518731049-84eef34d8ba2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb21wdXRlciUyMHNob2NrfGVufDB8fHx8MTc3Nzc1MTAwOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="3800" height="2138" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1758518731049-84eef34d8ba2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb21wdXRlciUyMHNob2NrfGVufDB8fHx8MTc3Nzc1MTAwOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2138,&quot;width&quot;:3800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Man in suit celebrating success at office desk.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Man in suit celebrating success at office desk." title="Man in suit celebrating success at office desk." srcset="https://images.unsplash.com/photo-1758518731049-84eef34d8ba2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb21wdXRlciUyMHNob2NrfGVufDB8fHx8MTc3Nzc1MTAwOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1758518731049-84eef34d8ba2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb21wdXRlciUyMHNob2NrfGVufDB8fHx8MTc3Nzc1MTAwOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1758518731049-84eef34d8ba2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb21wdXRlciUyMHNob2NrfGVufDB8fHx8MTc3Nzc1MTAwOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1758518731049-84eef34d8ba2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb21wdXRlciUyMHNob2NrfGVufDB8fHx8MTc3Nzc1MTAwOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@silverkblack">Vitaly Gariev</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p>As I read the code (because you should read your vibed code!) I noticed that it made a plugin for the game (Pong plugin), the Main Menu, and the Game Over screen.</p><p>And then it hit me. </p><p>Because I always wanted to reuse as much as possible. And it just started doing it for me. </p><p>This isn&#8217;t much about AI doing this, but about Bevy already having nice features for it.</p><p>Why write the main menu every time from scratch, if you can parametrize it and use the same code to do it? What is there to parametrize? Background image, fonts, what functions should be run on &#8220;Play&#8221;, and so on&#8230;</p><p>What is left? Well, the entire menu rendering code! And maybe even Options. Display options! And sound options! Or maybe they should be plugins themselves (and be used as a plugin in the Menu plugin?), so that they can be reused more easily in the game itself?</p><p>The Game Over screen might not be the best idea for a plugin, but a rolling credits screen? With credits as a resource passed into it.</p><p>Not to mention, Bevy&#8217;s possibility to test plugins in a minimal setup in a headless mode (without rendering the window - useful for many things). Write the plugin, write its tests, and never care about it again!</p><p>Not to mention, game physics (like Avian) are already plugins!</p><p>But that&#8217;s just me nerding out about what Bevy has to offer. Back to that Pong ;-)</p>]]></content:encoded></item><item><title><![CDATA[I vibe coded Pong. Here is some advice on how to fail better.]]></title><description><![CDATA[So, what do you know&#8230; I actually did it&#8230; I vibe-coded a game prototype&#8230;]]></description><link>https://gamedevdairy.substack.com/p/i-vibe-coded-pong-here-is-some-advice</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/i-vibe-coded-pong-here-is-some-advice</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 27 Apr 2026 09:59:50 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1565687981296-535f09db714e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx2aWJlJTIwY29kaW5nfGVufDB8fHx8MTc3NzEwMTgxNnww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>So, what do you know&#8230; I actually did it&#8230; I vibe-coded a game prototype&#8230;</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;113c8841-7117-42d5-9268-2f04c183d9cd&quot;,&quot;duration&quot;:null}"></div><p>(still learning how to do screen grabs on a MacBook, though)</p><p>How did I do it? </p><p>I just did. Hesitations later (which means now). </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1565687981296-535f09db714e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx2aWJlJTIwY29kaW5nfGVufDB8fHx8MTc3NzEwMTgxNnww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1565687981296-535f09db714e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx2aWJlJTIwY29kaW5nfGVufDB8fHx8MTc3NzEwMTgxNnww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1565687981296-535f09db714e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx2aWJlJTIwY29kaW5nfGVufDB8fHx8MTc3NzEwMTgxNnww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1565687981296-535f09db714e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx2aWJlJTIwY29kaW5nfGVufDB8fHx8MTc3NzEwMTgxNnww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1565687981296-535f09db714e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx2aWJlJTIwY29kaW5nfGVufDB8fHx8MTc3NzEwMTgxNnww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1565687981296-535f09db714e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx2aWJlJTIwY29kaW5nfGVufDB8fHx8MTc3NzEwMTgxNnww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="4000" height="2667" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1565687981296-535f09db714e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx2aWJlJTIwY29kaW5nfGVufDB8fHx8MTc3NzEwMTgxNnww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2667,&quot;width&quot;:4000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;man in black shirt using laptop computer and flat screen monitor&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="man in black shirt using laptop computer and flat screen monitor" title="man in black shirt using laptop computer and flat screen monitor" srcset="https://images.unsplash.com/photo-1565687981296-535f09db714e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx2aWJlJTIwY29kaW5nfGVufDB8fHx8MTc3NzEwMTgxNnww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1565687981296-535f09db714e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx2aWJlJTIwY29kaW5nfGVufDB8fHx8MTc3NzEwMTgxNnww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1565687981296-535f09db714e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx2aWJlJTIwY29kaW5nfGVufDB8fHx8MTc3NzEwMTgxNnww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1565687981296-535f09db714e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHx2aWJlJTIwY29kaW5nfGVufDB8fHx8MTc3NzEwMTgxNnww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@vantaymedia">Van Tay Media</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p>But seriously, I wanted to make this issue for you first. </p><p>Here&#8217;s what I learned so far.</p><h2>You don&#8217;t need a knowledge base</h2><p>Because there&#8217;s already a lot in the LLM. What you need is to provide it with directions.</p><p>When I realized that <s>waiting for</s> making the perfect knowledge base was just me not doing any games, I decided to drop the idea and go vanilla. How much can an LLM do for me in the first place? Without &#8220;any preparation&#8221;?</p><p>And the answer is fun. If you learned Bevy before, you&#8217;ll know that Bevy&#8217;s 0,0 coordinates are&#8230; in the middle of the screen. Which means - Pong was rendered in the top right quarter of the screen. Hilarious. Unfortunately, I did not make a screenshot of that for you.</p><p>You can describe this to the LLM, and it will iterate over it until it&#8217;s fixed. But you&#8217;ll likely have to do it again and again, as new sessions won&#8217;t have that knowledge from before. </p><p>This is, in fact, the knowledge that needs to go to the AGENTS.md file. </p><p>And that file is the only knowledge base that matters. Not the complete encyclopedia of the game engine.</p><p>And here&#8217;s mine, if you&#8217;d like to use it:</p><p><a href="https://github.com/ReusableTemplates/bevyvibecodingagent">https://github.com/ReusableTemplates/bevyvibecodingagent</a></p><p>The second mistake I made was not starting from the smallest possible outcome.</p><h2>Small iterations</h2><p>I should&#8217;ve started with just a ball bouncing from the walls. Then add paddles. </p><p>Instead, I went entirely for a simple Pong (seen above). It wasn&#8217;t very hard to make it work, but it might get hard if I try this again. </p><p><strong>The smaller you start, the faster you make it runnable. This is the most important thing - that your project is running.</strong> So the first step in making your game is to create the simplest window that does nothing, but runs without errors.</p><p>And then you iterate.</p><h2>The Iteration Loop</h2><p>Let&#8217;s say you have the first smallest possible outcome, and you have already run it. What next? </p><ol><li><p>You make a snapshot you can return to. Like a git commit. This way, it&#8217;s easier to get back to the last working state.</p></li><li><p>Then you instruct the LLM to make a change.</p></li><li><p>Then you view the code. See what the changes are. Try to understand them. Ask it questions.</p></li><li><p>Then you run your code. Does it build? Hopefully. If not, AI has to fix it. Does it run? It should! If it runs - play it. Check the differences. Check if the new code is doing what you expected. If not, instruct AI to fix it.</p></li><li><p>If it works, make a snapshot - a git commit. We&#8217;re back at point 1. Full circle!</p></li><li><p>Proceed to the next feature to be implemented.</p></li></ol><h2>Big Scale Iterating</h2><p>Iterations and forking of previous games for gameplay evolution might prove a must. </p><p>One of the things I might do in the future is create a template to make some things faster ;-) No point in implementing them from scratch every time. That&#8217;s what a non-programmer would do, not an experienced person.</p><p>At some point, I will create a chess game. Based on a chess game, I can make a tile strategy game like Fire Emblem. Or a Final Fantasy IV &#8220;spiritual rip-off&#8221; ;-) Or a Zelda: Link&#8217;s Awakening. All these games are tile-based. They differ marginally, in fact.</p><h2>What&#8217;s next?</h2><p>Well, too early for a new game. I think I want to enhance Pong with some additional features, like viewing the score, making a menu, and making a web deployment script that I can reuse, parametrizing the game, etc.</p><p>There are so many failures in a simple success like this :-)</p><p>Btw, here&#8217;s the Pong repo:</p><p>https://github.com/VibeCodingBevy/20_games_challenge_01_pong_ver3</p>]]></content:encoded></item><item><title><![CDATA[How to design an initial prompt for a game]]></title><description><![CDATA[Remember when I said I needed to build a knowledge base to vibe code properly?]]></description><link>https://gamedevdairy.substack.com/p/how-to-design-an-initial-prompt-for</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/how-to-design-an-initial-prompt-for</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 20 Apr 2026 10:00:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Cesl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6520b1c-097d-48e7-9b8d-96b2a8f9bc70_341x321.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Remember when I said I needed to build a knowledge base to vibe code properly? Yeah, fuck that shit. Gonna figure it out as I go.</p><p>I realized that this will be yet another thing people do, just to not do the thing they were supposed to be doing. Like research. Or refactoring code.</p><p>So I decided to go straight to <a href="https://20_games_challenge.gitlab.io/">the games challenge</a>!</p><p>We&#8217;re at the very beginning - doing <a href="https://20_games_challenge.gitlab.io/games/pong/">Pong</a>. My goal is to vibe code Pong using Rust and Bevy. And see how far I can go.</p><p>So I started with a <code>README.md</code> file, not for the AI, but for myself. This is a file that should remind me what the point of this project was. What are my goals, my intents, and expected benefits?</p><p>Some of the lines I used were directly from the 20 games challenge, especially when it comes to the things that I will learn. Sometimes it&#8217;s good to write it all down somewhere.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">This document is not for AI, but as a "get up to speed" document for myself.

This folder contains a Pong implementation as part of the "20 games challenge".

This is my first game.

Gain a basic understanding of Bevy (my game engine/editor of choice) and put together a complete (but small) game!
Don&#8217;t worry about making art just yet, you can find a lot of sprites online that you can use. The main focus for now is on the mechanics of the game engine itself.

# Things that you will learn

1. Using your game engine of choice!
2. Creating and destroying objects.
3. Processing player input and moving objects on screen.
4. Detecting and reacting to collisions.</code></pre></div><p>Next is the file that will serve to create the very first version of the game. I called it brief.md (short for briefing), and at the very beginning, I copied everything I could find on the Pong subpage of the challenge.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown"># Technical requirements

- The game is written in Rust.
- The game engine chosen is Bevy.
- The target build is web.

# Goals

1. Create an arena with two walls and a divider
2. Add a paddle on either end of the play field. Use player inputs to move the paddles up and down.
3. Add a ball that moves around the arena and bounces off of paddles and walls.
4. Detect when the ball is leaves the arena. Assign a point to the player that scored.
5. Track and display the score of each player.

# Stretch Goals

1. Add a menu and allow the player to reset the game.
2. Add some basic sounds. Play a sound every time the ball collides with something, and every time the player scores.
3. Write an AI script that can follow the ball so you can play with only one player. Hint: Following the ball with a paddle is easy, but it makes the opponent impossible to beat. You might want to make the AI less than perfect somehow.</code></pre></div><p>The Technical Requirements at the beginning are from me and serve one purpose - for the AI not to lose track of the tools and results needed. Perhaps writing about Rust, when I mention Bevy (a Rust game engine, after all), is a bit too much, but I decided to keep it anyway. </p><p>And of course, the target build should be the web, because let&#8217;s build it as accessible as possible. Nobody will play a Pong game, but what I learned in a simple game can then be used in a more complex game.</p><p>What you&#8217;ve seen above isn&#8217;t the final form of the file.</p><p>But&#8230;</p><ul><li><p>If you can use an AI to write an e-mail (not me, this is all my writing! Just look at my shitty English!), </p></li><li><p>If you can use AI to understand the source/sources of information for learning purposes, </p></li><li><p>If you can use AI in ideation&#8230; </p></li></ul><p>Then&#8230; why not use it to review your spec file?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Cesl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6520b1c-097d-48e7-9b8d-96b2a8f9bc70_341x321.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Cesl!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6520b1c-097d-48e7-9b8d-96b2a8f9bc70_341x321.gif 424w, /__u/substackcdn.com/image/fetch/$s_!Cesl!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6520b1c-097d-48e7-9b8d-96b2a8f9bc70_341x321.gif 848w, /__u/substackcdn.com/image/fetch/$s_!Cesl!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6520b1c-097d-48e7-9b8d-96b2a8f9bc70_341x321.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!Cesl!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_webp, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6520b1c-097d-48e7-9b8d-96b2a8f9bc70_341x321.gif 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Cesl!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6520b1c-097d-48e7-9b8d-96b2a8f9bc70_341x321.gif" width="341" height="321" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d6520b1c-097d-48e7-9b8d-96b2a8f9bc70_341x321.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:321,&quot;width&quot;:341,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Bert and ernie epiphany impresionado GIF en GIFER - de Vudozil&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Bert and ernie epiphany impresionado GIF en GIFER - de Vudozil" title="Bert and ernie epiphany impresionado GIF en GIFER - de Vudozil" srcset="/__u/substackcdn.com/image/fetch/$s_!Cesl!, /__u/gamedevdairy.substack.com/w_424, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6520b1c-097d-48e7-9b8d-96b2a8f9bc70_341x321.gif 424w, /__u/substackcdn.com/image/fetch/$s_!Cesl!, /__u/gamedevdairy.substack.com/w_848, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6520b1c-097d-48e7-9b8d-96b2a8f9bc70_341x321.gif 848w, /__u/substackcdn.com/image/fetch/$s_!Cesl!, /__u/gamedevdairy.substack.com/w_1272, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6520b1c-097d-48e7-9b8d-96b2a8f9bc70_341x321.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!Cesl!, /__u/gamedevdairy.substack.com/w_1456, /__u/gamedevdairy.substack.com/c_limit, /__u/gamedevdairy.substack.com/f_auto, /__u/gamedevdairy.substack.com/q_auto:good, /__u/gamedevdairy.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6520b1c-097d-48e7-9b8d-96b2a8f9bc70_341x321.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>With a good enough prompt, you can work on your spec iteratively. Just as I will work on my future games. The only thing you need is to teach it the criteria for it to work with. Criteria like:</p><h2>Definition of Done</h2><p>A Definition of Done should answer &#8220;how do we know it&#8217;s done?&#8221;.</p><p>The direct, straight-to-the-face symptoms that we did not forget anything. But, preferably, in a form understandable for an LLM - readable from pure text (or code).</p><p>Below is not my actual prompt (I was switching between laptops recently), but it should give you an idea of how I achieved that: </p><blockquote><p>The file @brief.md contains a specification for a video game I want to make. You are a senior game designer. Review this file as it was a Definition of Done. Ask me questions regarding any missing information and suggest 3-4 answers for me to pick. Use my answers to modify the file.</p></blockquote><p>Unfortunately, I did not write the original prompt because it made the AI actually give me a list of checkboxes to pick from, with every possible parameter. Shame, maybe next time ;-)</p><p>But when working with an LLM, it asked me about the size of every possible thing. Surprisingly, the LLM understood the Definition of Done very seriously. In fact, more seriously than any Development Team I have ever worked with. </p><p>Just look at it yourself (below).</p><h2>What I ended up with...</h2><p>Here&#8217;s the final (ish) version of the brief.md file. Spoiler alert: it&#8217;s long.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown"># Technical requirements

- The game is written in Rust.
- The game engine chosen is Bevy.
- The target build is web.
- Each number is considered a parameter that can be changed, and the game does not require a recompile, just a restart. The values are stored in a file.

# Game Specification

## Screen
- Window size: 800x600
- Ball exits arena through left/right edges only

## Objects
- Ball: 20px diameter, 400 px/s
- Paddle: 100x30px (width x height), 300 px/s
- Wall: 10px thick
- Paddles: 20px margin from left/right edges, centered vertically

## Physics
- Ball speed: 400 px/s (fixed throughout rally)
- Paddle speed: 300 px/s
- Wall thickness: 10px
- Bounce angle: Angle based on where ball hits paddle (hit top = bounce up, hit bottom = bounce down)

## Controls
- Left paddle: Arrow Up / Arrow Down
- Right paddle: Arrow Up / Arrow Down

## Scoring
- Endless play (no winning score)
- After score: ball resets at center, direction toward the player who lost the point

## Config File
All parameters stored in `config.toml`. Example structure:

```toml
[screen]
width = 800
height = 600

[ball]
diameter = 20
speed = 400

[paddle]
width = 100
height = 30
margin = 20
speed = 300

[arena]
wall_thickness = 10
```

# Goals

## 1. Create an arena with top and bottom walls and a center line
**Acceptance Criteria:**
- Top wall: visible at y=0, full width, 10px thick
- Bottom wall: visible at y=590, full width, 10px thick
- Center line: visible at x=400, runs full height

## 2. Add paddles with player inputs
**Acceptance Criteria:**
- Left paddle: positioned at x=20 (margin), vertically centered
- Right paddle: positioned at x=780 (800-margin-paddle_width), vertically centered
- Both paddles respond to Arrow Up/Down
- Paddles stop at top/bottom wall boundaries

## 3. Add ball with physics
**Acceptance Criteria:**
- Ball spawns at center (400, 300)
- Ball travels at exactly 400 px/s
- Ball bounces off top wall: Y velocity reverses
- Ball bounces off bottom wall: Y velocity reverses
- Ball bounces off paddle: angle varies based on hit position (top = up, bottom = down)

## 4. Detect ball exits and assign points
**Acceptance Criteria:**
- Ball x &lt; 0: right player scores
- Ball x &gt; 800: left player scores
- Ball resets to center, moves toward player who lost the point
- Score increments by 1

## 5. Display scores
**Acceptance Criteria:**
- Both scores visible on screen at all times
- Scores update immediately after a point
- Starting scores: 0 - 0</code></pre></div><p><strong>What happened to the Stretch Goals, you ask?</strong></p><p>Well, I decided to extract them to a separate file, so the focus is clear. Stretch goals will be expanded upon once their time is up. </p><p><strong>Why is the configuration a TOML file?</strong></p><p>TOML is used in Rust application configs. I went with the same to keep it native.</p><p>Next week - implementation phase! I&#8217;m so excited and scared, I&#8217;m procrastinating around it all week ;-)</p>]]></content:encoded></item></channel></rss>