<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: AbhishekBarali</title>
    <description>The latest articles on DEV Community by AbhishekBarali (@abhishekbarali).</description>
    <link>https://dev.to/abhishekbarali</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4006020%2Fe36d8464-966f-4170-9229-418b2d2456f9.jpg</url>
      <title>DEV Community: AbhishekBarali</title>
      <link>https://dev.to/abhishekbarali</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abhishekbarali"/>
    <language>en</language>
    <item>
      <title>How I automated the boring part of game development with AI skills</title>
      <dc:creator>AbhishekBarali</dc:creator>
      <pubDate>Sun, 28 Jun 2026 04:43:47 +0000</pubDate>
      <link>https://dev.to/abhishekbarali/how-i-automated-the-boring-part-of-game-development-with-ai-skills-2koa</link>
      <guid>https://dev.to/abhishekbarali/how-i-automated-the-boring-part-of-game-development-with-ai-skills-2koa</guid>
      <description>&lt;p&gt;A few days ago I was adding a double jump to a Godot 4 project. My AI handed me this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gdscript"&gt;&lt;code&gt;&lt;span class="n"&gt;move_and_slide&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;velocity&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;Vector2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UP&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Looks fine. But that's the Godot 3 signature. In Godot 4 you set &lt;code&gt;velocity&lt;/code&gt; as a property and call &lt;code&gt;move_and_slide()&lt;/code&gt; with no arguments. The code didn't run.&lt;/p&gt;

&lt;p&gt;This kept happening. Unity methods that don't exist. Bevy code written against a two-versions-old API. The AI isn't broken, it's just averaging over years of docs and old forum posts and picking the most common-looking code. Game engines move fast. The model doesn't know what version you're on.&lt;/p&gt;

&lt;h2&gt;
  
  
  The obvious fix doesn't work
&lt;/h2&gt;

&lt;p&gt;I tried pasting a big "here's how Godot works" doc into the chat. It kind of helps. Mostly doesn't. A giant doc is expensive, buries the part you need, and still doesn't tell the agent which 200 words out of 5,000 apply to "add a double jump."&lt;/p&gt;

&lt;h2&gt;
  
  
  What I actually did
&lt;/h2&gt;

&lt;p&gt;I built &lt;a href="https://github.com/gamedev-skills/awesome-gamedev-agent-skills" rel="noopener noreferrer"&gt;awesome-gamedev-agent-skills&lt;/a&gt;. It's 66 small focused skills plus a router that picks the right ones for you. Free, open source (Apache 2.0), one install:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx skills add gamedev-skills/awesome-gamedev-agent-skills
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;Each "skill" is a small file with a name and a one-line description. The agent only reads the full body when that skill is actually needed. So you can have all 66 installed and your context stays tiny.&lt;/p&gt;

&lt;p&gt;A router sits on top and does three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Figures out your engine from the project files (a &lt;code&gt;project.godot&lt;/code&gt; means Godot, a &lt;code&gt;.uproject&lt;/code&gt; means Unreal, etc.)&lt;/li&gt;
&lt;li&gt;Reads your sentence for what you're trying to do&lt;/li&gt;
&lt;li&gt;Loads only the matching skills&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So "add a double jump to my Godot player" loads the Godot movement skill and the platformer skill. Nothing else. "Make an inventory for my Unity RPG" loads the ScriptableObjects skill, the RPG skill, and the save systems skill. Three small files instead of sixty-six.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it covers
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;What's in there&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Engines (40)&lt;/td&gt;
&lt;td&gt;Godot, Unity, Unreal, Phaser, PixiJS, three.js, Bevy, pygame, LOVE, Roblox&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Disciplines (13)&lt;/td&gt;
&lt;td&gt;game AI, procedural gen, save systems, shaders, game-feel, camera, performance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Genres (9)&lt;/td&gt;
&lt;td&gt;platformer, roguelike, RPG, FPS, tower defense, card game, visual novel, survival, puzzle&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Workflows (4)&lt;/td&gt;
&lt;td&gt;game jam, Steam publish, itch publish, fast prototyping&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The thing that actually matters: version pinning
&lt;/h2&gt;

&lt;p&gt;Every skill says which engine version it targets and sticks to it. Godot 4.x, Unity 6, Unreal 5.4+, PixiJS v8, and so on.&lt;/p&gt;

&lt;p&gt;This is boring but it's the whole point. It caught real bugs while I was writing the skills. A Godot ray query that used &lt;code&gt;exclude = [self]&lt;/code&gt; when the field wants an array of RIDs. A .NET setup that was right for Godot 4.3 and wrong by 4.5.&lt;/p&gt;

&lt;p&gt;Without pinning, you're just trusting the model to guess. With it, the code matches your version.&lt;/p&gt;

&lt;h2&gt;
  
  
  It works across agents
&lt;/h2&gt;

&lt;p&gt;Since skills are just markdown files, the same set works in Claude Code, Cursor, Codex, Gemini CLI, Kiro, and anything else that reads the format. One install, no lock-in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx skills add gamedev-skills/awesome-gamedev-agent-skills
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Point your agent at a real project and give it a game dev request. Watch what the router loads before it writes anything. If it picks the wrong skill or the code is out of date for your engine version, that's exactly the bug report I want.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/gamedev-skills/awesome-gamedev-agent-skills" rel="noopener noreferrer"&gt;github.com/gamedev-skills/awesome-gamedev-agent-skills&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's early and the routing still has gaps on weird project setups. But it already writes a lot less broken engine code than a plain agent, which was the whole point.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>gamedev</category>
      <category>automation</category>
      <category>godot</category>
    </item>
  </channel>
</rss>
