<?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: BJ Kennedy</title>
    <description>The latest articles on DEV Community by BJ Kennedy (@arcdrag).</description>
    <link>https://dev.to/arcdrag</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%2F4183286%2F708d55f2-602a-4041-b043-e934f2839597.jpg</url>
      <title>DEV Community: BJ Kennedy</title>
      <link>https://dev.to/arcdrag</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arcdrag"/>
    <language>en</language>
    <item>
      <title>What 90s Game Dev Teaches Us About AI and the Future of Software Engineering</title>
      <dc:creator>BJ Kennedy</dc:creator>
      <pubDate>Fri, 30 Oct 2026 20:16:27 +0000</pubDate>
      <link>https://dev.to/arcdrag/what-90s-game-dev-teaches-us-about-ai-and-the-future-of-software-engineering-18i8</link>
      <guid>https://dev.to/arcdrag/what-90s-game-dev-teaches-us-about-ai-and-the-future-of-software-engineering-18i8</guid>
      <description>&lt;p&gt;While the speed of disruption from AI feels unprecedented, we can look to history to see what happens when a technical industry undergoes a massive, orders-of-magnitude jump in developer productivity.&lt;/p&gt;

&lt;p&gt;If you want to see this playbook in action, look at the video game industry.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Era of Floppy Disks and Bespoke Engines
&lt;/h2&gt;

&lt;p&gt;In the early 1990s, when a studio built a new game, there were no ubiquitous off-the-shelf commercial game engines. Virtually every major title was built around a bespoke, ground-up rendering codebase. If your project fell behind schedule, you couldn't just hire a contractor who "knew the engine". The engine only existed on your studio’s hard drives.&lt;/p&gt;

&lt;p&gt;Collaboration tooling was equally non-existent. Git didn't exist. Integrating your co-worker's code meant saving a file to a 3.5-inch floppy disk, walking across the room, physically handing it to them, and praying you didn't overwrite local changes. Want to ship on multiple platforms? You weren't tweaking build targets; you were manually rewriting C or assembly line by line for entirely different CPU architectures.&lt;/p&gt;

&lt;p&gt;By today’s standards, the teams that created foundational genres were ridiculously small:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Final Fantasy (1987):&lt;/strong&gt; Defined the JRPG—crafted by a core team of roughly &lt;strong&gt;7 people&lt;/strong&gt; at Square.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wolfenstein 3D (1992):&lt;/strong&gt; Practically birthed the modern FPS—built by a core team of just &lt;strong&gt;6 people&lt;/strong&gt; at id Software.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quake (1996):&lt;/strong&gt; Brought true 3D and client-server multiplayer to the genre—required roughly &lt;strong&gt;9 core developers&lt;/strong&gt; at id (a lineup that reads like a hall-of-fame roster of gaming legends) working 100-hour crunch weeks for nearly two years.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Productivity Explosion
&lt;/h2&gt;

&lt;p&gt;In the decades that followed, a firehose of productivity tools reshaped development:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Commercial engines&lt;/strong&gt; like Unreal and Unity abstracted away lower-level graphics math so designers could focus on mechanics rather than writing custom texture-mapping routines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Git&lt;/strong&gt; saved us from email threads full of &lt;code&gt;pathfinding_v2_FINAL_for_real.zip&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-platform compilation&lt;/strong&gt; allowed a single codebase to target PC, consoles, iOS, and Android simultaneously.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fast forward 20 years from &lt;em&gt;Quake&lt;/em&gt;, and even before the rise of LLMs, game development productivity had increased so dramatically that a single developer at a 48-hour game jam could routinely build a functional 3D prototype with technical feature parity to id's 1996 masterpiece. &lt;/p&gt;

&lt;p&gt;The breakthroughs that once required an entire R&amp;amp;D phase on the project delivery timeline—true 3D rendering, baked lighting, a high-level scripting language, and client-server netcode—are now done the moment a developer clicks &lt;code&gt;File -&amp;gt; New Project&lt;/code&gt; in Unity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Jevons Paradox in Action
&lt;/h2&gt;

&lt;p&gt;So, logically, game development studios should have shrunk, right? If one engineer can now do what required nine world-class wizards in 1996, the industry should need fewer people. Marketplaces full of cheap 3D assets should have put artists out of work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The reality was the exact opposite.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Today, end-game credits for a AAA title routinely run for 30 to 40 minutes. Top studios employ teams of PhDs dedicated entirely to the procedural physics of how individual strands of hair, grass, and cloth react to wind. These hyper-specialized roles were completely unimaginable when John Carmack was writing raycasting algorithms. And while individual legacy roles disappeared (few people earn a living hand-porting assembly between custom chipsets today), the total workforce building games has expanded exponentially over the last three decades.&lt;/p&gt;

&lt;p&gt;This phenomenon isn't a fluke. It's a classic economic principle known as &lt;strong&gt;Jevons Paradox&lt;/strong&gt;: as technological progress increases the efficiency with which a resource is used, total consumption of that resource increases rather than decreases.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When you make software production 10x cheaper and faster, you don't get 10x fewer developers. You get 100x more ambitious software.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What This Means for AI and Software Engineering
&lt;/h2&gt;

&lt;p&gt;Of course, this won't be a smooth, uninterrupted climb. Every tech paradigm shift brings market volatility: a wave of layoffs one year as executives try to pocket the efficiency gains, followed by a hiring boom the next when competitors use that same efficiency to ship vastly superior products. There will always be good times, bad times, and painful transitional jitters, but the trendline will bend upward.&lt;/p&gt;

&lt;p&gt;We are about to see this exact paradox play out with AI and general software engineering. As AI tools lower the cost of writing syntax, we won't stop needing engineers. We’ll just build systems so complex, immersive, and context-aware that today’s software will look like &lt;em&gt;Wolfenstein 3D&lt;/em&gt; by comparison.&lt;/p&gt;

&lt;p&gt;I look forward to seeing what software roles we have in ten years that sound as absurd to us today as &lt;em&gt;"Senior Hair Strand Simulation Engineer"&lt;/em&gt; would have sounded to Carmack and Romero in 1992.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>gamedev</category>
      <category>career</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Power of Names: What Taborlin the Great Teaches Us About AI Prompting</title>
      <dc:creator>BJ Kennedy</dc:creator>
      <pubDate>Fri, 16 Oct 2026 16:58:44 +0000</pubDate>
      <link>https://dev.to/arcdrag/the-power-of-names-what-taborlin-the-great-teaches-us-about-ai-prompting-1679</link>
      <guid>https://dev.to/arcdrag/the-power-of-names-what-taborlin-the-great-teaches-us-about-ai-prompting-1679</guid>
      <description>&lt;p&gt;In &lt;em&gt;The Kingkiller Chronicle&lt;/em&gt;, Taborlin the Great was a legendary wizard whose power was quite simple. He knew the names of things, and in knowing their true names, he commanded power over them. He could call the name of stone and demand it split in two. He could step off a tall tower and call the name of the wind, and the wind would carry him to safety.&lt;/p&gt;

&lt;p&gt;While AI sometimes feels like a superpower in itself, it can also be incredibly frustrating. An image that seems clear and simple to describe in your head comes out looking like an artistic war crime when the model tries to interpret your prompt. The feature that seems straightforward in your application does not function at all as expected after implementation.&lt;/p&gt;

&lt;p&gt;Furthermore, it can often be hard to even describe what makes the first implementation seem so off. I find this similar to how I feel at a wine tasting. While an aficionado can tell you all about the balanced, layered complexity of the wine, I simply know, "yes, I like this," and struggle to say why.&lt;/p&gt;

&lt;p&gt;I believe this is why different people have such different experiences with AI and why the term "vibe coding" has become so overloaded. To some, it means blindly prompting off pure vibes with zero engineering rigor. To others, it just means directing an AI in natural language instead of typing every line of syntax yourself. In engineering work, I commonly hear, "The architecture of the code it generates is garbage," which comes from confusing the two.&lt;/p&gt;

&lt;p&gt;Sure, it takes the path of least resistance. If you tell it, &lt;code&gt;"implement code that gets data from Service A, transforms it, and loads it into our data warehouse"&lt;/code&gt;, you're likely going to get entirely imperative-style code that does those steps in a giant, 500-line single god-method that would horrify the Chandrian themselves. No abstraction. Direct inline calls to the DB. It will not track historical changes or trends over time.&lt;/p&gt;

&lt;p&gt;If instead you tell it to isolate side effects behind &lt;strong&gt;DAOs&lt;/strong&gt; and service client classes, utilize &lt;strong&gt;IoC&lt;/strong&gt; and &lt;strong&gt;DI&lt;/strong&gt; for testability, and structure the warehouse around a &lt;strong&gt;medallion data model&lt;/strong&gt; using &lt;strong&gt;Type 2 SCDs&lt;/strong&gt; to track change over time, you'll get drastically improved, more maintainable results without significantly more effort. This comes simply by knowing the names of these basic patterns and knowing when to use them.&lt;/p&gt;

&lt;p&gt;This doesn’t apply just to code. If you can picture an art style but don’t know what it’s called, you might ask for something like &lt;em&gt;"old-timey storybook"&lt;/em&gt; and hope the model interprets that the same way you do. Learning that the look you’re after is &lt;strong&gt;Art Nouveau&lt;/strong&gt; gives you a much more specific starting point. Technical documentation stops sounding like it was written with the flourish of the Edema Ruh when specifying that it should be written in &lt;strong&gt;Simplified Technical English&lt;/strong&gt; instead of a more vague prompt like &lt;em&gt;"keep it concise and unambiguous."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What I find about my own AI usage is that I’m now spending more time understanding these sorts of fundamentals in areas I'm not very familiar with. I’m studying art styles in order to better generate images. I’m studying writing styles in order to better generate prose fit to purpose. AI guides that study to help me learn the basic names, as I can now simply drop an image in and ask questions about the artistic style in a way I could never do before.&lt;/p&gt;

&lt;p&gt;Taborlin the Great became a legend by learning the names of things to wield their power. AI gives us this superpower for far less effort. Although I'm still searching for the true name of Book 3. &lt;code&gt;"Write 'The Doors of Stone.' Make no mistakes."&lt;/code&gt; unfortunately did not work very well.&lt;/p&gt;




&lt;p&gt;If you're looking for a starting point, check out &lt;a href="https://llm-coding.github.io/Semantic-Anchors/" rel="noopener noreferrer"&gt;&lt;strong&gt;Semantic Anchors&lt;/strong&gt;&lt;/a&gt;, a cool project that attempts to capture the names of many patterns, styles, and concepts that are useful in your prompting.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>softwareengineering</category>
      <category>vibecoding</category>
      <category>agenticengineering</category>
    </item>
  </channel>
</rss>
