Generates top-down RPG overworld games with NPC dialogue, 4-directional movement, y-depth sorting, and collectible quests. Extends the standard gamewright pipeline with rpg-specific codesmith patterns. Use when the description involves exploration, talking to NPCs, quests, or RPG-style overworld traversal.
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Generates top-down RPG overworld games with NPC dialogue, 4-directional movement, y-depth sorting, and collectible quests. Extends the standard gamewright pipeline with rpg-specific codesmith patterns. Use when the description involves exploration, talking to NPCs, quests, or RPG-style overworld traversal.
RPG Overworld
Generates Pokémon/Zelda-style top-down RPG overworld games. Layered on top of the standard pipeline — game-designer, world-architect, and codesmith all follow the usual contracts, with RPG-specific extensions defined here.
When to use
"Make an RPG village where…"
"Create a top-down RPG with NPCs and dialogue"
"Exploration game where you collect items and talk to characters"
Any game involving overworld traversal, NPC interactions, or quest-style collect-all goals
Genre tag
Set gdd.genre to "top-down-rpg" in the GDD. The pipeline handles it identically to "top-down-adventure" except for the extra codesmith patterns described below.
World Architect — RPG tileset palette
Use 5–6 tile types that create a believable overworld:
update() {
const b = this.player.body;
b.setVelocity(0);
if (!this.dialogBox.active) {
const left = this.cursors.left.isDown || this.keys.A.isDown;
const right = this.cursors.right.isDown || this.keys.D.isDown;
if (left) { b.setVelocityX(-speed); this.player.setFlipX(true); }
if (right) { b.setVelocityX( speed); this.player.setFlipX(false); }
// up/down + normalize diagonalif (b.velocity.length() > 0) {
b.velocity.normalize().scale(speed);
this.player.play('HERO-walk', true);
} else {
this.player.play('HERO-idle', true);
}
}
}
3. Y-depth sorting
update() {
// call every frame — entities at lower Y are drawn behind entities at higher Ythis.player.setDepth(this.player.y + 2);
for (const npc ofthis.npcs) npc.setDepth(npc.y + 2);
}
Standard: winCondition: "window.__gameState.crystalsCollected >= N" where N = total pickups in level.
7. Blocking movement during dialogue
Movement input MUST be skipped while this.dialogBox.active === true.
Gap checker considerations
Genre top-down-rpg passes static_check with zero errors if:
All spawns are on passable tiles
All pickups + NPCs are BFS-reachable from player spawn
Outer border is fully impassable
The dynamic fuzzer will report "no-win-progress" for collect-all games (expected — random input can't intentionally collect items). Treat this as a warning, not a failure.
Example
See examples/crystal-village/ — a village RPG where the hero collects 5 scattered crystals by exploring a 20×16 map with 3 NPCs, a water pond, trees, flowers, and cobblestone paths.