odysseythink
@odysseythink
Public Skills
godot-tilemap
by odysseythink
Build and edit tile-based 2D levels in Godot 4.7 with TileMapLayer and TileSet: paint layers, set up collision/navigation/custom-data on tiles, autotile with terrain sets, and read/write cells from code (set_cell, get_cell_tile_data, local_to_map). Use when working with TileMapLayer nodes, .tres TileSets, autotiling, or migrating a deprecated TileMap node to TileMapLayer.
visual-novel
by odysseythink
Build a visual novel: a branching script, character and background display, a text box with choices, save/load, backlog, and skip/auto. Use for a VN, dating sim, or branching story game.
save-systems
by odysseythink
Design save/load for game state — choosing what to serialize, file formats, save slots, atomic crash-safe writes, schema versioning and migration, and autosave. Engine-neutral. Use when the user mentions save system, save/load, game state persistence, save slots, autosave, save file corruption, or migrating old saves to a new version.
phaser-core
by odysseythink
Set up and debug a Phaser 4 game: the Game config, the Scene lifecycle (init/preload/create/update), the asset loader, cameras, and cross-scene communication. Use when building or debugging a Phaser game — when the user mentions Phaser, Phaser.Game, Phaser.Scene, preload/create/update, this.load, this.add, or scene transitions. For Arcade Physics movement/collisions use phaser-arcade-physics.
unity-animation
by odysseythink
Drive Unity 6.3 LTS character animation with Animator Controllers: states, transitions, parameters, blend trees, animation layers, and humanoid Avatar IK. Use when wiring an Animator, setting parameters from script (SetFloat/SetBool/SetTrigger), building blend trees, or when the user mentions Animator, Mecanim, state machine, blend tree, or .controller.
godot-3d-essentials
by odysseythink
Set up a Godot 4.7 3D scene: Node3D transforms, Camera3D, lighting (DirectionalLight3D/OmniLight3D), WorldEnvironment for sky/ambient/tonemap/post, MeshInstance3D materials, and GridMap for tile-based 3D levels. Use when building a 3D scene in a Godot project, placing cameras/lights, configuring environment and post-processing, or working with Node3D/.tscn 3D content and GridMap.
steam-publish
by odysseythink
Publish or update a game on Steam with Steamworks and SteamPipe: configure depots and packages, upload builds with steamcmd, set a build live on a branch, and run the release checklists. Use for Steam publishing, app_build.vdf/steamcmd uploads, depots, beta branches, or a store page release.
unreal-behavior-trees
by odysseythink
Build NPC AI in Unreal Engine 5 with Behavior Trees and Blackboards: composites (Selector/Sequence), tasks, decorators, services, and running the tree from an AIController. Use when creating enemy/NPC AI, BT_/BB_ assets, custom BTTask or BTService nodes, or when the user mentions Behavior Tree, Blackboard, AIController, BTTask, decorator, or service.
godot-audio
by odysseythink
Play and mix audio in Godot 4.7: AudioStreamPlayer (2D/3D variants), audio buses with volume/mute and effects, music vs SFX routing, db/linear volume, and precise sync-to-beat playback timing. Use when playing sounds or music in a Godot project, routing AudioStreamPlayer nodes to buses, adjusting bus volume via AudioServer, or syncing gameplay to the beat.
pixijs-rendering
by odysseythink
Build a PixiJS v8 render layer: create the async Application, load textures with Assets, compose the scene graph with Container and Sprite, drive the ticker loop, wire pointer events, and group draws with render groups. Use when building or debugging PixiJS v8 — when the user mentions PixiJS, Pixi, Application, app.stage, Container, Sprite, Assets.load, app.ticker, or eventMode. Pins the v8 async init() API.
godot-export
by odysseythink
Export and build a Godot 4.7 project for distribution: install export templates, define export presets (Windows/macOS/Linux/Web/Android), run headless command-line exports for CI, and handle web (HTML5) COOP/COEP and dedicated-server/headless builds. Use when exporting a Godot game, configuring export_presets.cfg, building for web/desktop/mobile, or automating builds from the command line.
bevy-ecs
by odysseythink
Structure a Bevy app around its Entity Component System: build the App with plugins, define Component/Resource types, write systems with Query/Res/Commands, filter and order systems, and use the Time resource for frame-rate-independent motion. Use when building or debugging a Bevy game in Rust — when the user mentions Bevy, ECS, App::new, add_systems, Query, Commands, components/systems, or a Cargo.toml depending on bevy.
threejs-materials-lighting
by odysseythink
Light and shade a three.js scene: choose materials (MeshStandardMaterial PBR vs unlit MeshBasicMaterial), add ambient/hemisphere/directional/point/spot lights, turn on shadow maps, and use an environment map (IBL) for realistic reflections. Use when a three.js model looks black, flat, or wrong — when the user mentions three.js materials, MeshStandardMaterial, lights, shadows, envMap, or PBR. For renderer/loop setup use threejs-scene-setup; for loading models use threejs-gltf-loading.
ai-behavior-trees-utility-ai
by odysseythink
Build a production behavior-tree runtime (Blackboard, action/condition leaves, sequence/selector/parallel composites, decorators) and a Utility AI system (response curves — linear, exponential, sigmoid, quadratic — considerations, and action evaluators), plus hybrid BT-drives-Utility agents. Use when implementing a reusable behavior-tree or utility-based decision system, or tuning enemy/NPC decisions beyond a simple FSM, or when the user mentions behavior tree, blackboard, decorator, selector, sequence, tick status, utility AI, response/scoring curve, or consideration. For choosing between FSM/BT/steering or for pathfinding, use game-ai; for Unreal's BehaviorTree/Blackboard assets, use unreal-behavior-trees.
godot-gdscript
by odysseythink
Write idiomatic GDScript for Godot 4.7: static typing, the node lifecycle (_ready/_process/_physics_process), @export/@onready/@tool annotations, signals, and await for asynchronous flow. Use when editing .gd scripts in a Godot project (project.godot), writing or debugging GDScript, or porting 3.x GDScript to 4.x (function signatures, yield to await, export to @export).
physics-tuning
by odysseythink
Tune game physics for stable, good-feeling motion — fixed vs variable timestep, render interpolation, mass/gravity/drag, continuous collision detection (CCD) to stop tunneling, fixing jitter, and collision layers/masks. Engine-neutral. Use when the user mentions physics feel, jitter, tunneling, fixed timestep, FixedUpdate, CCD, bouncing/unstable physics, or collision layers.
input-systems
by odysseythink
Architect game input — action mapping (abstracting keys into named actions), rebinding with conflict detection and persistence, multi-device support (keyboard, gamepad, touch), analog deadzones, and feel features like input buffering and coyote time, plus accessibility. Engine-neutral. Use when the user mentions input mapping, rebind controls, gamepad support, deadzone, input buffering, coyote time, or accessible controls.
game-ui-ux
by odysseythink
Design and build game UI/UX — HUDs, menus, and overlays — that survive every screen: anchor- based responsive layout, resolution/aspect scaling and safe areas, keyboard/gamepad focus navigation, a screen/menu state stack, and event-driven (not polled) HUD updates. Engine- neutral patterns that pair with the detected engine's UI skill. Use when the user mentions HUD, health bar, main menu, pause menu, settings screen, UI layout, anchors, UI scaling, aspect ratio, safe area, controller/keyboard menu navigation, or wiring UI to game state.
motion-design
by odysseythink
"Motion and interaction craft for UI that feels right — easing curves, durations, springs, gesture physics, and animation review. Use when building, tuning, or reviewing UI motion of any kind (games, web apps, tools): micro-interactions, transitions, hover/press feedback, drag/swipe gestures, staggered lists, loaders, or when the user says an interaction feels sluggish, janky, bouncy, or lifeless. Also for 'what is this animation called' naming questions (动效/动画/手感/交互反馈/缓动)."
idea-generator
by odysseythink
Systematically generate startup idea candidates using 8 proven recipes adapted for the user's specific context (skills, industry exposure, connections, assets). Use this skill whenever the user is stuck in "don't know what to build" mode, says "I need ideas", "what should I work on", "help me brainstorm directions", "I'm not finding anything", or has been in open exploration for 2+ weeks without locking a direction. Also trigger when the user finishes a round of idea-evaluator scoring and all candidates scored ≤4, indicating the current idea pool is exhausted and needs replenishment. This skill outputs a ranked list of concrete idea candidates ready to be fed into idea-evaluator. It is a DIVERGENT tool (expand options) that pairs with idea-evaluator (CONVERGENT tool, narrow options). Do not use this skill if the user already has a clear direction — use idea-evaluator instead.
idea-generator
by odysseythink
Systematically generate startup idea candidates using 8 proven recipes adapted for the user's specific context (skills, industry exposure, connections, assets). Use this skill whenever the user is stuck in "don't know what to build" mode, says "I need ideas", "what should I work on", "help me brainstorm directions", "I'm not finding anything", or has been in open exploration for 2+ weeks without locking a direction. Also trigger when the user finishes a round of idea-evaluator scoring and all candidates scored ≤4, indicating the current idea pool is exhausted and needs replenishment. This skill outputs a ranked list of concrete idea candidates ready to be fed into idea-evaluator. It is a DIVERGENT tool (expand options) that pairs with idea-evaluator (CONVERGENT tool, narrow options). Do not use this skill if the user already has a clear direction — use idea-evaluator instead.
subagent-driven-development
by odysseythink
ALWAYS invoke this skill when executing an implementation plan with independent tasks in the current session — e.g. "execute this plan here" or "use subagents for this plan". Dispatches a fresh subagent per task with two-stage review (spec compliance, then code quality). For separate-session execution use executing-plans instead.
dispatching-parallel-agents
by odysseythink
ALWAYS invoke this skill when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies — e.g. the user asks to "run these in parallel", "dispatch agents", or "can these be done at the same time". Screens the tasks for true independence and dispatches each with a self-contained brief.
subagent-driven-development
by odysseythink
ALWAYS invoke this skill when executing an implementation plan with independent tasks in the current session — e.g. "execute this plan here" or "use subagents for this plan". Dispatches a fresh subagent per task with two-stage review (spec compliance, then code quality). For separate-session execution use executing-plans instead.