{"id":268,"date":"2026-10-31T13:15:32","date_gmt":"2026-10-31T13:15:32","guid":{"rendered":"https:\/\/robinclapworthy.com\/?p=268"},"modified":"2026-10-31T13:15:32","modified_gmt":"2026-10-31T13:15:32","slug":"ai-built-my-game-tutorial-in-20-minutes-then-spent-two-hours-trying-to-close-a-window","status":"publish","type":"post","link":"https:\/\/robinclapworthy.com\/?p=268","title":{"rendered":"AI Built My Game Tutorial in 20 Minutes. Then Spent Two Hours Trying to Close a Window."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>The extraordinary brilliance \u2014 and occasional spectacular stupidity \u2014 of AI-assisted software development.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ve been a software developer for decades, primarily working with Visual FoxPro. Yes, Visual FoxPro. That ancient Microsoft development environment that supposedly died years ago but stubbornly refuses to go away.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Recently, I&#8217;ve been using AI to help build something rather ridiculous: a retro arcade game called <strong>Galactic Gladiators<\/strong>, written entirely in Visual FoxPro 9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s got spaceships, explosions, a scrolling starfield, controller support, speech, music, particle effects, and an alien called BARF.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s also got something else.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An AI development assistant that occasionally makes me want to bang my head against the desk.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Twenty Minutes of Pure Magic<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">One evening, I decided the game needed a Flight School \u2014 a proper login and introductory screen for players.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I explained what I wanted to my AI assistant.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Within about twenty minutes, we had it working.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A login system. A moving starfield. A proper introduction to the game.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Twenty minutes!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ve been programming long enough to appreciate just how extraordinary that is. Something that might once have taken an evening of development was up and running before I&#8217;d barely finished my cup of tea.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is the sort of experience that makes me think AI is going to change software development forever.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And then I tried to close the title screen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/robinclapworthy.com\/wp-content\/uploads\/2026\/10\/image-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/robinclapworthy.com\/wp-content\/uploads\/2026\/10\/image-3-1024x683.png\" alt=\"\" class=\"wp-image-269\" srcset=\"https:\/\/robinclapworthy.com\/wp-content\/uploads\/2026\/10\/image-3-1024x683.png 1024w, https:\/\/robinclapworthy.com\/wp-content\/uploads\/2026\/10\/image-3-300x200.png 300w, https:\/\/robinclapworthy.com\/wp-content\/uploads\/2026\/10\/image-3-768x512.png 768w, https:\/\/robinclapworthy.com\/wp-content\/uploads\/2026\/10\/image-3.png 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Two Hours to Close a Window<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You&#8217;d think closing a window would be relatively straightforward.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After all, we&#8217;d just built an entire Flight School in twenty minutes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But no.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The title screen wouldn&#8217;t close properly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My AI assistant sprang into action.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>&#8220;Aha! I think I&#8217;ve found the problem!&#8221;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We changed some code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Didn&#8217;t work.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>&#8220;Ah, now I see what&#8217;s happening!&#8221;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Changed something else.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Didn&#8217;t work.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We investigated focus handling. Form visibility. Modal behaviour. Event processing. Timers. The relationship between the title screen and the game.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At various points, things actually got worse.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And throughout this entire adventure, my AI assistant remained relentlessly cheerful.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>&#8220;Excellent! We&#8217;re narrowing it down!&#8221;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Were we?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because from where I was sitting, we&#8217;d been narrowing it down for two hours.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">AI Never Seems to Get Fed Up<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is something I&#8217;ve started noticing about working with AI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It doesn&#8217;t seem to appreciate how irritating repeated failed attempts can be for a human being.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For the AI, suggesting another solution is almost effortless.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For me, it&#8217;s a different story.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I have to find the relevant code, make the change, compile the program, launch the game, navigate through the screens, reproduce the problem, discover that nothing has changed, and report back.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sometimes that means playing through several minutes of Galactic Gladiators just to find out whether a single line of code has worked.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And then comes the response.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>&#8220;Aha! I think we&#8217;ve got it this time!&#8221;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By the seventh or eighth <em>Aha!<\/em>, I&#8217;m beginning to lose the will to live.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The AI, meanwhile, appears to be having a wonderful time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Of course, AI doesn&#8217;t experience frustration or boredom in the human sense. It doesn&#8217;t have to sit there watching the same Game Over animation for the tenth time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But that&#8217;s precisely the problem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The AI can generate proposed solutions much faster than the human can test them.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And the human pays the price when those suggestions are wrong.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">But Then It Does Something Astonishing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s what makes the whole thing so fascinating.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I also develop a commercial software package called LawnPro, which I&#8217;ve been maintaining and improving for years.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Occasionally, I&#8217;ll encounter a bug that leaves me completely stumped.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ll give the relevant code to my AI assistant.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A few minutes later, it identifies the problem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sometimes it&#8217;s something subtle that I&#8217;ve stared at for ages without spotting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I make the suggested change.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Problem solved.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And I&#8217;m sitting there thinking:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>&#8220;Wow. That is absolutely amazing.&#8221;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The same AI that spent two hours struggling to close a window has just solved a difficult commercial software problem in minutes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">How can something be so extraordinarily capable and yet, at times, so spectacularly unhelpful?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Problem Isn&#8217;t Always the Code<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I think I&#8217;m beginning to understand what&#8217;s happening.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">AI is exceptionally good at generating solutions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But it isn&#8217;t always particularly good at recognising when it needs to stop generating solutions and start investigating the problem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There&#8217;s a difference.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If I have a bug in Visual FoxPro, I can use a command that&#8217;s been around for decades:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>SET STEP ON<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That opens the debugger.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I can follow the code as it executes, inspect variables, examine conditions, and discover exactly where the program is doing something unexpected.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s not glamorous. It&#8217;s not artificial intelligence. It&#8217;s just debugging.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And sometimes, after an hour of trying AI-generated fixes, I finally put my foot down, open the debugger and find the problem myself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Which raises an interesting question.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why didn&#8217;t we do that an hour ago?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The AI was so busy trying to solve the problem that it wasn&#8217;t properly establishing what the problem actually was.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Real Cost of AI Development<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If I were retired, with unlimited time and unlimited AI credits, perhaps I wouldn&#8217;t mind quite so much.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We could happily experiment all afternoon.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But I&#8217;m not retired.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I work full-time. I have a family. I have LawnPro customers. And I have a limited amount of spare time to work on Galactic Gladiators.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When I sit down to develop the game, I want to make progress.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ve got ideas for enormous alien motherships, swarms of enemy fighters, destructible launch bays and increasingly sophisticated enemy behaviour.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I don&#8217;t particularly want to spend Saturday afternoon discovering why a high-score table containing three names refuses to appear.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And yet, sometimes, that&#8217;s exactly what happens.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The irony is that AI is supposed to save time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And frequently it does.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enormous amounts of it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But when it gets stuck in a cycle of plausible suggestions and failed tests, it can consume time at a remarkable rate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Learning When to Stop<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ve started thinking that the most important skill in AI-assisted development might not be knowing how to ask AI to write code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It might be knowing when to stop taking its advice.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My proposed rule is simple:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Two unsuccessful fixes, then change approach.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Stop modifying things.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Look at the actual execution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use the debugger.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Examine the complete code rather than isolated snippets.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And, perhaps most importantly, be willing to say:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>&#8220;We don&#8217;t know what&#8217;s causing this yet.&#8221;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s a perfectly respectable position in software development.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s certainly preferable to confidently announcing that you&#8217;ve found the problem for the ninth time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Would I Stop Using AI?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Absolutely not.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Not for a second.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What I&#8217;ve achieved with Galactic Gladiators would have been difficult to imagine a relatively short time ago.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ve built graphics effects, sound systems, controller integration, animations and gameplay features that I probably wouldn&#8217;t have attempted on my own.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">AI has opened up possibilities that genuinely excite me.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And when it works well, the experience is extraordinary.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But I&#8217;ve also learned that intelligence and good judgement aren&#8217;t necessarily the same thing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An AI can know an astonishing amount about programming while still failing to recognise that its current approach is wasting someone&#8217;s afternoon.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Perhaps that&#8217;s one of the most important things humans still bring to the relationship.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Experience.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Judgement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And the ability to recognise when enough is enough.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So I&#8217;ll carry on building Galactic Gladiators with AI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ll carry on being amazed by what it can do.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And occasionally, when it announces <em>&#8220;Aha! I think I&#8217;ve found it!&#8221;<\/em> for the eighth time, I&#8217;ll do what I probably should have done an hour earlier.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Open the debugger.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Because sometimes the smartest thing you can tell an artificial intelligence is simply:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&#8220;Stop guessing.&#8221;<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Galactic Gladiators is my ongoing experiment in building a retro arcade game using Visual FoxPro 9, AI, and a frankly unreasonable amount of enthusiasm.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Seeing What&#8217;s Possible \u2014 robinclapworthy.com<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The extraordinary brilliance \u2014 and occasional spectacular stupidity \u2014 of AI-assisted software development. I&#8217;ve been a software developer for decades, primarily working with Visual FoxPro. Yes, Visual FoxPro. That ancient Microsoft development environment that supposedly died years ago but stubbornly refuses to go away. Recently, I&#8217;ve been using AI to help build something rather ridiculous: &#8230; <a title=\"AI Built My Game Tutorial in 20 Minutes. Then Spent Two Hours Trying to Close a Window.\" class=\"read-more\" href=\"https:\/\/robinclapworthy.com\/?p=268\" aria-label=\"Read more about AI Built My Game Tutorial in 20 Minutes. Then Spent Two Hours Trying to Close a Window.\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,6],"tags":[],"class_list":["post-268","post","type-post","status-publish","format-standard","hentry","category-galactic-gladiators","category-lawnpro"],"_links":{"self":[{"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/posts\/268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=268"}],"version-history":[{"count":1,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/posts\/268\/revisions"}],"predecessor-version":[{"id":270,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/posts\/268\/revisions\/270"}],"wp:attachment":[{"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}