Half of it was a prop
Earfh began as an AI-generated project package whose beta notes claimed more than fifty features. Roughly half of that code was never connected to anything, and telling wired from not wired became the project's first real job.
Written up later from the repo's history and dated to the week it describes.
Earfh's first two commits landed on November 9, 2025, a few minutes apart. The second, "Add files via upload," added 100 files and close to 4,000 lines in one go. That upload was an AI-generated project package. Scripts, scenes and art all arrived at once, written against a game that had never been run.
The first sign of it was in the art. Twenty four of the generated images had .png extensions and JPEG contents, so Godot's PNG loader refused them with "Not a PNG file" and nothing imported. The fix was to rename them to .jpg, which is why files like Bro_Magnon.jpg still carry that extension.
Six days, fifty features
The following week moved fast. On November 14 a brick test level became the main scene, with a tiled arena, walls, WASD movement, shooting and enemy spawning. Arena Mode landed the same week. On November 15 four branches merged into a tag called v1.0.0-beta, and its release notes claimed more than fifty features: six weapon types, ten enemy variants, six game modes, fourteen achievements, a minimap, a save system, and touch controls with a portrait layout for phones. The branches were written by an AI coding assistant, and the credits line in those notes reads "Game Design & Programming: Claude AI Assistant." The repo has never hidden where it came from.
Every item on that list had a green check mark beside it. In practice, a check mark meant a script existed.
Wired and not wired
A script existing is a long way from a feature working. In Godot, code runs when a scene, an autoload entry or another script reaches it. Much of the beta was reached by nothing. Those files compiled and did nothing. The main scene stayed the brick test level, with no HUD and no pause menu attached, for the better part of a year.
The roadmap puts the unconnected share at roughly half. The beta release notes now open with an accuracy note asking the reader to treat them "as a manifest of code that was written, not a list of features that work."
So the project runs on one distinction, stated at the top of its README. Wired means it runs when you press F5. Not yet wired means the script exists, nothing in the project references it, and it does nothing today. The README keeps an inventory of both piles and a short shell loop that lists orphaned scripts, so the list can be checked instead of trusted.
The reason is practical. A feature list that ignores the split would have you debugging a shop system that never loads, which is the README's own example.
What the split changes
With the split on paper, the roadmap reads differently. Most of the code for a finished game is already in the repo, so the work ahead is mostly integration rather than authoring. For nearly every item, the question is whether the existing script survives contact with the running game or gets replaced. The roadmap calls that question "cheap to answer and expensive to skip."
Some of the generated work has since been answered both ways. DamageNumber.gd got wired, and enemies now spawn a damage number on every hit. Sixteen other unwired scripts, duplicate settings, credits and camera scripts among them, were deleted once an audit confirmed nothing referenced them. A procedural level generator and a wave manager still sit in the not wired pile. Their turn has not come yet.
None of that makes the package worthless. The beta notes were kept on purpose, because the inventory is useful when deciding what to integrate next. They stopped being a feature list and became a parts list.
The whole state of the game today, wired and otherwise, is on the Earfh page.