ワンクリックで
games-isometric
Game 2.5D Isometric — tile engine, coordinate conversion, depth sort, fog of war, pathfinding A*. Tối ưu cho map lớn 100×100.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Game 2.5D Isometric — tile engine, coordinate conversion, depth sort, fog of war, pathfinding A*. Tối ưu cho map lớn 100×100.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Expert in building 3D experiences for the web - Three.js, React Three Fiber, Spline, WebGL, and interactive 3D scenes. Covers product configurators, 3D portfolios, immersive websites, and bringing depth to web experiences. Use when: 3D website, three.js, WebGL, react three fiber, 3D experience.
Game art principles — art style, color theory, animation principles, asset pipeline
Game design principles — core loop, GDD, player psychology, difficulty balancing, progression
Orchestrator game — route to implementation skill (pxhopencode) + principle-based sub-skill (agent-skills-hub)
Mobile game principles — touch input, battery, thermal, app stores, monetization
Multiplayer game principles — networking architecture, synchronization, security, matchmaking
| name | games-isometric |
| description | Game 2.5D Isometric — tile engine, coordinate conversion, depth sort, fog of war, pathfinding A*. Tối ưu cho map lớn 100×100. |
Tham khảm genre: skills/_shared/game-genre-reference.md — chọn architecture + tránh anti-patterns theo thể loại.
Xem file chi tiết:
game-h5-2.5d.md — Implementation (coordinate conversion, tile map, depth sorting, pseudo-3D stacking, click detection)game-design-h5-2.5d.md — Game design (tile types, fog of war, pathfinding A*, UX, selection)npx vitest run | npx vitest --coverage (≥ 80%)
Helper: skills/games-testing/templates/phaser-test-helper.ts — createHeadlessGame, advanceTime; test coordinate conversion, depth sort, A*
const TILE_W = 64, TILE_H = 32;
function cartToIso(x: number, y: number, z = 0) {
return {
x: (x - y) * TILE_W / 2 + canvas.width / 2,
y: (x + y) * TILE_H / 2 - z * TILE_H,
};
}
function isoToCart(sx: number, sy: number) {
const cx = sx - canvas.width / 2;
const cy = sy;
return {
x: Math.floor((cx / (TILE_W / 2) + cy / (TILE_H / 2)) / 2),
y: Math.floor((cy / (TILE_H / 2) - cx / (TILE_W / 2)) / 2),
};
}
| Excuse | Reality |
|---|---|
| "Depth sort mỗi frame cũng ổn" | Map 100×100, 100 entity = sort 10k object/frame |
| "Fog of war không cần" | Player thấy cả map = mất chiến thuật |
| "A* không cần, enemy đi thẳng" | Enemy stuck vào tường |