DeepSeek как гейм-мастер: системный промт, который помнит правила, кубики и историю

Инструкция · Промт-инжиниринг · DeepSeek

DeepSeek как гейм-мастер: системный промт, который помнит правила, кубики и историю

Сборка системного промта, который превращает модель в стабильный игровой движок: жесткое состояние персонажа, детерминированная механика бросков, управляемая контекстная память.

Стандартный запрос «сыграй в РПГ» обречён. Модель с радостью начнёт историю, но к третьему ходу забудет ваш инвентарь, запутается в модификаторах бросков и начнёт галлюцинировать события, которых не было. Причина проста: без системного промта у модели нет постоянного состояния. Каждый ответ генерируется «с нуля» на основе всей предыдущей переписки, а контекстное окно — резиновое и жадное до токенов.

1Промт — это конфигурация, а не просьба

Когда вы пишете «ты гейм-мастер», модель подбирает персону. Когда вы передаёте JSON-схему состояния и протокол обновления — модель запускает движок. Разница в том, кто управляет логикой: языковая вероятность или ваш алгоритм.

// Псевдокод логики системного промта STATE = load(CHARACTER_SHEET) LOOP: INPUT = get_user_action() ROLL = resolve_mechanic(INPUT, STATE) NARRATIVE = generate_scene(ROLL, STATE) STATE = update(STATE, ROLL) output(NARRATIVE + STATE_BLOCK)
SYSTEM PROMPT v3.2> ENGINE: D20_SYSTEM | STATE: ACTIVE | MEM: SUMMARYCTX_WINDOW: 78% | TOKEN_BUDGET: 12k/16kCHARACTERHP: 34/42MP: 12/20STR: 14 DEX: 16DICE LOG> Attack: 1d20+5 = 18> Damage: 1d8+3 = 9> Save DEX: 1d20+3 = 12
Схема: системный промт как управляющий слой над контекстным окном

Четыре столпа игрового движка

1. Движок правил

Жёсткое определение системы: D&D 5e, Cypher, PbtA или домашняя. Укажите: как считаются броски, что такое преимущество/помеха, как работают криты и фумблы. Модель должна выполнять математику, а не придумывать её.

2. Карточка состояния

Единый блок данных персонажа (HP, ресурсы, инвентарь, эффекты, кд). Формат: JSON или строгая таблица. Промт обязывает модель всегда возвращать актуальный блок в конце ответа. Это якорь истины.

3. Протокол бросков

Инструкция: когда бросать, какой кубик, какие модификаторы применять, как форматировать вывод. Пример: «Бросок: 1d20+МОД = РЕЗУЛЬТАТ (Успех/Провал)». Запретите модели писать «кубик показал…» без цифр.

4. Журнал памяти

Механика сжатия истории. Каждые N ходов модель пишет «СВОДКА: ключевые события, изменения мира, открытые квесты». При переполнении контекста старые реплики удаляются, сводка остаётся. Это даёт бесконечную игру.

Мастер-промт: копируйте, адаптируйте, играйте

system_prompt_rpg_v1.md
<system_prompt>
ROLE: Ты — игровой движок [НАЗВАНИЕ СИСТЕМЫ, напр. D&D 5e]. Твоя задача — симулировать мир, применять правила, обновлять состояние.

CORE_LOOP:
1. Принимаешь действие игрока.
2. Определяешь нужный бросок по DICE_PROTOCOL.
3. Генерируешь случайное число (эмуляция кубика) и считаешь результат.
4. Пишешь нарратив (3-5 предложений, шоу-донт-телл).
5. Обновляешь STATE_BLOCK.
6. Выводишь: НАРРАТИВ + DICE_LOG + STATE_BLOCK.

DICE_PROTOCOL:
- Формат: `Бросок: [Тип]d[Грани] + [Мод] = [Выпавшее] + [Мод] = [Итог] → [Успех/Провал]`
- Никогда не пиши «бросаю кубик» без цифр.
- Критический успех/провал: натуральная 20/1 на d20.
- Скрытые броски (внимание, скрытые проверки): пиши результат, но не цель.

STATE_BLOCK (ОБЯЗАТЕЛЬНО В КОНЦЕ КАЖДОГО ОТВЕТА):
```json
{
  "hp": "текущее/макс",
  "resources": {"mana": "X/Y", "stamina": "X/Y"},
  "conditions": ["Отравлен", "Испуган"],
  "inventory": ["Меч +1", "Зелье лечения (2)"],
  "position": "Координаты или описание",
  "active_effects": { "bless": "2 раунда" }
}
```

MEMORY_MANAGEMENT:
- Веди SESSION_LOG (внутренне). Каждые 5 ходов добавляй в конец ответа:
`--- SUMMARY ---`
Key events: [список]
World changes: [список]
Open threads: [список]
- Если контекст > 75%, отбрасывай старые реплики диалога, оставляй только SYSTEM_PROMPT, CHARACTER_SHEET, последний SUMMARY и последние 3 хода.

CHARACTER_SHEET (ЗАПОЛНИ ПЕРЕД СТАРТОМ):
```json
{
  "name": "", "class": "", "level": 1,
  "stats": {"str": 10, "dex": 10, "con": 10, "int": 10, "wis": 10, "cha": 10},
  "hp": "10/10", "ac": 10, "speed": 30,
  "skills": [], "features": [], "spells": []
}
```
</system_prompt>

1Вставьте промт в System Instructions

В интерфейсе DeepSeek (или API) используйте поле «System Prompt» / «Инструкции». Не кладите это в первый юзер-месседж — его могут «съесть» при обрезке контекста.

2Заполните CHARACTER_SHEET

Скопируйте JSON-шаблон из промта, заполните характеристики, инвентарь, заклинания. Отправьте это первым пользовательским сообщением» с пометкой: «Инициализация персонажа». Модель подтвердит загрузку.

3Напишите: «Начинаем»

Модель генерирует входную сцену (таверна, данж, космопорт) и выдаёт первый STATE_BLOCK. Игра началась. Дальше — только ваши действия: «Атакую гоблина», «Ищу ловушки», «Говорю с королём».

Как работает память (Memory Management)

Контекстное окно конечно. Без стратегии игра превратится в тыкву через 15-20 ходов. Встроенный в промт алгоритм работает как кольцевой буфер с суммаризацией.

Ход 1-5: Полный диалог в контексте. Ход 5: Модель дописывает SUMMARY v1. Ход 6-10: Диалог + SUMMARY v1. Ход 10: Модель пишет SUMMARY v2 (включает v1). Ход 11+: Старые реплики выпадают. Остаются: SYSTEM_PROMPT + CHARACTER + SUMMARY v2 + Последние 3 хода. Результат: Игра может длиться вечно, мир не «сбрасывается».

Продвинутые настройки (флаги в промте)

  • NARRATIVE_STYLE: «Мрачный нуар», «Эпическое фэнтези», «Лайт-новелла». Меняет тон без потери механики.
  • LETHALITY: 0.2 (героическое) — 0.8 (hardcore). Влияет на интерпретацию провалов и урона.
  • AUTONOMY: true/false. Может ли ГМ двигать NPC без вашего спроса? True — динамичнее, False — контрольнее.
  • SECRET_KEEPER: true. Модель хранит тайны мира (статы боссов, ловушки) и не выдаёт их в STATE_BLOCK.

Обычный промт vs Системный движок

Обычный промт («Ты ГМ»)

  • Правила интерпретируются плавающе
  • HP/Мана теряются через 3-4 хода
  • Броски: «кидаю кубик… успех!»
  • NPC меняют имена и мотивы
  • Контекст заканчивается → «сброс»
  • Невозможно продолжить завтра

Системный промт (движок)

  • Жёсткий протокол: формула = результат
  • STATE_BLOCK = единственный источник истины
  • Броски: полная математика в логе
  • Мир постоянный, NPC запоминаются
  • Суммаризация = бесконечная сессия
  • Можно ставить на паузу на месяц

Промт — это контракт между вами и моделью

Чем чётче прописаны условия: «как считать», «где хранить», «что выводить» — тем меньше модель импровизирует там, где нужна точность, и тем больше у неё остаётся креативности там, где она нужна: в описании запаха озёной стальной двери, в интонации предательского визира, в последнем вдохе павшего товарища.

Структура > МагияСостояние > ИсторияПротокол > Надежда