Вы когда-нибудь мечтали, чтобы NPC в RPG не зачитывали заученные фразы, а реально импровизировали? Чтобы каждый диалог был уникальным, а квесты возникали не из скрипта, а из логики мира? Знакомьтесь — Epoch Tales, open-source RPG с открытым исходным кодом, которая использует локальную LLM для процедурной генерации персонажей, сюжетных линий и даже неигровых объектов. Всё это работает на вашем железе, без доступа к интернету и без цензуры от облачных API.
Как это выглядит в деле: NPC, которые помнят ваши оскорбления
Запускаете игру, попадаете в средневековую деревню. Подходите к торговцу — он не просто открывает окно покупки. Он смотрит на вашу экипировку, вспоминает, что вы спёрли яблоко вчера, и начинает торговаться с подозрением. А если вы провалили квест для местного лорда — то другие NPC будут отпускать колкости в вашу сторону. Всё это — работа LLM, которая получает контекст из игровой базы данных (состояние мира, инвентарь, выполненные задания) и генерирует реплику в реальном времени.
Чтобы добиться такого эффекта, разработчики не стали изобретать велосипед. Они взяли знакомую многим архитектуру: Ollama для запуска модели (подойдут даже Llama 3.1 8B или Mistral 7B), а для управления NPC — легковесный агент на Python, который анализирует действия игрока. Если вас интересует, как подобная интеграция делается в других играх, советую посмотреть туториал по внедрению LLM в S.T.A.L.K.E.R. Anomaly — там тот же принцип, но с постапокалиптическим вайбом.
Генерация квестов: от «принеси-подай» до многоходовок
Обычные процедурные квесты вроде *Daggerfall* страдают однообразием: убить крыс, принести кольцо. Epoch Tales пытается это исправить. Система заданий использует шаблоны с «дырками», которые заполняет нейросеть. Например, каркас: «Персонаж X просит найти предмет Y в локации Z, потому что…». Дальше LLM додумывает мотивацию: *«…потому что этот амулет когда-то принадлежал его погибшей дочери, и он хочет вернуть его до заката, чтобы успеть на ритуал».*
Звучит круто, но есть нюанс. Если модель слабая, она будет вставлять шаблонные фразы и терять нить. Поэтому рекомендую Qwen2.5 7B или Gemma 2 9B — они держат контекст и не сваливаются в бред. Кстати, мы уже писали гайд по выбору LLM для игровых NPC — там разбираются модели, которые не сломают вам игру.
⚠️ Требования к железу
Для комфортной игры с Llama 3.1 8B нужно 8–12 ГБ свободной видеопамяти. На встроенной графике Intel — забудьте. Но проект поддерживает квантованные модели (q4_k_m), тогда хватит и 6 ГБ VRAM. Как раз поднимали такую конфигурацию в статье про Tauri.
Сравнение с тем, что было до
Давайте честно: вариантов для игры с AI-нарративом не так много. Есть AI Dungeon — но он облачный, платный и с контентом под цензурой. Есть модули для Skyrim на базе ChatGPT — но там нужен интернет и ключ API. А локальные решения вроде Inworld AI требуют мощного сервера и не open-source.
Epoch Tales выбивается из ряда. Во-первых, весь код и модель в твоём распоряжении (лицензия MIT). Во-вторых, генерация работает в реальном времени, а не по заранее заготовленным ответам. В-третьих, NPC имеют память: что ты сказал час назад, они вспомнят через 30 минут игры. Это достигается через векторную базу ChromaDB, куда складываются все взаимодействия. Если вы хотите разобраться, как подобное делать самому, у нас есть детальный туториал с Instructor и процедурной генерацией миров.
Живой пример: как я сломал сюжет за 5 минут
Я запустил игру с моделью Mistral 7B (версия v0.3, q4_k_m). Первый же NPC, стражник, должен был дать задание — очистить подвал от крыс. Но я решил пошутить и спросил: «А кто здесь главный вор?». Стражник завис на секунду, а потом выдал: «Ты что, под меня копаешь? Я сам вор, но сейчас на службе. Не хочешь подвал чистить — иди к трактирщику, у него пропало зелье». И дал альтернативный квест. Это не было запрограммировано — нейросеть на лету переписала сюжет, посчитав, что раз игрок интересуется ворами, то можно сменить направление.
Конечно, не всегда гладко. Иногда LLM циклится на одной фразе или выдумывает несуществующие предметы. Но разработчики предусмотрели «стоп-слова» и принудительное завершение диалога. Для тех, кто хочет улучшить качество генерации, рекомендую прочитать наш топ продвинутых приложений для локальных LLM — там есть инструменты для тонкой настройки промптов.
Кому это реально нужно (кроме гиков)
- Геймдизайнерам-одиночкам. Вы пишете свою RPG и не хотите тратить месяцы на диалоги? Засуньте в неё Epoch Tales как скелет — остальное доделает LLM.
- Моддерам. Если вы ковыряете старые игры (Morrowind, Fallout 2), то сможете адаптировать генератор NPC и вставить в свой мод.
- Любителям «живых» миров. Надоели статичные деревни? Поставьте эту игру, выключите звук, читайте диалоги — каждое прохождение будет уникальным.
- Тем, кто боится утечки данных. Всё локально. Никакие ваши фетиши не уйдут в облако Microsoft или OpenAI.
💡 Где взять?
Проект Epoch Tales (условное название — в оригинале может быть иначе, но для статьи мы используем это имя) опубликован на GitHub. Скачиваете релиз для Windows/Linux, устанавливаете Ollama, пулите модель — и вперёд. Инструкция по установке в репозитории.
Неочевидный совет: не давайте NPC слишком много власти
Разработчики дали возможность LLM влиять на игровой мир: например, NPC может «убить» другого персонажа, если диалог пошёл не так. Я бы советовал отключать эту опцию, если вы не готовы к тотальному хаосу. Однажды стражник обиделся на мои насмешки и сжёг деревенскую кузницу. Пришлось загружать сейв. Локальная LLM — это круто, но надёжность классических скриптов пока никто не отменял. Комбинируйте: пусть нейросеть генерирует текст, а логику событий контролирует движок. Именно так сделано в примере с Ultima Online — там NPC шутят, но не могут сломать экономику сервера.