<?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: Bostjan Maroh</title>
    <description>The latest articles on DEV Community by Bostjan Maroh (@mbostjan).</description>
    <link>https://dev.to/mbostjan</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%2F4035188%2F84ca415f-e5fe-40dc-9161-6cb5bfbff36d.jpg</url>
      <title>DEV Community: Bostjan Maroh</title>
      <link>https://dev.to/mbostjan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mbostjan"/>
    <language>en</language>
    <item>
      <title>Can Codex Build an Entire x86 Assembly Game Autonomously? A Real-World Experiment</title>
      <dc:creator>Bostjan Maroh</dc:creator>
      <pubDate>Sat, 18 Jul 2026 13:18:17 +0000</pubDate>
      <link>https://dev.to/mbostjan/can-codex-build-an-entire-x86-assembly-game-autonomously-a-real-world-experiment-mik</link>
      <guid>https://dev.to/mbostjan/can-codex-build-an-entire-x86-assembly-game-autonomously-a-real-world-experiment-mik</guid>
      <description>&lt;h2&gt;
  
  
  Can Codex Build an Entire x86 Assembly Game Autonomously?
&lt;/h2&gt;

&lt;p&gt;Most demonstrations of AI coding focus on generating snippets of code, building CRUD applications, or creating small projects in modern programming languages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I wanted to test something different.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Rather than asking whether an AI could generate Assembly code, I wanted to know whether it could complete an entire software project with minimal human involvement.&lt;/p&gt;

&lt;p&gt;To make the experiment as challenging as possible, I deliberately chose one of the least forgiving environments I could think of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;16-bit x86 Assembly&lt;/li&gt;
&lt;li&gt;DOS&lt;/li&gt;
&lt;li&gt;VGA Mode 13h&lt;/li&gt;
&lt;li&gt;No game engine&lt;/li&gt;
&lt;li&gt;No external graphics libraries&lt;/li&gt;
&lt;li&gt;No audio libraries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was to recreate a classic Asteroids-style arcade game.&lt;/p&gt;

&lt;p&gt;There was one more rule: &lt;strong&gt;I would not write any Assembly code, in fact, I wouldn't participate in the implementation at all&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;My role was limited to defining the initial objective, playing each delivered version, and reporting any gameplay issues I discovered.&lt;/p&gt;

&lt;p&gt;Everything else—from architecture and implementation to debugging, documentation, repository management, building, and running the project—was handled autonomously by &lt;strong&gt;Codex&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This article documents what happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Rules
&lt;/h2&gt;

&lt;p&gt;Before starting the experiment, I established a set of rules that would remain unchanged until the project was complete.&lt;/p&gt;

&lt;p&gt;The objective wasn't simply to build an Asteroids-style game. The objective was to evaluate how autonomous Codex could be when acting as a software engineering agent.&lt;/p&gt;

&lt;p&gt;To keep the experiment fair, I intentionally limited my own involvement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My responsibilities&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Define the project objective.&lt;/li&gt;
&lt;li&gt;Answer questions about gameplay when clarification was required.&lt;/li&gt;
&lt;li&gt;Play-test every completed milestone.&lt;/li&gt;
&lt;li&gt;Report gameplay bugs or unexpected behavior.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Codex responsibilities&lt;/strong&gt;&lt;br&gt;
Everything else.&lt;/p&gt;

&lt;p&gt;This included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project planning&lt;/li&gt;
&lt;li&gt;Software architecture&lt;/li&gt;
&lt;li&gt;Assembly implementation&lt;/li&gt;
&lt;li&gt;Refactoring&lt;/li&gt;
&lt;li&gt;Debugging&lt;/li&gt;
&lt;li&gt;Documentation&lt;/li&gt;
&lt;li&gt;Git repository management&lt;/li&gt;
&lt;li&gt;Building the project&lt;/li&gt;
&lt;li&gt;Running the game after each build&lt;/li&gt;
&lt;li&gt;Maintaining the project roadmap&lt;/li&gt;
&lt;li&gt;Verifying completed milestones&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One rule never changed throughout the experiment:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I never wrote a single line of Assembly code.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In fact, I never built the project manually or launched the game during development.&lt;/p&gt;

&lt;p&gt;Every build and every execution was performed autonomously by Codex.&lt;/p&gt;

&lt;p&gt;My role was simply to evaluate the delivered result as if I were testing software developed by another engineer.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Reality Check&lt;br&gt;
Although Codex handled the implementation independently, this was not a "hands-off" experiment.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After each milestone I played the game, looked for unexpected behaviour and reported anything that didn't work correctly.&lt;/p&gt;

&lt;p&gt;During the entire project I reported only &lt;strong&gt;two gameplay bugs&lt;/strong&gt; that had not been detected automatically.&lt;/p&gt;

&lt;p&gt;Both were analyzed, fixed and verified by Codex before development continued.&lt;/p&gt;

&lt;p&gt;Apart from defining the original goal and validating each milestone, I had no involvement in the implementation itself.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why these rules?
&lt;/h2&gt;

&lt;p&gt;One of the biggest challenges when evaluating AI-generated software is separating the work performed by the AI from the work performed by the human.&lt;/p&gt;

&lt;p&gt;Many demonstrations claim that an AI built an application, but the human developer still makes architectural decisions, edits the generated code, fixes compilation errors and completes the final implementation.&lt;/p&gt;

&lt;p&gt;I wanted to eliminate as much of that influence as possible.&lt;/p&gt;

&lt;p&gt;The goal was not to see whether Codex could assist me, to see how far Codex could go without me writing the code.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Development Process
&lt;/h2&gt;

&lt;p&gt;Once the rules were established, I created an empty GitHub repository and described the project.&lt;/p&gt;

&lt;p&gt;From that point on, development became an iterative process.&lt;/p&gt;

&lt;p&gt;Codex planned the work, implemented a milestone, built the project, ran it, verified the result, committed the changes, and then handed the project back to me for testing.&lt;/p&gt;

&lt;p&gt;My job was simply to play the latest version and answer one question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Does it behave as expected?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If I found a problem, I described what I observed.&lt;/p&gt;

&lt;p&gt;I never suggested how to fix it or where the bug was located.&lt;/p&gt;

&lt;p&gt;Codex analyzed the report, identified the cause, implemented the fix and presented a new version for testing.&lt;/p&gt;

&lt;p&gt;The cycle then repeated until the next milestone.&lt;/p&gt;

&lt;p&gt;Over time, the project grew from an empty repository into a complete DOS game with structured source code, documentation, persistent high scores and a fully playable gameplay loop.&lt;/p&gt;
&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;p&gt;By the end of the experiment, Codex had produced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;18 Assembly source files&lt;/li&gt;
&lt;li&gt;~2,500 lines of Assembly&lt;/li&gt;
&lt;li&gt;Complete project documentation&lt;/li&gt;
&lt;li&gt;GitHub repository with structured commits&lt;/li&gt;
&lt;li&gt;Persistent high score system&lt;/li&gt;
&lt;li&gt;Playable Asteroids-style game&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;During development:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Human-written Assembly: 0 lines&lt;/li&gt;
&lt;li&gt;Human builds: 0&lt;/li&gt;
&lt;li&gt;Human launches: 0&lt;/li&gt;
&lt;li&gt;Gameplay bugs reported: 2&lt;/li&gt;
&lt;li&gt;Gameplay bugs fixed by Codex: 2&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One thing surprised me the most.&lt;/p&gt;

&lt;p&gt;Codex behaved much less like a code generator and much more like a software engineer.&lt;/p&gt;

&lt;p&gt;Instead of immediately writing gameplay code, it spent time planning the project, documenting the architecture, organizing the repository and verifying each completed milestone before moving on.&lt;/p&gt;
&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Milestone&lt;/th&gt;
&lt;th&gt;Main Result&lt;/th&gt;
&lt;th&gt;Initiated By&lt;/th&gt;
&lt;th&gt;Active Time&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;Architecture&lt;/td&gt;
&lt;td&gt;Platform, memory model, modules, roadmap&lt;/td&gt;
&lt;td&gt;Codex&lt;/td&gt;
&lt;td&gt;~1 min&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Video Foundation&lt;/td&gt;
&lt;td&gt;Build system, Mode 13h, back buffer, clean exit&lt;/td&gt;
&lt;td&gt;Codex&lt;/td&gt;
&lt;td&gt;~4 min&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Input &amp;amp; Drawing&lt;/td&gt;
&lt;td&gt;Keyboard IRQ, timing, lines, rectangles, bitmap font&lt;/td&gt;
&lt;td&gt;Codex&lt;/td&gt;
&lt;td&gt;~11 min&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Player Ship&lt;/td&gt;
&lt;td&gt;Rotation, thrust, inertia, speed cap, wrapping&lt;/td&gt;
&lt;td&gt;Codex&lt;/td&gt;
&lt;td&gt;~1 min&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Shooting &amp;amp; Sound&lt;/td&gt;
&lt;td&gt;Bullet pool, cooldown, lifetime, PC speaker&lt;/td&gt;
&lt;td&gt;Codex&lt;/td&gt;
&lt;td&gt;~2.4 min&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Asteroids &amp;amp; Waves&lt;/td&gt;
&lt;td&gt;Random spawning, shapes, movement, wrapping&lt;/td&gt;
&lt;td&gt;Codex&lt;/td&gt;
&lt;td&gt;~0.7 min&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Scoring &amp;amp; Splitting&lt;/td&gt;
&lt;td&gt;Collisions, asteroid splitting, scoring, wave progression&lt;/td&gt;
&lt;td&gt;Codex&lt;/td&gt;
&lt;td&gt;~0.3 min&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Complete Game Flow&lt;/td&gt;
&lt;td&gt;Lives, respawn, invulnerability, game over&lt;/td&gt;
&lt;td&gt;Codex&lt;/td&gt;
&lt;td&gt;~0.6 min&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Polish &amp;amp; Hardening&lt;/td&gt;
&lt;td&gt;Edge rendering, fair spawns, difficulty, 8086 audit&lt;/td&gt;
&lt;td&gt;Codex&lt;/td&gt;
&lt;td&gt;~3.2 min&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;Persistent High Scores&lt;/td&gt;
&lt;td&gt;Three-letter initials, Top 5, disk persistence&lt;/td&gt;
&lt;td&gt;Human&lt;/td&gt;
&lt;td&gt;~1.2 min&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The "Active Time" represents the time Codex spent actively implementing each milestone. It does not include my play-testing, discussions, or the time between development sessions.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Source code:
https://github.com/mbostjan/AssemblyAsteroids

The entire repository, including the complete commit and documentation, 
is publicly available for anyone who wants to review the experiment or 
reproduce the results.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>ai</category>
    </item>
  </channel>
</rss>
