«Лабиринт Колдуна»
UPD:
Добавил SSL (https), были возмущения.
«Лабиринт Колдуна» — это текстовая RPG (или «книжка-игра»), изданная Юрием Пульвером аж в 1991 году. Действие происходит в мире русских народных сказок: тут и Баба-Яга, и Леший, и Змей Горыныч и другие.
Как играть? Всё просто: читаем, выбираем вариант действия и кидаем кубики. Только кубики за вас кидает рандом в коде.
Боевая система — выбираем, чем бить (мечом, молнией или шаровой молнией), снова кидаем и от того, что показали кубики зависит урон. Ходим по очереди, если в тексте не написано что-то другое.
Кое-где можно попытаться дать врагу взятку. Если есть нужная сумма, а те самые кубики выпали, как надо — драка отменяется. Также есть и кое-какие магические предметы: баффы, дебаффы, телепорты и модификаторы бросков (чтобы +3 к броску).
Переходы по секциям умышленно запутаны, чтобы не пробежать игру слишком быстро. К примеру, есть 70-ая секция, из которой попробуй еще выберись. Ну и кубики иногда не дают пойти по правильному пути.
Поэтому я немного отошел от канона и добавил в профиль один бонус – магический кубик (+3 к броску).
Можно им не пользоваться и тогда будет совсем-совсем канонично.
Умерли? Вас телепортирует в начало, но всех убитых врагов это не воскресит — они так и останутся мертвыми.
Каждую новую жизнь игрока здоровье определяется броском двух кубиков * 4.
Механика простая, но для 91-го года — и детей этого было достаточно.
Главный вопрос: зачем?
Отвечаю: переботал. Еще это назвается "выгорел", но это какое-то противное слово.
Последние несколько лет и пару моих работ были не очень мотивирующими. Сначала был «Самокат»: там создали новый отдел, наняли тысячу человек. А через некоторое время руководство решило: «А давайте всех разгоним и займемся Купером и Мегамаркетом». Кстати, про Мегамаркет давно не слышал.
Вторая работа оказалась просто до ужаса скучной. Инвесторы, видимо, тоже соскучались и решили не вкладываться в проект.
В феврале глянул я на рынок вакансий — а там тьма, тоска и печаль. Поэтому решил пока вообще не работать :) А в свободное время запилил эту игру.
Техническая часть
Сделать такую игру проще всего на нормальном ООП-языке. Поэтому я взял не ООП язык, а - Go.
Так, как я бэкенд-разработчик, но без фронта такое делать нельзя, выбор пал на Vue. Главное требование — чтобы работало везде, даже в браузере смартфона.
CI: Github Actions и VPS.
ИИ использовал мало. Совсем не использовать ИИ, считаю глупостью, но и вайб-кодинг мне не интересен. Вот где использовал ИИ:
Оцифровка книги: Нашел PDF, попросил ИИ распарсить и создать JSON-ы для базы данных. Не руками же копировать.
Админка: Сгенерировал CRUD для редактирования секций и врагов. Делать CRUD руками — скучно.
Простенькая карта: Тут ИИ сэкономил кучу времени. За основу взял формат DOT, адаптировал ответ под JSON и нарисовал на фронте в Canvas. Правда, руками потом всё равно пришлось поправить.
Тесты: Я очень люблю писать тесты (так как терпеть не могу тестировать функционал руками). Но тут я взялся за задачу без четкого понимания архитектуры проекта, поэтому никакого TDD тут не получилось бы. Так что основные тесты нагенерировал с ИИ, а на спорные места добавил своих.
Я старался не трогать оригинальные механики (хотя с кучей вещей не согласен).
В идеале хотелось бы сделать другой мир и еще кучу всего добавить, чего тут нет. Если не найду работу, то у меня будет куча времени ))
P.S.
Игра старенькая, местами слишком простая. Интерес может представлять для тех, у кого в детстве была эта книга.
Баги возможны и вероятно есть: я тут и бэк, и фронт, и QA, и архитектор в одном лице — где-то да накосячил.
Ссылки:
URL игры: http://labirint-kolduna.ru/ (без https - мне было лень, да и нет тут ничего такого)
Репозитории (может кому интересно):
Код рабочий, но сыроват. Вылизывать до блеска лень. Seeders в репозитории не выкладываю, потому что с авторскими правами не знаю, как быть (а самого автора не нашел). Если очень нужно — можете (или могу) нагенерить тестовых данных, структура в GO entity описана четко.
P.P.S.
Да, VPS дохлый, но тут и нагрузки может не будет.
Если сообщество выбрано не верно - поменяю.

Инди игры
312 постов593 подписчика
Правила сообщества
1. Реклама запрещена.
2. Сообщество авторское, публикуемый материал должен принадлежать Вам, потому каждое обвинение в плагиате должно быть подтверждено ссылкой. При первом нарушении - предупреждение, повторно - бан.
Идеально, если Вы являетесь членом инди-команды.
Пост без тэга "Мое" будет вынесен в общую ленту.
3. Постить только картинки или видео игры запрещено. Фото и видеоматериалы должны быть подкреплены текстом.
4. Особые публикации:
- интервью с разработчиками
- обучающие видеоматериалы
В этом случае правила п.3 могут быть смягчены или проигнорированы.
5. Разрешено публиковать информацию по анонсам игр, мероприятиям связанными с игровой индустрией и прочие плюшки.
6. Пост должен иметь внятную структуру.
7. Администрация имеет право решать, насколько пост соответствует сообществу.