CONTACT: 3D Naval Combat Game Built Entirely with Claude Code

What CONTACT Is
CONTACT is a 3D naval combat game where two players hide 7 submarines plus 1 decoy in a 7×7×7 grid, then hunt each other with torpedoes and earned abilities. Ships can be placed along 8 axes (including diagonal across depth layers). The 3D grid is rendered in Three.js with three view modes: full cube, single slice, and x-ray.
The game was built entirely with Claude Code + Opus, with zero frameworks and zero server dependencies — it runs in a browser.
Core Game Mechanics
The 7×7×7 cube has 343 cells compared to 49 in a traditional 7×7 flat grid, making brute-force strategies impractical. The game revolves around a credit economy where hits earn credits that buy tactical perks:
- Sonar Ping: Scan a 2×2×2 volume for presence
- Recon Drone: Reveal a 3×3×3 volume (27 cells)
- G-SONAR: Scan an entire depth layer (49 cells)
- Depth Charge: Strike every occupied cell in a 3×3×3 volume
- Radar Jammer: Invert your opponent's next sonar result
- Silent Running / Acoustic Cloak: Hide ships from recon
Each turn gives you three slots: ping, attack, defend. You choose how to spend them.
Game Modes
- Hot-seat PVP: Two humans, one screen, handoff screen between turns
- Human vs Claude (Sonnet): Select "VS AI" on the title screen, enter your Anthropic API key. Claude places its fleet automatically, reasons about strategy via tool use, and plays with embedded tactical knowledge from prior games
- Sonnet vs Sonnet (Agent vs Agent): Two Claude instances play full games against each other from the CLI. After each game, both agents reflect on the match and update persistent memory files with tactical lessons. Over multiple games, they evolve their strategies based on experience
Development Process
This was a collaborative development effort between the creator and Claude:
- The creator wrote the Game Design Document and Delivery Plan
- The creator managed implementation by breaking Phases into Sprints, Sprints into Tasks
- Claude built the implementation across phases (core engine → placement → combat → perks → 3D rendering → AI modes)
- The creator maintained architecture decisions, tested edge cases, caught design problems
- Claude handled the TypeScript, Three.js rendering, Tone.js audio synthesis, and the AI integration layer
Getting Started
git clone https://github.com/ChrisSc/contact.git
cd contact
npm install
npm run dev
For AI modes, you'll need an ANTHROPIC_API_KEY.
The simulation mode is also available: npm run simulate -- 100 --rank recruit -v
To watch Sonnet agents reason: node.js npx tsx scripts/agent-play.ts --verbose
To disable learning: node.js npx tsx scripts/agent-play.ts --no-memory
📖 Read the full source: r/ClaudeAI
👀 See Also

Driftwatch V3 Released: AI-Assisted Codebase Monitoring Tool
Driftwatch V3 is now available as a public repository after a 5-6 day build involving approximately 9,000 lines of code and $160 in API credits. The in-browser tool tracks markdown file issues, flags contradictory instructions, and provides cost tracking with recommendations.

Single-call MCP pipeline reduces Claude Code token usage by 74%
A developer built a context engine MCP server that provides Claude Code with a dependency graph of codebases, reducing token usage by 65% initially. A new single-call pipeline further cuts tokens by 74% by eliminating multiple round trips and deduplicating results server-side.

Qwen2-0.5B Fine-Tuned for Local Task Automation with llama.cpp
A developer fine-tuned Qwen2-0.5B for task automation using LoRA on ~1000 custom examples, creating a 300MB GGUF model that runs locally on CPU via llama.cpp. The model takes natural language tasks, detects task types, and generates execution plans with CLI commands and hotkeys.

Claude Code Session Dashboard: Open Source Tool for Monitoring Multiple Sessions
An open-source dashboard that monitors multiple Claude Code sessions simultaneously, showing token usage, costs, session status, context window usage, and active subagents. Installation requires three commands: git clone, cd, and npm install && npm start.