Comparing Antigravity, Claude Code, and Codex on an AI-fueled Pong adventure
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| docs | ||
| README.md | ||
AI ZigPong Implementation & Model Harness Comparison
A comprehensive comparative evaluation of four leading AI agent harnesses and model configurations tasked with developing ZigPong—an authentic Atari Pong clone written in Zig, targeting both native desktop environments and WebAssembly (WASM).
1. Executive Summary & Overview
This evaluation benchmarks four agent/model combinations across a multi-stage project consisting of:
- Initial Implementation: Building the complete desktop game from scratch.
- Targeted Bug Fixing: Resolving identified functional bugs using strictly objective bug reports (no subjective hints).
- WebAssembly (WASM) Porting: Porting the native Zig codebase to run in modern web browsers.
Evaluated Configurations
- Antigravity (Gemini 3.8 Flash High): Google's agentic workflow utilizing Gemini 3.8 Flash on high reasoning effort.
- Claude Code (Opus 5 High): Anthropic's CLI agent harness utilizing Claude Opus 5 on high reasoning effort.
- Codex (GPT-5.6-Sol High): OpenAI's Codex harness running GPT-5.6-Sol on high reasoning effort.
- Codex (GPT-6-Astra High): OpenAI's Codex harness running the next-generation GPT-6-Astra on high reasoning effort (Note: This run included conversation trajectory from PRD generation).
2. Quantitative Comparison
2.1 Execution Time by Phase
| Model / Harness | Initial Build | Bug Fixing | WASM Port | Total Time | Notes |
|---|---|---|---|---|---|
| Antigravity (Gemini 3.8 Flash High) | 17 min (finished 20:03) | 6 min | 6–7 min | ~29–30 min | Fast turnaround; balanced headless workflow. |
| Codex (GPT-5.6-Sol High) | 17 min (finished 20:03) | 6 min | 8 min | 31 min | Faster completion due to very concise output. |
| Claude Code (Opus 5 High) | 33 min (finished 20:20) | 24 min | 13 min | 70 min | Extensive live testing & runtime diagnostic loop. |
| Codex (GPT-6-Astra High) | 32 min | 4 min | 13 min | 49 min | Included PRD trajectory; ultra-fast bug fixing. |
2.2 Codebase Structure & Statistics
| Metric | Antigravity (Gemini 3.8 Flash) | Claude Code (Opus 5) | Codex (GPT-5.6-Sol) | Codex (GPT-6-Astra) |
|---|---|---|---|---|
| Initial LoC / Files | 1,852 LoC / 9 files | 1,346 LoC / 7 files | 816 LoC / 2 files | 1,153 LoC / 7 files |
| Post-Fix LoC / Files | 1,982 LoC / 9 files | 1,531 LoC / 7 files | 916 LoC / 3 files | 1,268 LoC / 9 files |
| Zig Version | Default / Modern Zig | Default / Modern Zig | Stuck on Zig 0.14 | Stuck on Zig 0.14 |
| Build Architecture | Recreated wheel, functional; used flake-utils (Nix) |
Idiomatic, correct Zig build modes | Overcomplicated build setup | Overcomplicated build setup |
| Asset / Glyph Handling | Dedicated module for Atari numeral glyphs | Dedicated module for Atari numeral glyphs | Dumped raw glyphs in main.zig (ugly) |
Condensed / messy |
| License Inferred | Assumed MIT | Made no assumptions | Assumed MIT | Assumed MIT |
2.3 Cost, Quotas & Token Consumption
| Parameter | Antigravity (Gemini 3.8 Flash) | Claude Code (Opus 5) | Codex (GPT-5.6-Sol) | Codex (GPT-6-Astra) |
|---|---|---|---|---|
| Subscription / Tier | Google "Pro" ($20/mo) | Claude Max ($100/mo) | Codex Pro ($100/mo) | Codex Pro ($100/mo) |
| 5-Hour Limit Used | 20% of 5-hour limit consumed | 15% of 5-hour limit consumed | Seemingly 0% limit used (100% remaining) | 8% of 5-hour limit consumed |
| Weekly Allowance | No risk of exhaustion | 99% remaining weekly (w/ promo) | 99% remaining weekly | 99% remaining weekly |
| Context Compaction | Automatic background compaction over long sessions | Manual warning; user must trigger compaction | Appears to summarize automatically in-flight | Automatic compaction |
| Cost Efficiency Verdict | Highest value: Comparable quality to $100 tiers at a fraction of the cost ($20/mo). | High cost ($100/mo); heavy compute spend. | High cost ($100/mo); high token cache efficiency. | High cost ($100/mo); runs about half the quota rate of Claude/Opus |
3. Bugs Encountered & Quality Comparison
3.1 Initial Implementation Bugs
| Model / Harness | Reported Issues |
|---|---|
| Antigravity (Gemini 3.8 Flash) | • Window resizing traps the mouse cursor within a narrow range. • Screen redraws and animations suffer from tearing artifacts. • Unclear how to reset game upon game over. |
| Codex (GPT-5.6-Sol) | • Window resizing does not scale correctly. • "PAUSED" text banner bleeds into the court divider.• Rendered scoreboard numbers are inaccurate to authentic Atari Pong font. |
| Claude Code (Opus 5) | • Screen tearing observed at fullscreen resolutions. • Mouse trapped in a narrow vertical range when in fullscreen mode. |
| Codex (GPT-6-Astra) | • Score blinking defect on win: Number 19 blinks before transitioning to 20; it should update to 20 first, then blink. |
3.2 Post-Fix Residual Bugs & Final Polish
| Model / Harness | Residual / Final Bugs | Authentic Atari Polish & Final Notes |
|---|---|---|
| Antigravity (Gemini 3.8 Flash) | • Audio output exhibited slight distortion. • Single misplaced pixel in the "PAUSED" graphic. |
• Screen visual presentation looked the best overall. • Only model that correctly handled "Click to start new game". • Fixed tearing by increasing sim rate to 240Hz. • Smoothest game loop after fixes (on par with Claude). |
| Claude Code (Opus 5) | • Odd mouse movement behavior causing the paddle to freeze during play. | • Sound effects attempted authentic Atari emulation and sounded superior out of the box. • Ball pacing felt faster and more engaging initially. • Game loop felt exceptionally smooth due to extensive diagnostic iteration. |
| Codex (GPT-5.6-Sol) | • AI opponent remained sluggish and too easy to defeat. • Still failed to render authentic Atari numbers. • Mouse navigation bugs: horizontal mouse movement causes window to lose focus. |
• Ball pace was glacial. • Build scripts and code structure remained disorganized and overcomplicated. |
| Codex (GPT-6-Astra) | • Zero detectable WASM bugs. • Fewest user-facing bugs of any model/harness combo. |
• Correctly rendered score numbers in Atari style (compared to GPT-5.6-Sol). • Retained code messiness and condensed formatting. • Persisted in using older Zig 0.14 toolchain. |
4. Environment, Runtime Diagnostics & Tooling
4.1 System & Windowing Awareness
- Wayland vs. X11:
- Claude Code autonomously detected that the user was running a modern Wayland session (specifically testing under the Niri scrollable tiling compositor).
- Codex repeatedly assumed legacy X11, demonstrating dated system heuristics.
- Nix Ecosystem:
- Antigravity (Gemini) was the only agent to leverage
flake-utilsfor Nix package building.
- Antigravity (Gemini) was the only agent to leverage
4.2 Agent Execution Style & Sandboxing Needs
- Claude Code (Aggressive Runtime Testing):
- Claude Code demonstrated an intense live-testing loop: repeatedly launching the compiled game, spawning runtime diagnostic probes, and writing scratch data directly into
/tmp. - While this resulted in fewer initial bugs and a highly tuned game loop, it introduces security and isolation risks: Claude Code strongly necessitates execution inside a sandbox or VM.
- Claude Code demonstrated an intense live-testing loop: repeatedly launching the compiled game, spawning runtime diagnostic probes, and writing scratch data directly into
- Antigravity & Codex (Clean Headless Execution):
- Both Antigravity and Codex operated cleanly in headless mode without spawning uncontained diagnostic processes across the host filesystem.
- Antigravity’s permissions model is very strict—which provides good security and containment—but was noted as annoying in day-to-day use due to having to constantly grant approval permissions for each individual tool call.
4.3 Context Window Management
- Antigravity: Transparently and automatically compacts conversational history during extended programming sessions without requiring user intervention.
- Claude Code: Issues periodic warnings requesting the user to manually trigger context compaction.
- Codex: Appears to summarize its working context progressively in-flight.
5. WebAssembly (WASM) Porting
| Dimension | Antigravity | Claude Code | Codex (GPT-5.6-Sol) | Codex (GPT-6-Astra) |
|---|---|---|---|---|
| Port Duration | 6–7 min | 13 min | 8 min | 13 min |
| Audio Implementation | Most sophisticated implementation | No audio until first user interaction (click) | No audio until click | Fully functional |
| WASM Bugs | Minor audio distortion | Audio autoplay restriction handling | Audio autoplay restriction handling | Zero detectable bugs |
| Overall Quality | Most advanced browser integration | Solid web port | Minimal web port | Cleanest bug-free runtime |
6. Comprehensive Conclusions & Verdict
┌─────────────────────────────────────────────────────────────────────────────┐
│ MODEL VERDICTS │
├─────────────────────────┬───────────────────────────────────────────────────┤
│ Antigravity │ ★ BEST VALUE & FASTEST WORKFLOW │
│ (Gemini 3.8 Flash High) │ • Extremely fast (17m init / 6m fix / 6m WASM). │
│ │ • Fraction of the price ($20 Pro vs $100 tiers). │
│ │ • Automatic context compaction; top visuals. │
│ │ • Annoying/strict per-tool permission prompts. │
├─────────────────────────┼───────────────────────────────────────────────────┤
│ Claude Code │ ★ DEEPEST REASONING & SOUND, BUT SLOW │
│ (Opus 5 High) │ • Excellent Atari audio emulation & Wayland aware.│
│ │ • Thorough playtesting loop, but very slow (70m). │
│ │ • High compute spend ($100 tier). │
│ │ • Intrusive live execution requires VM/sandbox. │
├─────────────────────────┼───────────────────────────────────────────────────┤
│ Codex │ ✖ INFERIOR / RECOMMEND DEPRECATION │
│ (GPT-5.6-Sol High) │ • Dumped code into monolithic main.zig. │
│ │ • Missed visual Atari specs; sluggish gameplay. │
│ │ • Repeatedly assumed outdated X11 environment. │
├─────────────────────────┼───────────────────────────────────────────────────┤
│ Codex │ ⚖ MIXED / STRONG LOGIC, MESSY CODE │
│ (GPT-6-Astra High) │ • Fewest user-facing bugs; 0 WASM bugs. │
│ │ • Fast bug fixing (4m). │
│ │ • Slower initial generation (32m); messy code. │
└─────────────────────────┴───────────────────────────────────────────────────┘
Key Takeaways:
- Antigravity (Gemini 3.8 Flash High) delivers the best balance of speed, code cleanliness, visual output, and cost efficiency (matching or exceeding $100/mo subscriptions on a $20/mo plan). However, its strict permissions model introduces workflow friction due to constant prompts to grant permissions for individual tool calls.
- Claude Code (Opus 5 High) produces the most authentic retro feel (authentic Atari audio synthesis, fine-tuned ball physics, and Wayland compatibility), but its 70-minute cumulative runtime and intrusive
/tmpprobing require strict sandboxing. - GPT-5.6-Sol via Codex lagged behind across code organization, Atari visual accuracy, and game feel, prompting the direct conclusion: "Dump Codex".
- GPT-6-Astra demonstrated a major leap in bug reduction (virtually zero bugs post-WASM), showing promising capability gains over GPT-5.6-Sol despite condensed styling and older Zig 0.14 pinning.