Keep asset packs out of git and out of Godot's importer
ci / verify (push) Successful in 46s

The packs total 3.9GB, almost all of it Helton Yan's SFX shipped as 24-bit /
96kHz studio masters -- ~2MB for a single gunshot. Two guards, because they
solve different problems:

- .gitignore excludes the contents. The directory and its guard files stay
  tracked, so a fresh clone has the .gdignore in place before anyone drops
  packs back in.
- assetpacks/.gdignore stops Godot descending into the tree at all. This is the
  urgent half: tools/check.sh runs --import, which walks all of res://, so the
  next check would have imported several thousand PNGs and 2,100 of those WAVs,
  and every run after it. Verified by controlled test rather than assumed -- an
  unguarded PNG under res:// imports and gets a .import file beside it; with
  .gdignore neither happens. check.sh stays at 3.3s and .godot/imported at
  1.2MB.

The trade the .gdignore buys is that nothing in assetpacks/ can be referenced
from a scene or script. That is the intended shape: raw source on one side,
game-ready files copied into res://assets/ on the other, so adding a huge pack
costs the repo and the import step nothing.

docs/ASSETS.md records attribution, because gitignoring the packs also
gitignores their licence files. Worth flagging: four of the six packs shipped
with no licence text at all, and two of the undecided ones are demo versions,
which are often more restricted than the paid packs. Only RF Catacombs has
explicit terms (public domain, no resale). Those rows need a source URL before
anything ships.

Also removed __MACOSX and .DS_Store extraction artefacts, and left
considering_dont_use_yet/ untouched as the user's own "not chosen" marker.
This commit is contained in:
2026-09-03 23:24:54 +02:00
parent de48afcbd9
commit 20dd6bc502
6 changed files with 115 additions and 0 deletions
View File
+32
View File
@@ -0,0 +1,32 @@
# Raw asset packs
Source material as downloaded: unedited, uncropped, and mostly unused. **Not in
git** — this directory is gigabytes, and the contents are redistributable
artwork and audio that belong wherever you bought or downloaded them, not in a
code repository. Only this README and the `.gdignore` beside it are tracked, so
a fresh clone has the guard in place before anyone drops packs back in.
## Why `.gdignore`
Godot's importer walks everything under `res://`. Without the `.gdignore` here,
`tools/check.sh` — which runs `--import` — would try to import several thousand
PNGs and 2,100 studio-master WAVs on the next run, and every run after it. The
`.gdignore` makes the engine skip this tree entirely: nothing here is imported,
nothing lands in `.godot/imported/`, and nothing reaches an export.
The cost of that is the point: **files here cannot be referenced from a scene or
script.** Godot does not know they exist.
## Getting an asset into the game
Copy the specific files you need into `res://assets/`, converted to something
game-ready first. That directory *is* imported and *is* committed, so it stays
small and every file in it is one the game actually uses.
Audio in particular needs conversion. The Helton Yan pack is 24-bit / 96 kHz
stereo — studio masters, averaging ~2 MB for a single gunshot. Ship 16-bit /
44.1 kHz mono for SFX unless something specifically needs better.
Attribution and licence status for every pack is recorded in
[docs/ASSETS.md](../docs/ASSETS.md). Keep it current — the licence files
themselves are not in git, because the packs are not.