Исповедь №1. Другой Мир - Эпоха Мёртвых

Всем привет! Снова Пётр что-то пишет про свои игродельские будни.
Расскажу кратко про сложности, достижения в Godot, боль разработчика и про площадки.

Завершил работу над пиксельным рендером! Ёпта, это было непросто! Ибо в 3D цвета вообще не походят под пиксель. А теперь подходят!

Начну-с!

Так как я делаю игру с полного нуля на 4 Godot, то и принципы проектирования, архитектура, прочие всякие мелочи тут немного иные, чем в тройке.

При публикации первой версии игры был какой-то невероятный процент вылетов и сбоев, и мне удалось найти одну из причин: запечённые тени.

Какой хороший был плюс от запечённых теней в Godot 3.хх - малое потребление ресурсов. Отрендерил текстуру тени и живи радуйся.

Там было много гибких настроек тени, но самое крутое - у каждого объекта - своя собственная текстурка-картинка тени. Что это мне давало раньше? А возможность загружать и выгружать эти тени динамически. То есть я контролировал память.

Тени на уровне в Godot 4
Тени на уровне в Godot 4

Какой же минус запечённых теней в 4 Godot - это мегатекстура. То есть на все объекты создается одна большая (реально блин большая по 15 - 30 мегабайт) текстура на всё. И подгружать/выгружать её кусками уже не выйдет. Она грузится вся, целиком, засирая память вне зависимости от того, все ли объекты надо рисовать или нет.

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

Второй минус запекания - это ФОРМАТ СУКА. Как было, опять же, в тройке: тени можно забыло запекать в jpg, png или exr, что позволяло создавать тени на локацию в очень маленьком объеме. Причем можно было играться с качеством, цветами и "объемом".

В четверке у тебя только exr, и только цветной. Зачем так? ХЗ. Получилось, что я даже сам не могу пережать себе тени, чтобы как-то их размер уменьшить. Ибо открыв картинку в редакторе и пересохранив её, она перестаёт отображаться в движке. Причем выборочно... где-то прокатывает, но чистейший рандом.

Пришлось сильно занижать качество теней и делать картинку встратенькой, чтобы мобилы не умирали в процессе пережёвывания мегатекстурок. Разработчику лайтмаппера я конечно написал, но не думаю, что будет эффект. Ответ будет скорее всего "ой, этими старыми телефонами уже никто не пользуется переходи на вулкан там всё ок". Такое уже было, к сожалению.

Продолжу-с!

Зима близко, Джон Снов!
Зима близко, Джон Снов!

Вторая проблема, которая приводила к сбоям и вылетам - это материал с фильтром Toon.

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

Ненадлежащее поведение StandartMaterial могло стать причиной его дисквалификации. Судью на мыло!
Ненадлежащее поведение StandartMaterial могло стать причиной его дисквалификации. Судью на мыло!

После написания своего шейдера, такое прекратилось, а ещё прекратились рандомные вылеты.

Из хорошего - Godot 4 стал намного приятнее в работе, более гибкие настройки, куча новых инструментов, какие-то и вовсе стали чуть ли не эталоном для меня.

Новая система локализации, контексты, куча возможностей для всех платформ.

И вот главный итог моих страданий...

Стоило ли переходить на четвертую версию движка? Нет.

Я сильно поспешил, и жалею об этом. Полгода жизни ушло на проработку игрового ядра, чтобы можно было "пилить контент". Но вот на глобальном уровне, я теперь меньше могу заниматься творчеством, и больше техническими нюансами.

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

В четверке я написал ядро игры, механики, подготовил себе конструктор, и каждый раз теперь приходится в нём ковыряться, потому что что-то, да не работает. Или работает не так. Или работает не везде...

Если вы делаете проект на 3,5 или 3,6, оставайтесь, не переходите. Слишком рано.

Я поспешил, и, как говорил ранее, теперь жалею.

Исповедь №1. Другой Мир - Эпоха Мёртвых

PS: про площадки в следующем посте. И так много получилось. Простите.

1212
44
2 комментария

Эх, такой графон просто создан для позитивной комедии про будни городка типа Симпсонов.

2

А ты какой рендер выбрал для проекта? Compatible, mobile, forward+