<?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>Sun, 12 Jul 2026 23:57:44 GMT</lastBuildDate><atom:link href="https://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[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="https://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="https://substackcdn.com/image/fetch/$s_!XOtT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27a0a46-a8ea-4775-9b34-84a9a238b8eb_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XOtT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27a0a46-a8ea-4775-9b34-84a9a238b8eb_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XOtT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27a0a46-a8ea-4775-9b34-84a9a238b8eb_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XOtT!,w_1456,c_limit,f_webp,q_auto:good,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="https://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="https://substackcdn.com/image/fetch/$s_!XOtT!,w_424,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 424w, https://substackcdn.com/image/fetch/$s_!XOtT!,w_848,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 848w, https://substackcdn.com/image/fetch/$s_!XOtT!,w_1272,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 1272w, https://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 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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>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="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" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fOaR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee4bbcdf-d076-46a8-9c76-30312dd9648e_1024x776.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fOaR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee4bbcdf-d076-46a8-9c76-30312dd9648e_1024x776.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fOaR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee4bbcdf-d076-46a8-9c76-30312dd9648e_1024x776.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fOaR!,w_1456,c_limit,f_webp,q_auto:good,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="https://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="https://substackcdn.com/image/fetch/$s_!fOaR!,w_424,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 424w, https://substackcdn.com/image/fetch/$s_!fOaR!,w_848,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 848w, https://substackcdn.com/image/fetch/$s_!fOaR!,w_1272,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 1272w, https://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 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>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="https://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="https://substackcdn.com/image/fetch/$s_!rhIK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2629d179-62c6-4580-8b7f-98c07d0c977a_686x386.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rhIK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2629d179-62c6-4580-8b7f-98c07d0c977a_686x386.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rhIK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2629d179-62c6-4580-8b7f-98c07d0c977a_686x386.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rhIK!,w_1456,c_limit,f_webp,q_auto:good,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="https://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="https://substackcdn.com/image/fetch/$s_!rhIK!,w_424,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 424w, https://substackcdn.com/image/fetch/$s_!rhIK!,w_848,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 848w, https://substackcdn.com/image/fetch/$s_!rhIK!,w_1272,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 1272w, https://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 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When 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="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" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dAlO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3562e36a-fc81-44a9-a6aa-04a733e72fd8_640x400.png 424w, https://substackcdn.com/image/fetch/$s_!dAlO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3562e36a-fc81-44a9-a6aa-04a733e72fd8_640x400.png 848w, https://substackcdn.com/image/fetch/$s_!dAlO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3562e36a-fc81-44a9-a6aa-04a733e72fd8_640x400.png 1272w, https://substackcdn.com/image/fetch/$s_!dAlO!,w_1456,c_limit,f_webp,q_auto:good,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="https://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="https://substackcdn.com/image/fetch/$s_!dAlO!,w_424,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 424w, https://substackcdn.com/image/fetch/$s_!dAlO!,w_848,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 848w, https://substackcdn.com/image/fetch/$s_!dAlO!,w_1272,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 1272w, https://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 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="https://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="https://substackcdn.com/image/fetch/$s_!eHf7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc19cb6-9469-464f-bd20-80cf118def3c_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!eHf7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc19cb6-9469-464f-bd20-80cf118def3c_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!eHf7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc19cb6-9469-464f-bd20-80cf118def3c_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!eHf7!,w_1456,c_limit,f_webp,q_auto:good,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="https://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="https://substackcdn.com/image/fetch/$s_!eHf7!,w_424,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 424w, https://substackcdn.com/image/fetch/$s_!eHf7!,w_848,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 848w, https://substackcdn.com/image/fetch/$s_!eHf7!,w_1272,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 1272w, https://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 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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><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="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" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ENlW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d8d409-b74f-4c05-ad35-d8cc63d98e7d_300x330.png 424w, https://substackcdn.com/image/fetch/$s_!ENlW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d8d409-b74f-4c05-ad35-d8cc63d98e7d_300x330.png 848w, https://substackcdn.com/image/fetch/$s_!ENlW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d8d409-b74f-4c05-ad35-d8cc63d98e7d_300x330.png 1272w, https://substackcdn.com/image/fetch/$s_!ENlW!,w_1456,c_limit,f_webp,q_auto:good,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="https://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="https://substackcdn.com/image/fetch/$s_!ENlW!,w_424,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 424w, https://substackcdn.com/image/fetch/$s_!ENlW!,w_848,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 848w, https://substackcdn.com/image/fetch/$s_!ENlW!,w_1272,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 1272w, https://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 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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><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;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="https://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="https://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">a month 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="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" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3afE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3afE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3afE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7f0f0b2-3d33-4922-96b4-2307853862c2_600x338.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3afE!,w_1456,c_limit,f_webp,q_auto:good,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="https://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="https://substackcdn.com/image/fetch/$s_!3afE!,w_424,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 424w, https://substackcdn.com/image/fetch/$s_!3afE!,w_848,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 848w, https://substackcdn.com/image/fetch/$s_!3afE!,w_1272,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 1272w, https://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 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="https://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="https://substackcdn.com/image/fetch/$s_!_W_d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d4d34d-a513-4e8b-aef5-1ec5dd0deb52_600x338.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_W_d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d4d34d-a513-4e8b-aef5-1ec5dd0deb52_600x338.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_W_d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d4d34d-a513-4e8b-aef5-1ec5dd0deb52_600x338.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_W_d!,w_1456,c_limit,f_webp,q_auto:good,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="https://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="https://substackcdn.com/image/fetch/$s_!_W_d!,w_424,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 424w, https://substackcdn.com/image/fetch/$s_!_W_d!,w_848,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 848w, https://substackcdn.com/image/fetch/$s_!_W_d!,w_1272,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 1272w, https://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 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="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" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u_0q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660d88fa-514e-47dc-8bfe-d1e415720a1d_1345x960.png 424w, https://substackcdn.com/image/fetch/$s_!u_0q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660d88fa-514e-47dc-8bfe-d1e415720a1d_1345x960.png 848w, https://substackcdn.com/image/fetch/$s_!u_0q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660d88fa-514e-47dc-8bfe-d1e415720a1d_1345x960.png 1272w, https://substackcdn.com/image/fetch/$s_!u_0q!,w_1456,c_limit,f_webp,q_auto:good,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="https://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="https://substackcdn.com/image/fetch/$s_!u_0q!,w_424,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 424w, https://substackcdn.com/image/fetch/$s_!u_0q!,w_848,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 848w, https://substackcdn.com/image/fetch/$s_!u_0q!,w_1272,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 1272w, https://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 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><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="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" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6XY4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac3aff16-915f-438e-ac1a-a5ec4738ddf7_736x736.jpeg 424w, https://substackcdn.com/image/fetch/$s_!6XY4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac3aff16-915f-438e-ac1a-a5ec4738ddf7_736x736.jpeg 848w, https://substackcdn.com/image/fetch/$s_!6XY4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac3aff16-915f-438e-ac1a-a5ec4738ddf7_736x736.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!6XY4!,w_1456,c_limit,f_webp,q_auto:good,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="https://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="https://substackcdn.com/image/fetch/$s_!6XY4!,w_424,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 424w, https://substackcdn.com/image/fetch/$s_!6XY4!,w_848,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 848w, https://substackcdn.com/image/fetch/$s_!6XY4!,w_1272,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 1272w, https://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 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I 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="https://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="https://substackcdn.com/image/fetch/$s_!Wsiu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F633f2631-abbf-47e1-a4ff-2cb93c409126_1920x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Wsiu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F633f2631-abbf-47e1-a4ff-2cb93c409126_1920x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Wsiu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F633f2631-abbf-47e1-a4ff-2cb93c409126_1920x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Wsiu!,w_1456,c_limit,f_webp,q_auto:good,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="https://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="https://substackcdn.com/image/fetch/$s_!Wsiu!,w_424,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 424w, https://substackcdn.com/image/fetch/$s_!Wsiu!,w_848,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 848w, https://substackcdn.com/image/fetch/$s_!Wsiu!,w_1272,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 1272w, https://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 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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><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="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" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Cesl!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6520b1c-097d-48e7-9b8d-96b2a8f9bc70_341x321.gif 424w, https://substackcdn.com/image/fetch/$s_!Cesl!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6520b1c-097d-48e7-9b8d-96b2a8f9bc70_341x321.gif 848w, https://substackcdn.com/image/fetch/$s_!Cesl!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6520b1c-097d-48e7-9b8d-96b2a8f9bc70_341x321.gif 1272w, https://substackcdn.com/image/fetch/$s_!Cesl!,w_1456,c_limit,f_webp,q_auto:good,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="https://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="https://substackcdn.com/image/fetch/$s_!Cesl!,w_424,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 424w, https://substackcdn.com/image/fetch/$s_!Cesl!,w_848,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 848w, https://substackcdn.com/image/fetch/$s_!Cesl!,w_1272,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 1272w, https://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 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>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><item><title><![CDATA[Dear game engine users, are we really not the same?]]></title><description><![CDATA[Because I owe you an April Fool's episode ;-)]]></description><link>https://gamedevdairy.substack.com/p/dear-game-engine-users-are-we-really</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/dear-game-engine-users-are-we-really</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 13 Apr 2026 09:59:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4xsk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f2ab12-0cc6-4e9b-9814-9d3ef4a7c925_798x1140.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>People do not trust AI. And I can&#8217;t blame them. </p><p>There are a lot of hustlers, and the pressure from the stock market on innocent but naive game-making companies<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. </p><p>It&#8217;s almost like that time when the same thing was happening when the cryptobros were pushing for NFTs in everything, especially in games.</p><p>So similar that they think they&#8217;re being scammed again...</p><p>And when someone wants to use AI to make games... OMG, that has to be a cryptobro!</p><p>Even the fact that some game developers like AI doesn&#8217;t help.</p><p>Normal gamedevs would love to convince everyone that we are not the same.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4xsk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f2ab12-0cc6-4e9b-9814-9d3ef4a7c925_798x1140.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4xsk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f2ab12-0cc6-4e9b-9814-9d3ef4a7c925_798x1140.png 424w, https://substackcdn.com/image/fetch/$s_!4xsk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f2ab12-0cc6-4e9b-9814-9d3ef4a7c925_798x1140.png 848w, https://substackcdn.com/image/fetch/$s_!4xsk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f2ab12-0cc6-4e9b-9814-9d3ef4a7c925_798x1140.png 1272w, https://substackcdn.com/image/fetch/$s_!4xsk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f2ab12-0cc6-4e9b-9814-9d3ef4a7c925_798x1140.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4xsk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f2ab12-0cc6-4e9b-9814-9d3ef4a7c925_798x1140.png" width="798" height="1140" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b8f2ab12-0cc6-4e9b-9814-9d3ef4a7c925_798x1140.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1140,&quot;width&quot;:798,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image tagged in we are not the same - Imgflip&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="Image tagged in we are not the same - Imgflip" title="Image tagged in we are not the same - Imgflip" srcset="https://substackcdn.com/image/fetch/$s_!4xsk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f2ab12-0cc6-4e9b-9814-9d3ef4a7c925_798x1140.png 424w, https://substackcdn.com/image/fetch/$s_!4xsk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f2ab12-0cc6-4e9b-9814-9d3ef4a7c925_798x1140.png 848w, https://substackcdn.com/image/fetch/$s_!4xsk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f2ab12-0cc6-4e9b-9814-9d3ef4a7c925_798x1140.png 1272w, https://substackcdn.com/image/fetch/$s_!4xsk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8f2ab12-0cc6-4e9b-9814-9d3ef4a7c925_798x1140.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>But they&#8217;re wrong... We are very much alike!</p><p><strong>But you don&#8217;t understand the tool you&#8217;re using to make games!</strong></p><p>Oh, you understand game engines? Can you explain the architecture of Unreal&#8217;s Nanite or Lumen? Not how to use them, how they work ;-)</p><p>I use AI that I don&#8217;t understand how it works to write game code that I will try to understand. Yes, with AI, but still.</p><p><strong>Your code quality will be low...</strong></p><p>That thought never stopped Toby Fox from writing a switch statement with 1000 cases &#128540; Code quality is often not the goal. A working game is. Unless you return to the code you once wrote.</p><p>But I have this covered, y&#8217;know, I&#8217;ve been writing code since the early 2000s, professionally since 2008. I&#8217;ve seen more projects than you have built games &#128540;</p><p><strong>You could actually hire a programmer to do that instead of using an AI...</strong></p><p>Well, no. I can&#8217;t afford hiring a professional, or even a student. If I had all the knowledge needed to make a game, I would&#8217;ve written it myself. So, using AI is just replacing myself.</p><p><strong>But when you use AI, you&#8217;re not really making the game!</strong> </p><p>Yes, I do. I design it. I say what has to be done, and what not. I make most of the choices. Then describe them. My way of thinking is higher in fact than that of a developer. I&#8217;m the Game Designer, the Product Owner, the Team Leader, and the Game Producer.</p><p><strong>All you do now is read code made by a mediocre programmer, review it, and write comments!</strong></p><p>You mean do things that all responsible senior developers do in every team?</p><p>As long as the review process is rigorous, you should be fine. If not, you&#8217;re screwed even with humans!</p><p><strong>But you have to fix the bugs it made!</strong></p><p>So do you. Fix bugs that you made &#128540;</p><p><strong>I have copyrights to the code!</strong></p><p>Well, if I refactor it manually to suit my coding standards, then I will.</p><p><strong>When I use a game engine, it&#8217;s a tool; I make the decisions, not the tool. You use a ghostwriter!</strong></p><p>Actually, your engine/framework already made most of the decisions for you. By its creators. You just use the building blocks they delivered to realize your idea for a game.</p><p></p><p>In the end, we&#8217;re all standing on someone else&#8217;s shoulders. Be it giants of 3D graphics or giants of Large Language Models.</p><p>Everything is just a tool.</p><p>A game engine is a tool. AI is a tool.</p><p>And, unfortunately, fired employees are also treated like a tool.</p><p>And we are all frauds! &#128540;</p><p>Except for people like Jonathan Blow, who not only writes the entire code of his games, but also writes his own programming languages...</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>Honestly, what were they thinking when they entered the stock market?</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[This is What AI Should Have Looked Like from the Beginning]]></title><description><![CDATA[My initial idea was to download all the tutorials I used to learn into an Obsidian vault and then use a command-line LLM to query it.]]></description><link>https://gamedevdairy.substack.com/p/this-is-what-ai-should-have-looked</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/this-is-what-ai-should-have-looked</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 06 Apr 2026 09:59:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Lsfk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1299b-be3e-47c9-be90-dbe4d5f0b2a2_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>My initial idea was to download all the tutorials I used to learn into an Obsidian vault and then use a command-line LLM to query it. </p><p>There was one problem with this approach: making links navigable for the LLM. Because atomic notes in Obsidian, even when linked, are not necessarily readable for an AI.</p><p>Not to mention, you need to know what meta prompts to use to ask it efficiently. Assuming AI will query the knowledge base and get the best results might be a bit of an optimistic overkill. </p><p>Enter NotebookLM.</p><p>Google gives you a lot of tools. And suddenly I thought: Why not try NotebookLM for the knowledge base?</p><p>Not making an Obsidian Vault with knowledge about Bevy, but uploading it to NotebookLM, which I can then query freely. </p><p>Of course, the initial plan is to have the AI query it whenever it needs to, even if I don&#8217;t know about it<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. I&#8217;m not sure I can make an API call to Notebook at this point, but that doesn&#8217;t bother me much, because I plan to play around with Vibe coding games in Open Code alone (no knowledge bases) - to get up to speed and not procrastinate too much. The idea of the Obsidian vault knowledge base becomes less of a priority. </p><p>What did I use NotebookLM for?</p><ol><li><p>For my first notebook, I uploaded all of the articles I used for Bevy learning. I can ask questions regarding how to do something in Bevy and then pray it gives me proper information. And learn and memorize more about the engine. </p></li><li><p>Next, I uploaded all the transcripts I made from Masahiro Sakurai&#8217;s YouTube channel. I used the free version of NotebookLM, so I can create as many notebooks as I want, but I can&#8217;t upload more than 50 sources each. So I vibe-coded a script that merged all my transcripts into files by their category. This gave me fewer than 20 files. Now I can ask Mr Sakurai&#8217;s brain about game-making knowledge.</p></li><li><p>Then, I uploaded a PDF on the Rust programming language, so I can query it for bits of knowledge about the programming language I use.</p></li></ol><p>I plan to gather sources I have regarding writing, health, and mental health. Hell, I wanted to upload an export of my newsletter so I can analyze it using Google&#8217;s LLM. Unfortunately, my export is full of nearly 540 documents. I will have to merge them first ;-)</p><p>But talking with your set of sources isn&#8217;t the only advantage. For example, you can create infographics about it:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Lsfk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1299b-be3e-47c9-be90-dbe4d5f0b2a2_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Lsfk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1299b-be3e-47c9-be90-dbe4d5f0b2a2_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Lsfk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1299b-be3e-47c9-be90-dbe4d5f0b2a2_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Lsfk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1299b-be3e-47c9-be90-dbe4d5f0b2a2_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Lsfk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1299b-be3e-47c9-be90-dbe4d5f0b2a2_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Lsfk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1299b-be3e-47c9-be90-dbe4d5f0b2a2_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56c1299b-be3e-47c9-be90-dbe4d5f0b2a2_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6246745,&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/192536134?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1299b-be3e-47c9-be90-dbe4d5f0b2a2_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Lsfk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1299b-be3e-47c9-be90-dbe4d5f0b2a2_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Lsfk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1299b-be3e-47c9-be90-dbe4d5f0b2a2_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Lsfk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1299b-be3e-47c9-be90-dbe4d5f0b2a2_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Lsfk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1299b-be3e-47c9-be90-dbe4d5f0b2a2_2752x1536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You can also ask Notebook to generate a mind map from all the sources you gathered. Viewed in your default language, so apologies, it&#8217;s not English. Also, clicking any node writes a prompt to explain it further.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xEYa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb56d1ef3-ea39-4020-87b0-bf6f69bc6600_634x637.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xEYa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb56d1ef3-ea39-4020-87b0-bf6f69bc6600_634x637.png 424w, https://substackcdn.com/image/fetch/$s_!xEYa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb56d1ef3-ea39-4020-87b0-bf6f69bc6600_634x637.png 848w, https://substackcdn.com/image/fetch/$s_!xEYa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb56d1ef3-ea39-4020-87b0-bf6f69bc6600_634x637.png 1272w, https://substackcdn.com/image/fetch/$s_!xEYa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb56d1ef3-ea39-4020-87b0-bf6f69bc6600_634x637.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xEYa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb56d1ef3-ea39-4020-87b0-bf6f69bc6600_634x637.png" width="634" height="637" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b56d1ef3-ea39-4020-87b0-bf6f69bc6600_634x637.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:637,&quot;width&quot;:634,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58255,&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/192536134?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb56d1ef3-ea39-4020-87b0-bf6f69bc6600_634x637.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xEYa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb56d1ef3-ea39-4020-87b0-bf6f69bc6600_634x637.png 424w, https://substackcdn.com/image/fetch/$s_!xEYa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb56d1ef3-ea39-4020-87b0-bf6f69bc6600_634x637.png 848w, https://substackcdn.com/image/fetch/$s_!xEYa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb56d1ef3-ea39-4020-87b0-bf6f69bc6600_634x637.png 1272w, https://substackcdn.com/image/fetch/$s_!xEYa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb56d1ef3-ea39-4020-87b0-bf6f69bc6600_634x637.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Make a presentation, report, audio, and video summaries, or take a test to check your knowledge.</p><p>I admit, I won&#8217;t be using most of it, but I might in the future.</p><p>NotebookLM is probably one of the best uses of LLMs. It&#8217;s what Obsidian would look like if it had LLM integration on this level.</p><p>I can literally see myself paying Google $8 a month to have more of what they are offering.</p><p>NotebookLM is worth it. You don&#8217;t like vibe coding. You still can benefit from NotebookLM. You can learn gamedev thanks to it. You can learn anything thanks to it! Even if you loathe AI, for this one tool you should make an exception! This is what AI should&#8217;ve looked like from the beginning.</p><p>Upload your sources, and ask them questions. </p><p>Now... I&#8217;m thinking about what kind of notebooks I want to make. Gamedev? Already did. </p><p>Now the rest of my knowledge base!</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&#8217;m afraid that feeding LLMs with documentation would work best with Raylib, as its function spec is a long website with function definitions and no subpages.</p></div></div>]]></content:encoded></item><item><title><![CDATA[Love for the process and love for the result]]></title><description><![CDATA[I learned about this interesting dichotomy from Bashbunni&#8217;s YouTube channel.]]></description><link>https://gamedevdairy.substack.com/p/love-for-the-process-and-love-for</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/love-for-the-process-and-love-for</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 30 Mar 2026 09:59:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/-zK6JG94pdo" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I learned about this interesting dichotomy from Bashbunni&#8217;s YouTube channel<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>.</p><div id="youtube2--zK6JG94pdo" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;-zK6JG94pdo&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/-zK6JG94pdo?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>The division is simple:</p><p>There are two types of developers: those who love the process and those who love the result they achieve<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>.</p><p>Bashbunni (bash for friends) uses that to describe developers and their relation to vibe coding.</p><p>And suddenly it struck me. I know people who are anti-AI because they love to code. They like to dabble in code, solve algorithmic problems, participate in jams, etc. I was once like them. But I changed. And they don&#8217;t understand me. Using vibe coding tools to program and achieve my goals. And I did not know how to explain it to them.</p><p>The second group is people who are focused on the result. And they are more likely to enjoy coding with an AI assistant.</p><p>This is when I realized what had happened to me.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WaEi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d5103f-7458-4c0d-a7b0-1787e0dc4db2_368x200.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WaEi!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d5103f-7458-4c0d-a7b0-1787e0dc4db2_368x200.gif 424w, https://substackcdn.com/image/fetch/$s_!WaEi!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d5103f-7458-4c0d-a7b0-1787e0dc4db2_368x200.gif 848w, https://substackcdn.com/image/fetch/$s_!WaEi!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d5103f-7458-4c0d-a7b0-1787e0dc4db2_368x200.gif 1272w, https://substackcdn.com/image/fetch/$s_!WaEi!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d5103f-7458-4c0d-a7b0-1787e0dc4db2_368x200.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WaEi!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d5103f-7458-4c0d-a7b0-1787e0dc4db2_368x200.gif" width="368" height="200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73d5103f-7458-4c0d-a7b0-1787e0dc4db2_368x200.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:200,&quot;width&quot;:368,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Matt Damon Waiting GIFs - Find &amp; Share on GIPHY&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="Matt Damon Waiting GIFs - Find &amp; Share on GIPHY" title="Matt Damon Waiting GIFs - Find &amp; Share on GIPHY" srcset="https://substackcdn.com/image/fetch/$s_!WaEi!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d5103f-7458-4c0d-a7b0-1787e0dc4db2_368x200.gif 424w, https://substackcdn.com/image/fetch/$s_!WaEi!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d5103f-7458-4c0d-a7b0-1787e0dc4db2_368x200.gif 848w, https://substackcdn.com/image/fetch/$s_!WaEi!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d5103f-7458-4c0d-a7b0-1787e0dc4db2_368x200.gif 1272w, https://substackcdn.com/image/fetch/$s_!WaEi!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d5103f-7458-4c0d-a7b0-1787e0dc4db2_368x200.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>In the <a href="https://www.amazon.com/Vibe-Coding-Building-Production-Grade-Software/dp/1966280025">Vibe Coding book</a>, I&#8217;ve read that Agentic AI makes it easy for older programmers to return to their old passion.</p><p>But how did I become old since I&#8217;m only 40?<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a></p><p>And then I realized what happened. I burned out. I&#8217;ve become tired. My work has become dull and uninteresting. I&#8217;m a web developer, working with all those libraries makes my work all the same. I write boilerplate code that sometimes executes something interesting. But the boilerplate makes up 80-90% of the code. I have to learn patterns that require me to write code that is very similar to the previous code.</p><p>I didn&#8217;t become old. I&#8217;ve lost my passion. And at some point of writing boilerplate code, even the challenges become terrifying. And boilerplate and code recipes become your cozy, safe zone. A lot of my work is now browsing through Azure and its hideous user experience, or learning stuff I only need in one place at work<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a>.</p><p>This is a case of bad career management. I should&#8217;ve done something different in the evenings than what I did at work. Web developer by day, I should&#8217;ve been doing some low-level in C in the evening, or C++. Instead, I was doing dotnet by day, and PHP by night. Seriously, WTF...</p><p>But enough of complaining. We cannot change the past. And I&#8217;m already burned out.</p><p>Enter vibe coding. Boilerplate in seconds, after saying &#8220;I need boilerplate code here that does this&#8221; (not actual prompt ;-)). Its ability to extend my understanding of certain implementation patterns (not only what I know, but also patterns I didn&#8217;t know). Not to mention the illusion of having someone to talk to, as you have to program the prompts in plain English, and it answers questions. Making Spike Jonze&#8217;s &#8220;Her&#8221; the most prophetic sci-fi movie ever.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XYWY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070cce46-d40b-42a2-b35a-4966c40353c7_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XYWY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070cce46-d40b-42a2-b35a-4966c40353c7_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XYWY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070cce46-d40b-42a2-b35a-4966c40353c7_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XYWY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070cce46-d40b-42a2-b35a-4966c40353c7_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XYWY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070cce46-d40b-42a2-b35a-4966c40353c7_1280x720.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XYWY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070cce46-d40b-42a2-b35a-4966c40353c7_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/070cce46-d40b-42a2-b35a-4966c40353c7_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;Spike Jonze's Her: Sci-fi as social criticism&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="Spike Jonze's Her: Sci-fi as social criticism" title="Spike Jonze's Her: Sci-fi as social criticism" srcset="https://substackcdn.com/image/fetch/$s_!XYWY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070cce46-d40b-42a2-b35a-4966c40353c7_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XYWY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070cce46-d40b-42a2-b35a-4966c40353c7_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XYWY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070cce46-d40b-42a2-b35a-4966c40353c7_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XYWY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F070cce46-d40b-42a2-b35a-4966c40353c7_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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Me, waiting for the AI to finish the tasks I gave it.</figcaption></figure></div><p>And now I want to teach my AI to talk to me like one of my French girls. Or rather, one of my waifus. I didn&#8217;t tell my wife. And I&#8217;m not so sure if she approves.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-5" href="#footnote-5" target="_self">5</a></p><p>You might think that working with AI limits work to reading what the AI produces. If you didn&#8217;t like reading Pull Requests (code reviews are probably the most disliked practice in teamwork). Well, bad news - your work is now reading Pull Requests. But you know what... if you keep all the tasks granular, you might actually enjoy reading all this code out of curiosity about what the AI did to solve the problem. I know I am... so far.</p><p>Because of all this burnout, dull job tasks, I stopped loving the process. But I still love what I can achieve, the result. Maybe it makes me more of a product owner/team leader (without the experience), but I did start seeing things from the 0-1 perspective (not done - done). Or maybe it's because of my consistent dreaming of sassy SaaSes to escape my dull 9-5?</p><p>At some point, I might try to rediscover my spark again. Learn C or Odin and fool around. Websites only for business, low-level for fun. But at this point, vibe coding (or spec-driven development) it is. In my current company, it&#8217;s a big focus and I&#8217;m not blind to the fun that it is.</p><p>I guess I have gotten old...</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>the cutest, most competent developer girl I&#8217;ve seen outside of anime, and yes, my wife gave me permission to watch her and say that, and you should subscribe to!</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>There are, in fact, 10 types of people: those who understand binaries and those who do not</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>20-year-old me would say: You&#8217;re old, you old fuck! To which my response is: LISTEN HERE YOU LITTLE SHIT!</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false" target="_self">4</a><div class="footnote-content"><p>like Terraform; if you&#8217;re not a coder - don&#8217;t bother investigating</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-5" href="#footnote-anchor-5" class="footnote-number" contenteditable="false" target="_self">5</a><div class="footnote-content"><p>Spoiler alert: she does not. She reminded me, that she also watched Her. With me.</p></div></div>]]></content:encoded></item><item><title><![CDATA[Why you shouldn't use AI for ideation?]]></title><description><![CDATA[Sven Vincke, the head of Larian Studio, recently said they are trying AI in ideation.]]></description><link>https://gamedevdairy.substack.com/p/why-you-shouldnt-use-ai-for-ideation</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/why-you-shouldnt-use-ai-for-ideation</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 23 Mar 2026 10:59:44 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>Sven Vincke, the head of Larian Studio, recently said they are trying AI in ideation. The dread of concept artists worldwide. Although, not sure why he can&#8217;t just do a proper mood board with cut-out actors and stuff. I mean, AI does require a lot of work to prompt out something not generic. I&#8217;d just use other people's artwork to say what I want to achieve. I know, I can show it to AI, but what is a moodboard without some shameless stealing from appreciated artists?</p><p>But there&#8217;s also the other ideation that AAA studios are doing! AI, Google Genie, and all that stuff will make some fancy prototypes!</p><p>Do you remember Killzone 2? When Sony showed a pre-rendered movie at E3 2005 and let everyone believe it was live gameplay? Guerilla Games spent years trying to achieve that!</p><p>And let&#8217;s not forget Anthem! Man, where do I start? Another case of a studio that tries to build up hype for a game by showing a fake trailer, while the developers themselves didn&#8217;t even know what the game was &#8212; a vertical slice of a game that didn&#8217;t exist.</p><p>Anthem did not show the state of the game; it was just an ideation phase.</p><p>Spoiler alert: They did not deliver in the end.</p><p>It will be the same with AI.</p><p>You&#8217;ve seen it on a Google showcase. Google Genie looks great in a curated, 10-second GIF on social media. It sells you the feeling. It sells you the graphics. But when you play it and notice the lack of rules and persistence, you realize that what you received is an interactive fever dream. Not a game.</p><h2>What should you use AI for then?</h2><p>Tools. I have a secret theory that I yet need to prove. Making games is 10% of making an engine, 40% of making the tools, and 50% of filling it with content ;-)</p><p>What else?</p><ul><li><p>Auto-generating collision meshes.</p></li><li><p>Sorting of thousands of textures into the right folders.</p></li><li><p>Writing boilerplate code that connects a UI button to a back-end database.</p></li><li><p>Maintenance and deployment pipelines. Because nobody likes this shit, anyway.</p></li></ul><p>And of course - replacing your Management Staff. I&#8217;m not joking.</p><p>The more I learn about AI, using Claude Code in the terminal for productivity, it has become obvious that the biggest gain occurs in work organization. </p><p>Think about it: if most project delays come from &#8220;creative pivots&#8221; mandated by a suit who saw a cool trailer for another game&#8230; </p><p>An AI doesn't have an ego. It doesn't need to &#8220;put its stamp&#8221; on a project to justify its salary. It can track velocity, flag bottlenecks, and balance budgets without the human impulse to chase every shiny trend.</p><p>Dear Management staff, who force AI adoption! What did you do to automate yourself? </p><h2>Insight into our future&#8230;</h2><p>If you&#8217;re in a triple-A studio&#8230; Man, you are screwed. These shit practices? They just became cheap. I&#8217;m not talking about slop. I&#8217;m talking about actually cheating your way into discoverability! Some will be transparently bad, some not. The latter is what we will see. More Anthem trailers. Just to hook you into it. </p><p>Some companies create 4-5 trailers, show off a prototype, measure your likes/wishlist engagement, and then decide which one of those 5 games to make. Not the first game to make, the only game to make. Because if they achieve that, it will be cheaper to produce new 5 trailers again than to finish those underachievers from the previous run. </p><p>As for graphics&#8230; Something tells me that if you want to use AI, you will need to downgrade it to make it work. Sacrifice the &#8220;photo-realistic&#8221; look the hype relies on, and focus on consistent, performant, and controllable effects. </p><p>But maybe I&#8217;ll tackle this another time?</p>]]></content:encoded></item><item><title><![CDATA[It's dangerous to go alone, RAG this!]]></title><description><![CDATA[We broke down what we need.]]></description><link>https://gamedevdairy.substack.com/p/its-dangerous-to-go-alone-rag-this</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/its-dangerous-to-go-alone-rag-this</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 16 Mar 2026 10:59:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xSuC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46971afb-a91e-448e-89c4-2bdeebc752b4_570x392.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://gamedevdairy.substack.com/p/breaking-down-a-vibe-coders-toolkit">We broke down what we need.</a></p><p><a href="https://gamedevdairy.substack.com/p/expanding-the-comfort-zone-one-game">And we know what games we want to make first.</a></p><p>Now we need to familiarize ourselves with our tool of choice. One of them, at least.</p><p>When vibe coding, it&#8217;s very tempting to do things without understanding what you&#8217;re doing. Sure, you can do that, but this is not a road I would recommend. If you want to be like one of those people who say, &#8220;Hey Claude, make me a GTA clone. No mistakes!&#8221; and then are in awe when it produces a fun 2D version of the first game in JavaScript - ok. </p><div id="youtube2-rz-Q4bh4T_Q" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;rz-Q4bh4T_Q&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/rz-Q4bh4T_Q?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>But you need to think about other things as well.</p><div class="pullquote"><p><strong>The complexity of your project and its maintainability will be your bane.</strong></p></div><p>Although a prompt can return a surprisingly good-looking prototype, I wouldn&#8217;t recommend prompting the game&#8217;s creation in one shot.</p><p>You need to understand:</p><ul><li><p><strong>How your engine/framework works</strong>, and what it can do. So read the f***ing manual!</p></li><li><p><strong>How the sausage is made</strong>. So do those simple games first and learn how to break down the scope of your game. Also, learn various techniques that were developed in the meantime. Most problems you will encounter in coding? Someone already did that. Other people tried that in every possible engine. And at least one person wrote or recorded a tutorial on it somewhere.</p></li></ul><p>Let me tell you a story.</p><p>Last year, developers at my company were encouraged to take a course on vibe coding. Which we did. Spoiler alert: no one was fired ;-) </p><p>At some point, I wanted to use Rust, a language I did not know at the time, but was hyped about. So I prompted the AI to make me a console application in Rust that does something (doesn&#8217;t really matter what it does). 1-2 minutes, and poof! Done and done. I looked at the code. And I felt terrified. </p><p>I didn&#8217;t understand a thing. Not knowing Rust&#8217;s syntax or what makes it so hyped, I was looking and not understanding what it was doing. This wouldn&#8217;t work in the long term. </p><p>This motivated me to go through a Rust tutorial to at least understand the syntax. <a href="https://gamedevdairy.substack.com/p/all-in">When I decided to go all in on AI</a>, I stated that learning a new language is not a goal, but a side effect.</p><p>I&#8217;m afraid I have changed my mind :D</p><p>You should use tech you feel comfortable with. </p><p>So you either use what you used before or learn it.</p><p>So I learned Rust.</p><p>But that is not the end of this story. The second thing after learning a language is the engine.</p><p>When you want to do AI game development, it&#8217;s best to go with a framework. Or something text-heavy instead of a full-blown GUI. </p><p>Of course, you still can make it with AI, but you either have an agent that understands GUI and knows how to do all the things you do manually, or you do them manually and just write the scripts using AI. </p><p>But if I went with code only, then everything could be AI-tomatized.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nSbh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3490e60d-0b3c-4501-8ae9-9cf440edf53c_220x206.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nSbh!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3490e60d-0b3c-4501-8ae9-9cf440edf53c_220x206.gif 424w, https://substackcdn.com/image/fetch/$s_!nSbh!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3490e60d-0b3c-4501-8ae9-9cf440edf53c_220x206.gif 848w, https://substackcdn.com/image/fetch/$s_!nSbh!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3490e60d-0b3c-4501-8ae9-9cf440edf53c_220x206.gif 1272w, https://substackcdn.com/image/fetch/$s_!nSbh!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3490e60d-0b3c-4501-8ae9-9cf440edf53c_220x206.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nSbh!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3490e60d-0b3c-4501-8ae9-9cf440edf53c_220x206.gif" width="320" height="299.6363636363636" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3490e60d-0b3c-4501-8ae9-9cf440edf53c_220x206.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:206,&quot;width&quot;:220,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Bert Ernie GIFs | Tenor&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 Ernie GIFs | Tenor" title="Bert Ernie GIFs | Tenor" srcset="https://substackcdn.com/image/fetch/$s_!nSbh!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3490e60d-0b3c-4501-8ae9-9cf440edf53c_220x206.gif 424w, https://substackcdn.com/image/fetch/$s_!nSbh!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3490e60d-0b3c-4501-8ae9-9cf440edf53c_220x206.gif 848w, https://substackcdn.com/image/fetch/$s_!nSbh!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3490e60d-0b3c-4501-8ae9-9cf440edf53c_220x206.gif 1272w, https://substackcdn.com/image/fetch/$s_!nSbh!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3490e60d-0b3c-4501-8ae9-9cf440edf53c_220x206.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>People reading me know that I chose Bevy in the end (or maybe it isn&#8217;t the end? Let&#8217;s hope it is :D). </p><p>After reading <a href="https://bevy.org/">the main page</a>, I was intrigued. But after watching <a href="https://www.youtube.com/watch?v=nE76GGICofU">a video tutorial</a>, I was in love.</p><p>Still, I had to learn it. To feel comfortable enough. To understand what the code made with AI will do. Because I don&#8217;t want to prove a point, I want to iteratively and incrementally make games! And for that you need competences!</p><p>But contrary to the programming language, this time I took notes!</p><p>When using AI, you can use knowledge in multiple ways.</p><ul><li><p>Assume the AI already knows that.</p></li><li><p>Point it (somehow) to a vault, or</p></li><li><p>RAG it.</p></li></ul><p>At the beginning, I thought I would have to take all my knowledge, create an Obsidian vault, and then turn it into a vector database called a RAG (short for Retrieval-Augmented Generation). To put it simply, turning words into numbers, so the AI understands faster and better.</p><p>But I also learned that it&#8217;s much easier to just point the AI to the Obsidian vault, still in text form. This way, I will have my own knowledge base to repeat learning material and have the AI work on the same &#8220;source of truth&#8221;.</p><p>As long as I figure out how to make it easy for the AI to query all the data efficiently and use it. How? I don&#8217;t know yet. If you already know how to do that, drop me a comment ;-)</p><p>If you want to follow the same route, I would suggest taking the most practical notes. How-tos and definitions, along with information on when to use each feature. Or copy-paste your tutorials (kind of hard to do if you learn from YouTube).</p><p>Me? I downloaded every site of <a href="https://taintedcoders.com/">Tainted Coders</a> and turned them into Markdown files. Then, I will divide them into smaller files, name them properly, add some metadata, and put them in a git repository, so I can either clone it to every game&#8217;s workspace or link the AI to use one directory on my hard drive.</p><p>Should I make a knowledge base about Rust? I already checked and know that AIs are fairly capable of writing Rust code. But at some point, I might learn that some practices are better than the ones AI is using. That would be the best moment to add it to the knowledge base.</p><p>Do not assume that AI will know everything. You might want to use a knowledge base to &#8220;suggest&#8221; some patterns. To tell my AI:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xSuC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46971afb-a91e-448e-89c4-2bdeebc752b4_570x392.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xSuC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46971afb-a91e-448e-89c4-2bdeebc752b4_570x392.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xSuC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46971afb-a91e-448e-89c4-2bdeebc752b4_570x392.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xSuC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46971afb-a91e-448e-89c4-2bdeebc752b4_570x392.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xSuC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46971afb-a91e-448e-89c4-2bdeebc752b4_570x392.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xSuC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46971afb-a91e-448e-89c4-2bdeebc752b4_570x392.jpeg" width="570" height="392" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/46971afb-a91e-448e-89c4-2bdeebc752b4_570x392.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:392,&quot;width&quot;:570,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;its dangerous to go alone take this Blank Template&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="its dangerous to go alone take this Blank Template" title="its dangerous to go alone take this Blank Template" srcset="https://substackcdn.com/image/fetch/$s_!xSuC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46971afb-a91e-448e-89c4-2bdeebc752b4_570x392.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xSuC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46971afb-a91e-448e-89c4-2bdeebc752b4_570x392.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xSuC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46971afb-a91e-448e-89c4-2bdeebc752b4_570x392.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xSuC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46971afb-a91e-448e-89c4-2bdeebc752b4_570x392.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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>]]></content:encoded></item><item><title><![CDATA[Expanding the Comfort Zone One Game at a Time]]></title><description><![CDATA[The next being what games exactly to make!]]></description><link>https://gamedevdairy.substack.com/p/expanding-the-comfort-zone-one-game</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/expanding-the-comfort-zone-one-game</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 09 Mar 2026 10:59:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2Lr0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa040d-4e34-48b7-b06a-1e9570a1a7e9_800x428.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The next being what games exactly to make! After all, I&#8217;m not starting with my dream game; I&#8217;m enlarging my comfort zone. I need competencies to feel comfortable when designing my dream games.</p><p>And at some point, I encountered this interesting webpage:</p><div class="pullquote"><p style="text-align: center;"><strong><a href="https://20_games_challenge.gitlab.io/">https://20_games_challenge.gitlab.io/</a></strong></p></div><p>The challenge promises to <strong>gradually learn more about game development through a series of small projects.</strong></p><p>If you do everything yourself, then you will have practice <strong>estimating, planning, programming, and polishing your game</strong>. And supposedly, you will also be able to create the music, sound effects, 2D, and 3D art that you&#8217;ll need.</p><p><strong>If a game requires a lot of content, consider making a VERTICAL SLICE (one level). As long as it follows the DEFINITION OF DONE of the game.</strong></p><p>Of course, no tutorials are allowed.</p><p>Me vibe coding the entire thing:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2Lr0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa040d-4e34-48b7-b06a-1e9570a1a7e9_800x428.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2Lr0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa040d-4e34-48b7-b06a-1e9570a1a7e9_800x428.webp 424w, https://substackcdn.com/image/fetch/$s_!2Lr0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa040d-4e34-48b7-b06a-1e9570a1a7e9_800x428.webp 848w, https://substackcdn.com/image/fetch/$s_!2Lr0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa040d-4e34-48b7-b06a-1e9570a1a7e9_800x428.webp 1272w, https://substackcdn.com/image/fetch/$s_!2Lr0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa040d-4e34-48b7-b06a-1e9570a1a7e9_800x428.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2Lr0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa040d-4e34-48b7-b06a-1e9570a1a7e9_800x428.webp" width="800" height="428" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80fa040d-4e34-48b7-b06a-1e9570a1a7e9_800x428.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:428,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Monkey Looking Away Meme Template &#8212; Kapwing&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="Monkey Looking Away Meme Template &#8212; Kapwing" title="Monkey Looking Away Meme Template &#8212; Kapwing" srcset="https://substackcdn.com/image/fetch/$s_!2Lr0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa040d-4e34-48b7-b06a-1e9570a1a7e9_800x428.webp 424w, https://substackcdn.com/image/fetch/$s_!2Lr0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa040d-4e34-48b7-b06a-1e9570a1a7e9_800x428.webp 848w, https://substackcdn.com/image/fetch/$s_!2Lr0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa040d-4e34-48b7-b06a-1e9570a1a7e9_800x428.webp 1272w, https://substackcdn.com/image/fetch/$s_!2Lr0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa040d-4e34-48b7-b06a-1e9570a1a7e9_800x428.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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Wow! Just wow! He speaks my language. This is the way, this is how it&#8217;s supposed to be done! Hell yeah!</p><p>In ten phases, where you can pick one of two/three games. Of course, I will do all of them :D</p><p>Here&#8217;s a small summary of the challenge. Not all of it, for the juice - <a href="https://20_games_challenge.gitlab.io/">you&#8217;ve got to visit the website</a>!</p><h2><strong>1. PONG, FLAPPY BIRD</strong></h2><p>Things you will learn:</p><ul><li><p>using your game engine of choice</p></li><li><p>creating and destroying objects</p></li><li><p>processing player input and moving objects on screen</p></li><li><p>detecting and reacting to a collision</p></li></ul><h2>2. BRAKEOUT, JETPACK JOYRIDE</h2><p>Your 2nd game should be something of a similar scope. Things you will learn:</p><ul><li><p>Re-use code and assets between projects (similarities: Pong &#8594; Breakout; Flappy Bird &#8594; Jetpack Joyride)</p></li><li><p>Save high scores between play sessions</p></li><li><p>create and play simple sound effects (if you didn&#8217;t in the previous game!)</p></li></ul><h2><strong>3. SPACE INVADERS, FROGGER, RIVER RAID</strong></h2><p>Make some art! Focus on game sprites. Try your hand at animating a moving sprite across multiple frames. Compose soundtracks.</p><p>Things that you will learn:</p><ul><li><p>2D sprite art</p></li><li><p>game music</p></li><li><p>particle effects</p></li></ul><h2><strong>4. ASTEROIDS, SPACEWAR!, INDY 500</strong></h2><p>More advanced character controller! Top-down controller with more advanced physics and multiple axes of movement&#8212;also, Ul.</p><p>Things that you will learn:</p><ul><li><p>2D physics-based character controller</p></li><li><p>manage 2D vectors and rotation in free space</p></li><li><p>make a main menu and a restart menu</p></li></ul><h2>5. PAC MAN, TIC-TAC-TOE, CONWAY&#8217;S GAME OF LIFE </h2><p>Things that you will learn:</p><ul><li><p>make a basic AI</p></li></ul><h2>6. SUPER MARIO BROS., PITFALL, VVVVVV</h2><p>Leave the arcade. Make a 2D character platformer. Use tile sets. Create multiple enemies and obstacles, and make a few levels.</p><p>Things that you will learn:</p><ul><li><p>Platformer character controller</p></li><li><p>Draw and use 2D tile sets. Create large levels from a simple palette.</p></li><li><p>Creating moving platforms and enemies, set up basic rooms. The player will move/warp between different areas, so loading and unloading might be necessary.</p></li></ul><h2>7. WORMS, DIG DUG (modifiable terrain)</h2><p>Things that you will learn:</p><ul><li><p>edit the world terrain in real-time</p></li></ul><h2>8. SUPER MONKEY BALL, STAR FOX, CRASH BANDICOOT 3D!</h2><p>Things that you will learn:</p><ul><li><p>Introduction to 3D</p></li><li><p>2.5D game mechanics (moving in 2 dimensions in a 3D world)</p></li><li><p>basic 3D modeling</p></li></ul><h2><strong>9. WOLFENSTEIN, DOOM, MARIO KART</strong></h2><p>Things that you will learn:</p><ul><li><p>full 3D game</p></li><li><p>quaternion rotation</p></li><li><p>first-person controller</p></li></ul><h2>10. MINECRAFT, PORTAL (Advanced concept) </h2><p>Pick one (thing that you will learn):</p><ul><li><p>Make an infinite, procedural voxel world!</p></li><li><p>Create working portals with a shader and custom physics handling.</p></li></ul><div><hr></div><p>Not sure I will make a Minecraft or Portal clone, though. I&#8217;m not that ambitious :D But a Doom clone? Sounds interesting :D</p><p>Of course, I want to make different games also:</p><ul><li><p>Basic Visual Novel</p></li><li><p>A classic Zelda clone</p></li><li><p>Fire Emblem</p></li><li><p>Fallout</p></li><li><p>Final Fantasy Tactics</p></li><li><p>The Settlers</p></li></ul><p>How to do that? Since I haven&#8217;t got any competence in making games, I decided to use Gemini to answer that question for me. I fed it with the exact summary you&#8217;ve read above, and asked him <strong>on what level and why you would place any of these games?</strong></p><ul><li><p>Basic Visual Novel - 1</p></li><li><p>Zelda - 6, same as Mario, as it will also require a &#8220;level parser&#8221;.</p></li><li><p>Fire Emblem - 7, a bit tougher than 6, still needs a level parser, but also has battle logic, and data objects representing units. Still, more of a 6.5D than 7, as the editable terrain is much harder. Then again&#8230; Fire Emblem with editable terrain&#8230; Holy shit&#8230;</p></li><li><p>Fallout / Final Fantasy Tactics? 8. The isometric illusion and turning &#8220;2D screen clicks&#8221; into a 2.5D skewed grid. This should be a 7.5 as phase 8 was already diving into 3D. Sometimes I wonder what is easier: making an isometric game in 3D? Or making the isometric illusion in 2D? </p></li><li><p>The Settlers? According to Gemini, it&#8217;s a 10. Because of logistics implementation. I won&#8217;t argue here.</p></li></ul><p>I didn&#8217;t ask for a Daggerfall clone, mostly because I consider it a Doom clone mixed with a visual novel. A boomer-talker ;-)</p><p>But all this will come in time. The original challenge goes first.</p><p>Maybe except for phase 10 (or with The Settlers only).</p>]]></content:encoded></item><item><title><![CDATA[Breaking down a vibe coder's toolkit]]></title><description><![CDATA[Sometimes, when I get stuck, I like to draw myself a mindmap to answer the question:]]></description><link>https://gamedevdairy.substack.com/p/breaking-down-a-vibe-coders-toolkit</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/breaking-down-a-vibe-coders-toolkit</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 02 Mar 2026 10:59:22 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>Sometimes, when I get stuck, I like to draw myself a mindmap to answer the question:</p><div class="pullquote"><p><strong>What stops me from...?</strong></p></div><p>The question is usually &#8220;from making games?&#8221;, but the truth is, this question is too big. So I went with &#8220;from vibe coding games?&#8221;</p><p>I like this method because it clarifies my current situation. Some topics become too large from overthinking. And keeping them in my head never helps. So I break them down on paper and get a list of goals.</p><p>What&#8217;s my current list of goals, you ask?</p><ul><li><p><strong>What games should I make first?</strong> The goal is not to start with my dream games, but to enlarge my understanding of making games. So&#8230; where do I practice?</p></li><li><p><strong>Learn the tool I&#8217;m using so I feel comfortable using it</strong>. If there&#8217;s one thing I learned about vibe coding, it&#8217;s that you shouldn&#8217;t dive deep into topics you know nothing about<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. I already learned some Rust, but I am also learning about the game engine Bevy. Why? Do not assume AI will know everything. Not only can you feel lost. AI can (and will) get lost as well. Who you gonna call? The Internet, of course. But to find the answer, you will need to know what you&#8217;re doing anyway. It&#8217;s not that easy. Thankfully, <a href="https://taintedcoders.com/">I have a great tutorial to learn Bevy</a>.</p></li><li><p><strong>Make an Obsidian Vault with my knowledge</strong> to either RAG it or point the LLM to it. Of course, having it as a RAG will limit the users to just the LLM, and not me. That&#8217;s not necessarily a bad thing. Assuming it&#8217;s easy to update it with new knowledge. For now, it will remain as an Obsidian vault. Obsidian introducing a CLI to the vault might be a great step forward.</p></li><li><p><strong>Configure OpenCode</strong>. And of course, the final tool. I chose OpenCode because I like terminal tools, but I like free tools even more (as Polish memes teach: free is a fair price!). OpenCode is a sweetheart among developers. At work, I use GitHub Copilot, which isn&#8217;t tragic, but to use it as much as I want, I still have to pay for it<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>. Of course, OpenCode supposedly has the free ability to use Grok Code Fast :-) Many things to test.</p></li></ul><h2><strong>How do I want to code my game? (UI idea)</strong></h2><p>When you code using terminal tools like Copilot CLI, Gemini CLI, OpenCode, or Claude Code (or so I think, as I did not use this one), you start lacking a file explorer feature. You see what the AI does, but frankly, you don&#8217;t see anything else. You have to open a new window to do so. Jumping around would be problematic (less noticeable on Windows, a bit more noticeable on Omarchy Linux, for example).</p><p>Not to mention using git. For that, I need another terminal tab or a functional plugin.</p><p>An IDE that makes it easy to use the terminal and view files would be perfect. I am a developer, I want to see the changes freely or edit some details, if I want to.</p><p>OMG, Maurice, do you really want to make an IDE!?</p><p>No, I will recreate the idea in VSCodium<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a> ;-). I even saw someone using OpenCode in VSCode so that&#8217;s inspiring. Not sure whether I will have to open a terminal tab for OpenCode or there is an OpenCode plugin I can install. This will also require some tests.</p><h2><strong>How do I want to structure my game?</strong></h2><p>And while I was thinking about it, I also went back to the idea of how to structure a vibe-coded project.</p><p>I will need <strong>an .opencode folder</strong> for configuring my basic tool. Refining prompts for agents, skills, and so on will be an ongoing activity, and some CLI LLMs aren&#8217;t so eager to show these, hence the primary need for a file explorer.</p><p>Then there&#8217;s <strong>the src folder</strong> containing the game code.</p><p>Then <strong>a folder for the knowledge base</strong>. Assuming I cannot point OpenCode to a folder in a galaxy far, far away. That is also something I need to test :-) Copying the knowledge base into every game would be a bit troublesome.</p><p>Then there&#8217;s <strong>an art folder</strong>. What for? For art ;-) This idea comes from the times when I wanted to share the code of my application, but not the art. So people can reuse the engine/template but have only the prototype art to use. The art folder would contain sprites, the story, and the scripts taken from another repo. Hence the game would be completely separable from its art. Not sure if this idea is the weirdest of them all. What do you think?</p><p>And last, but not least, <strong>specs</strong>. As I&#8217;m constantly learning about coding using an AI, I encountered the concept of vibe coding 2.0, aka spec driven development. Which is nothing more than keeping your game design document divided into tasks as text files, so that the LLM can read them, and build based upon them. And keeping it concise and solid.</p><p>A lot to process, isn&#8217;t it?</p><p>Next week, I will tell you of the first steps I took!</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>Like that time I tried to vibe code some Rust code without knowing anything about the language. Let&#8217;s just say I looked at the code and realized I have no idea what it is. So I learned the language first. At least now, I understand some of it ;-)</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>For some reason, Microsoft doesn&#8217;t want to invest in a local model like OpenCode&#8217;s Big Pickle. So, to use free models, you have to pay a subscription (yes, when you pay for GitHub Copilot, you learn that using Claude or something else uses 1 credit, but some of them, like Gemini, use no credit at all)</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>VSCodium is the Visual Studio Code version without Microsoft telemetry and Copilot</p></div></div>]]></content:encoded></item><item><title><![CDATA[Embrace AI, you're not living in the frontier after all!]]></title><description><![CDATA[or that one time I e-mailed Cal Newport...]]></description><link>https://gamedevdairy.substack.com/p/embrace-ai-youre-not-living-in-the</link><guid isPermaLink="false">https://gamedevdairy.substack.com/p/embrace-ai-youre-not-living-in-the</guid><dc:creator><![CDATA[Maurice Klimek]]></dc:creator><pubDate>Mon, 23 Feb 2026 10:59:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ykSI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb972a946-2452-4e41-a225-7813e624ec2c_640x640.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I did not plan this issue. But at some point in the week, I got an email from Cal Newport. He sent it to all his subscribers, not that I&#8217;m important ;-)</p><blockquote><p>A lot of AI reporting and prognosticating at the moment is based on commentators reading and reacting to bold claims made by tech executives or breathless anecdotes shared online through social media platforms and videos.</p><p>I&#8217;m not sure how well these sources reflect reality.</p></blockquote><p>Yeah, I feel ya!</p><blockquote><p>If you're a professional software developer who has tried AI coding tools like Claude Code, can you send an email describing your experiences</p></blockquote><p>Well, I happen to be one of those people!</p><p>So I started writing this e-mail, and at some point, I figured you might find it valuable also!</p><p>Here it is:</p><div><hr></div><p><em>Hello Mr. Newport,</em></p><p><em>I&#8217;ve been a dotnet developer since 2008. I typically work on web projects, occasionally on desktop applications, or on Windows services. But the web dominates my experience. <br><br>Fun fact, I was very eager to answer your e-mail, but I didn&#8217;t know what to focus on, so I pasted it all into Gemini and asked for helper questions.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a><br><br>I don&#8217;t think I work in some sort of frontier. I am basically a web developer making web applications for all sorts of businesses. Recently, regarding my employer&#8217;s business, which is safety and certification. You might say, I don&#8217;t invent anything new, just reorganize known components to fit business needs in viewing data. I know people in my company doing more innovative things; some of them are using Copilot (we all use Copilot, as this is our company&#8217;s agent of choice). But, you might say, I do boilerplate. Things done before, but rearranged to fit the data and the needs.<br><br>I started using Copilot in Visual Studio Code (a quite popular code editor), now I&#8217;m very interested in doing it in terminal editors like Copilot CLI.<br><br>Most of the applications I do are already made, and they require fixes or new features. I rarely do things from scratch. But for hobby projects or some scripts I do on the side, or completely vibe-coded. The second is a thing that always made data transformation very easy. At first, I tried to do that using just prompts, like &#8220;take this and convert it to that&#8221;, but hallucinations started to become a problem, because it couldn&#8217;t just write it 1:1; it had to imagine something. So I decided to make scripts that made the conversion, using Copilot. Worked like a charm. Might as well turn those scripts into an application, probably will do, because these are tedious tasks, and they sometimes repeat.<br><br>Using Copilot on big projects isn&#8217;t always good. Sometimes it does too much, sometimes it doesn&#8217;t understand the code. So I&#8217;m more cautious.<br><br>I remember sometimes AI just loops on a problem: ran the code, saw the problem isn&#8217;t gone, made some changes, ran the code, saw the problem isn&#8217;t gone, etc. I jump in, break the loop, break it down into smaller chunks, analyze them (often with AI), and give instruction what to do. It happens. I learned to deal with it by not making it work on big prompts, but rather on smaller ones. Works for my productivity, works for his as well.<br><br>I do find myself mostly reading and reviewing prompts. It&#8217;s a shift in work style. It doesn&#8217;t bother me that much, unless I think about going to the job market again and trying to find a job. It doesn&#8217;t fill me with confidence in my skills. I think I&#8217;m becoming more of a manager and less of a technical specialist. I do find that the entire work made by the AI forces me to first read every step of its thinking process, and then read the code to assess if I&#8217;m satisfied with the result. Not my favorite part of work, but still beats reading dull technical documentation. Still, I&#8217;m more of a manager now, a chef of coders. <br><br>I do feel that I&#8217;m becoming a worse programmer. Less hands-on. Not the problem-solving muscles are getting weaker, but the language skills. I still feel like a designer of solutions. <br><br>I do remember that at some point I decided to use Rust, a programming language I never used before, but was hyped by it. I think it was to do tasks in a Vibe coding course. When I first saw the code, I was terrified. Because I didn&#8217;t understand a thing from it. Not some single thing, every language feature. So I decided to approach this old school. I found some tutorials, I read them, I typed the code manually, until I felt semi-comfortable with the language, and retried the course tasks. It worked. I could ask AI to explain it to me, but I prefer to have a basis taken from typing the code myself. This way I&#8217;ll remember more. It completed more than half of the tasks from this course in Rust. <br><br>I don&#8217;t think I deliver features faster. The time seems to be the same, or somewhat lower than before. Perhaps because I study the thought process of the AI, and spend a lot of time breaking down requirements for a good prompt. It does help to go about it with the AI to see the flaws up front or to see what to watch out for. People usually say they 10x developers now. I feel maybe like a 1.5x developer. But a new habit of stating what my goal is, what I want, perhaps made me more focused on the task at hand.<br><br>To be honest, the job doesn&#8217;t feel more robotic. And it is quite enjoyable. It&#8217;s like talking about work with someone infinitely more patient than most humans. I don&#8217;t think I&#8217;m more productive, but I do enjoy working like that. It&#8217;s like an introvert&#8217;s fantasy about talking to humans ;-) It also makes it easier to tackle some tasks that I was usually afraid of: designing tests, asking questions to product owners so that I can get better requirements, writing documentation, and summarizing things. Ha! Even writing commit messages.<br><br>Still, I don&#8217;t want to give the AI too much agency. Perhaps I&#8217;m more of a control freak, and I want to control the situation. Testing, running the code, making the commit (although the message is usually his) - that&#8217;s still on me. Sometimes I give the AI the ability to compile or run tests. So I prefer the chat interface.<br><br>If you have any follow-up questions, feel free to e-mail me; I&#8217;d be happy to answer. <br><br>Best regards,<br>Mariusz Klimek&#8203;</em></p><div><hr></div><p>I used the word &#8220;frontier&#8221; at some point. By that I meant doing something entirely new. 80% of work in IT (if not more) isn&#8217;t frontier, it&#8217;s either maintenance or composing known components to fit the data you are using and presenting it to the end user. That&#8217;s not innovative. People have done that before, but they used different compositions.</p><p>I believe games are very similar. Even innovations in gaming are increasingly a matter of testing different known components, balancing, and different parameter types. Anything: turn one feature off, and you get a twin stick shooter when you don&#8217;t shoot on your own (Vampire Survivors?) or something like that. A different setting of components, but components already known nonetheless. Most gamedevs are here; they just don&#8217;t know it yet.</p><p>Where&#8217;s the frontier in games? Ask the guys who work on Unreal Engine. They are making stuff no one is making. Can frontier-developers benefit from using AI? Partially, maybe, when it comes down to breaking down their work, to optimizing code, to work on chunks of code - it could be done. But most probably, they&#8217;re the small percentage of developers who don&#8217;t benefit from AI. Because they&#8217;re just this good. But not all of us are John Carmack, and even he praised using AI for work.</p><p>If you&#8217;re not an engine maker, you are a script writer. You arrange the blocks. There&#8217;s nothing bad about it. This is how this work looks. Still, you should be able to use AI. The only obstacle might be your workflow. </p><p>You&#8217;re not expendable. And you can ride that lightning! </p><p>You will meet many hustlers that will sell you the fantasy that AI won&#8217;t take your job&#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ykSI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb972a946-2452-4e41-a225-7813e624ec2c_640x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ykSI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb972a946-2452-4e41-a225-7813e624ec2c_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!ykSI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb972a946-2452-4e41-a225-7813e624ec2c_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!ykSI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb972a946-2452-4e41-a225-7813e624ec2c_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!ykSI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb972a946-2452-4e41-a225-7813e624ec2c_640x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ykSI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb972a946-2452-4e41-a225-7813e624ec2c_640x640.png" width="640" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b972a946-2452-4e41-a225-7813e624ec2c_640x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;r/artificial - You won't lose your job to a tractor, but to a horse who learns how to drive a tractor&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="r/artificial - You won't lose your job to a tractor, but to a horse who learns how to drive a tractor" title="r/artificial - You won't lose your job to a tractor, but to a horse who learns how to drive a tractor" srcset="https://substackcdn.com/image/fetch/$s_!ykSI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb972a946-2452-4e41-a225-7813e624ec2c_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!ykSI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb972a946-2452-4e41-a225-7813e624ec2c_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!ykSI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb972a946-2452-4e41-a225-7813e624ec2c_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!ykSI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb972a946-2452-4e41-a225-7813e624ec2c_640x640.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And maybe its true, maybe its not. But it will stay here for a while, and you might benefit from it. From the technology, not necessarily from the mindset many companies have about it.</p><p>A friend of mine told me that his sister-in-law lost her job as a translator, because her boss decided to replace most of them with AI. That&#8217;s a sad story, but we don&#8217;t know one thing. Why couldn&#8217;t he teach all of them how to use AI and take MORE work for them? That&#8217;s what I would&#8217;ve done. And he didn&#8217;t do it, because he did not had that much work. He would fire them soon enough, he just didn&#8217;t have the balls to tell everyone: &#8220;Sorry! I failed you all!&#8221;. I might be wrong, I might not be.</p><p>There are gamedevs on the frontier. They might not benefit from agentic AI.</p><p>Most indies are not these gamedevs.</p><p>Most of us are not these gamedevs.</p><p>AI can help us. Jump over that not liked part. Math, physics, making tools for our workflow, making the tedious tasks easy.</p><p>If you&#8217;re a developer you make automations. AI is just another automation. Use it to your advantage.</p><p>And stay with me, as I try to make a game this way :-)</p><p>I know it&#8217;ll be fun. Even if I fail.</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>This is one of my favorite benefits of using AI. Stuck? Let AI ask you questions to unstuck yourself!</p></div></div>]]></content:encoded></item></channel></rss>