Философия дизайна Godot
Теперь, когда вы немного освоились, давайте поговорим о дизайне Godot.
Каждый игровой движок отличается и соответствует разным потребностям. Игровые движки не только предлагают широкий спектр функций, но и уникальный дизайн движка. Это приводит к разным рабочим процессам и различным способам формирования структур ваших игр. Все это вытекает из их соответствующих философий дизайна.
Эта страница здесь для того, чтобы помочь вам понять, как Godot работает, начиная с самых основ. Это не список доступных возможностей, также это не сравнение различных движков. Чтобы понять, хорошо ли подходит какой-либо движок для вашего проекта, его необходимо попробовать самостоятельно и понять его архитектуру и ограничения.
Пожалуйста, ознакомьтесь с Godot explained in 7 minutes если вы ищете обзор характеристик движка.
Объектно-ориентированный дизайн и композиция
В основе Godot лежит объектно-ориентированный дизайн с его гибкой системой сцен и иерархией узлов. Он старается держаться подальше от строгих шаблонов программирования в угоду интуитивному способу структурирования вашей игры.
Например, Godot позволяет вам составлять или собирать сцены. Это как вложенные префабы: вы можете создать сцену с мерцающим светом и сцену со сломанным фонарём, который использует мерцающий свет. Затем создать город, наполненный сломанными фонарями. Поменяйте цвет мерцающего света, сохраните, и все сломанные фонари в городе тут же обновятся.
Более того, вы можете наследовать от любой сцены.
Сценой в Godot может являться оружие, персонаж, предмет, дверь, уровень, часть уровня... всё, что пожелаете. Сцены работают как классы в коде, за исключением лишь того, что вы создаёте всё сами, используя редактор, либо только код, либо и то и другое одновременно.
Это отличается от префабов, которые можно найти в некоторых 3D движках, так как вы можете наследовать и расширять любую сцену. К примеру, вы можете создать сцену "Маг", которая будет потомком вашей сцены "Персонаж". Измените сцену "Персонаж" в редакторе, и сцена "Маг" также будет обновлена. Это позволит вам построить свои проекты таким образом, чтобы их структура соответствовала дизайну игры.

Также обратите внимание, что Godot предлагает множество различных типов объектов, называемых узлами, каждый из которых имеет определенную цель. Узлы являются частью дерева и всегда наследуют от своих родителей вплоть до класса Node (Узел). Хоть в движке и есть некоторые узлы, такие как формы столкновения, которые будут использоваться родительским физическим телом, большинство узлов работают независимо друг от друга.
Другими словами, узлы Godot работают не так, как компоненты в некоторых других игровых движках.

Sprite2D является Node2D, CanvasItem и Node. Он обладает всеми свойствами и особенностями трёх его родительских классов, такими как преобразования, или возможность рисовать собственные фигуры и отрисовывать с использованием собственных шейдеров.
Полный пакет
Godot предоставляет свои собственные инструменты для удовлетворения наиболее распространенных потребностей. Он имеет встроенный редактор кода, редактор анимации, редактор tilemap, редактор шейдеров, отладчик, профилировщик, возможность перезагрузки на ходу локально и на удаленных устройствах и многое другое.

The goal is to offer a full package to create games and a continuous user experience. You can still work with external programs as long as there is an import plugin available in Godot for it.
Отчасти поэтому Godot предлагает наряду с C# свой собственный язык программирования GDScript. GDScript разработан с учётом потребностей разработчиков и дизайнеров игр и тесно интегрирован в движок и редактор.
GDScript позволяет вам писать код с использованием синтаксиса на основе отступов, но при этом он определяет типы и предлагает качественное автозаполнение уровня современных языков со статической типизацией. К тому же, он оптимизирован для игрового кода с уже встроенными типами, такими как векторы и цвета.
Обратите внимание, что с помощью GDExtension вы можете писать высокопроизводительный код на таких компилируемых языках, как C, C++, Rust, D, Haxe или Swift, не перекомпилируя движок.
Обратите внимание, что в рабочем пространстве 3D нет того же количества инструментов, как в рабочем пространстве 2D. Вам понадобятся внешние программы или аддоны для редактирования ландшафтов, анимации сложных персонажей и т.д. Godot предоставляет полный API для расширения функциональности редактора с помощью кода игры. См. Редактор Godot - это игра на Godot ниже.
Открытый исходный код
Godot offers a fully open source codebase under the MIT license. This means that the codebase is free for anyone to download, use, modify, or share, as long as its license file is kept intact.
All technologies that ship with Godot, including third-party libraries, must be legally compatible with this open source license. Therefore, most parts of Godot are developed from the ground up by community contributors.
Любой может подключить проприетарный инструментарий для нужд своих проектов - он просто не будет поставляться с движком. Это могут быть, например, Google AdMob или FMOD. Что угодно из этого может подойти в качестве стороннего плагина.
С другой стороны, открытая кодовая база означает, что вы можете изучать и расширять движок как вам угодно. Вы также можете легко отлаживать игры, поскольку Godot будет печатать ошибки с отслеживанием стека, даже если они исходят из самого движка.
Примечание
Это ни коим образом не влияет на работу, которую вы совершаете с Godot: нет никаких условий для движка или всего, что вы делаете с ним.
Управляемый сообществом
Godot создается его сообществом, для сообщества и для всех создателей игр. Именно потребности пользователей и открытые дискуссии движут основными обновлениями. Новые функции от основных разработчиков часто фокусируются на том, что в первую очередь принесет пользу большинству пользователей.
Несмотря на то, что над проектом постоянно работает несколько основных разработчиков, на момент написания статьи в нём участвовали тысячи человек. Доброжелательные программисты работают над функциями, которые могут понадобиться им самим, поэтому в каждом крупном релизе вы увидите улучшения во всех частях движка.
Редактор Godot - это игра на Godot
Редактор Godot работает на игровом движке. Он использует собственную систему пользовательского интерфейса движка, он может быстро перезагружать код и сцены при тестировании ваших проектов или запускать игровой код в редакторе. Это означает, что вы можете использовать один и тот же код и сцены для своих игр или создавать плагины и расширять редактор.
Это позволяет создать надёжную и гибкую систему пользовательского интерфейса, так как она питает сам редактор. С помощью аннотации @tool вы можете запускать любой игровой код в редакторе.
RPG in a Box is a voxel RPG editor made with Godot. It uses Godot's UI tools for its node-based programming system and for the rest of the interface.
Поместите аннотацию @tool в начало любого файла GDScript, и он будет запущен в редакторе. Это позволяет импортировать и экспортировать плагины, создавать плагины, например, пользовательские редакторы уровней, или создавать скрипты с теми же узлами и API, которые вы используете в своих проектах.
Примечание
Редактор полностью написан на C++ и статически скомпилирован в бинарный файл. Это означает, что вы не можете импортировать его как обычный проект с файлом project.godot.
Отдельные 2D и 3D движки
Godot предлагает специализированные движки 2D- и 3D-отрисовки. В итоге базовая единица для 2D-сцен - это пиксели. Несмотря на то, что движки являются отдельными, вы можете отрендерить 2D в 3D, 3D в 2D и накладывать 2D-спрайты и интерфейсы поверх вашего 3D-мира.