### (ИЛИ КАК Я РЕШИЛ ОТМЕНИТЬ ОДИНОЧЕСТВО В БРАУЗЕРКЕ)
> *"Захожу в таверну, а там орк с эльфом спорят о цене на кристаллы, и ОБА МЕНЯ ПОМНЯТ, как я им должен со вчерашней дуэли. Это не баг, это моя архитектура."*
---
## 🧠 ОСНОВНАЯ ИДЕЯ (ВНИМАЙТЕ, СЕЙЧАС БУДЕТ БЕЗУМИЕ)
Я устал от пустых серверов решил создать СВОЙ МИР.
Синглплеерная браузерная RPG, где НЕТ НИ ОДНОГО ЖИВОГО ИГРОКА, но мир кипит как в лучшие годы `Wizards World`.
*Где взять других игроков?*
НЕ НАДО! Я НАПИШУ ИХ САМ.
50+ ИИ-агентов с памятью, характерами, скукой, жадностью и локальным LLM на борту (`Gemma 4` через `Ollama`).
%%Спойлер: они будут провоцировать, торговаться, влюбляться, предавать и помнить ТЕБЯ годами.%%
---
## 📜 ИСТОЧНИКИ БЕЗУМИЯ (ЧТО КУДА СТЯНУЛ)
| Игра | Что украл |
|------|------------|
| Wizards World | Чат на полэкрана, кликабельный город, дуэли, зоны атаки (голова/корпус/ноги). |
| Tales of Maj'Eyal | Пошаговая гекс-карта. Без анимаций! Спрайт просто прыгает. |
| Dwarf Fortress / CDDA | Процедурная генерация мира перед стартом. Пиксельные тайтлы. |
| Mage Knight (настолка) | Колоды действий, слава, репутация, наём отрядов. |
| Gloomhaven (настолка) | ИИ монстров через колоды из 3-5 карт. Инициатива. |
| Rimworld / Kenshi | Боты сами инициируют события. Ссорятся, мирятся, идут в походы. |
> *«Я не создаю велосипед, я собираю ТАНК из лучших запчастей»*
---
## ⚔️ БОЕВАЯ СИСТЕМА (СЛОЖНАЯ, НО ПРОЗРАЧНАЯ)
* Фаза дальнего боя (если есть лук/магия):
- Выбираешь зону защиты (голова/корпус/ноги)
- Враг выбирает зону атаки
- Попал в незащищённое = полный урон. В защищённое = `10%` или блок.
* Фаза ближнего боя (если оба живы):
- Теперь выбираешь И КУДА БИТЬ, И ЧТО ЗАЩИЩАТЬ.
* Инициатива: вытягиваешь карту действия (у каждой карты свой вес).
* Карты ранений: проиграл бой — получаешь мусор в колоду. Лечись в таверне, чтобы убрать.
~Всё считается на Rust, никакой LLM в математике!~
LLM ТОЛЬКО ДЛЯ РЕПЛИК ПОСЛЕ РАСЧЁТА УРОНА.
Пример: `Бот-орк видит -15 HP и генерирует: "ЭТО ВСЁ, НА ЧТО ТЫ СПОСОБЕН?!"`
## 🤖 **ИИ-АГЕНТЫ (ТРИ КАСТЫ)**
### `VIP-боты (3-5 шт)`
- **LLM:** `Gemma 4 12B` (через Ollama)
- **Роль:** лидеры кланов, квестодатели, элитные торговцы.
- **Память:** `SQLite memories` — помнят ТВОИ ПРЕДАТЕЛЬСТВА до конца игры.
- **Пишут в чат** сами, ищут себе пати, торгуются, оскорбляют.
### `Фоновые боты (10-20 шт)`
- **LLM:** `Gemma 4 E4B` (полегче)
- Редкие реплики, простые торговые предложения.
- Могут отреагировать на оскорбление в чате.
### `Массовка (50+ шт)`
- **НЕТ LLM! ТОЛЬКО FSM (конечные автоматы).**
- Просто ходят по городу, стоят на страже, убегают при `HP<30%`.
> **Жизнь ботов event-driven:** они *НЕ ДУМАЮТ* постоянно. Только на события (игрок рядом, написали в чат, нашли лут, скучно стало — `5% шанс на тике`).
## 🏙️ **ГОРОД И КАРТА (НИКАКОЙ АНИМАЦИИ, ВЫ ПОНЯЛИ?)**
* **Город:** статичная картинка (JRPG-стиль). Кликаешь по зданиям → открывается меню.
`Таверна`, `Магазин`, `Банк`, `Арена`, `Храм`, `Гильдия`.
* **Глобальная карта:** гексы `40×40`. **Пошаговое перемещение** (как в `ToME`).
Персонаж просто *исчезает* с одного тайла и *появляется* на соседнем.
* **Генерация мира** (перед стартом, как в `Dwarf Fortress`):
1. Карта 61×61 тайлов.
2. 6 городов (по 1 на расу), названия рандомные.
3. 15-20 подземелий.
4. 50-100 ботов с рассадкой.
5. История фракций (кто с кем воюет).
%%Карта всегда разная, но структура городов фиксирована.%%
## 🎮 **ТРИ РЕЖИМА ИГРЫ (ЧТОБЫ НЕ СКУЧАТЬ)**
### 1. **Подземелья (1-2 персонажа)**
- Процедурные комнаты 5-10.
- Монстры на FSM (без LLM).
- Награда: опыт, лут, карты ранений (если проиграл).
### 2. **Осада городов (10 vs 10)**
- Идёшь с отрядом из 9 ИИ-напарников.
- Этапы: *штурм стен → уличные бои → бой с командиром*.
- Чат во время осады **полыхает** репликами от ботов:
*«Держать строй!»*, *«Они прорвались!»*, *«ЛЕЧИ МЕНЯ, ИДИОТ!»*
### 3. **Рейды на боссов (10 vs 1)**
- Босс с 3-4 фазами, уникальными атаками.
- Требуется координация: танк держит агро, хилеры лечат, дамагеры бьют.
- ИИ-напарники сами выбирают роли по своим классам.
## 💾 **ТЕХНИЧЕСКИЙ СТЕК (ВЫБРАН ОКРОВАВЛЕННЫМИ РУКАМИ)**
```rust
БРАУЗЕР RUST СЕРВЕР (127.0.0.1:3000)
┌─────────────────────┐ ┌─────────────────────────┐
│ HTML5 + CSS Grid │◄────────│ Axum (HTTP API) │
│ Чистый JS (50 строк)│ JSON │ rusqlite (SQLite) │
│ НИКАКОГО REACT! │ тайлы │ Game Loop (тики ботов) │
│ │ │ Ollama Proxy │
└─────────────────────┘ └─────────────────────────┘
```
* **Бэкенд:** `Rust` (одним exe, без Node.js)
* **Фронтенд:** `HTML + CSS Grid + ванильный JS` — чтобы не ломалось от версий браузера.
* **Базы данных:** `SQLite` (мир, боты, память, чат)
* **ИИ:** `Ollama` + `Gemma 4 12B / E4B` (локально, бесплатно)
* **Графика:** пиксельные тайтлы из `CDDA` / `Dwarf Fortress` open source.
> Никакого облака, никаких API-ключей, никакой подписки. Игра живёт в твоём ПК.
## 🧪 **ПРОИЗВОДИТЕЛЬНОСТЬ (НА 32ГБ RAM + RTX 4070)**
| Сценарий | Модель | Нагрузка | Вердикт |
|----------|--------|----------|---------|
| 10 ботов в таверне | 12B + E4B | `30-40% GPU` | ✅ отлично |
| Дуэль с игроком | 12B | `10-20% GPU` | ✅ моментально |
| 5 одновременных дуэлей | 12B batching | `60-80% GPU` | ✅ нормально |
| 50 ботов в городе (скрипты+редкие LLM) | E4B + FSM | `40-50% GPU` | ✅ хватит |
~Так что ваши видюхи не сгорят.~
## 📅 **ПЛАН MVP (3 МЕСЯЦА ВЕЧЕРАМИ)**
1. **Неделя 1-2:** скелет `Rust + HTML`, генерация тайлов 61x61, клик-движение.
2. **Неделя 3-4:** один город, три VIP-бота, чат через Ollama.
3. **Неделя 5-6:** бой 1v1 (система зон + AI-колоды монстров).
4. **Неделя 7-8:** прокачка, инвентарь, магазин.
5. **Неделя 9-12:** подземелья, осады 10v10, рейды на боссов.
## ❓ **ВОПРОСЫ К АНОНАМ (ДАЙТЕ СОВЕТ, РЕБЯТА)**
* Что лучше для отрисовки тайлов: `canvas` или `CSS Grid`? Нужна максимальная стабильность на любом браузере.
* Как оптимальнее организовать очередь запросов к `Ollama` для 20 ботов, чтобы не было таймаутов? Планирую `80% шаблонных фраз + 20% генерация`.
* Кто пробовал поднимать `Gemma 4 12B` в фоне с другими процессами? Хватит ли `32ГБ RAM + 12ГБ VRAM` для 5 VIP + 10 фоновых?
## 🔮 **ФИНАЛЬНЫЙ ВАЙБ (ЗАПОМНИТЕ ЭТО)**
> *Ты запускаешь браузер. Справа чат, где гном-торговец хвастается новым мечом, а эльфийка ищет пати на данж. Ты кликаешь по карте, выходишь из города, встречаешь разбойников — пошаговый бой с выбором зон. Побеждаешь, возвращаешься, и гном тебе говорит: **«А, это ты! Вчера должен был мне 100 золотых. Ну да ладно, держи скидку»**.*
`Это не сценарий. Это спецификация.`
[c] **P.S.** Код ещё не писал, но архитектура готова на 100%. Безумный учёный уходит генерировать мир. Если хотите помочь советом или просто погоготать — велкам в тред.[/c]
>ВОПРОСЫ К АНОНАМ (ДАЙТЕ СОВЕТ, РЕБЯТА)
Зачем ты у нас спрашиваешь, если у тебя нейронка есть?
>Хватит ли `32ГБ RAM + 12ГБ VRAM` для 5 VIP + 10 фоновых?
Тупой вопрос. Допустим, хватит. Что ты с этим делать будешь?
Вот ты скопипастил эти галлюцинации чатбота на форум. Зачем?