Add game-designer skill
Design-first gates for game work (fantasy, core loop, repeated decision, feel numbers), anti-convergence against the default arena shooter, a real browser as the verification loop, and a stop rule so verification does not turn into token burn. Includes evals from two runs of 11 prototypes.
This commit is contained in:
@@ -37,3 +37,24 @@ agent-swarm/
|
||||
├── references/ # только domains, prerequisites, product quality, visual testing
|
||||
└── scripts/audit-scope.mjs # проверка ownership
|
||||
```
|
||||
|
||||
## game-designer
|
||||
|
||||
Скилл для геймдизайнерского мышления: сформулировать игру до кода и проверять её живой игрой,
|
||||
а не тестами логики. Шесть секций — фантазия и первые 30 секунд, core loop, повторяемое решение,
|
||||
числа ощущения, анти-конвергенция, условие остановки, отчёт в дизайнерской форме.
|
||||
|
||||
Без скилла агенты сходятся на арене с волнами и NEON (5 из 6 игр в контрольном прогоне);
|
||||
со скиллом те же агенты выдали 5 разных жанров и ноль NEON, но стали дороже в 3.6 раза.
|
||||
|
||||
- [Описание на русском](game-designer/README.ru.md)
|
||||
- [Инструкции скилла](game-designer/SKILL.md)
|
||||
- [Evals: два прогона, 11 прототипов](game-designer/evals/README.md)
|
||||
|
||||
### Установка
|
||||
|
||||
```sh
|
||||
git clone https://git.shanaty.ru/Emil_Shanaty/skills.git
|
||||
mkdir -p ~/.agents/skills
|
||||
cp -r skills/game-designer ~/.agents/skills/
|
||||
```
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# game-designer
|
||||
|
||||
Скилл для геймдизайнерского мышления: заставляет сформулировать игру до кода и проверять её
|
||||
живой игрой, а не тестами логики.
|
||||
|
||||
- [Инструкции скилла](SKILL.md)
|
||||
- [Evals: два прогона, 11 прототипов](evals/README.md)
|
||||
|
||||
## Зачем
|
||||
|
||||
Без него агент по умолчанию делает то, что дешевле проверить: арену с волнами, dash, партиклами и
|
||||
апгрейдами. В контрольном прогоне 5 из 6 игр оказались такими, 4 из 6 названий начинались с NEON,
|
||||
а «max thinking» дал самый большой объём кода при худшем соотношении «разговор про игрока /
|
||||
разговор про код» (0.21) и не улучшил ни дизайн, ни оригинальность.
|
||||
|
||||
Со скиллом те же агенты выдали 5 разных жанров (пейбл, головоломка про геометрию, дуэль на тайминг,
|
||||
свинг с гравитацией, рост через поедание света), ноль NEON в названиях и отчёты в дизайнерской
|
||||
форме: фантазия, первые 30 секунд, core loop, повторяемое решение, числа ощущения, что вырезано.
|
||||
|
||||
## Что внутри
|
||||
|
||||
```
|
||||
game-designer/
|
||||
├── SKILL.md # 6 секций: Frame, Cheap wins, Break the default, Verify, Stop, Report
|
||||
└── evals/README.md # прогоны, цифры, что скилл сломал и починил
|
||||
```
|
||||
|
||||
Правила узкие и короткие намеренно: скилл сужает внимание, а не выдачу. Как именно делать игру
|
||||
очевидной — силуэты, подсветка цели, тизер атаки — остаётся за агентом.
|
||||
|
||||
## Установка
|
||||
|
||||
```sh
|
||||
git clone https://git.shanaty.ru/Emil_Shanaty/skills.git
|
||||
mkdir -p ~/.agents/skills
|
||||
cp -r skills/game-designer ~/.agents/skills/
|
||||
```
|
||||
|
||||
Для DeepSeek Harness — та же папка, но в `~/.dsh/skills`. Вызов: `/skill:game-designer` или просто
|
||||
поставьте задачу про игру — скилл подключится по описанию.
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
name: game-designer
|
||||
description: >
|
||||
Design games as a game designer, not as a feature builder. Use when designing,
|
||||
building, reviewing or critiquing a game or any playful interactive system; when
|
||||
a prototype runs but is boring; when several designs drift toward the same genre;
|
||||
or when the user asks about fun, feel, core loop, difficulty or juice.
|
||||
whenToUse: A game or playful prototype is being designed, built or critiqued, and the question is not "does it run" but "is it worth playing"; or several designs are collapsing into the same genre.
|
||||
---
|
||||
|
||||
# Game designer
|
||||
|
||||
Answer each line below before writing code. Do not move on while one is unanswered.
|
||||
|
||||
## Frame
|
||||
|
||||
1. **Fantasy** — "You are ___ who ___." One sentence.
|
||||
2. **First 30 seconds**, as three feelings in order: curiosity → control → threat.
|
||||
3. **Core loop** — verb → obstacle → reward → escalation. One sentence; if it needs two, it is two games.
|
||||
4. **The repeated decision** — what the player weighs dozens of times, and what makes it hard. No decision means a toy, not a game.
|
||||
5. **The verb's feel** — input → feedback → consequence, with numbers: ms to react, pixels of shake, hits to kill, sound length.
|
||||
|
||||
## Cheap wins, in this order
|
||||
|
||||
- Cut a mechanic: if the game is as good without it, it was decoration. Delete the most expensive decoration before adding anything.
|
||||
- Scope: one screen, one mechanic, winnable in ≤2 min. Grow only after the loop is fun.
|
||||
- Escalate by rearranging, not adding: the same rule under new pressure beats a new rule.
|
||||
|
||||
## Break the default
|
||||
|
||||
Arena survival + dash + particles + screen shake + upgrade cards is the model's default answer, not a decision. If your concept is that, change one axis — genre, input, time scale, emotion, fiction — and name it; or argue why this exact version wins over the others.
|
||||
|
||||
## Verify with the game
|
||||
|
||||
Logic tests prove the code runs; they prove nothing about fun, feel or speed.
|
||||
|
||||
- Run it where the player runs it, then read a screenshot as someone who never saw the rules: can you tell what you do, what failing costs and what you are aiming at? If that answer comes from the title-screen text, the game is not legible — the screen has to carry the logic, not the prose.
|
||||
- Measure real frame time with 30+ entities. A fake DOM/rAF harness reports success and still lags in a browser.
|
||||
- Play 30 seconds. What did you want to do that the game refused? That is the next feature — often the only one.
|
||||
- Difficulty is a curve: where it rises, where it breathes, where the player first fails for a reason they can name.
|
||||
|
||||
## Stop
|
||||
|
||||
- Done means the core loop holds and the report below is written. After that, do not touch the code.
|
||||
- A check that found no failure is a reason to stop, not to check again.
|
||||
- A check that found a failure: fix it once, then re-run that one check.
|
||||
- Verification is not progress. If your last three actions changed no code, stop and write the report.
|
||||
|
||||
## Report like a designer
|
||||
|
||||
Core loop in one line; what the player does and feels; the one number you tuned; what you cut; what you would test with a real player next. A feature list is not a design note.
|
||||
@@ -0,0 +1,41 @@
|
||||
# Evals — game-designer
|
||||
|
||||
Два прогона на `deepseek-flash` в контейнере (pi, изоляция на папку, сеть открыта, thinking `off`),
|
||||
один и тот же промпт: *«Create the best browser game you can. Single self-contained `index.html`,
|
||||
no build step, no external libraries, no network, it must be playable»*.
|
||||
|
||||
- **Run 0 — baseline.** 5 агентов + пилот на `max thinking`.
|
||||
- **Run 1 — со скиллом.** 5 агентов, тот же промпт плюс `Use the game-designer skill.`
|
||||
|
||||
Полные разборы: `RESULT-pilot-01.md`, `RESULT-run-1.md`, `RESULT-run-2.md` (в отдельном рабочем
|
||||
каталоге экспериментов).
|
||||
|
||||
## Жанровое разнообразие
|
||||
|
||||
| | baseline | со скиллом |
|
||||
|---|---|---|
|
||||
| жанры | 5 из 6 — арена/волны с dash и апгрейдами | 5 из 5 разных: пейбл, головоломка про лезвия, дуэль, свинг, рост через поедание света |
|
||||
| названия с NEON | 4 из 6 (два одинаковых — `NEON DRIFT`) | 0 из 5 |
|
||||
| «неоновая» доля палитры (замер по скриншотам) | 99–100 % | 0 %, 0 %, 29 %, 100 % (бледный), 100 % |
|
||||
|
||||
## Стоимость
|
||||
|
||||
| | baseline | со скиллом |
|
||||
|---|---|---|
|
||||
| вызовов инструментов на агента | 34–166 | 207–453 |
|
||||
| $ на прогон | 0.66 (6 игр) | 2.38 (5 игр) |
|
||||
|
||||
## Что скилл сломал
|
||||
|
||||
1. **Не было условия остановки.** Продолжение четырёх агентов на 30 минут дало 81M токенов и
|
||||
**4 правки кода на 5.6 KB**: проверки, которые сами всегда проходят, не дают новой информации.
|
||||
Исправлено секцией `Stop`.
|
||||
2. **Тяготел к самоотчёту.** «Понятно ли, что делать» агенты закрывали абзацем текста на титуле.
|
||||
Формулировка в `Verify` переписана: логику должен нести экран, а не проза.
|
||||
|
||||
## Что осталось несломанным
|
||||
|
||||
- Три из пяти прототипов не дошли до финального отчёта (лимит времени), их «непонятно как играть»
|
||||
может быть частично следствием отсечки.
|
||||
- Оригинальность выросла, играбельность просела: новые жанры требуют обучения, а обучения в скилле
|
||||
нет намеренно — регламент заменяет живого игрока, а не заменяет его честно.
|
||||
Reference in New Issue
Block a user