Различие модуля и расширения:
Расширение (plugin/addon) - работает в официальном редакторе Godot и не требует никаких дополнительных действий, и работает со стандартными шаблонами экспорта.
Модуль (module) - требует модификации исходного кода и сборки всего редактора Godot, также сборки каждого из шаблонов для экспорта на каждую из платформ.
Кроссплатформа - расширения используют только возможности движка Godot поэтому они все совместимы со всеми поддерживаемыми платформами, модули в зависимости от кода модуля там может быть непереносимый код, я не встречал таких.
Установка модулей и расширений:
Расширения (plugin/addon) - для установки скопируйте расширение в каталог addons в вашем проекте. Структура должны быть такой - addons/<название расширения>/
, достаточно скопировать <название расширения>
в каталог addons. И включить в опциях проекта Проект (Project) - Настройки проекта (Project Settings)
Модули (module) - в большинстве случаев достаточно скопировать каталог с модулем в godot_<версия исходный код>/modules/<название модуля>
и сделать сборку Godot редактора и нужных шаблонов следуя инструкции. После сборки функционал модуля станет доступным.
Расширения:
Godot Console - позволяет создавать простой UI элемент Консоль, и просто добавлять туда команды, полезно во многих случаях.
Godot-3D-text-plugin - позволяет прямо в редакторе создавать трехмерный объект(mesh) в форме текста, создавать буквально двумя кликами, есть поддержка шрифтов. Для получения объекта нажать Convert to MeshInstance.
smoothing-addon - позволяет просто создавать плавную интерполяцию положения трехмерных объектов, больше информации по ссылке на расширение. Видео использования, физический ФПС установлен на 8, слева реальная позиция, справа используя smoothing-addon:
3D Trail addon for Godot - оставляет плоский след за объектами, к сожалению геометрия следа генерируется на CPU, что даст сильную нагрузку при использовании на десятках объектах одновременно. Лучше всего использовать не более чем на нескольких объектах.
Concept Graph - я не тестировал и не пользовался, для ознакомления рекомендую посмотреть видео в этом твите автора, позволяет создавать сложные правила для трехмерных объектов, что дает комплексный результат. Похоже на визуальное программирование, код писать не надо.
Scatter - для его работы требуется другой плагин Polygon Path, позволяет делать дубликаты одного объекта в выделенной области, например трава или деревья.
Godot-Planar-Reflection-Plugin - создание отражений с помощью камеры. Может пригодиться для реалистичных отражений. Можно также использовать для отражений в воде Больше информации и примеров по ссылке.
gdscript-pp - я не пробовал это расширение, позволяет конвертировать GDScript в C++ код который может быть скомпилирован с движком, что избавляет от проблем и узких мест GDScript. Есть ограничения например требуется строгая типизация в GDScript, если сделаете var x=10
и потом x="Hello"
такое не поддерживается, var x:int=10
так будет работать. Выглядит очень полезно для ускорения готовой игры/проекта, конвертируя скрипты в C++ код.
Дальше не совсем плагины, просто готовые полезные шейдеры, скрипты, и примеры:
Godot Realistic Water - хороший и быстрый шейдер воды с выделением (используя depth) объектов пересекающих воду.
Godot_force_shield_shader - простой эффект энергетического щита, главное то что реализована логика выделения пересекающих объектов используя depth.
Screen-Space-Decals - логика отпечатков на шейдерах, так как в Godot 3 нет поддержки decals. Более комплексное использование этой техники в Godot я описал в своей статье на хабре ссылка, где есть ссылки на исходный код моего измененного шейдера.
Simple Wind Shader - пример использования и создания шейдера анимации движения травы и листвы под действием ветра.
Mirror example - проект с примером создания зеркала.
Camera Control Script - очень полезный скрипт для контроля камеры, по сути шаблон для всех трехмерных камер.
Модули:
Futari-addon - очень полезный модуль для GPU-частиц, позволяет добавлять физический коллайдер сферу или плоскость, и частицы будут взаимодействовать с ними, также можно добавлять области с ускорением на подобии ветра. Эта логика работает и в WebGL2. На хабре есть статья с моим примером использования этого модуля. Есть демо проект от автора.
HeightMap terrain plugin - создание площадей как карты высот, есть поддержка разных текстур, травы, также LOD и физика. Полноценный HeightMap с которым можно делать все что требуется.
Voxel Tools for Godot - создание воксельных миров и их редактор в реальном времени, банально по типу Майнкрафта, есть опция сглаживания геометрии, будет похоже на HeightMap без кубиков. Больше скриншотов и информации по ссылке.
Godot-lportal - добавляет поддержку occlusion culling в Godot 3. Я лично не нашел применения этому плагину, по утверждению автора этот плагин позволяет делать даже порталы в Godot 3 без потери производительности. Также, возможно, этот плагин будет добавлен в Godot 3 в будущем.
Godot-lsimd - добавляет поддержку SIMD в Godot 3. Использовать можно прямо в GDScript, ускоряя работу с массивами и большими объемами данных.
thenonsense
Есть ещё такая вещь как Voxel Tools (кастомная сборка движка на основе версии 3.2.2):
https://github.com/Zylann/godot_voxel
Там реализован вывод бесконечных, как-бы «воксельных» ландшафтов. По факту это технология marching cubes, перепаивающая полигональную сетку.
Я собирал вот такой прототипчик с паучком, работая в этой «воксельной» сборке (правда видео захвачено на не особо мощном железе, к тому же тени тут отключены):
atri1 Автор
Точно! Видел этот модуль забыл совсем.
Спасибо добавил.
thenonsense
Ну ты его практически упомянул, потому как это от того же автора, который делал реализацию террейна для Годо.
stalker320
Довольно полезно. Мне нравится. Ничего лишнего, всё нужное.
DROS
А нет ли чего-то похожего на отображение тайловых карт с гео.сервисов типа google maps или open street map? Или Годо не умеет тянуть текстуры из внешних источников? Не спрашивайте зачем и не рассказывайте про запрет использования тайлов того же гугла везде, кроме родного api. Это я для примера привел, чтоб понятно было о чем речь. Просто интересно — можно ли такое сделать или нет?
atri1 Автор
Годот это игровой движок.
То что ты хочешь это программа под конкретную задачу, ты можешь сделать это используя Годот.
Да можешь, стандартных средств Готот для этого хватит, никакой исходный код модифицировать не нужно и плагины для этого не нужны.
atri1 Автор
добавил еще gdscript-pp, забыл про него
werton
А почему только для 3D, а для 2D ничего годного нет что-ли?
atri1 Автор
В статье только мои плагины которые я нашел за год использования Годот, я не интересовался 2D. Напиши свою статью со своим списком 2D плагинов полезных.
werton
Да я без наезда какого-либо, просто спросил. Сам только 2D занимаюсь, но Godot не юзал, поэтому поинтересовался, есть там чего годного или нет.
stalker320
Если искать — можно найти что угодно. Главное хорошо искать. Я пишу собственную библиотеку для 2D платформеров постепенно. Когда завершу — выложу в библиотеку ассетов. Ну а пока — пишу статьи о разных геймплейных элементах которые реализовал. Так что жди, всё ещё будет на блендере от мира игровых движков.
atri1 Автор
Godot имеет очень обширный функционал в 2D, которого из коробки практически для любых идей хватит.
В 2D плагины особо и не нужны, только "скрипты-помощники" по типу шаблонов реализующих множество тривиальных действий (например система инвентаря, или система сохранения)… но опятьже я не делал ничего большого в 2D в Godot, поэтому у меня нет списка нужных и полезных расширений для 2D.