Generate game assets, locally and free by default with godogen_assets: images and transparent PNGs (Qwen-Image), textured GLB models (TRELLIS.2), rigged humanoids with generated moves and lip-synced speech, sound effects and voice lines. Paid APIs cover what the local tools can't make — Gemini / xAI Grok images, animated sprites from video, Tripo 3D, Gemini TTS voice acting, Lyria music. Use whenever a game needs generated art or audio.
93%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Assets come from godogen_assets: local generators on this machine's GPU, one command per task, free. Its checkout here is ${GODOGEN_ASSETS}, and its docs are the reference; this page is the TL;DR plus what the game needs on top. Read ${GODOGEN_ASSETS}/README.md once (conventions, a character start to finish, checking results), and a part's README up to How it works before first using its tool.
| Command | Makes | README in the checkout |
|---|---|---|
qwen-image | PNG from text; rgba: real transparency; edit -i ref.png: image-to-image | image/ |
gen3d | textured GLB from an image | mesh/ |
mia-rig | Mixamo-rigged humanoid from a GLB | rig/ |
add-moves, gen-moves | idle/walk/run/jump onto a rig; custom moves from text prompts | motion/ |
grip-prop | a prop made holdable; add-moves --hold puts it in a character's hand | motion/ |
lipsync | speaking mouth + lip-synced clip from a voice line | lipsync/ |
stable-audio | sound effects, seamless ambience loops | sfx/ |
qwen-tts | voice lines from a description, or cloned from a reference line | voice/ |
A character: qwen-image rgba (T-pose) → gen3d → mia-rig --fingers --anim none → add-moves, with gen-moves for custom moves and lipsync for speech. Props stop after gen3d; one a character holds goes on through grip-prop and add-moves --hold, never by an offset tuned in the engine.
-o into the project; without it, results land in the godogen_assets checkout.gen3d defaults to ~500k triangles and 2048² textures; pass --faces / --tex (30000 / 1024 for a character).qwen-image edit -i hero.png, prompting only what changes.python3 ${ASSET_GEN_SKILL_DIR}/tools/grid_slice.py kit.png -o out/ --grid 2x2 --names "a,b,c,d".-o extension. Bevy's default features decode only Ogg Vorbis, so write .ogg for Bevy.${GODOGEN_ASSETS}/README.md, Checking results) and read audio as a spectrogram (${GODOGEN_ASSETS}/sfx/README.md).Moves that drive gameplay — root-motion locomotion, attacks, state machines, anything held, ridden or aimed, characters that touch each other: read ${ASSET_GEN_SKILL_DIR}/motion.md.
Some 3D is better built than generated. A bpy script run headless (blender -b -P make_turret.py, exporting with bpy.ops.export_scene.gltf) is often the better path when:
Check what it writes like any GLB. Without blender on PATH, asset-blender script.py -- args runs the script in godogen_assets' Blender (its print goes to stderr).
${ASSET_GEN_SKILL_DIR}/api.md covers Gemini / xAI Grok images, animated sprites from Grok video, Tripo 3D, Gemini TTS and Lyria music. Read it only when an asset needs one:
none), or a command answers not installed — that part isn't set up;qwen-tts lacks, a rig for a non-humanoid;Paid calls cost real money: confirm with the user before the first one.
Track every generated asset in README.md with an in-game Size column — without it, coders consistently scale assets wrong. gen3d models come out 1.0 tall with no real scale, so this column is where their size is decided:
4m long, 1.8m tall, 0.3m2m tile1920x1080, fullscreen128x128 px1.2 s one-shot, 8 bars / 22.6 s loop| Name | Description | Size | Path | Cost |
|---|---|---|---|---|
| crate | wooden supply crate | 0.8m | ${RUNTIME_ASSET_DIR}/glb/crate.glb | local |
| theme | village shop music | 8 bars / 22.6 s loop | ${RUNTIME_ASSET_DIR}/audio/shop_loop.ogg | 4¢ |
htdt/godogen
40542b6
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.