avatar
2 дня назад

Переход с браузерной RPG на Godot: мой опыт

Доброго времени суток!Смотрю, многим зашли мои прошлые дев-влоги, так что продолжу делиться историей разработки. Сегодня — о первом знакомстве с движком Godot и о том, как я переносил туда всю функциональность своей браузерной RPG.

***

Я решил: хватит мучиться — пора переходить на движок. Перейти на Godot было непросто. Увидел, как один разработчик делает там свою игру, и подумал: «Почему бы не попробовать самому?»

На старте я почти ничего не понимал.Узлы, инспектор, дочерние сцены, инстанцирование — всё это было для меня тёмным лесом. И это я ещё про интерфейс молчу. Сам язык GDScript до сих пор знаю лишь на уровне, достаточном для ориентации и исправления ошибок.

***

Перекинуть весь функционал напрямую из JavaScript в GDScript было невозможно. CSS-стили и HTML-верстку тоже не скопируешь. Всё пришлось делать с нуля. Каждый элемент интерфейса, каждый кусок логики я собирал при помощи ChatGPT — вместе с его багами и потерями контекста.Со временем научился сам размещать элементы на сцене, выстраивать структуру и править код.

***

Без плана было бы нереально. Я составил список шагов:

  1. Перенести все скрипты и функционал.
  2. Перетащить стили и интерфейс (CSS → сцены, HTML → структура).
  3. Перерисовать визуал под новый формат.
  4. Проверить, чтобы игра запускалась.

Пока не перенесены все скрипты, игру не проверить — один файл проект не запустит.

***

Когда я наконец собрал всё и запустил игру — получил тонну ошибок. ChatGPT адаптировал 18 JS-файлов (каждый по 300–800 строк), но допустил множество ошибок.Перенос шёл постепенно, по одному файлу. Процесс поиска и исправления багов выглядел так:

  1. Копировал ошибку из консоли.
  2. Отправлял её в GPT вместе с контекстом.
  3. Получал исправленный вариант.
  4. Если не работало — откатывался и повторял.

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

***

Для понимания масштаба работы:

  • 18 JS-файлов (300–800 строк каждый) → GDScript
  • 15 CSS-файлов (gamestyle.css — 600 строк) остальные поменьше
  • 6 HTML-страниц
  • 74 картинки

Это было только начало. Сейчас проект вырос до:

  • 56 скриптов
  • 40 сцен
  • 291 картинки
***

Параллельно с кодом шла постоянная переработка визуала.Где-то переносил интерфейс из браузерки, где-то перерисовывал элементы, потому что старый стиль переставал нравиться. Иногда делал заглушки, чтобы хотя бы протестировать функционал.Перерисовка визуала — процесс бесконечный, думаю, многие разработчики игр это понимают.

***

После переноса я начал улучшать старые механики и внедрять новые.Дальнейшие посты будут уже не такими сумбурными: каждый будет посвящён конкретной системе или механике — инвентарю, карте, боевой системе, оптимизации.

А пока — несколько скриншотов версии после полного переноса из браузера.

Самый первый запукск годота, тут я думал сделать игру платформером, но быстро ушел от этой идеи:)
Самый первый запукск годота, тут я думал сделать игру платформером, но быстро ушел от этой идеи:)
Следующие 5 скринов уже на движке годот после переноса большинства механик и визуала из браузерки(система инвентаря с драг энд дроп)
Следующие 5 скринов уже на движке годот после переноса большинства механик и визуала из браузерки(система инвентаря с драг энд дроп)
Просто деревня, основной хаб игры
Просто деревня, основной хаб игры
Карта, с локациями, тут их 4 если кто не понял, в каждой есть свой моб
Карта, с локациями, тут их 4 если кто не понял, в каждой есть свой моб

Но что было в карте тогда и сейчас, совершенно разный вид игры, сейчас я полностью переработал карту и локации, в будущих постах увидите:)

Система прокачки героя, простенькая, но даже такую было сложно создать а потом еще и перенести на годот
Система прокачки героя, простенькая, но даже такую было сложно создать а потом еще и перенести на годот
Таверна, сейчас кажется уже странной что в окошке целое помещение, так что от этого дизайна я тоже уйду к полноценной локации, с кайфушной музыкой и атмосферой:)
Таверна, сейчас кажется уже странной что в окошке целое помещение, так что от этого дизайна я тоже уйду к полноценной локации, с кайфушной музыкой и атмосферой:)

Хочется поделиться еще скринами из создания, но многие затерялись, да и пост будет слишком уж длинной простыней:)

***

Переход с браузерной игры на Godot стал серьёзным вызовом. Каждый день я сталкивался с ошибками, уставал, откатывался, но шаг за шагом собирал свой мир.

Игру нельзя просто переписать с одного языка на другой. Её нужно написать заново.

Баги не исчезают. Они просто переходят в следующую версию🐺

Подписывайтесь на мой телеграм канал, там помимо дев-влогов я выкладываю арты из игры, и просто по фану рисую с нейронками, залетай если тебе интересный нейросети и контент сделанный с помощью них: t.me/neirosea

10
3
10комментариев