원클릭으로
testing-furts-game
Test the FuRTS text-based RTS game demo end-to-end. Use when verifying game UI, sidebar, controls, or gameplay changes.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Test the FuRTS text-based RTS game demo end-to-end. Use when verifying game UI, sidebar, controls, or gameplay changes.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | testing-furts-game |
| description | Test the FuRTS text-based RTS game demo end-to-end. Use when verifying game UI, sidebar, controls, or gameplay changes. |
map.js, entities.js, index.html) — serve via HTTP, not file://python3 -m http.server 8080 from the repo roothttp://localhost:8080 in ChromefindPath(sx, sy, ex, ey) should return non-null array of {x,y} waypointsisWalkable(gx, gy) should return false for rocks (obstacle layer), buildings (building layer), and water (terrain layer)applyUnitSeparation() runs every frame to push overlapping units apartisWalkable() checks terrain (water=impassable), obstacle, and building layersThe enemy AI is very aggressive — it attacks within ~30 seconds and can destroy the player base quickly. Always disable the AI at the start of testing via console:
window._origEnemyAI = window.enemyAI;
window.enemyAI = function() {}; // disable
Re-enable when testing AI behavior: window.enemyAI = window._origEnemyAI;
The browser console has access to all game globals (entities, mapLayers, camera, CELL, MAP_W, MAP_H, etc.). Use it to:
w.x = gx * CELL + CELL/2; w.y = gy * CELL + CELL/2;camera.x = gx * CELL; camera.y = gy * CELL;mapLayers.obstacle[gy][gx] = 1; (rock)mapLayers.terrain[gy][gx] = TERRAIN_WATER; (water, impassable)isWalkable(gx, gy)findPath(sx, sy, ex, ey)entities.filter(e => e.type === 'worker' && e.team === 0)For pathfinding tests, random rock placement may not create good obstacles. Use console to create a rock wall:
for (let y = 20; y <= 30; y++) mapLayers.obstacle[y][40] = 1; // vertical rock wall
Then teleport a unit to one side and command it to the other side.
applyUnitSeparation() skips them (the d > 0.01 guard prevents division-by-zero). In normal gameplay this rarely occurs since the movement command distributes units to different grid offsets.R to restart the game (only works after game over)mapLayers.obstacle to find or create obstacles.mapLayers.terrain. Sand slows units (0.7x speed), water blocks movement.overflow-y: auto so it scrolls if content overflowsNone — the game runs entirely client-side with no external services.