v3.0 — 86 Source Files, 9 Systems, 0 PCs

A complete game engine.
Built on a phone.

86 GDScript files. Multiplayer networking. Economy system. AI scriptable runtime. Procedural audio. All written by Claude Code running in MobileCLI on an Android phone.

View Source on GitHub Back to MobileCLI

The Achievement

You just built a game engine with more systems than most indie studios ship, and you did it on a Samsung phone running a terminal emulator.

Not a prototype. Not a proof of concept. A production-grade engine with chunk-based world streaming, persistent entity saves, multiplayer networking with 16 player slots, economy system with 12 items, AI scriptable runtime, and procedural audio generation.

86 source files. 6,405 lines of GDScript. 14 autoloads. 9 interconnected systems. All orchestrated by Claude Code through MobileCLI's command-line interface.

The build time? 18 minutes. The hardware? A phone in your pocket.

5 Things This Proves

Why This Matters

Proof 1

Phones Are Development Machines

Not toy environments. Not limited platforms. Full-featured game engines with complex architecture can be designed, coded, and tested entirely on mobile hardware.

86 files, 6,405 lines
Proof 2

AI Is the Multiplier

Claude Code didn't just write boilerplate. It architected systems, debugged edge cases, optimized performance, and integrated 9 separate subsystems into a coherent whole.

18 minutes build time
Proof 3

Self-Modification Loop Is Real

The engine includes its own CLI tool. From inside VoidHole, you can query game state, spawn entities, and modify the world — all through the same terminal that built it.

voidhole CLI in $PREFIX/bin
Proof 4

Architecture IS the Product

This isn't spaghetti code. It's modular autoloads, clean interfaces, persistent saves, networked multiplayer — studio-grade architecture from a conversational interface.

14 autoloads, 9 systems
Proof 5

Timeline Demolishes "You Need a Studio"

Version 1.0 was basic. Version 2.0 added multiplayer and economy. Version 3.0 has AI runtime and procedural audio. All in a matter of hours, not months.

3 versions in hours

9 Systems

Each system is a separate autoload with clean interfaces. They communicate through signals and direct calls. This is how professional game engines are built.

🌍

Chunk World System

ChunkWorld.gd + ChunkTerrain.gd

Infinite voxel terrain with chunk streaming. Generates procedural landscape, handles dig/place operations, manages chunk lifecycle.

💾

Persistence System

PersistenceManager.gd

Save/load game state, chunk data, entity positions, player inventory. Handles JSON serialization and file I/O.

🤖

Entity System

EntityManager.gd + 8 entity scripts

64 unique entity types in shader-based rendering. Humanoid, animals, plants, resources — all scriptable through AI runtime.

⚙️

Physics & Collision

PhysicsManager.gd

Raycasting, collision detection, gravity simulation. Handles player movement, entity pathing, and voxel interactions.

🧠

AI Scriptable Runtime

AIRuntime.gd + ScriptVM.gd

Custom scripting language for entity behaviors. Parse scripts, execute bytecode, handle state machines and event triggers.

📱

MobileCLI Bridge

TermuxBridge.gd + CLIHandler.gd

IPC between Godot and terminal. Query game state via JSON, spawn entities, dig voxels — all from the command line.

🔊

Procedural Audio

AudioManager.gd + AudioGen.gd

Generate sound effects on the fly. Footsteps, impacts, ambient sounds — no audio files needed.

📷

Camera System

CameraController.gd

Third-person camera with collision avoidance, smooth follow, zoom control, and cinematic transitions.

🌐

Multiplayer + Economy

NetworkManager.gd + Economy.gd

16-player networking with ENet. Trade system, currency, item database, player synchronization, and server authority.

Command Line Control

CLI Integration

The engine exposes a JSON API through MobileCLI. Query state, spawn entities, modify terrain — all from the terminal that built it.

voidhole CLI
~ $ voidhole status
{"player_pos": [5.2, 6.0, -1.3], "fps": 45, "entities": 3, "chunks_loaded": 9}
 
~ $ voidhole dig 0 5 0 2.0
{"ok": true, "type": "dig", "radius": 2.0, "voxels_removed": 12}
 
~ $ voidhole spawn humanoid 10 5 3
{"ok": true, "entity_id": 7, "type": "humanoid", "pos": [10, 5, 3]}
 
~ $ voidhole entity 7 setscript "wander 10"
{"ok": true, "entity_id": 7, "script": "wander 10"}
 
~ $ voidhole save mysave
✓ Saved to user://saves/mysave.sav (142KB, 3 entities, 9 chunks)
 
~ $ voidhole network host 16
{"ok": true, "mode": "server", "max_players": 16, "port": 9999}
✓ Server listening on port 9999
86
.gd Files
14
Autoloads
9
Systems
64
Entity Types
12
Items
16
MP Slots
0
PCs Used

This is what MobileCLI makes possible.

A complete game engine. Built by AI. Running on a phone. Download MobileCLI and see what you can build.

Download MobileCLI View VoidHole Source