open-game-skills
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 6 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Open-source agent skill cluster for games: engine-neutral feel/camera/combat + studio presets (Nintendo/Zelda, Capcom, Konami, Blizzard, indie) + Three.js/PixiJS/Unity/Unreal/Godot adapters + 2D/Spine + art pipeline. by jammyfu / PaintingCoder
open-game-skills
English · 简体中文 · 繁體中文 · 日本語 · 한국어
Generic agent skills for making games.
Speak normally. The dispatcher picks skills and columns.
Studios and engines are columns you stack — not games you clone.
Open-source skill cluster for OpenClaw, Claude Code, Codex, Cursor, and anything that reads SKILL.md.
Speak first
Install the pack. Point the agent at skills/SKILL.md. It loads dispatcher and answers in this shape:
USE:
- <skill> / <column>
ENGINE: none | unknown | custom | threejs | pixijs | phaser | cocos | godot | unity | unreal
ASK: <one necessary question or empty>
DEFER: <later phases or empty>
You do not name files. At most three specialized skills (including assets/2D) plus one necessary engine per phase. Continue with deferred work. none means design-only work needs no engine; unknown means unresolved; custom means an actual custom runtime, not a guessed default.
Read the shared contract for scope and evidence rules. The complete generated catalog lists every skill; the tables below are highlights, not the full inventory.
| You say | Agent should load |
|---|---|
| Capcom-like 3D fighter | fighting-design / grounded-footsies · action-feel / short-special · kb-mouse-map / fighter-plane |
| Open world, no quest arrows | world-map / open-air · camera-anti-clip / orbit-third |
| Jump feels floaty | platform-jump · jump-leniency |
| Can a stranger finish this? | gameplay-validation / real-input |
| Stun is too long / elite has no punish | hitstun-recover · enemy-kit-balance |
| Cutscene should give the stick back | cutscene-handoff |
| Invasive low-angle character framing | camera-modesty / modest |
| Moving platform + lava | moving-platform · hazard-volume |
| Branching dialogue | dialogue-flags |
| Rhythm timing / deckbuilder | rhythm-judge or deck-build |
How it stacks
engine adapter custom / three.js / PixiJS / Phaser / Cocos / Godot / Unity / Unreal
↓
discipline feel · kit · traversal · camera · world · validate …
↓
one column short-special · consume · drift-kart · region-tier …
One combat clock per actor. One wear column per item. A studio name only picks columns.
Engine adapters bind six primitives: poll_input · now_logical_frame · play_pose · query_hits · apply_knockback · juice_hook.
Iron laws
- Hitstop ≠ hitstun. Hitstop freezes both colliding clocks. Hitstun is what the victim cannot do after that. Advantage = victim first-action tick − attacker first-action tick. Stun minus remaining recovery is only the equal-clock special case.
- Do not balance a monster by stealing player i-frames or stretching player stun. Tune tell, recover, cooldown, then damage, then HP.
- A teleported / unlocked / debug session is not a natural clear. Label it.
- IAP and cosmetics do not change cancel windows or hurtboxes.
- Do not copy a finished stage or frame table into the rules. Columns only.
Frame windows and accept tests live in each SKILL.md.
Catalog highlights (one line each)
Feel & clock
| Skill | What it is for |
|---|---|
| action-feel | Buffer, cancel, hitstop, and the combat clock. Ask the column first. |
| combo-design | Confirm routes and decay. Infinite stun is a bug. |
| hitstun-recover | How long the victim cannot act after hitstop ends. |
| knockback-launch | Pop-up and launch tables, not a second gravity. |
| knockback-body | Sweep the walk capsule so a launch does not embed in a wall. |
| landing-lag | Grounded recover after an aerial. Empty hop is short; attack land is long. |
| juice-vfx | Flash and shake after the logical hit, never instead of it. |
| audio-feel | Beds and one-shots on the same clock. Retry must not stack the old track. |
| haptic-rumble | Pad rumble on the juice beat. Off must not change windows. |
| super-meter | Super / burst as a published bar. It does not silently rewrite hitstop. |
Combat kit
| Skill | What it is for |
|---|---|
| fighting-design | Neutral, space, and grounded-footsies vs air-juggle columns. |
| enemy-kit-balance | One job per body. Tune tell and punish before HP. |
| attack-tell | Startup the player can read. A flash is never the only warning. |
| hyper-armor | Armor as data on the move, after the tell. |
| parry-guard | Block and parry windows as move rows. |
| dodge-iframe | I-frames live on the dodge row, not as a hidden global. |
| throw-tech | Grab vs strike. A throw box is not a punch box. |
| wakeup-oki | Knockdown and get-up options. Infinite down is a bug. |
| boss-design | Phases swap jobs. A phase is not silent extra damage. |
| hitbox-hurtbox | Strike vs hurt vs grab volumes on the logic tick. |
| collision-layers | Who hits whom. The render mesh is not the hurtbox. |
Traversal
| Skill | What it is for |
|---|---|
| locomotion | Walk, run, analog vs snap. One loco graph per actor. |
| platform-jump | Height, apex time, coyote, buffer. Levels must work without coyote. |
| moving-platform | Rider inherits platform velocity. Crush is published or yields. |
| climb-vault | Mantle and climb as verbs with stamina cost. |
| grapple-swing | Hook is a move, not flight. |
| swim-water | Surface vs dive, breath clock, exit onto ground. |
| hazard-volume | Spikes, lava, tick damage. Tell before the first tick. |
| ik-foot-locking | Planted feet on slopes. IK is presentation, not a second collider. |
Camera & input
| Skill | What it is for |
|---|---|
| camera-anti-clip | Keep the body on screen. Do not tunnel through walls. |
| camera-modesty | Keep character framing modest. Reject invasive low angles and private-zone close-ups. |
| lock-on-target | Lock mark, facing, and camera agree. Occlusion and death drop lock. |
| kb-mouse-map | Jobs to keys/mouse per genre. Look is not a gesture. |
| browser-input | Pointer lock fallback, touch split, menus vs play. |
| cutscene-handoff | Scene owns the camera, then returns look + verbs on a marked point. |
| input-design | Few buttons, context layers, no stolen menu keys. |
World & growth
| Skill | What it is for |
|---|---|
| world-map | How information is earned. Player pins, not full-map quest arrows. |
| ability-gate | Teach the verb on the safe side of the door. |
| skill-tree | Options, not silent +frames. |
| difficulty-design | Space, resources, or numbers — pick one scaler. |
| equipment-progression | Replace / tree / affix / fuse / eternal, per slot. |
| durability-economy | Consume, sharpness, repair, or unbreakable. One column per item. |
| dialogue-flags | Choices write flags, not hitstun. |
Validation
| Skill | What it is for |
|---|---|
| gameplay-validation | Logic green ≠ a stranger can finish. Separate game bugs from harness bugs. |
| gameplay-capture | Select real-challenge, feature-demo or debug-stage; label altered unlocks. |
| game-planning | Smallest playable beat before the map grows. |
| game-localization | Glossary, fonts, layout. Combat text must stay readable. |
Other genres
| Skill | What it is for |
|---|---|
| racing-feel | Drift / boost / grip columns. No silent rubber-band. |
| rhythm-judge | Timing windows against a declared song or action clock, with calibrated input timestamps. |
| deck-build | Cards are verbs. They do not buy cancel windows. |
| roguelike-run | One seed, one death rule. Meta unlocks options, not dark damage. |
| game-monetization | Play first. Cosmetics do not change judgment. |
Engines
| Skill | What it is for |
|---|---|
| custom | Bind the six primitives on your own loop. |
| threejs | Browser 3D adapter. |
| pixijs | Browser 2D adapter. |
| phaser | Phaser browser 2D adapter. |
| cocos | Cocos / minigame adapter. |
| godot | Godot adapter. |
| unity | Unity adapter. |
| unreal | Unreal adapter. |
Missing name? Say it in speech. Dispatcher maps synonyms in ZH / EN / JA / KO.
Install
git clone https://github.com/jammyfu/open-game-skills.git
cd open-game-skills
python3 tools/install.py --target "$HOME/.openclaw/workspace/skills"
python3 tools/install.py --target "$HOME/.claude/skills"
Then talk. Do not paste the catalog into the prompt.
The target is your configured agent skills directory; these paths are examples. The installer creates parents and refuses unrelated existing files or links. Use --dry-run to preview, or --copy when symlinks are unavailable (copies require manual updates). Python 3.10+ is required; on Windows use python and an explicit path. Keep the whole pack together. Host auto-discovery still needs separate validation. See development checks.
Update an existing installation
Run from the repository after committing or separately saving your local changes. A diverged branch must be reconciled; do not force-reset it.
git switch main
git pull --ff-only origin main
Symlink installations use the updated source immediately. For --copy installations, explicitly back up or move the old installed directory before copying again; the installer does not overwrite it. Updating this pack does not update a game or reconfigure an agent host.
Development checks
Use Python 3.10+ in a virtual environment. Run from the repository root. On Windows, replace python3 with python in these examples.
python3 -m pip install -r requirements-dev.txt
python3 -m unittest discover -s tests -v
python3 tools/skill_quality.py --check-catalog
After adding, removing or renaming a skill, regenerate the catalog and rerun the tests:
python3 tools/skill_quality.py --write-catalog --check-catalog
These commands check metadata, local references, catalog consistency, installer behavior and shared README facts. They do not establish LLM routing accuracy, engine compatibility, human playability or translation quality. See CONTRIBUTING.md for the verification scope. Remaining deep skill reviews are not implied complete.
Engineering skills
Each skill includes a contract example and normal, boundary and adversarial evaluation scenarios. These are authored cases, not executed tests.
| Skill | Responsibility |
|---|---|
| game-state-flow | Whole-game transitions, stale tasks and idempotent settlement. |
| asset-runtime | Loading, shared leases, cancellation and resource disposal. |
| procedural-generation | Versioned generation, reachable progression and bounded repair. |
| terrain-surface | Chunk seams, slopes, shoreline and collision agreement. |
| world-streaming | Cell readiness, residency, fast travel and persistent deltas. |
| physics-interaction | Pushing, carrying, throwing and motion ownership. |
Workflow · Scoped registry · Evaluation records
python3 tools/engineering_quality.py
The registry covers these six contracts only. The command checks structure and imported-record consistency, not model behavior; without results all 18 cases are not-run. It does not invoke a model or certify an engine implementation.
License
MIT. Game names belong to their owners. Skills describe public principles and selectable columns, not ripped stages or private source.
by jammyfu / PaintingCoder
Open assets before generation
Use open-asset-fixture to prepare test inputs from existing 2D/3D, animation, sound, VFX, PBR and HDRI libraries. See the reviewed source guide and usage/status reference. Prefer compatible verified local locks, then free CC0 candidates; CC-BY requires attribution opt-in. Exact requirements outrank appearance. No automatic downloads, paid-tier access or generation happens in the scripts.
python3 skills/assets/open-asset-fixture/scripts/prepare_assets.py --skill materials
python3 skills/assets/open-asset-fixture/scripts/prepare_assets.py --all-skills skills/catalog.json --output asset-plan.json
python3 skills/assets/open-asset-fixture/scripts/prepare_assets.py --skill juice-vfx --root /absolute/fixtures --locks /absolute/fixture.lock.json --pinned-only
Profiles are representative test inputs, not proof that every skill needs art. Missing profiles remain needs-requirements; missing offline fixtures block the test. needs-acquisition is only a candidate plan, and ready-for-import is still not a decode or engine pass. TheLegendOfTrump remains separately authorized asset-only input, never a gameplay oracle or presumed CC0 source.
Asset packs
Use asset-pack-intake when a project receives a finished genre asset pack (atlases, tilesets, Tiled maps, feel and audio data) described by a pack.json. It validates the manifest, maps every folder to the owning skill and plans the engine build; it never edits the art. The manifest contract is generic, not tied to one generator.
python3 skills/assets/asset-pack-intake/scripts/validate_pack.py --root /absolute/pack --plan --engine godot --style pixel-16bit
The checks are static (hashes, atlas rectangles against PNG sizes, map gids, feel provenance, no shipped code, the declared 1080p integer-scale canvas per style, and the styles.json style-switch map that must resolve every asset key in every style). Engine import, playthrough and audio perception stay not-run until evidence exists.
Practical production extensions
Modular scene assembly, cross-rig clip compatibility, identity-preserving LOD, graphics-resource recovery and first-divergence replay diagnosis. See the capability guide. The new offline tools validate declared layouts and exported traces; they do not execute a game or establish LLM gains.
scene-assembly · character-rig · model-pipeline · asset-runtime · gameplay-harness
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found