No description
  • Shell 60.9%
  • GDScript 15.1%
  • Python 13.7%
  • Jinja 5.2%
  • Makefile 5.1%
Find a file Use this template
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Agent c02745e2ee
refactor(template): adopt Copier _subdirectory layout
Move the project scaffold under template/ and set _subdirectory in copier.yml, so the repo root keeps a browsable README describing the template plus copier.yml. Also add .gitkeep to assets/{audio,fonts,textures} so the LFS asset dirs the README documents actually ship. Generation output is otherwise unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 18:24:44 -04:00
template refactor(template): adopt Copier _subdirectory layout 2026-07-05 18:24:44 -04:00
copier.yml refactor(template): adopt Copier _subdirectory layout 2026-07-05 18:24:44 -04:00
README.md refactor(template): adopt Copier _subdirectory layout 2026-07-05 18:24:44 -04:00

Godot Template (Copier)

A Copier template for a Godot 4 project, wired for Git LFS (with file locking), LF line endings, lowercase-extension enforcement, GDScript linting/formatting, ruff + mypy + codespell on the tooling and prose, GUT unit tests, and a 2D-mechanics harness on push. The project scaffold lives in template/.

Generate a project

pipx install copier          # or: pip install --user copier
copier copy gh:<owner>/godot-template my-game

Copier asks for the project name and description, then writes the project into my-game/. Finish setup there:

cd my-game
git init -b main
./setup.sh                   # checks tools, enables LFS + pre-commit hooks

Update an existing project

Template improvements can be pulled into an already-generated project. From the project root:

copier update

This works because generation records your answers in .copier-answers.yml.

Layout

copier.yml   the questionnaire and Copier settings
template/    the project scaffold copied on generation

Files under template/ ending in .jinja are rendered (the suffix is stripped); everything else -- including the GitHub Actions ${{ ... }} in CI -- is copied verbatim. See copier.yml for the questions.