Часто задаваемые вопросы

На что способен Godot? Сколько он стоит? Каковы условия лицензирования?

Godot - это Свободное и открытое программное обеспечение, которое доступно под OSI-утвержденной MIT лицензией. Это означает, что он свободен как «свобода слова» равно как и «свобода действий.»

Вкратце:

  • You are free to download and use Godot for any purpose, personal, non-profit, commercial, or otherwise.
  • Вы можете свободно модифицировать, распространять и пересобирать Godot в любых целях, как коммерческих, так и некоммерческих.

Всё содержимое этой документации выпущено под разрешительной лицензией Creative Commons Attribution 3.0 (CC-BY 3.0), за авторством «Juan Linietsky, Ariel Manzur и сообществом Godot Engine»

Логотипы и иконки также находятся под лицензией Creative Commons. Заметьте, что сторонние библиотеки, включенные в исходный код Godot могут иметь другие лицензии.

Для полной информации, смотрите COPYRIGHT.txt а также LICENSE.txt и LOGO_LICENSE.txt в репозитории Godot.

Также смотрите страницу лицензии официального сайта Godot.

Какие платформы поддерживаются Godot?

Для редактора:

  • Windows
  • macOS
  • X11 (Linux, *BSD)

Для экспорта ваших игр:

  • Windows (и UWP)
  • macOS
  • X11 (Linux, *BSD)
  • Android
  • iOS
  • Web

Поддерживается создание как 32-х, так и 64-х битных исполняемых файлов (для платформ, где это возможно); по умолчанию создаются 64-х битные файлы.

Некоторые пользователи также сообщают о сборке и использовании Godot для систем на базе ARM с Linux, таких как Raspberry Pi.

Ведутся работы (вне основного проекта Godot) по запуску на игровых консолях, но в стандартные скрипты сборки и шаблоны экспорта такие расширения не входят.

Более подробная информация есть в разделах экспорт и как собрать Godot.

Какие языки программирования поддерживаются в Godot?

Официально поддерживаемые языки для Godot это GDScript, Visual Scripting, C# и C++. Смотрите подкатегории для каждого языка в секции Скриптинг.

Если вы только начинаете разбираться с Godot или с разработкой игр в целом, то рекомендуем обучиться языку GDScript, поскольку он является родным языком для Godot. Хотя языки сценариев, как правило, менее эффективны, чем языки более низкого уровня в долгосрочной перспективе, для прототипирования, разработки минимальных жизнеспособных продуктов (MVP) и фокусирования на Time-To-Market (TTM), GDScript предоставляет достаточно быстрый, дружественный и действенный путь для создания ваших игр.

Обратите внимание, что поддержка C# это довольно новая функция и по пути вы можете столкнуться с некоторыми проблемами. Наше дружелюбное и трудолюбивое сообщество всегда готово решать новые проблемы по мере их возникновения, но поскольку это проект с открытым исходным кодом, то мы рекомендуем сначала выполнить некоторую должную осмотрительность. Поиск в обсуждениях на open issues это отличный способ приступить к решению возникших проблем.

Что касается новых языков, поддержка возможна с использованием возможностей сторонних решений GDNative / NativeScript / PluginScript. (См. вопрос о плагинах ниже.) В настоящее время работа ведется полным ходом, например, есть неофициальные привязки Godot к Python и Nim.

Что такое GDScript и зачем мне его использовать?

GDScript это интегрированный в Godot язык сценариев. Он был создан с нуля, что бы максимально задействовать потенциал движка Godot с минимальным количеством кода. Что позволяет как начинающим, так и опытным разработчикам как можно быстрее использовать сильные стороны Godot. Если вы когда нибудь писали что нибудь на языке, вроде Python, то тут вы почувствуете себя как дома. Примеры, история и полный обзор возможностей, предлагаемых GDScript, ждут вас в GDScript scripting guide.

Есть несколько причин использовать GDScript – особенно когда вы прототипируете, в альфа/бета состояниях вашего проекта или создании игры не AAA класса – но наиболее существенной причиной является общее снижение сложности.

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

Поскольку Godot является проектом с открытым исходным кодом, с самого начала было необходимо установить приоритет на безболезненном привлечении новых пользователей, через поддержку уже знакомых им языков программирования, особенно когда поддержка этих более знакомых языков приводит к не самому лучшему опыту. Мы поймём, если вы предпочтёте использовать в Godot другой язык (см. список поддерживаемых языков выше). Но, как говорится, если вы дадите GDScript шанс и просто попробуете его в течении трёх дней. То так же, как Godot, однажды вы увидите насколько мощной и быстрой становится ваша разработка, мы думаем, что GDScript вырастет в ваших глазах.

Более подробная информация, о том, как комфортабельно использовать GDScript или динамически типизированные языки может быть найдена в руководстве GDScript: Введение в динамически типизированные языки.

Каковы были мотивы создания GDScript?

Основными причинами создания своего собственного скриптового языка для Godot были:

  1. Слабая поддержка потоков, которые использует Godot, в виртуальных машинах скриптовых языков (Lua, Python, Squirrel, JS, AS, и пр.).
  2. В большинстве виртуальных машин нет хорошей поддержки расширения класса и процесс адаптации в Godot крайне неэффективен (Lua, Python, JS).
  3. Многие существующие языки имеют ужасные интерфейсы для привязки к C ++, что приводит к большому количеству кода, ошибкам, узким местам и общей неэффективности (Lua, Python, Squirrel, JS и т. Д.). Мы хотели сосредоточиться на отличном движке, а не на большом количестве интеграций.
  4. Отсутствие родных векторных типов (vector3, matrix4, и т.д.), приводило к серьёзному уменьшению производительности когда использовались собственные типы (Lua, Python, Squirrel, JS, AS и т.д.).
  5. Сборщик мусора приводит к остановке или излишне большому использованию памяти (Lua, Python, JS, AS и т.д.).
  6. Сложная интеграция с редактором кода для обеспечения его завершенности, редактирование в реальном времени и т.д. (все они). Это очень хорошо поддерживает GDScript.

GDScript был разработан, что бы разрешить проблемы описанные выше и не только.

Какой формат 3D моделей поддерживает Godot?

Godot поддерживает Collada через экспортер OpenCollada (Maya, 3DSMax).

Если вы используете Blender, то взгляните на наш собственный Better Collada Exporter.

Начиная с версии Godot 3.0, поддерживается glTF.

FBX SDK has a restrictive license, that is incompatible with the open license provided by Godot. That being said, FBX support could still be provided by third parties as a plugin. (See Plugins question below.)

Будет ли [Закрытый SDK такой как FMOD, GameWorks, и т.д.] поддерживаться в Godot?

Целью Godot является создание бесплатного и открытого движка с лицензией MIT, который является модульным и расширяемым. Сообщество разработчиков движка не планирует поддерживать сторонние SDK с закрытым исходным кодом/проприетарные SDK, поскольку интеграция с ними будет противоречить идеалу Godot.

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

To see how support for your SDK of choice could still be provided, look at the Plugins question below.

Если вы знаете стороннее SDK, которое не поддерживается Godot, но при этом бесплатное и с открытым исходным кодом, тогда вы можете начать работу по интеграции самостоятельно. Godot не принадлежит одному человеку; он принадлежит сообществу, растет вместе с амбициозными участниками сообщества, такими как вы.

Как ассеты должны быть созданы, чтобы поддерживать множество разрешений и соотношений сторон экрана?

Этот вопрос возникает часто, и это, вероятно, благодаря недопониманию, созданному Apple, когда они изначально удвоили разрешение своих устройств. Это заставляло людей думать, что иметь одинаковые ассеты в разных разрешениях было хорошей идеей, поэтому многие продолжали идти по этому пути. Это работало до определенного момента и только для устройств Apple, но затем было создано несколько устройств Android и Apple с различными разрешениями и соотношениями сторон с очень широким диапазоном размеров и DPI.

Самый распространенный и правильный способ достичь этого - использовать одно базовое разрешение для игры и управлять только различными пропорциями экрана. В основном, это нужно для 2D, так как в 3D это просто вопрос угла обзора камеры по осям X и Y (Camera XFov/YFov).

  1. Выберите одно базовое разрешение для своей игры. Даже если есть устройства, которые поднимаются до 2K и устройства, которые опускаются до 400p, обычное аппаратное масштабирование на вашем устройстве позаботится об этом практически без затрат. Наиболее распространенные варианты - либо около 1080p (1920x1080), либо 720p (1280x720). Имейте в виду, что чем выше разрешение, тем больше ваши ассеты, больше памяти они будут занимать и больше времени им потребуется для загрузки.
  2. Use the stretch options in Godot; 2D stretching while keeping aspect ratios works best. Check the Multiple resolutions tutorial on how to achieve this.
  3. Determine a minimum resolution and then decide if you want your game to stretch vertically or horizontally for different aspect ratios, or if there is one aspect ratio and you want black bars to appear instead. This is also explained in Multiple resolutions.
  4. Для пользовательских интерфейсов используйте закрепление, чтобы определить, где элементы управления должны оставаться и перемещаться. Если пользовательские интерфейсы являются очень сложными, подумайте о том, как использовать контейнеры.

И всё! Ваша игра будет работать в нескольких разрешениях.

Если вы хотите сделать игру пригодной к работе на старых устройствах с маленькими экранами (меньше чем 300 пикселей в ширину), вы можете использовать опцию экспорта для сжатия картинок и настроить проект на использование необходимых разрешений экрана в App Store или Google Play.

Как я могу расширить Godot?

Для расширения Godot, например, для создания плагинов редактора Godot или добавления поддержки дополнительных языков, взгляните на EditorPlugins и инструмент-скрипты (tool скрипты).

Также смотрите сообщения в официальном блоге по этим темам:

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

Я хочу внести свой вклад! С чего мне начать?

Это потрясающе! Проект с открытым исходным кодом, Godot процветает за счет инноваций и амбиций таких разработчиков, как вы.

Для начала вам нужно ознакомиться с разделом проблемы. Найдите проблему, которая вас заинтересовала, затем перейдите к Как внести свой вклад, чтобы узнать как создать форк, модифицировать, и создать Pull Request (PR) с вашими изменениями.

У меня есть отличная идея для Godot. Как я могу поделиться ей?

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

Большинству разработчиков в сообществе Godot будет интереснее узнать о таких вещах, как:

  • Ваш опыт использования данного программного обеспечения и возникающие у вас проблемы (нас волнует это гораздо больше, чем идеи об улучшениях).
  • Возможности, которые вы бы хотели видеть реализованными, потому что они нужны вам в вашем проекте.
  • Концепции, которые было сложно понять в процессе изучения программы.
  • Части вашего рабочего процесса, которые вы хотели бы видеть оптимизированными.
  • Части, где вам не хватает понятных уроков или документация недостаточно понятная.

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

Хороший способ подхода к обмену идеями и проблемами с сообществом — это набор пользовательских историй. Объясните, что вы пытаетесь сделать, какое поведение вы ожидаете, а затем, какое поведение на самом деле произошло. Обрамление проблем и идей таким образом поможет всему сообществу сосредоточиться на улучшении опыта разработчиков в целом.

Плюс в карму за предоставление скриншотов, конкретных значений, тестовых случаев или проектов-примеров (если возможно).

Как я могу поддержать разработку Godot или внести свой вклад?

Смотрите Пути содействия.

Кто работает над Godot? Как я могу связаться с вами?

Смотрите соответствующую страницу на официальном сайте Godot.