Blacktide Beacon — градострой–рогалик

### Расскажите о себе и сути проекта?

Скучно было. Мы с товарищем (20 лет в бэкэнде на двоих) решили попробовать сделать игру: у нас теперь есть LLMки и разбираться с нуля именно с техникой больше не нужно. Поэтому решили сделать изометрический градострой–рогалик, по возможности не трогая код.

### Как появилась идея? Что вдохновило?

Идея игры возникла в начале апреля: хотелось сделать небольшой градостроительный рогалик.

Игра должна была состоять из кампаний, каждая из которых представляла собой набор прохождений. Каждое прохождение должно было заканчиваться проигрышем, но _как–то_ игрок должен был завершить кампанию. Механически планировался пошаговый геймплей: игрок мог построить пару зданий, выбрать режим работы _маяка_ ("дорого и безопасно" против "дешево и страшно") и увидеть последствия своих решений. Ресурсов было немного: еда, дерево, рассудок (общий для всех жителей) и число жителей. Основной механизм кризиса — остров постепенно заливает водой, остановить это никак нельзя.

![](https://i.vas3k.club/4881bd1ad217d7b778c828ea8fc3b2fdcc48c244f7e21c6b52a297f3addd2561.jpg)

Игровой процесс идейно должен был напоминать Frostpunk. Изначально я предполагал, что исследование игры станет частью механик (как в Cultist Simulator) — игроку ничего не понятно и подсказок особо нет, нужно пробовать.

Изначально планировалась изометрия, но было выбрано плохое решение использовать backdrop (статическая картинка на фоне с элементами поверх).

![](https://i.vas3k.club/9433022a08143800359076c5ccf411c759a3ac95158e8d9367693660201ad4a4.jpg)

Почему плохое? Потому что тут надо было городить логику с горами вокруг. Убираем горы:

![](https://i.vas3k.club/1e637ba94697c0d2d9025e70497f55b088d5cd56854ead8a1a8ef2f7c443e7a0.jpg)

Теперь слона из комнаты не убрать: нет никакого способа сделать воду нормально. Придется либо отказаться от вообще деталей в воде и сделать ее однотонной и ухищряться с кривыми, либо просто поменять стиль. В итоге ушли в _квадратизм_.

### Что вошло в прототип и сколько времени на него было потрачено?

Три кампании против разных противников, строим домики, добываем еду и дерево, спасаем людей из моря и пытаемся продержаться как можно дольше.

Игру нельзя пройти за один раз. Это рогалик: вы точно проиграете, но мир изменится. В Blacktide Beacon нужно пережить хотя бы девятую ночь — тогда вы сможете выбрать себе Дар: перманентный баф, который даст вам какой–либо бонус. Продержавшись до 22 дня вы сможете (но не обязаны!) выбрать вместо дара знание о ритуале: собрав 3 знания вы сможете одержать победу.

В качестве механик давления — наступающая вода, безумие жителей и кризисы.

### Какой технологический стек вы использовали? Почему?

Claude/Gemini/Phaser. Абсолютно весь код сгенерирован по чрезвычайно подробным спецификациям, у нас буквально все время уходило именно на context management.

### Как вы запускались и искали первых пользователей?

Выложили в VK Play, так как это бесплатно, получили от них промо на 300к показов. Ходим показываем людям и пабликам. Пытались вписаться к издателю, но не удалось, попробуем еще.

### С какими самыми неожиданными трудностями пришлось столкнуться?

Генерить изометрическую графику в LLM это просто боль. Несмотря на то, что популярность LLM пошла от генерации картинок, с точными требованиями всё очень плохо. Вы указали размеры, положение на экране и что рисовать? Будет другое и размер тоже другой.

Решали это так:

1. Для всего, что генерится через нейронку есть специальный файл ASSET_PROMPTS, где хранится очень подробное описание ассета со всеми хаками. Claude запускает playwright mcp, идет в gemini и мучает его, пока не станет красиво. Завернул в skill, если надо — пишите, выдам :)
2. Для домиков ассеты генерятся через код (да, клод не может делать картинку, но он может сделать скрипт, который сделает картинку, смекаешь?). В остальном флоу тот же, файл с промптом для скрипта в репе, клод генерит пока не станет хорошо, я проверяю. Например:

![](https://i.vas3k.club/194568f6d066dc725eeb585e7af16eef3567b0ca91bb558a4a1ac6fc1beaa6cc.jpg)

Делать баланс очень сложно. Я написал целый симулятор для тюнинга баланса, хорошо что у нас изначально логика от рисования была отделена и был headless режим.

```
> blacktide-beacon@1.0.0 sim
> node src/tools/sim/sim.js --campaigns=20 --seed=1 --max-runs=25

Sim · 20 campaigns · maxRuns=25 · seed=1 · god=random

Campaign outcomes:
win 7 (35.0%)
campaignCap 13 (65.0%)

Time to beat (winning campaigns only, 7/20):
runs: mean 15.14 · median 16 · p95 24 · min 7 · max 24
nights: mean 213.9 · median 182 · p95 425 · min 104 · max 425

Per-run survival (431 runs):
mean 12.2 · median 12 · p95 25 · min 1 · max 29

Per-run outcomes:
win 7 (1.6%)
villageLost 288 (66.8%)
islandLost 136 (31.6%)
nightsCap 0 (0.0%)
unknown 0 (0.0%)

Per-run survival histogram:
1-5 [██████████████ ] 151
6-10 [█████ ] 49
11-15 [████ ] 38
16-20 [████████████ ] 127
21+ [██████ ] 66
```

Что тут происходит: бот пытается пройти кампанию против каждого противника X раз с Y попытками максимум (можно еще указать билд, который следует использовать). Можно увидеть, сколько раз получилось пройти кампании, почему попытка завершалась и на каком моменте. Можно пойти поменять пару констант и проверить (или клода посадить, сказать ему только сколько надо процентов успеха).

**Кулстори**. Мы очень долго боролись с _субъектностью_ игрока: по сути нужно было построить лесопилку, домик рыболова и просто прокликивать дни, достраивая по необходимости домики. То есть, игрок по сути кино смотрит. Кроме этого, в тот момент после попытки вместе с Даром выдавалось случайное проклятие.

Для того, чтобы это поправить я сделал 3 вещи буквально за день:

1. Для постройки/ремонта требовался рабочий (не работал в этот день)
2. Жители больше не появляются случайным образом по ночам, надо строить домик для спасения и ездить спасать
3. Для хранения ресурсов нужны склады

После этого игра стало сильно интереснее. Приходится придумывать билд и решать, чего хочется больше: поискать жителей или подкопить дерева. Баланс был сломан, и бот ничего не мог пройти вообще. Хорошо, что симулятор был: после пары итераций я удалил проклятия, чуть замедлил затопление и улучшил сами билды.

### Сколько потратили и заработали? Есть идеи как это можно монетизировать?

Трудозотраты, как выше сказано, 5 месяцев двух человек в свободное от работы время и кучу токенов. Продаж пока 3.

### Какие планы на будущее?

Будем изучать способы продвижения, я хочу максимально больше ничего не трогать в продукте. Затем, из большого, редактор кампаний и больше кампаний.

### Нужны ли какие-то советы или помощь Клуба?

Если вдруг захотите потыкать, но вписываться в платную штуку совсем не хочется — думаю в VK Play есть промокоды, напишите в коменты :)

### Какой совет вы бы сами могли дать идущим по вашим стопам?

Как написано во всех, мать его, книгах про стартапы, не делайте продукт, делайте маркетинг. То, что мы сейчас делаем, можно было делать для страницы в сторе без игры.