Друзья, великий день настал! Долгожданная головоломка Total Reload официально доступна к полному прохождению сразу на трех платформах: Windows, Mac и Linux!
О чем игра? Вам предстоит помочь Искусственному Интеллекту по имени HAWKING совершить невозможное — активировать невероятный механизм, способный перезагрузить всю Вселенную! Погрузитесь в атмосферу научной фантастики, решайте пространственные головоломки, перезагрузите вселенную!
«Лабиринт Колдуна» — это текстовая RPG (или «книжка-игра»), изданная Юрием Пульвером аж в 1991 году. Действие происходит в мире русских народных сказок: тут и Баба-Яга, и Леший, и Змей Горыныч и другие.
Как играть? Всё просто: читаем, выбираем вариант действия и кидаем кубики. Только кубики за вас кидает рандом в коде.
Боевая система — выбираем, чем бить (мечом, молнией или шаровой молнией), снова кидаем и от того, что показали кубики зависит урон. Ходим по очереди, если в тексте не написано что-то другое.
Кое-где можно попытаться дать врагу взятку. Если есть нужная сумма, а те самые кубики выпали, как надо — драка отменяется. Также есть и кое-какие магические предметы: баффы, дебаффы, телепорты и модификаторы бросков (чтобы +3 к броску).
Переходы по секциям умышленно запутаны, чтобы не пробежать игру слишком быстро. К примеру, есть 70-ая секция, из которой попробуй еще выберись. Ну и кубики иногда не дают пойти по правильному пути.
Поэтому я немного отошел от канона и добавил в профиль один бонус – магический кубик (+3 к броску).
Можно им не пользоваться и тогда будет совсем-совсем канонично.
Умерли? Вас телепортирует в начало, но всех убитых врагов это не воскресит — они так и останутся мертвыми.
Каждую новую жизнь игрока здоровье определяется броском двух кубиков * 4.
Механика простая, но для 91-го года — и детей этого было достаточно.
Скан обложки, который нашел в интернете.
Главный вопрос: зачем?
Отвечаю: переботал. Еще это назвается "выгорел", но это какое-то противное слово.
Последние несколько лет и пару моих работ были не очень мотивирующими. Сначала был «Самокат»: там создали новый отдел, наняли тысячу человек. А через некоторое время руководство решило: «А давайте всех разгоним и займемся Купером и Мегамаркетом». Кстати, про Мегамаркет давно не слышал.
Вторая работа оказалась просто до ужаса скучной. Инвесторы, видимо, тоже соскучались и решили не вкладываться в проект.
В феврале глянул я на рынок вакансий — а там тьма, тоска и печаль. Поэтому решил пока вообще не работать :) А в свободное время запилил эту игру.
Техническая часть
Сделать такую игру проще всего на нормальном ООП-языке. Поэтому я взял не ООП язык, а - Go.
Так, как я бэкенд-разработчик, но без фронта такое делать нельзя, выбор пал на Vue. Главное требование — чтобы работало везде, даже в браузере смартфона.
CI: Github Actions и VPS.
ИИ использовал мало. Совсем не использовать ИИ, считаю глупостью, но и вайб-кодинг мне не интересен. Вот где использовал ИИ:
Оцифровка книги: Нашел PDF, попросил ИИ распарсить и создать JSON-ы для базы данных. Не руками же копировать.
Админка: Сгенерировал CRUD для редактирования секций и врагов. Делать CRUD руками — скучно.
Простенькая карта: Тут ИИ сэкономил кучу времени. За основу взял формат DOT, адаптировал ответ под JSON и нарисовал на фронте в Canvas. Правда, руками потом всё равно пришлось поправить.
Тесты: Я очень люблю писать тесты (так как терпеть не могу тестировать функционал руками). Но тут я взялся за задачу без четкого понимания архитектуры проекта, поэтому никакого TDD тут не получилось бы. Так что основные тесты нагенерировал с ИИ, а на спорные места добавил своих.
Я старался не трогать оригинальные механики (хотя с кучей вещей не согласен).
В идеале хотелось бы сделать другой мир и еще кучу всего добавить, чего тут нет. Если не найду работу, то у меня будет куча времени ))
P.S.
Игра старенькая, местами слишком простая. Интерес может представлять для тех, у кого в детстве была эта книга.
Баги возможны и вероятно есть: я тут и бэк, и фронт, и QA, и архитектор в одном лице — где-то да накосячил.
Код рабочий, но сыроват. Вылизывать до блеска лень. Seeders в репозитории не выкладываю, потому что с авторскими правами не знаю, как быть (а самого автора не нашел). Если очень нужно — можете (или могу) нагенерить тестовых данных, структура в GO entity описана четко.
Всем привет, на связи Данилец (когда пришла пора писать псевдоним разработчика в Стиме, вспомнил свою детскую кликуху "Данилец всем **ец", но по причине не особой грамотности в забугорной лингвистике написал Danilec, так что теперь я Данилек)
Добавил в игре возможность полетать на ядре. Скоро загружу обновление в демо.
Попутно для возможности клепать видео для конкурсов/событий сделал себе возможность замедления времени и убирать интерфейс. И здесь пришла мысль, а интересна ли такая фишка игрокам? В онлайне замедлять время нельзя, конечно, но в режиме pve, почему нет?
Делаю игру - Leonardo's Island. Сейчас участвую в Steam Next Fest - Играм быть! Можно попробовать демку)
На видео есть три малых типа судна, которые можно открыть в демке, и два средних типа судна, которые будут доступны в первом релизе.
пы.сы. Если попробуете демку - буду рад любой обратной связи: плюсы, минусы, баги, идеи.
Недавно пришла идея, хочу поделиться: Пушки имеют время перезарядки, например: вертлюжная пушка, если проапргрейдить по максимуму, время перезарядки становится 3,8 секунды. Если поставить много таких пушек на корабле, то можно стрелять практически непрерывно. Идея: если время между двумя кликами мыши для выстрела меньше 1,5 секунды - делать залп из всех пушек, которые могут выстрелить согласно их углу поворота по направлению прицела и состоянию перезарядки. Как вам?