Я опубликовал гибрид между autobattler-RPG и 3-в-ряд. Чем лучше собираем шарики в ряды, тем ловчее герой бьет монстров.
В чем отличие от обычного 3-в-ряд:
Вместо ограничения по времени, энергии или ходов есть урон и здоровье. Чтобы пройти уровень, нужно продамажить монстров и не умереть самому. Разумеется, урон и здоровье героя - прокачиваются. А монстры становятся сильнее от уровня к уровню.
Не все шарики одинаково полезны. Герой может выбрать Школу Боя. Тогда сбор шариков ключевых цветов будет давать специальную атаку. Это увеличение урона, двойной удар, воровство жизней, лечение и т.д. Например, Школа Волка позволяет совершить двойной удар, если собраны серые шары. В общем, всё то, что часто встречается в боях в среднестатистической RPG.
Специальные бонусные шарики выбирает сам игрок через механику Божеств. Каждое божество дает свой бонус. Например, если выбран Бог Грома, то на поле 3-в-ряд вместо обычного шарика может упасть шаровая молния.
Таким образом, в игре можно собрать билд. умело собирать шарики в ряды и быстро затащить высокие уровни. Но ничто не мешает, в целом, медленно играть простой в 3-в-ряд без всех этих заморочек. И все еще не спешно двигаться вперед.
Прошу вашей обратной связи и идей по улучшению.
Игра бесплатно доступна по ссылкам: - Yandex Games
В бескрайних и вечно меняющихся землях цифрового мира, где потоки мемов, новостей и обновлений бурлят, словно дикие реки, а идеи вспыхивают и гаснут, как искры, жил мастер по имени Никита, магия которого (и одновременно его оружие) безупречно выстроенный код и тайное искусство созидания.
Он видел, как другие творцы выгорают в вечной гонке, как сообщества распадаются из-за конфликтов и суеты и долго был одиноким творцом, мастером, чьи работы ценились гильдиями и корпорациями за их надежность и функциональность. Однажды он основал свой собственный орден, который назвал Коллегией капибар. Это была не просто гильдия или школа, а скорее святилище, построенное на принципах спокойствия, взаимопомощи и прагматичного созидания. Никита не вел за собой армии и не свергал королей, но создавал пространства, где другие могли творить и чувствовать себя в безопасности. Его Коллегия росла, привлекая последователей и меценатов, которые видели в его подходе не слабость, а высшую форму силы и вот он отправился в путешествие по Побережью Мечей.
Человек
Вид (Раса)
История Капибарда это история человеческой амбиции, направленной не на завоевание, а на созидание. Его многогранность, способность освоить множество дисциплин (от программирования до управления сообществом) лучше всего отражается в гибкости человеческой расы.
Бард (коллегия знаний)
Класс
Этот класс отражает его роль как «Главы коллегии капибар», создателя контента, стримера, ведущий сообщества в Telegram, объединяющего людей и делящийся с ними знаниями и идеями. Платформы Twitch и YouTube – это его «сцена».
Ремесленник гильдии
Предыстория
Характеристики
Телосложение: 12 (символизирует выносливость, необходимую для управления множеством проектов и большим сообществом, не поддаваясь выгоранию)
Сила: 8 (его мощь заключается в его разуме и слове, а не в грубой силе)
Ловкость: 10 (в основном интеллектуальная и социальная работа, не требующая физической сноровки).
Харизма: 14 (отражает его способность вести за собой сообщество, привлекать спонсоров и создавать интересный контент, который находит отклик у аудитории)
Интеллект: 15 (источник его способностей, отражающий его мастерство в программировании, системной архитектуре и решении сложных технических задач)
Мудрость: 13 (отражает его проницательность, интуицию и ту самую «дзен»-философию капибары)
Навыки
Магия представляет его глубокое понимание сложных систем, аналогичное знанию arcane-кода, на котором построен цифровой мир.
Убеждение, ключевой навык для лидера «Коллегии» и привлечения патронов.
Проницательность, которая позволяет ему понимать потребности и настроения своего сообщества, поддерживая в нем здоровую атмосферу.
Расследование, которое олицетворяет его способность к отладке кода, поиску ошибок в системах и нахождению оптимальных решений.
Выступление, которое проявляется не в пении или игре на лютне, а в создании контента и ведении блога, что требует артистизма и умения удерживать внимание аудитории.
Черты характера
«Я подхожу к любой проблеме, будь то строка кода или назревающий конфликт, с методичным и невозмутимым терпением»
«Истинную элегантность я нахожу в системе, которая работает настолько гладко, что ее сложность становится невидимой для пользователя»
Идеалы
Сообщество: «Самая совершенная структура бесполезна, если в ней некому жить. Мое величайшее творение – это сообщество, которое мы строим вместе» (Нейтрально-добрый)
Баланс: «Истинная сила не в напоре, а в стабильности. Я создаю системы и сообщества, способные выдержать любой шторм» (Нейтральный)
Привязанности
«Коллегия Капибарда – дело всей моей жизни. Ее участники – моя ответственность, и я применю все свои навыки, чтобы защитить наше общее пространство».
«Каждый завершенный проект, каждая написанная строка кода – это часть моей истории. Я чувствую связь с цифровыми структурами, которые я привел в этот мир».
Слабости
«Я могу настолько увлечься совершенствованием системы, что теряю счет времени и забываю о мире за ее пределами».
«Я предпочитаю решать проблемы с помощью логики и консенсуса; прямая, агрессивная конфронтация вызывает у меня глубокий дискомфорт».
Нейтрально-доброе
мировоззрение
Это мировоззрение прагматичного альтруизма, действия Капибарда направлены на создание блага для других, а его главная цель – построение и поддержка здорового, позитивного и продуктивного сообщества.
Капибард в мире D&D – это необычный искатель приключений, а новый тип влиятельной фигуры: Архитектор Спокойствия. Его сила заключается не в разрушительной магии или остром клинке, а в создании незаменимых систем и взращивании непоколебимой лояльности сообщества, которое он защищает.
Он – спокойный центр сложной паутины, которую он сам же и сплел. Он доказывает, что для изменения мира не обязательно быть самым громким или самым сильным; иногда достаточно быть самым стабильным и надежным.
Играть за Капибарда – значит отыгрывать не воина, а созидателя, главное оружие которого – интеллект, а поле битвы – не подземелье, а сложная проблема, требующая элегантного решения.
Тот, кто строит мост через пропасть, пока другие ищут способ ее перепрыгнуть. Будьте центром спокойствия (в любой хаотичной ситуации успокаиваете паникующих союзников, методично анализируете угрозу и предлагаете логичный план действий, поглощаете стресс, а не производите его).
Ваша цель – закончить конфликт как можно быстрее и с минимальными потерями, защищая тех, кто вам дорог, вы сражаетесь не ради славы, а ради защиты того, что вы построили.
Ну что, первый настоящий девлог подъехал. До этого я просто разгонял мысли, а теперь уже конкретика по механикам. Начну с самого первого, что я делал после интеграции игры в Godot — инвентаря. Бой у меня уже работал, про него расскажу в следующих постах.
Первые шаги
С самого начала я был уверен: drag & drop в инвентаре должен быть. Хотелось, как в ММО, — вручную перетаскивать предметы, раскладывать их по ячейкам. Тогда это казалось очень крутой механикой.
В браузере у меня эта система уже работала, хоть и криво, но работала. А вот в Godot начался полный хаос: предметы выпадали за сетку, не цеплялись мышкой, плохо собирались в стаки. Плюс приходилось бороться с тем, чтобы инвентарь нормально общался с другими скриптами — например, чтобы после боя дроп корректно попадал в сумку. Казалось бы, простая вещь, но ошибок я ловил массу.
Работа с GPT
Каждую проблему я скармливал GPT. Он правил код, я проверял → снова баг → снова кидаю код. Классический цикл вайб-кодинга.
Главная проблема — размер скрипта. 400 строк. GPT не понимал контекст, приходилось дробить его на куски, отдельно подкидывать функции и связанные скрипты. Я ещё и сам не умел правильно формулировать задачи, опыта мало. Сейчас понимаю: если давать точные запросы, GPT справляется лучше. Но тогда я реально перегорел от постоянных ошибок.
Добавим к этому то, что у меня Godot 4.3, а GPT стабильно писал под старую версию. Половина функций просто не работала. В итоге фикс одной строчки рождал три новых бага.
Вайб-кодинг
Я всё ещё новичок, сам с нуля код не напишу. Сейчас это модно называть вайб-кодингом: не пишешь код, а собираешь рабочее из того, что даёт GPT. Зато постепенно я начал понимать, как устроены функции, как скрипты связаны друг с другом. Опыт растёт, хотя ошибок по-прежнему много.
Отказ от drag & drop
В какой-то момент я понял: да ну его, этот drag & drop. Зачем он нужен, если через пару часов игры ручная сортировка надоедает всем?
В итоге я сократил скрипт с 400 до 200 строк и перешёл к системе вкладок: — оружие — броня — разное
В будущем добавлю сортировку по цене и редкости. Экипировка будет через обычный или двойной клик — посмотрю, что удобнее.
Торговля
Я также прикрутил продажу предметов — поштучно и кнопкой «продать всё». Это оказалось сложнее, чем ожидал, багов наловил кучу. До конца не уверен, стоит ли оставлять торговлю прямо в инвентаре, или вынести её в маркет. Пока оставил как есть.
Итог
Инвентарь пока лежит «на полке доработки». Но именно с него началось формирование всей системы. И я сделал главный вывод: иногда проще отказаться от красивой идеи, чем бесконечно её латать.
Главный вывод этого девлога: drag & drop — как бывшая. Сначала кажется, что без неё жизнь невозможна, а потом понимаешь, что и без неё заебись.
Следующий девлог будет коротким, про маркет. Спасибо, что двигаетесь вместе со мной — это только начало.
Ниже прикрепил развитие UI инвентаря в моей игре, от самого первого до нынешнего, еще предстоит много работы по нему:)
Подписывайтесь на мой телеграм канал, там помимо дев-влогов я выкладываю арты из игры, и просто по фану рисую с нейронками, залетай если тебе интересный нейросети и контент сделанный с помощью них: t.me/neirosea
Доброго времени суток! Смотрю, многим зашли мои прошлые дев-влоги, так что продолжу делиться историей разработки. Сегодня — о первом знакомстве с движком Godot и о том, как я переносил туда всю функциональность своей браузерной RPG.
После пары месяцев с HTML, CSS и JavaScript
Я решил: хватит мучиться — пора переходить на движок. Перейти на Godot было непросто. Увидел, как один разработчик делает там свою игру, и подумал: «Почему бы не попробовать самому?»
На старте я почти ничего не понимал. Узлы, инспектор, дочерние сцены, инстанцирование — всё это было для меня тёмным лесом. И это я ещё про интерфейс молчу. Сам язык GDScript до сих пор знаю лишь на уровне, достаточном для ориентации и исправления ошибок.
Перенос из браузерки
Перекинуть весь функционал напрямую из JavaScript в GDScript было невозможно. CSS-стили и HTML-верстку тоже не скопируешь. Всё пришлось делать с нуля. Каждый элемент интерфейса, каждый кусок логики я собирал при помощи ChatGPT — вместе с его багами и потерями контекста. Со временем научился сам размещать элементы на сцене, выстраивать структуру и править код.
План перехода
Без плана было бы нереально. Я составил список шагов:
Перенести все скрипты и функционал.
Перетащить стили и интерфейс (CSS → сцены, HTML → структура).
Перерисовать визуал под новый формат.
Проверить, чтобы игра запускалась.
Пока не перенесены все скрипты, игру не проверить — один файл проект не запустит.
Первый запуск
Когда я наконец собрал всё и запустил игру — получил тонну ошибок. ChatGPT адаптировал 18 JS-файлов (каждый по 300–800 строк), но допустил множество ошибок. Перенос шёл постепенно, по одному файлу. Процесс поиска и исправления багов выглядел так:
Копировал ошибку из консоли.
Отправлял её в GPT вместе с контекстом.
Получал исправленный вариант.
Если не работало — откатывался и повторял.
Если код умещался в 100 строк — чат справлялся. Если больше, он терял нить, создавал новые баги, и приходилось возвращаться к прошлым версиям. Так продолжалось почти месяц.
Немного цифр
Для понимания масштаба работы:
18 JS-файлов (300–800 строк каждый) → GDScript
15 CSS-файлов (gamestyle.css — 600 строк) остальные поменьше
6 HTML-страниц
74 картинки
Это было только начало. Сейчас проект вырос до:
56 скриптов
40 сцен
291 картинки
Визуал — вечная стройка
Параллельно с кодом шла постоянная переработка визуала. Где-то переносил интерфейс из браузерки, где-то перерисовывал элементы, потому что старый стиль переставал нравиться. Иногда делал заглушки, чтобы хотя бы протестировать функционал. Перерисовка визуала — процесс бесконечный, думаю, многие разработчики игр это понимают.
Что дальше
После переноса я начал улучшать старые механики и внедрять новые. Дальнейшие посты будут уже не такими сумбурными: каждый будет посвящён конкретной системе или механике — инвентарю, карте, боевой системе, оптимизации.
А пока — несколько скриншотов версии после полного переноса из браузера.
Итог
Переход с браузерной игры на Godot стал серьёзным вызовом. Каждый день я сталкивался с ошибками, уставал, откатывался, но шаг за шагом собирал свой мир.
Игру нельзя просто переписать с одного языка на другой. Её нужно написать заново.
Баги не исчезают. Они просто переходят в следующую версию🐺
Подписывайтесь на мой телеграм канал, там помимо дев-влогов я выкладываю арты из игры, и просто по фану рисую с нейронками, залетай если тебе интересный нейросети и контент сделанный с помощью них: t.me/neirosea
Самый первый запукск годота, тут я думал сделать игру платформером, но быстро ушел от этой идеи:)
Следующие 5 скринов уже на движке годот после переноса большинства механик и визуала из браузерки(система инвентаря с драг энд дроп)
Просто деревня, основной хаб игры
Карта, с локациями, тут их 4 если кто не понял, в каждой есть свой моб
Но что было в карте тогда и сейчас, совершенно разный вид игры, сейчас я полностью переработал карту и локации, в будущих постах увидите:)
Система прокачки героя, простенькая, но даже такую было сложно создать а потом еще и перенести на годот
Таверна, сейчас кажется уже странной что в окошке целое помещение, так что от этого дизайна я тоже уйду к полноценной локации, с кайфушной музыкой и атмосферой:)
Хочется поделиться еще скринами из создания, но многие затерялись, да и пост будет слишком уж длинной простыней:)
В Telegram-канале как-то наткнулся на пост про создание игр с нейросетями. Уже не помню, в каком именно, но у меня щёлкнуло: я тоже хочу! Думал об этом уже лет пять, но раньше всё казалось невозможным — нужно учить языки, разбираться в движках и т.п. А тут — ChatGPT. Интересно же.
Я зашёл, спросил: «Мы можем создать игру?» Он, конечно, согласился. И всё закрутилось.
Сначала я прикидывал, что вообще хочу. Тогда был хайп на кликалки вроде хомяка и Notcoin. Захотел сделать свою, но с RPG-элементами: прокачка, клики, монетки, и, в идеале — хоть как-то монетизировать.
Я описал идею, и мы начали вместе думать. Знаний — ноль. Не понимал, где писать код, как собираются игры... На все вопросы отвечал чат.
Оказалось, Telegram-игра — это по сути браузерка на HTML/CSS/JS. HTML — структура, CSS — стили, JS — логика. Если где-то ошибаюсь в терминологии — не судите строго, я только начал учиться.
Telegram-игра: первые шаги
На старте всё было в новинку. ChatGPT не всегда держал контекст, скрипты получались громоздкими, каждая механика — в отдельном .js-файле по 400+ строк. Всё писал в Блокноте, сохранял, открывал в браузере, правил — и так по кругу.
Потом нашёл Notepad++, стало немного легче. Потом открыл для себя Visual Studio Code — и вот тогда реально почувствовал кайф от нормальной работы с кодом.
Чуть позже случайно открыл DevTools (F12) в Chrome и понял, что можно прямо в браузере менять элементы, а потом копировать результат в VS Code. Удивительно, но таких фишек мне ни одна инструкция не подсказывала — сам нашёл, сам удивился.
CSS и адаптивность
Стили — отдельная история. Всё выглядело как одна гигантская простыня, где изменение одного блока ломало всё вокруг. Понемногу разобрался, но осознал: адаптировать игру под Telegram внутри браузера — не мой путь. Слишком сложно для текущего уровня.
В итоге решил: временно отказываюсь от Telegram-бота. Перехожу на полноценную браузерную игру. Там хотя бы контроль больше.
Браузерная RPG: теперь серьёзно
Подумал: ну 2D-RPG — что может пойти не так? На деле — почти всё старое перекочевало: верстка, стили, адаптивность. Но теперь я уже ориентировался лучше, поэтому работал системнее.
Проект занял около двух месяцев. Он не стал финальной версией, но именно он лёг в основу моей текущей игры на Godot. Скрипты не переносил — язык другой — но визуал, логика, структура перешли почти целиком.
Была мысль переделать всю игру на движке, но быстрее оказалось начать с нуля и использовать старую игру как черновик и референс.
Для первой игры — это был мощный апгрейд. Я реально понял, насколько сложна масштабная браузерка. Много кода, много взаимосвязей. Это не просто “написал скрипт и игра готова”.
Однажды открыл DevTools у одной крутой браузерной игры — в HTML было 3000+ строк. И это только одна вкладка. А их там десятки. В тот момент я чётко понял: я туда больше не полезу.
Что дальше?
После RPG я сделал сайт для своей игры. Опыт с браузерной версией помог — знал, куда лезть, где искать решения, и всё вышло.
Сейчас весь фокус — на Godot. Новый движок, новые механики, свои баги и свои грабли. Следующие посты будут уже про мою основную игру, над которой я работаю каждый день.
Дополнительные материалы и скрины — оставлю в комментариях под этим постом. Заглядывайте.
Не важен тот, кто не падал. Важен тот, кто встал.
Первые два скрина, из моей попытки в телеграм игру(бота)
Следущие 4 скрина, уже браузерная игра полноценная, не для тг
И последние 4 скрина, это уже база с которой я начал переходить на новый движок(Godot)
Создал сцены врагов: Слайм и Темный Маг. Добавил их анимации. Настраивать скорость воспроизведения, положение и прочее буду уже по ходу дела и необходимости. Но даже так приятно видеть как это все потихоньку переносится в настоящую игру.
Добавил две иконки на "поле битвы", пока что просто как заглушки, было интересно посмотреть как это будет выглядеть. Ну и врагов поставил, что б оценить размеры, проверить коллизии и т.д.
Повозился однако с билдом, потому что в нем не работал фон в главном меню, он просто отказывался загружаться, при этом игнорируя все исключения и вывод ошибок в консоль, делал все тихо и молча. Скорее всего дело в том, что я не там пытался отловить ошибку, но в любом случае все уже исправлено другим способом, и самое главное работает.
Дальше буду работать с поведением противников и потихоньку реализовывать бой.
Вообще забавно, что сначала я плевался на всякие таблички, правильное ведение проекта, учет задач, времени, и при этом горел желанием заниматься визуалом игры. Но на деле все оказалось в точности да наоборот, больше всего мне нравится заниматься геймдизайном, расписывать таблицы микро и макро дизайна, просчитывать баланс и т.д. А вот рисование меня душит просто невероятно, и нарисовать там надо еще много... Как раз из-за последнего я подумываю сократить размеры игры, иначе рискую попасть в неприятную ситуацию.
Потихоньку начинаю собирать все в движке. На этот раз ландшафт, движение и камера.
Персонаж двигается, оно живое. Сначала я пытался сделать движение с инерцией / менее резким / с задержкой в милисекунды, пробовал всякое в общем. Но пришел к тому, что в боевых условиях и пулевом аду, четкое управление куда важнее, дабы от всего уворачиваться.
Камера. Она стала более приятная из-за микро-задержки. Но такие приемы в 2D играх используются уже очень давно, ничего сложного не было и ничего нового я не изобретал. Также она упирается в край карты при приближении к краю игрока. Этому есть несколько причин. Во-первых так проще, ограничить карту визуально, плюс меньше ресурсов будет потреблять. Во-вторых, это напрямую связано с первой причиной, мне лень рисовать фон. Изначально у меня была идея для фона, и ее можно было бы лорно красиво подкрутить и было бы хорошо. Но пока что я решил от этого отказаться. Если ближе к концу проекта у меня будет желание и силы, я реализую задуманное, а пока что лучше поберечь мои ресурсы для самого важного. Как бы я не считал, что меня хватит на долго, и как бы мне не нравилось это занятие, лучше не буду рисковать. Доделать всегда можно потом, а вот закончить хотя бы основу - очень важно.
Готовы основные элементы ландшафта. Подшаманил с масштабом, все выровнял, добавил хитбоксы, тени, и самое главное поработал со слоями. Если игрок находится за условным деревом, но оно выдвигается на передний план и становится полупрозрачным, также и с остальными элементами.
Про самое начало и прототип игры можно почитать тут: