Почему игровой движок Godot пригоден для разработки перспективных проектов — в чём не прав Chimbal
Я сидел спокойно и никого не трогал. Внезапно Google решил подкинуть мне эту «прекрасную» статью, а потом я наткнулся ещё и на эту статью. Я сначала подумал, что статьи написал школьник, который только начал постигать азы разработки игр. «Не беда, все мы такими были, лечится дальнейшим курением матчасти, нужно просто подтолкнуть молодого в правильное русло», — подумал я.
Изначально я написал другую статью с разбором ошибок, совершённых в Godot. Но чем больше я вникал в тему, тем больше недоумение становилось шоком, тем больше приходилось переписывать свою статью. Человек умеет пользоваться Линуксом, умеет компилировать исходники, собирает собственный дистрибутив, демонстрирует какую-никакую компетенцию... и совершает вопиющие ошибки в простых вещах.
реклама
Не знаю, действительно ли человек не понимает базовых вещей или намеренно байтит сообщество на просмотры и коменты ради заработка, но факт остаётся фактом — Google против моей воли решил познакомить меня со здешним проклятым лором Чимбы.

Чтобы поисковики выдавали не только шедевры, которые могут сформировать неправильное представление о Godot и Linux у непосвящённых людей, я не поленился зарегистрироваться на «Оверклокерс» и написать свой критический обзор. Заранее извиняюсь, я не знаю, действительно ли автора зовут Андреем Цымбаловым, но везде его называют просто Чимбой, а значит, и я буду для краткости и удобства.
Linux
реклама
Хоть статьи Чимбы и посвящены Godot, но автор в свойственной ему манере не упустил возможности для начала приплести ещё и Linux. Не вижу смысла подробно разбирать весь его бред, я просто приложу скриншот комментария, который ёмко описал все мои мысли.

Почти все знают про Linux от мира Open-Source. Почти никто в здравом рассудке, по своей воле не станет использовать эту «операционную систему» вместо Windows, какой бы плохой не становилась последняя. Так было 30 лет назад, так было 10 лет назад и так есть сейчас. Linux многим даже даром не сдался. Что бы ни рассказывали ярые приверженцы.
Во-первых, раньше линуксовые дистрибутивы действительно были менее дружелюбны к новичкам. Однако, по личным ощущениям, примерно с 2020-го года Линукс начал совершать большие скачки в сторону комфорта. Разработчики ПО вышли из ступора, например, вышла новая версия Blender 2.8, в которой переработали пользовательский интерфейс. Стало появляться больше опенсорсных и просто бесплатных решений. Valve подтянулись со своим Стим Деком и Протоном. Microsoft всё больше извращается над Windows 11.
реклама
И сейчас правильно выбранный дистрибутив обеспечивает даже больше удобств, чем Windows. Проблема у новичков заключается в том, что их первое знакомство с Линуксом начинается с Ubuntu — самого популярного дистрибутива... и ужасного дистрибутива для людей, которые привыкли к Windows. Я же рекомендую обратить внимание на игровые дистрибутивы, например, Nobara и Bazzite, хотя никто не отменял Kubuntu, Mint и PopOS.
Только не читайте статьи Чимбы про Нобару. Лучше почитайте мою статью, хотя бы не будете совершать ошибки с разметкой диска.
Во-вторых, у рядового ПК-пользователя действительно нет причин пересаживаться на Линукс, ведь почти все компьютеры изначально поставляются вместе с Windows, который покрывает почти все потребности. Ключевое слово «почти».
И вот мы приходим к мысли, что сейчас малая популярность Линукса обусловлена не малой функциональностью и неудобством, а монополией Windows и укоренившимися мифами. Однако Чимба подменяет понятия и во всех смертных грехах обвиняет опенсорс. Ну... Просто это типичный Опен-Сорс.
реклама

Godot
Так и с игровым движком Godot Engine. Существует уже больше десяти лет, но многим и даром не нужен такой движок. Может, это происки злых корпораций? Заговоры? Или пользователи слишком глупые? Наверняка пользователи просто глупые! Такой прекрасный и бесплатный движок не хотят использовать! Что это, если не глупость?
Проблема движка Godot заключалась в том, что банально никто не знал о его существовании. Я сам узнал об этом движке совершенно случайно. Вы нигде не могли увидеть хоть какое-то его упоминание. Ближе к выходу новой версии Godot 4 ситуация начала поправляться, однако взрывная популярность пришла оттуда, откуда не ждали.
Знаменитый скандал с Unity Runtime Fee заставил многих инди-разработчиков искать альтернативу, и внезапно люди обнаружили золото, которое скрывалось от их взора многие года. Godot оказался настолько хорош, что аж воскрес YouTube-канал Brackeys, который делал туториалы к движку Unity. И теперь он делает туториалы к Godot.

И, по правде сказать, даже старый мир игры WoW выглядит как проблема для «современного» игрового движка под названием Godot Engine. Почему? Ну... Просто это типичный Опен-Сорс.
На самом деле всё намного проще. Как и подавляющее большинство софта от мира Open-Source, игровой движок Godot Engine создан не для пользователей, а скорее, вопреки пользователям.
На самом деле всё намного проще. Если не разобраться в игровом движке и в целом в методах оптимизации компьютерных игр, то везде будет казаться, что опенсорс вставляет палки в колёса. Главное не смотреть, что у соседей происходит.
В любом нормальном игровом движке есть какие-то базовые ресурсы вроде точки появления игрока. Которую можно поставить в игровом мире и сразу начать играть. Это, конечно, в общем плане. Но только не в Godot Engine. Там придётся самому конструировать игрока из говна и палок. В этом весь Open-Source.
Ложь. Сразу после запуска Godot можно переключиться на вкладку «Библиотека ассетов» (в Godot 3 — «Библиотека шаблонов») и выбрать себе необходимые шаблоны и ассеты.

Помимо этого, если в Godot 4 с нуля создавать сцену без библиотеки, то в Godot есть такая нода, как CharacterBody, и если к этой ноде создать скрипт, то движок предложит прикрепить готовый скрипт передвижения Basic Movement.


Дальше конструируешь уже сам, но без заморочек, потому что движок Godot и его собственный скриптовый язык лёгкий в освоении и использовании. Все ноды и сцены просто комбинируются друг с другом, как детальки Lego, и никаких лишних сущностей по типу префабов из Unity. Однако никто не запрещает использовать C++ и C# в движке.
Но что, если игра немного сложнее, а игровой мир больше и разнообразнее? Правильно! Мир разделяют на отдельные локации! И дело тут не только в ограниченной производительности старых компьютеров, во времена которых выходили такие игры, как Half-Life.
Допустим, я хочу создать игровой мир на планете диаметром почти 13 тысяч километров. В специализированной программе Blender такую планету создать получается без особых проблем.
Но что произойдёт, если планету вставить в игровой движок Godot Engine в полном масштабе? Ничего хорошего. Даже в масштабе 10% на поверхности такой планеты просто невозможно находится и передвигаться без сильных рывков. Даже элементарный поворот камеры приводит к тому, что объекты в поле видимости начинают смещаться как попало.
Чимба сам пишет, что раньше большие миры разбивали на отдельные локации. И я от себя добавлю, что это всё ещё практикуется ВО ВСЕХ компьютерных играх. Это связано не только с мировыми координатами, но и с лимитами памяти компьютера и скоростью подзагрузок.
Но потом Чимба создаёт в Блендере (опенсорс, между прочим) огромную сферу, импортирует в Godot и удивляется, что движок не вывозит. Зачем? Чтобы что?
Так что я не просто так навожу суету, как некоторые могли подумать. Unreal Engine — действительно современный игровой движок. Он без особых проблем справился с задачей. Игровой движок Godot Engine разрабатывали, судя по всему, далеко не самые компетентные люди, ибо допустили фатальную ошибку в самом корне движка. Классика Open-Source...
Они не просто использовали 32-битный тип данных для хранения координат, но и делают это запихиванием трёх осей в одну 32-битную структуру, когда любой адекватный разработчик игрового движка сделал бы это тремя переменными для каждой оси в отдельности. Тогда и 32-битного Int хватило бы для нормальной работы с вменяемой точностью при гораздо больших мирах, чем способен сейчас Godot.
Как раз таки Godot разрабатывают компетентные люди. Чимба привёл такой замечательный скриншот из документации Godot.

Но это лишь часть страницы из документации. Чимба как будто бы намеренно скрывает всё остальное, где сказано, что большие мировые координаты отключены в Godot по соображениям производительности. Зачем большие мировые координаты, если они полезны только в малом числе специфических игр, и в большинстве случаев проблема решается стандартными методами оптимизации.

Если первую статью ещё можно как-то прокомментировать, то ко второй статье у меня нет слов.
Но у Godot Engine 3 есть проблемы. Одна из таких проблем — это плохая работа с OpenGL API. В режиме GLES3 можно столкнуться с проблемами на старых видеокартах, потому что движок, скорее всего, выходит за спецификации OpenGL 3.3. Это нестрашно с видеокартами уровня GeForce GTX 400+ и Radeon HD 5000+, но плохо с видеокартами Radeon HD 3000-4000 и GeForce 8000-9000 серии.
Также у всех версий Godot Engine есть проблема обратной совместимости со старыми операционными системами. В случае Linux основное препятствие кроется в зависимости от GLIBC версии минимум 2.28 для Godot 4, GLIBC 2.17 для старых версий Godot 3 и GLIBC 2.15 для Godot 2.
В статье, которая называется «Почему игровой движок Godot Engine непригоден для разработки перспективных проектов», Чимба называет проблемой плохую совместимость движка со старым железом и ОС. Звучит перспективно.
Но ирония заключается в том, что Godot запускается на большем количестве компьютеров и даже на смартфонах/планшетах, чем Unity и Unreal. В качестве примера я приведу свой опыт учёбы в институте. На предмете «Разработка игр» мы изучали Unity и Unreal, однако у троих однокурсников Unity и Unreal банально не заводились на домашнем железе, зато с лёгкостью запускался Godot, который можно было носить с собой на флэшке. Помимо этого, в учебных классах компьютеры, которые с трудом запускали IDE для веб- и мобильной разработки, с лёгкостью поддерживали Godot.
Допустим, разработчик начал свой перспективный проект ещё во времена Godot 2. Для примера я набросал очень простой проект с десятком строк исходного кода. Потом выходит Godot 3 с поддержкой OpenGL 3.3, когда старый движок работал только с OpenGL 2.1.
Что произойдёт, если разработчик захочет получить преимущества новых графических API, обновив движок до новой версии? Да ничего! Godot 3 даже не видит проект, разработанный в движке прошлой версии. Нужно начинать всё с нуля.
По сути, мы имеем ситуацию, что нельзя просто взять и перенести проект на новую версию движка. Потому что движок, как и подавляющее большинство линуксоидного софта, всегда находится в стадии Альфа, когда есть огромное множество ошибок, и их постоянно исправляют обновлениями, попутно добавляя новые ошибки, вместо того чтобы сразу постараться выпустить качественный софт.
Чимба не понимает нумерацию версий ПО. Не понимает, что такое мажорные и минорные версии, и что мажорные обязательно приводят к нарушению совместимости проектов, хотя порой совместимость могут нарушить и минорные версии. Если уж принялся создавать проект в одной версии, то лучше в этой же версии её и доводить до конца.
И так работает с любым ПО, но виноват почему-то опять опенсорс.
Тот же Genshin Impact, насколько я помню на 2023 год, вообще на Unity 2017 года работал, и это не мешает разработчикам значительно развивать игру.
Если бы Genshin Impact основали на движке Godot, я более чем уверен, что от самого Godot Engine ничего не осталось бы уже спустя несколько лет разработки. Настолько его пришлось бы переработать для дальнейшего развития игры.
Игры HoYoverse созданы на модифицированном движке Unity. И если для модификации Unity требуется покупать лицензию на исходники движка, то для модификации Godot требуются... прямые руки. К тому же, модифицировать Godot гораздо проще, т.к. не раздут программный код. Подробнее об этом можно почитать здесь. Там же и объясняется, почему Godot удобен в использовании и мало весит.

Благодарю за внимание всех приверженцев линуксоидного Open-Source хлама :)
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.


Комментарии Правила