- Игровой движок Godot! Заменит ли он Unity и Unreal Engine?
- Стоимость использования
- Количество языков
- Простой интерфейс
- Небольшой
- Простое написание кода
- Забудут ли про Unity ?
- Видео на тему Godot
- Дополнительный курс
- Из Unity в Godot. Первое впечатление
- Почему на нем?
- Сигналы
- UI-элементы
- Работа с изображениями
- Расположение элементов в пространстве
- C# или GDscript
Игровой движок Godot! Заменит ли он Unity и Unreal Engine?
Уже не первый год слышно много положительных отзывов про движок Godot. Пришло время узнать больше об этом движке и выяснить почему он столь популярен.
Сперва предистория. Я уже долгое время занимаюсь играми на движке Unity и я люблю этот движок не смотря на разные его косяки. Мне нравится относительная простота создание игр на его основе, а также нравится графический интерфейс, что позволяет быстро создавать дизайн любой игры. В Unity я могу разработать игру исходя только из своих сил, в то время как в Unreal Engine или в Cry Engine или во многих других движках практически невозможно разработать всё в одиночку. Благодаря этому, Unity и стал таким популярным, так как дал возможность разработки игр любому желающему. Больше не нужно иметь команду, чтобы создать крутую игру.
Сейчас я наблюдаю за рождением новой эпохи, а именно за становлением компании Godot. Дело в том, что Unity был прекрасен на момент его релиза. Он обладал всем что только нужно. Сегодня он по прежнему на вершине, но из-за своего статуса он не может принимать большие креативные идеи и быстро меняться в зависимости от рынка.
Unity — это большая компания, по примеру огромного лайнере, который сдвинуть в другое русло достаточно сложно, Unity не может столь же быстро меняться и подстраиваться под разные тенденции современности как например та же компания Godot.
Итак, чем же так хорош движок Godot, рассмотрим несколько ключевых положений.
Стоимость использования
Godot является полностью бесплатным игровым движком. Можно сразу сказать, что и Unity и Unreal тоже предлагают бесплатно свои движки, но есть существенная разница. Они оба предлагают бесплатно движки, но в определённые моменты вам все равно придется за них платить. В Unity цена стартует от 100 долларов за версию Pro и вам придется платить эту цену, если ваши игры приносят более 100 тысяч долларов в год. В Unreal нужно платить 5% от прибыли если вы привесили сумму дохода в размере 3000 долларов. И ещё если говорить про Unity, то чем больше вы захотите функций, например: командной работы над проектом, облачным хранилищем, добавление плагинов и прочее, то тем больше вы будете платить. Unreal примерно тоже самое, но там из-за 5% от дохода, то сторонние покупки не являются первостепенно важными для компании.
Godot же действительно полностью бесплатный, а это означает, что никаких водных знаков, никаких эмблем на вашей конечной игре не будет. У вас будет ваша игра и лишь с вашими логотипами.
Количество языков
На этот момент я бы не обратил никакого внимания, если бы Unity постоянно не уменьшал количество поддерживаемых языков. По началу в Unity можно было использовать язык UnityScript, который по сути был схож с JavaScript, можно было использовать диалект языка Питон — язык Boo, а также можно было писать с использованием C#. Сегодня из всего этого остался лишь C #, остальные были отключены из поддержки самой компанией Unity.
В Unreal Engine выбор поменьше, но зато куда интереснее. Вы можете выбрать графическое программирование, когда вы просто перетягиваете блоки и тем самым создаете функционал игры, а также в Unreal можно писать код на языке С++.
Godot в этом явный лидер. Он позволяет создавать игры используя графический интерфейс, но также можно писать игры за счет GodoScript — аналог языка Питон, также можно использовать С++ или же C# для написания модулей и плюс есть еще JdNative. Он позволяет создать надстройку и использовать практически любой интересный для вас язык программирования.
Такое разнообразие прекрасно воспринимается обществом, ведь каждый может подобрать тот язык, на котором ему удобно было писать до того как он решил уйти в создание игр.
Правда я думаю, что Godot уберет множество языков из движка по мере роста компании. Так как чем больше языков, тем больше нужна команда для их поддержки. В этом не будет смысла, так как будет 50 или даже 100 людей, что будут писать один и тот же функционал для движка, вот только под разные языки программирования. Хотя может я ошибаюсь и такая поддержка останется у них еще очень надолго.
Простой интерфейс
Этот пункт является достаточно субъективным, ведь кому то нравится как выглядит Mercedes, а кто-то был бы не против прокатится на Fiat Multipla.
В любом случае, отрицать тот факт что Godot имеет хороший интерфейс — не стоит. В интерфейсе можно разобраться за пару минут, он не перегружен множеством вкладок и настроек, что делает его приятным на первый взгляд.
Все необходимые вкладки находятся поблизости и для создания игры вам хватит стандартных настроек движка.
Небольшой
Unity и Unreal — это гиганты и занимают они гигантское количество места на компьютере. Вроде пустяк, но все владельцы макбуков меня сейчас поймут. Владельцы Windows схожи на миллионеров в плане свободного места. Они могут позволить себе отделить 50Гб на видео с дачи, 50Гб на звуки из этих видео и остальные 2 Тб на все остальное. Да, на маке тоже можно поставить большой объем, но благодаря политике цен компании Apple, то обычно все покупают минимальный объем.
Мне например постоянно приходится что-то переносить на удаленный диск или подчищать систему. Поэтому, когда я понял что Godot весит всего около 50 мб, то я явно понял что этот пункт вынесу в ТОП его плюсов.
Простое написание кода
Godot схож с движком GameMaker в плане простоты написания кода. GameMaker заявляет что он движок, на котором можно делать игры без знания программирования, что отчасти является правдой, а отчасти нет, ведь программирование может и не нужно знать, но вот методы что используются внутри движка знать нужно.
Godot — это пожалуй один из простейших игровых движков в плане написания кода, что я когда-либо видел. И раз я сравнил с GameMaker, то нужно явно выделить большую разницу между ними. GameMaker — позволяет создать лишь 2д проекты, а Godot может позволит вам создать как 2D, так и 3D проект.
Забудут ли про Unity ?
Практически со 100% уверенностью я могу вам сказать, что про Unity никто не забудет и по прежнему будут им пользоваться. Откуда такая уверенность, спросите вы? Давайте приведу простой пример.
Язык Java уже как морально, так и физически устарел. Он имеет сложный и запутанный синтаксис, его многие ненавидят, а те кто любят, то называют себя чуть ли не мазохистами, ведь на нем реально сложно писать. Так вот, на смену языка было придумано уже множество решений. Например для Андроид был придуман язык Kotlin , который по всем параметрам лучше Java. Но вот вопрос, а почему он не заменил полностью Java и почему мы все еще слышим про него?
Все просто. Дело в том, что на Java написано множество проектов, которые требуют поддержки. Также, многие по классике используют что-то мощное и проверенное. Да и плюс компании зачастую доверяют чему-то проверенному и ищут именно Java разработчиков.
К чему я это говорю? На Unity уже создано такое количество проектов и работает такое количество студий, что даже если будет создано еще 50 или 100 игровых движков, то Unity все равно будет по прежнему на верхушке или хотя бы будет пользоваться спросом.
Многие, как и возможно я, будут использовать его по привычке, так как все знакомо и уже куда проще создать что-то внутри него, нежели чем в более простом в плане обучения движке Godot.
Видео на тему Godot
Для более детального ознакомления предлагаем просмотреть небольшое видео на эту тему:
Дополнительный курс
На нашем сайте также есть углубленный курс по изучению игрового движка Unity . В ходе огромной программы вы изучите не только движок Unity, но также научитесь писать консольные и интерфейсные программы на языке C#. Также вы изучите сам движок Unity, включая создание 2D и 3D игр, а также игр и приложений с дополненной реальностью.
Источник
Из Unity в Godot. Первое впечатление
Всем привет, последние года три мое основное хобби – создание игр. Не могу сказать, что я добилась чего-то сверхъестественного, но в Steam есть две мои игры (горжусь самим фактом доведенных до конца проектов, но сейчас многое в них уже поменяла бы). И обе эти игры сделаны на движке Unity.
Почему на нем?
Когда не знаешь ничего о создании игр и только начинаешь погружаться в тему, именно он всплывает первым как очевидный вариант для ознакомления. О нем много информации, куча курсов, уроков, в том числе и на русском, даже книги выпускают и переводят. Он бесплатный, в конце концов, а в сети можно найти множество примеров успешных проектов, сделанных на Unity. В общем выбор казался очевидным. И в целом меня все устраивало, хоть и были недостатки. Однако свою третью игру я начала делать на движке Godot. Здесь я расскажу причины, а также поделюсь своими первыми наблюдениями о плюсах и минусах этого перехода.
Даже, когда я работала с Unity, он мне казался каким-то тяжёлым и неповоротливым. Он долго запускается, игры, которые должны весить 0,3-0,5 Гб, на нем весят 1,5-2 Гб. И вроде бы в современных реалиях это не такая большая беда, но мой внутренний перфекционист каждый раз хватался за сердце, когда это осознавал. Да и в целом Unity создавался для 3D игр, а нормальную поддержку 2D в нее добавили относительно недавно, да и то, по сути, костылем, а я в 3D соваться не планирую, так и зачем мне все это? Все больше и больше мне стало казаться, что я пытаюсь вырыть яму, чтобы посадить фиалку, экскаватором. Вроде бы вещь свою функцию выполняет, но мои цели иные.
В общем, когда я закончила свою вторую игру, я начала находиться в пассивном поиске нового движка для следующего проекта. Пассивным, потому что я ничего специально не искала, но, если на глаза случайно попадалось что-то интересное, я искала более подробную информацию в интернете и брала на заметку. Так я и наткнулась на Godot, и он меня привлек.
Если честно, переходить на другой движок мне было лень, да, банально просто лень. Это на Unity я уже что-то умею, а какие-то несложные вещи делаю с закрытыми глазами. А тут снова все заново, и интерфейс другой, и организация проекта другая, да и, может, вообще язык новый изучать придется. Но все же я решила попробовать скачать Godot и почитать документацию.
ООП как по учебнику
Ходят слухи, что и в Unity можно использовать все прелести объектно-ориентированного программирования, но у меня никогда не получалось, точнее, я об этом даже особо не задумывалась. Просто мне всегда казалось, что движок под это не заточен, и организация сцен здесь такая, что многие штуки, которые должны являться преимуществом и удобством ООП, здесь выглядит как лишние проблемы.
В Godot все иначе. У меня создалось впечатление, что весь движок создавали вокруг идей ООП. Здесь даже, если не хочешь или не умеешь пользоваться его принципами, все равно будешь. Да, после Unity пришлось привыкать к новой организации пространства, но оно того стоит. Я не буду долго рассказывать, как там все устроено, все равно не смогу сделать это лучше и грамотнее, чем в документации, но прочтите про сцены, узлы, экземпляры. Это первое, что меня привлекло, удивило и обрадовало.
Сигналы
Мне очень понравилось, как работают сигналы в Godot. Я не знаю, как там все это устроено «под капотом», и что на самом деле происходит, когда посылается сигнал, но мне, с точки зрения пользователя, кажется очень логичным, что не нужно постоянно проверять нажата ли кнопка или не покинул ли объект экран. Здесь именно кнопка в момент нажатия или объект, который покидает экран, посылают сигналы о том, что произошло. Удобно и логично.
UI-элементы
У меня складывается впечатление, что в Unity и Godot разные понимания о том, что такое пользовательский интерфейс. В первом все возможности заточены больше для меню и настроек, все эти кнопки, ползунки, панели выглядят так, будто разработчики Unity планировали, что с их помощью будут создавать меню выбора языка или сложности и настройки громкости звуков. Нет, они, конечно, тоже нужны и важны, но внутриигровые метрики, вроде шкалы здоровья, создаются со скрипом и сложностями. Может, и есть дополнительные библиотеки для этого, но я не искала, мне и так Unity, как я писала выше, всегда казался тяжеловатым, а еще и библиотеки дополнительные.
А в Godot будто бы больше заботились именно о внутриигровом интерфейсе. Ту же шкалу здесь сделать гораздо проще.
Кстати, мою версию с различным подходом поддерживают документации этих двух движков. В Unity в главе про пользовательский интерфейс приводится в качестве примера именно создание меню.
А в Godot – характеристики игрока внутри игры.
Еще, вроде бы, добавление локализации в игру выглядит куда удобнее, чем в Unity, но я с этим пока не до конца разобралась, так что утверждать не буду.
Работа с изображениями
А вот здесь я столкнулась с трудностями и вопросами. В Unity все интуитивно понятно: загружаешь лист спрайтов и «режешь» его как душе угодно, исходя из своих целей и потребностей.
А в Godot все чуть сложнее. Во-первых, мне пришлось кучу времени потратить, чтобы вообще найти, как вырезать кусок из листа спрайтов. В официальной документации я этого не нашла, найти в интернете по-человечески тоже не получалось. У меня уже даже стали закрадываться подозрения, что это сделать невозможно, и все изображения придется резать заранее и загружать по одному, но это же бред какой-то!
В итоге все-таки нашла, как это сделать, но только посмотрите, как неудобно.
Вы добавляете новый узел Sprite
Загружаете в него лист с изображениями
Внизу экрана каким-то чудесным способом замечаете вкладку «Область текстуры».
Выделяете необходимый фрагмент
И… Ничего не меняется на экране
Просто потому что в инспекторе вы не открыли вкладку Region и не поставили галочку напротив Enabled.
Как-то много неочевидных движений для одного такого простого действия.
Но, помимо этого, здесь не очень удобная анимация. Дело в том, что для подготовки кадров анимации лист со спрайтами в обязательном порядке делится на равные части по горизонтали и вертикали. И если у вас на листе только кадры для анимации, то в целом ничего страшного, даже, возможно, так удобнее, но вот, если это сборный лист со множеством всего, то это тоже придется учитывать и подгонять заранее.
Расположение элементов в пространстве
В основном я, конечно, о UI – элементах. В Unity с правильной настройкой Canvas в первые раза тоже пришлось немного повозиться, но, в целом, все оказалось все-таки проще, чем в Godot.
Я вроде уже что-то здесь сделала, но на автомате все равно пока не получается разбираться со всеми этими якорями и отступами. Слишком запутано выглядит, хотя, признаю, что смысл в этом есть.
C# или GDscript
Одной из причин выбора движка Godot была поддержка в нем языка C#, с которым я знакома. Но в процессе чтения документации и первых попыток чего-то сделать своими руками, стали закрадываться сомнения.
Во-первых, поддержку C# добавили позже, а значит многие элементы созданы и заточены под GDScript, и это заметно. Некоторые штуки, описанные в документации, делаются в одну строку в GDScript и в пять строк на C#. Разница есть, и она очевидна.
Во-вторых, движок позволяет писать на GDSript прямо внутри программы без установки дополнительных надстроек, это удобно.
Не без противоположного мнения, конечно, — в интернете не раз встречала мысли, что у C# больше возможностей, и с GDScript будет просто невозможно сделать какие-то вещи. С другой стороны, в одном проекте тут можно использовать и оба языка, так что, проблем, вроде, возникнуть не должно.
До сих пор не уверена в правильности решения, но пока я выбрала все-таки GDScript, освоить его несложно. Самое тяжелое – отвыкнуть ставить точки с запятыми в конце каждой строки, до сих пор на автомате ставлю.
Вот такой мой опыт перехода из Unity в Godot, это первые различия, плюсы и минусы, которые мне бросились в глаза, но, уверена, что не последние. Думаю, к тому моменту, как закончу свою первую игру на этом движке, появится еще что-то, так что второй, более полной части, скорее всего, быть.
Источник