Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

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

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

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

Вкратце:

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

  • Вы можете свободно изменять, распространять и пересобирать Godot по любой причине, как не коммерчески, так и коммерчески.

Все содержимое этой сопроводительной документации опубликовано под лицензией Creative Commons Attribution 3.0 (CC-BY 3.0) с указанием авторства "Хуан Линецкий, Ариэль Манзур и сообщество Godot Engine."

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

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

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

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

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

  • Windows

  • macOS

  • Linux, *BSD

  • Android (экспериментальный)

  • Web (экспериментальный)

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

  • Windows

  • macOS

  • Linux, *BSD

  • Android

  • iOS

  • Web

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

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

Команда Godot не может обеспечить реализацию экспорта с открытым исходным кодом на консоли из-за условий лицензирования, установленных производителями консолей. Независимо от используемого движка, выпуск игр на консоли — это всегда большой объём работы. Вы можете узнать больше здесь: Поддержка консолей в Godot.

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

Примечание

Godot 3 также имел поддержку Uniwersal Windows Platform (UWP). Эта платформа была удалена в Godot 4 из за слабой поддержки, а также того факта, что Microsoft перевёл UWP в категорию устаревшего ПО. Тем не менее, в Godot 3 версии current stable, она всё ещё доступна для интересующихся пользователей.

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

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

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

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

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

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

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

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

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

Since Godot is an open source project, it was imperative from the start to prioritize a more integrated and seamless experience over attracting additional users by supporting more familiar programming languages, especially when supporting those more familiar languages would result in a worse experience. We understand if you would rather use another language in Godot (see the list of supported options above). That being said, if you haven't given GDScript a try, try it for three days. Just like Godot, once you see how powerful it is and rapid your development becomes, we think GDScript will grow on you.

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

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

In the early days, the engine used the Lua scripting language. Lua can be fast thanks to LuaJIT, but creating bindings to an object-oriented system (by using fallbacks) was complex and slow and took an enormous amount of code. After some experiments with Python, that also proved difficult to embed.

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

  1. Слабая поддержка потоков, которые использует Godot, в виртуальных машинах скриптовых языков (Lua, Python, Squirrel, JS, AS, и пр.).

  2. В большинстве виртуальных машин нет хорошей поддержки расширения классов, и процесс адаптации в Godot крайне неэффективен (Lua, Python, JS).

  3. Многие существующие языки имеют ужасные интерфейсы для привязки к C++, что приводит к большому количеству кода, ошибкам, "бутылочным горлышкам" и общей неэффективности (Lua, Python, Squirrel, JS и т.д.). Мы хотели сосредоточиться на качественном движке, а не на большом количестве интеграций.

  4. Отсутствие родных векторных типов (Vector3, Transform3D и др.) приводило к серьёзному уменьшению производительности, когда использовались собственные типы (Lua, Python, Squirrel, JavaScript, ActionScript и т.д.).

  5. Сборщик мусора приводит к остановке или излишне большому использованию памяти (Lua, Python, JS, AS и т.д.).

  6. Сложная интеграция с редактором кода для обеспечения автодополнения, редактирования в реальном времени и т.д. (все языки).

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

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

Более детальную информацию о поддерживаемых форматах, как их экспортировать из вашего 3D-редактора, а также импортировать в Godot можете найти здесь: Импорт 3D сцен.

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

The aim of Godot is to create a free and open source MIT-licensed engine that is modular and extendable. There are no plans for the core engine development community to support any third-party, closed-source/proprietary SDKs, as integrating with these would go against Godot's ethos.

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

Чтобы узнать, как еще можно обеспечить поддержку вашего SDK, прочтите в вопросах о плагинах выше.

If you know of a third-party SDK that is not supported by Godot but that offers free and open source integration, consider starting the integration work yourself. Godot is not owned by one person; it belongs to the community, and it grows along with ambitious community contributors like you.

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

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

Кроме того, см. официальный пост в блоге про GDExtension, способ разработки нативных расширений для Godot:

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

Как мне установить редактор Godot на свою систему (для установки на рабочий стол)?

Так как Вам не нужно устанавливать Godot на Вашу систему, чтобы запустить его, это значит, что установка на рабочий стол не выполняется автоматически. Есть два способа для решения этой проблемы. Вы можете установить Godot через Steam <https://store.steampowered.com/app/404790/Godot_Engine/> __ (на всех платформах), Scoop (Windows), Homebrew (macOS) или Flathub (Linux). С помощью этого необходимые шаги для установки на рабочий стол будут выполнены автоматически.

Либо же Вы можете вручную выполнить шаги, которые программа установки сделала бы за Вас:

Windows

  • Переместите исполняемый файл Godot в стабильное место (т.е. за пределы папки "Загрузки"), чтобы в будущем Вы случайно не переместили его или не повредили ярлык.

  • Щелкните правой кнопкой мыши на исполняемый файл Godot и выберите Создать ярлык.

  • Переместите созданный ярлык в %APPDATA%\Microsoft\Windows\Start Menu\Programs. Это общепользовательское расположение для ярлыков, которые будут отображаться в меню "Пуск". Вы также можете прикрепить Godot на панель задач, нажав на правую кнопку мыши по исполняемому файлу и выбрав Прикрепить на Панель Задач.

macOS

Переместите извлечённое приложение Godot в /Applications/Godot.app, затем, если Вы хотите, можете переместить его на панель задач. Spotlight сможет найти Godot, пока он будет находиться в /Applications or ~/Applications.

Linux

  • Переместите бинарный файл Godot в стабильное место (т.е. за пределы папки "Загрузки"), чтобы в будущем Вы случайно не переместили его и не повредили ярлык.

  • Переименуйте и переместите бинарный файл Godot в место вашей переменной среды PATH. Обычно это /usr/local/bin/godot или /usr/bin/godot. Для этого требуются права администратора , но это также позволяет Вам запустить редактор Godot из терминала, введя``godot``.

    • Если Вы не можете переместить редактор Godot в защищённое место, Вы можете оставить бинарный файл где-нибудь в домашнем каталоге, и отредактировать файл Path= строка в .desktop, приведённый ниже, чтобы включить его в полную абсолютную переменную path в бинарном файле Godot.

  • Сохраните этот .desktop файл в $HOME/.local/share/applications/. Если у Вас есть права администратора, Вы также можете сохранить .desktop файл в /usr/local/share/applications, чтобы предоставить доступ к ярлыку всем пользователям.

Является ли Godot портативным?

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

Однако, конфигурационные файлы будут написаны для общепользовательских настроек или каталога данных. Обычно это хороший метод, но он означает, что конфигурационные файлы не перенесут оборудование, если Вы скопируете папку, содержащую исполняемый файл Godot. См. :ref:`doc_data_paths`для дополнительной информации.

Если true, то потребуется портативная операция (например, для использования USB-накопителя), выполните следующие действия в Self-contained mode.

Почему Godot использует Vulkan или OpenGL вместо Direct 3D?

Прежде всего, Godot стремится к совместности перекрёстных платформ и открытым стандартам. OpenGl и Vulkan - технологии, открытые и доступные на (почти) всех платформах. Благодаря этому дизайнерскому решению, проект, созданный с Godot на Windows, будет готов к работе на Linux, macOS и др.

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

В будущем, возможно, мы разработаем для Godot рендерер Direct3D 12 (в основном для Xbox), однако Vulkan и OpenGL останутся основными графическими отрисовщиками для всех платформ по умолчанию, включая Windows.

Почему Godot стремится сохранить свой набор основных функций маленьким?

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

На это есть несколько причин:

  • Code maintenance and surface for bugs. Every time we accept new code in the Godot repository, existing contributors often take the responsibility of maintaining it. Some contributors don't always stick around after getting their code merged, which can make it difficult for us to maintain the code in question. This can lead to poorly maintained features with bugs that are never fixed. On top of that, the "API surface" that needs to be tested and checked for regressions keeps increasing over time.

  • Легкость вклада. Сохраняя небольшую и аккуратную кодовую базу, ее можно быстро и легко компилировать из исходного кода. Это облегчает новым участникам начало работы с Godot, не требуя от них покупки высокопроизводительного оборудования.

  • Сохранение небольшого размера двоичного файла для редактора. Не у всех есть быстрое подключение к Интернету. Обеспечение того, чтобы каждый мог загрузить редактор Godot, извлечь его и запустить менее чем за 5 минут, делает Godot более доступным для разработчиков во всех странах.

  • Keeping the binary size small for export templates. This directly impacts the size of projects exported with Godot. On mobile and web platforms, keeping file sizes low is important to ensure fast installation and loading on underpowered devices. Again, there are many countries where high-speed Internet is not readily available. To add to this, strict data usage caps are often in effect in those countries.

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

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

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

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

  1. Выберите одно базовое разрешение для своей игры. Даже если есть устройства, которые поднимаются до 1440p и устройства, которые опускаются до 400p, обычное аппаратное масштабирование на вашем устройстве позаботится об этом практически без затрат. Наиболее распространенные варианты - либо около 1080p (1920x1080), либо 720p (1280x720). Имейте в виду, что чем выше разрешение, тем больше ваши ассеты, больше памяти они будут занимать и больше времени им потребуется для загрузки.

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

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

  4. Для пользовательских интерфейсов используйте закрепление, чтобы определить, где элементы управления должны оставаться и перемещаться. Если пользовательские интерфейсы являются очень сложными, подумайте о том, как использовать контейнеры.

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

Когда выйдет следующий релиз Godot?

Когда он будет готов! Смотрите Когда следующий релиз? для дополнительного ознакомления.

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

Мы рекомендуем использовать Godot 4.x для новых проектов, но в зависимости от требуемого набора функций может быть лучше использовать версию 3.x вместо этой. См. раздел :ref:doc_release_policy_which_version_should_i_use для получения дополнительной информации.

Следует ли мне обновить свой проект до новых версий Godot?

Некоторые новые версии более безопасны для обновления, чем другие. В целом, решение о том, стоит ли вам обновляться, зависит от обстоятельств вашего проекта. См. раздел :ref:doc_release_policy_should_i_upgrade_my_project для получения дополнительной информации.

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

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

Лучший способ начать внести вклад в Godot - это использовать его и сообщать об ошибках <https://github.com/godotengine/godot/issues>, которые вы можете обнаружить. Хороший отчет об ошибке с четкими шагами воспроизведения помогает вашим коллегам-разработчикам быстро и эффективно устранять ошибки. Вы также можете сообщать о проблемах, которые вы находите в онлайн-документации <https://github.com/godotengine/godot-docs/issues>.

Если вы готовы представить свой первый запрос на включение (PR), выберите любую проблему, которая вас заинтересовала, из одной из приведенных выше ссылок и попробуйте решить ее. Вам потребуется научиться компилировать движок из исходных кодов или создавать документацию. Также вам нужно ознакомиться с Git, системой управления версиями, которую используют разработчики Godot.

Мы объясняем, как работать с исходным кодом движка, как редактировать документацию и какие еще способы внести вклад есть в нашем :ref: руководстве для участников <doc_ways_to_contribute>.

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

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

Если вы испытываете сложности с использованием или не можете найти какую-то функцию в текущей версии Godot, то начните обсуждение в нашем Сообществе<https://godotengine.org/community/>. Там вы можете найти другие, возможно лучшие, пути достижения желаемого результата, который наши участники сообщества могут предложить. В добавок вы можете узнать, испытывают ли другие пользователи похожие сложности и найти подходящее решение вместе.

Если у вас есть четкая идея для улучшения движка, не стесняйтесь создать запрос на предложение. Постарайтесь быть конкретными и четкими, описывая свою проблему и предлагаемое решение — рассматриваются только конкретные предложения. Это не является обязательным, но если у вас есть желание реализовать это самостоятельно, это всегда приветствуется!

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

Пожалуйста, прочтите readme документ перед созданием предложения, чтобы узнать больше о процессе.

Можно ли использовать Godot для создания не игровых приложений?

Да! Godot обладает обширной встроенной системой пользовательского интерфейса, а небольшой размер дистрибутива может сделать его подходящей альтернативой таким фреймворкам, как Electron или Qt.

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

Загляните в Material Maker и Pixelorama для примеров приложений с открытым исходным кодом, созданных с помощью Godot.

Можно ли использовать Godot как библиотеку?

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

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

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

Godot не использует стандартный набор инструментов ГИП, наподобие GTK, Qt или wxWidgets. Вместо этого Godot использует собственный набор инструментов пользовательского интерфейса, созданный с помощью OpenGL ES или Vulkan. Этот инструментарий представлен в виде узлов управления, которые используются для визуализации редактора (написанного на C++). Эти узлы управления также можно использовать в проектах на любом языке сценариев, поддерживаемом Godot.

Этот собственный набор инструментов позволяет использовать преимущества аппаратного ускорения и иметь единообразный внешний вид на всех платформах. Вдобавок ко всему, ему не нужно иметь дело с оговорками лицензирования LGPL, которые идут с GTK или Qt. Наконец, это означает, что Godot «ест свою собачью еду», поскольку сам редактор является одним из самых сложных пользователей системы пользовательского интерфейса Godot.

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

Почему Godot использует систему сборки SCons?

Godot использует систему сборки`SCons <https://www.scons.org/>`__ . В ближайшем будущем не планируется переход на другую систему сборки. Есть много причин, по которым мы предпочли SCons другим альтернативам. К примеру:

  • Godot может быть скомпилирован для множества различных платформ: все ПК платформы, все мобильные платформы, множество консолей, и WebAssembly.

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

  • SCons совершенно никогда не сломает сборку независимо от количества изменений, конфигураций, дополнений, удалений итд.

  • Процесс сборки Godot не прост. Множество файлов созданы в коде(связующие(binders)), другие прошли через парсинг (шейдеры), а другие нуждаются в тонкой настройке (плагины). Всё это требует сложной логики которая может бы легко написана на подходящем языке программирования (например Python) чем использовать язык с макросами нужным только для сборки.

  • Godot's build process makes heavy use of cross-compiling tools. Each platform has a specific detection process, and all these must be handled as specific cases with special code written for each.

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

Почему Godot не использует STL (стандартную библиотеку шаблонов)?

Как и многие другие библиотеки (например, Qt), Godot не использует STL (за некоторыми исключениями, такими как потоковые примитивы). Мы считаем, что STL - это отличная библиотека общего назначения, но у нас были особые требования к Godot.

  • Шаблоны STL создают очень большие символы, что приводит к огромным отладочным двоичным файлам. Вместо этого мы используем несколько шаблонов с очень короткими именами.

  • Большинство наших контейнеров удовлетворяют особые потребности, например Vector, который использует копирование при записи, которое мы используем для передачи данных, или система RID, которая требует O(1) времени доступа для производительности. Аналогично, наши реализации хеш-карт предназначены для бесшовной интеграции с внутренними типами движков.

  • В наши контейнеры встроена функция отслеживания использования памяти, которая помогает лучше отслеживать использование памяти.

  • Для больших массивов мы используем память в виде пулов, отображаемых либо на предварительно выделенный буфер, либо на виртуальную память.

  • Мы используем наш собственный тип String, так как предоставляемый STL является слишком простым и не имеет надлежащей поддержки интернационализации.

Почему Godot не использует исключения?

Мы считаем, что игры не должны крашиться, несмотря ни на что. Если случится неожиданная ситуация, Godot выдаст ошибку (которую можно отследить вплоть до скрипта), но затем попытается исправить ее как можно более изящно и продолжить работу.

Кроме того, исключения значительно увеличивают размер двоичного исполняемого файла и приводят к увеличению времени компиляции.

Использует ли Godot ECS (Entity Component System)?

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

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

Более подробную информацию о выборах в дизайне Godot можно найти в этой статье.

Почему Godot не принуждает пользователей к внедрению DOD (дизайн, ориентированный на данные(Data-Oriented Design))?

В то время как Godot пытается как можно лучше использовать согласованность кэша, мы считаем, что пользователей не нужно заставлять использовать практики DOD.

DOD is mostly a cache coherency optimization that can only provide significant performance improvements when dealing with dozens of thousands of objects which are processed every frame with little modification. That is, if you are moving a few hundred sprites or enemies per frame, DOD won't result in a meaningful improvement in performance. In such a case, you should consider a different approach to optimization.

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

Если игра должна обрабатывать большое количество объектов, то мы рекомендуем использовать C++ и GDNative для высокозатратных частей и GDScript (или C#) для остальной части игры.

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

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

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

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