Godot: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
м откат правок 90.188.243.89 (обс.) к версии Q-bit array
Метка: откат
 
(не показано 40 промежуточных версий 22 участников)
Строка 3: Строка 3:
| логотип = Godot (game engine) logo.svg
| логотип = Godot (game engine) logo.svg
| тип = [[Игровой движок]]
| тип = [[Игровой движок]]
| разработчик = Соавторство разработчиков
| разработчик = The Godot Foundation
| первый выпуск = 14 января 2014
| первый выпуск = 14 января 2014
| состояние = Активное
| состояние = Активное
| лицензия = [[Лицензия MIT]]
| лицензия = [[Лицензия MIT]]
| сайт = [http://www.godotengine.org]
| сайт = http://www.godotengine.org
| кандидат в релизы = 4.2 RC 2
| дата кандидата в релизы = 24 ноября 2023
| бета-версия = 4.2 beta 6
| дата бета-версии = 13 ноября 2023
| скриншот = [[Файл:Godot21 screen coding.png|300px|Снимок экрана Godot]]
| скриншот = [[Файл:Godot21 screen coding.png|300px|Снимок экрана Godot]]
| заголовок = Интерфейс Godot v3.1
| заголовок = Интерфейс Godot v3.1
Строка 13: Строка 17:
| title = {{Nobr|Для разработки}}
| title = {{Nobr|Для разработки}}
| 1 = [[Linux]]
| 1 = [[Linux]]
| 2 = [[OS X]]
| 2 = [[macOS]]
| 3 = [[Microsoft Windows|Windows]]
| 3 = [[Microsoft Windows|Windows]]
| 4 = [[Berkeley Software Distribution|BSD]]
| 4 = [[Berkeley Software Distribution|BSD]]
Строка 21: Строка 25:
|title = Целевые
|title = Целевые
| 1 = [[Linux]]
| 1 = [[Linux]]
| 2 = [[OS X]]
| 2 = [[macOS]]
| 3 = [[Microsoft Windows|Windows]]
| 3 = [[Microsoft Windows|Windows]]
| 4 = [[Berkeley Software Distribution|BSD]]
| 4 = [[Berkeley Software Distribution|BSD]]
Строка 30: Строка 34:
| 9 = [[HTML5]]
| 9 = [[HTML5]]
}}
}}
| язык программирования = [[C++]]<ref>{{cite web|url=https://www.openhub.net/p/godotengine|title=The Godot Game Engine Open Source Project on Open Hub|accessdate=2015-07-30|archive-date=2020-01-12|archive-url=https://web.archive.org/web/20200112211808/https://www.openhub.net/p/godotengine|deadlink=no}}</ref>
| язык программирования = [[C++]]<ref>{{cite web|url=https://godotengine.org/press/|accessdate=2015-07-30|archive-date=2020-01-12|archive-url=https://web.archive.org/web/20200112211808/https://www.openhub.net/p/godotengine|deadlink=no}}</ref>
| язык = [[Английский язык|Английский]]
| язык = [[Английский язык|Английский]]
}}
}}


'''Godot Engine''' ({{Lang-fr|gó-doh}}<ref>{{Cite web|url=https://godotengine.org/qa/175/what-is-the-proper-way-to-say-godot|title=What is the proper way to say "Godot"? - Godot Engine - Q&A|publisher=godotengine.org|accessdate=2018-08-21|archive-date=2018-08-21|archive-url=https://web.archive.org/web/20180821223728/https://godotengine.org/qa/175/what-is-the-proper-way-to-say-godot|deadlink=no}}</ref> ) — [[Открытое программное обеспечение|открытый]] [[Кроссплатформенность|кроссплатформенный]] 2D и 3D [[игровой движок]] под [[Лицензия MIT|лицензией MIT]], который разрабатывается сообществом Godot Engine Community. До публичного релиза в виде открытого [[Программное обеспечение|ПО]] движок использовался внутри некоторых компаний [[Латинская Америка|Латинской Америки]].<ref>{{cite web|url=http://80.lv/articles/godot2-interview/|title=Godot 2.0: Talking with the Creator|website=80.lv|accessdate=2016-06-18|last1=Linietsky|first1=Juan|archive-date=2018-06-13|archive-url=https://web.archive.org/web/20180613014543/https://80.lv/articles/godot2-interview/|deadlink=no}}</ref> Среда разработчика работает на [[Linux]], [[macOS]], [[Microsoft Windows|Windows]], [[Berkeley Software Distribution|BSD]] и [[Haiku]] и может экспортировать игровые проекты на [[Персональный компьютер|ПК]], [[Игровая консоль|консоли]], [[Мобильный компьютер|мобильные]] и [[Веб-сайт|веб]]-платформы.
'''Godot Engine''' (читается «Годо́», от {{Lang-fr|Godot}}<ref>{{cite web |url=https://godotengine.org/press/ |title=Godot Engine naming and pronunciation |website=godotengine.org |lang=en |accessdate=2023-09-19 |archive-date=2023-09-21 |archive-url=https://web.archive.org/web/20230921130747/https://godotengine.org/press/ |url-status=live }}</ref>) — [[Открытое программное обеспечение|открытый]] [[Кроссплатформенность|кроссплатформенный]] 2D- и 3D-[[игровой движок]] под [[Лицензия MIT|лицензией MIT]], который разрабатывается сообществом Godot Engine Community. До публичного релиза в виде открытого [[Программное обеспечение|ПО]] движок использовался внутри некоторых компаний [[Латинская Америка|Латинской Америки]]<ref>{{cite web|url=http://80.lv/articles/godot2-interview/|title=Godot 2.0: Talking with the Creator|website=80.lv|accessdate=2016-06-18|last1=Linietsky|first1=Juan|archive-date=2018-06-13|archive-url=https://web.archive.org/web/20180613014543/https://80.lv/articles/godot2-interview/|deadlink=no}}</ref>. Среда разработки запускается на [[Android]], [[HTML5]], [[Linux]], [[macOS]], [[Microsoft Windows|Windows]], [[Berkeley Software Distribution|BSD]] и [[Haiku]] и может экспортировать игровые проекты на [[Персональный компьютер|ПК]], [[Игровая консоль|консоли]], [[Мобильный компьютер|мобильные]] и [[Веб-сайт|веб]]-платформы.

== Обзор ==
== Обзор ==
Задача Godot — быть максимально интегрированной и самодостаточной средой для [[Разработка видеоигр|разработки игр]]. Среда позволяет разработчикам создавать игры с нуля, не пользуясь более никакими инструментами, за исключением тех, которые необходимы для создания игрового контента (элементы графики, музыкальные треки и т. д.). Процесс программирования также не требует внешних инструментов (хотя при необходимости использовать внешний редактор, это можно сделать относительно легко).
Задача Godot — быть максимально интегрированной и самодостаточной средой для [[Разработка видеоигр|разработки игр]]. Среда позволяет разработчикам создавать игры с нуля, не пользуясь более никакими инструментами, за исключением тех, которые необходимы для создания игрового контента (элементы графики, музыкальные треки и т. д.). Процесс программирования также не требует внешних инструментов (хотя при необходимости использовать внешний редактор, это можно сделать относительно легко).
Строка 40: Строка 45:
Общая архитектура движка построена вокруг концепции [[Дерево (структура данных)|дерева]] из наследуемых «сцен». Каждый элемент сцены ([[Вершина (теория графов)|нода]]), в любой момент сам может стать полноценной сценой. Поэтому при разработке можно легко изменять полностью всю архитектуру проекта, расширять её элементы в любую сторону и работать с комплексными сценами на уровне простых абстракций.
Общая архитектура движка построена вокруг концепции [[Дерево (структура данных)|дерева]] из наследуемых «сцен». Каждый элемент сцены ([[Вершина (теория графов)|нода]]), в любой момент сам может стать полноценной сценой. Поэтому при разработке можно легко изменять полностью всю архитектуру проекта, расширять её элементы в любую сторону и работать с комплексными сценами на уровне простых абстракций.


Все игровые ресурсы, от скриптов до графических ассетов и игровых сцен, хранятся в папке проекта как обычные файлы, и не являются частью сложной базы данных проекта. Ресурсы, которые не представляют собой комплексных данных, хранятся в простых текстовых форматах (например, скрипты и сцены, в отличие от моделей и текстур). Эти решения позволяют значительно упростить разным командам разработчиков работу с [[Система управления версиями|системами управления версиями]].<ref>{{cite web|url=http://godotengine.org/projects/godot-engine/wiki/File_System|title=File Systems|website=Godot documentation|publisher=Godot|accessdate=2016-01-29|archiveurl=https://web.archive.org/web/20160206061535/http://godotengine.org/projects/godot-engine/wiki/File_System|archivedate=2016-02-06}}</ref>
Все игровые ресурсы, от скриптов до графических [[Игровой ассет|ассетов]] и игровых сцен, хранятся в папке проекта как обычные файлы, и не являются частью сложной базы данных проекта. Ресурсы, которые не представляют собой комплексных данных, хранятся в простых текстовых форматах (например, скрипты и сцены, в отличие от моделей и текстур). Эти решения позволяют значительно упростить разным командам разработчиков работу с [[Система управления версиями|системами управления версиями]]<ref>{{cite web|url=http://godotengine.org/projects/godot-engine/wiki/File_System|title=File Systems|website=Godot documentation|publisher=Godot|accessdate=2016-01-29|archiveurl=https://web.archive.org/web/20160206061535/http://godotengine.org/projects/godot-engine/wiki/File_System|archivedate=2016-02-06}}</ref>.


=== Скриптинг ===
=== Скриптинг ===
Игра создаётся с использованием собственного высокоуровневого [[Система типов|динамически типизированного]] скриптового [[Язык программирования|языка программирования]] под названием GDScript, синтаксис которого отдалённо напоминает язык [[Python]]. Отличием от Python является в первую очередь обязательное определение области видимости переменной через ключевое слово [[Переменная (программирование)|var]] и оптимизация языка под нужды системы сцен и узлов движка. Есть возможность использовать скриптинг на C++/D/Rust и другие языки через систему GDNative. Также существует версия Godot с поддержкой языка [[C Sharp|C#]] (Godot Engine Mono Version), однако в данный момент она всё ещё дорабатывается и нестабильна. Разработчики Godot заявляли, что была опробована интеграция нескольких внешних скриптовых языков программирования (а именно [[Lua]], Python и [[Squirrel]]) прежде чем было принято решение использовать собственный скриптовый язык. И только это позволило получить необходимый уровень оптимизации для движка и интеграции в среду разработчика.<ref>{{cite web|url=http://godotengine.org/projects/godot-engine/wiki/GDScript#History|title=GDScript History|website=Godot documentation|publisher=Godot|accessdate=2016-01-29|archiveurl=https://web.archive.org/web/20160206055951/http://godotengine.org/projects/godot-engine/wiki/GDScript|archivedate=2016-02-06}}</ref>
Написание игровой логики обеспечивается использованием собственного высокоуровневого [[Система типов|динамически типизированного]] скриптового [[Язык программирования|языка программирования]] под названием GDScript, синтаксис которого отдалённо напоминает язык [[Python]]. Отличием от Python является в первую очередь обязательное определение области видимости переменной через ключевое слово [[Переменная (программирование)|var]] и оптимизация языка под нужды системы сцен и узлов движка. Есть возможность использовать скриптинг на C++/D/Rust и другие языки через систему GDNative. Также существует версия Godot с поддержкой языка [[C Sharp|C#]] (Godot Engine Mono Version). В данный момент, начиная с версии 4.0, обеспечена полная поддержка [[C Sharp|C# 8.0]] при установке [[.NET|.NET SDK 6.0]]. Разработчики Godot заявляли, что была опробована интеграция нескольких внешних скриптовых языков программирования (а именно [[Lua]], Python и [[Squirrel]]) прежде чем было принято решение использовать собственный скриптовый язык. И только это позволило получить необходимый уровень оптимизации для движка и интеграции в среду разработчика<ref>{{cite web|url=http://godotengine.org/projects/godot-engine/wiki/GDScript#History|title=GDScript History|website=Godot documentation|publisher=Godot|accessdate=2016-01-29|archiveurl=https://web.archive.org/web/20160206055951/http://godotengine.org/projects/godot-engine/wiki/GDScript|archivedate=2016-02-06}}</ref>.


Godot имеет как собственный интегрированный редактор скриптов с возможностями дополнения кода, авто-отступами, [[Подсветка синтаксиса|подсветкой синтаксиса]], быстрым доступом к полному [[API]] движка и некоторыми другими возможностями, так и возможность открытия исходного кода скриптов, его редактирование и отладка в сторонних [[Интегрированная среда разработки|IDE]] и редакторах кода. Также в системе имеется гибкий [[дебаггер|отладчик]], профайлер, монитор использованной видеопамяти и удалённый редактор сцен для контроля элементов в режиме реального времени.
Godot имеет как собственный интегрированный редактор скриптов с возможностями дополнения кода, авто-отступами, [[Подсветка синтаксиса|подсветкой синтаксиса]], быстрым доступом к полному [[API]] движка и некоторыми другими возможностями, так и возможность открытия исходного кода скриптов, его редактирование и отладка в сторонних [[Интегрированная среда разработки|IDE]] и редакторах кода (один из таких — [[Visual Studio Code]]). Также в системе имеется гибкий [[дебаггер|отладчик]], профайлер, монитор использованной видеопамяти и удалённый редактор сцен для контроля элементов в режиме реального времени.


Начиная с версии 3.0 также поддерживается [[визуальное программирование]] на Visual Scripting.
В версии 3.0 была введена поддержка [[визуальное программирование|визуального программирования]] (Visual Scripting). Из-за низкой востребованности данной технологии разработчиками возможность визуального программирования исключена из релиза версии 4.0.


=== Рендеринг ===
=== Рендеринг ===
Графическая система для всех поддерживаемых платформ построена на [[OpenGL ES]] 3.0. Рендеринг включает в себя технологии order-independent transparency, [[normal mapping]], specularity, полноэкранные постэффекты типа [[FXAA]], [[bloom]], [[Глубина резко изображаемого пространства|DOF]], [[High Dynamic Range Rendering|HDR]], [[Гамма-коррекция|гамма-коррекции]], distance fog, динамические тени на основе [[shadow maps]] и другие.
Графическая система для всех поддерживаемых платформ построена на [[OpenGL ES]] 3.0. В Godot Engine версии 4.0 добавлена поддержка [[Vulkan]]. Рендеринг включает в себя технологии order-independent transparency, [[normal mapping]], specularity, полноэкранные постэффекты типа [[FXAA]], [[bloom]], [[Глубина резко изображаемого пространства|DOF]], [[High Dynamic Range Rendering|HDR]], [[Гамма-коррекция|гамма-коррекции]], distance fog, динамические тени на основе [[shadow maps]] и другие.


Для создания [[шейдер]]ов используется упрощённый шейдерный язык, который является близким подмножеством языка [[GLSL]]. Затем шейдер можно использовать в материале, экранном эффекте для -визуализации. Шейдер делится на секции vertex и fragment. Также возможно полноценное создание шейдеров в визуальном редакторе.
Для создания [[шейдер]]ов используется упрощённый шейдерный язык, который является близким подмножеством языка [[GLSL]]. Затем шейдер можно использовать в материале, экранном эффекте для 2D-визуализации. Шейдер делится на секции vertex и fragment. Также возможно полноценное создание шейдеров в визуальном редакторе.


Godot имеет отдельную графическую подсистему для [[Двумерная графика|2D]], которую можно использовать независимо от [[Трёхмерная графика|3D]]. Примерами возможностей 2D являются [[Графический интерфейс пользователя|графический интерфейс]] (рабочая среда Godot является главным примером возможностей графического интерфейса), [[Спрайт (компьютерная графика)|спрайты]], тайловая графика (квадратная, изометрическая и собственный формат), parallax scrolling, двумерное освещение и тени (точечного типа), [[система частиц]] и некоторые другие возможности. Разработчик может легко комбинировать и смешивать 2D и 3D в обоих направлениях (с помощью Viewport Node).
Godot имеет отдельную графическую подсистему для [[Двумерная графика|2D]], которую можно использовать независимо от [[Трёхмерная графика|3D]]. Примерами возможностей 2D являются [[Графический интерфейс пользователя|графический интерфейс]] (рабочая среда Godot является главным примером возможностей графического интерфейса), [[Спрайт (компьютерная графика)|спрайты]], тайловая графика (квадратная, изометрическая и собственный формат), parallax scrolling, двумерное освещение и тени (точечного типа), [[система частиц]] и некоторые другие возможности. Разработчик может легко комбинировать и смешивать 2D и 3D в обоих направлениях (с помощью Viewport Node).


Окружение разработчика имеет встроенную систему [[Компьютерная анимация|анимирования]] и управляющие элементы для работы со [[Скелетная анимация|скелетной анимацией]], шейп-анимацией и сценами-заставками. А благодаря основанному на нодах дизайне движка, через редактор анимаций можно анимировать вообще любой параметр, который может присутствовать в игре.<ref>{{cite web|url=http://godotengine.org/projects/godot-engine/wiki/Animation|title=Godot Animation tutorial|website=Godot Documentation|accessdate=2016-01-29|archiveurl=https://web.archive.org/web/20160206051230/http://godotengine.org/projects/godot-engine/wiki/Animation|archivedate=2016-02-06}}</ref> Также есть возможность делать вызовы любых собственных функций из ключа анимационного трека, что позволяет значительно упростить анимацию сложных сцен.
Окружение разработчика имеет встроенную систему [[Компьютерная анимация|анимирования]] и управляющие элементы для работы со [[Скелетная анимация|скелетной анимацией]], шейп-анимацией и сценами-заставками. А благодаря основанному на нодах дизайне движка, через редактор анимаций можно анимировать любой параметр, который присутствует в игре<ref>{{cite web|url=http://godotengine.org/projects/godot-engine/wiki/Animation|title=Godot Animation tutorial|website=Godot Documentation|accessdate=2016-01-29|archiveurl=https://web.archive.org/web/20160206051230/http://godotengine.org/projects/godot-engine/wiki/Animation|archivedate=2016-02-06}}</ref>. Также есть возможность делать вызовы любых собственных функций из ключа анимационного трека, что позволяет значительно упростить анимацию сложных сцен.


=== Игровая физика ===
=== Игровая физика ===
Строка 79: Строка 84:
* Поддержка [[видеокодек]]а [[Theora]] (видео можно выводить в текстуру)
* Поддержка [[видеокодек]]а [[Theora]] (видео можно выводить в текстуру)
* Аудиосистема поддерживает кодеки [[Ogg Vorbis]] и [[WAV]] (Ogg Vorbis для потокового аудио и WAV для аудиосемплов)
* Аудиосистема поддерживает кодеки [[Ogg Vorbis]] и [[WAV]] (Ogg Vorbis для потокового аудио и WAV для аудиосемплов)
* Система ввода поддерживает [[Клавиатура|клавиатуру]], [[Компьютерная мышь|мышку]], [[геймпад]] и [[сенсорный экран]] (разные устройства могут быть назначены на абстрактное действие, и оно будет рассматриваться независимо от использованного метода ввода)
* Система ввода поддерживает [[Клавиатура|клавиатуру]], [[Компьютерная мышь|мышь]], [[геймпад]] и [[сенсорный экран]] (разные устройства могут быть назначены на абстрактное действие, и оно будет рассматриваться независимо от использованного метода ввода)
* Конвейер импорта/экспорта/компрессии текстур (гибкая система работы с ассетами и автоконвертирования в необходимые форматы)
* Конвейер импорта/экспорта/компрессии текстур (гибкая система работы с ассетами и автоконвертирования в необходимые форматы)
* Конвейер импорта целостных 3D сцен (например, из [[Blender]] можно импортировать сцену вместе с освещением, камерами, мешами столкновения, порталами и анимированными персонажами)
* Конвейер импорта целостных 3D сцен (например, из [[Blender]] можно импортировать сцену вместе с освещением, камерами, мешами столкновения, порталами и анимированными персонажами)


== История ==
== История ==
Программисты Хуан Линетски ({{lang-en|Juan Linietsky}}) и Ариель Манзур ({{lang-en|Ariel Manzur}}) начали разработку движка в 2007 году, и через некоторое время он уже использовался как закрытый программный продукт в некоторых компаниях. В феврале 2014 года разработчики приняли решение сделать технологию [[Открытое программное обеспечение|открытой]], и выложили [[Исходный код|исходники]] движка под [[Лицензия MIT|лицензией MIT]] на [[GitHub]] под названием Godot.
Программисты Хуан Линьетски ({{lang-en|Juan Linietsky}}) и Ариель Манзур ({{lang-en|Ariel Manzur}}) начали разработку движка в 2007 году, и через некоторое время он уже использовался как закрытый программный продукт в некоторых компаниях. В феврале 2014 года разработчики приняли решение сделать технологию [[Открытое программное обеспечение|открытой]], и выложили [[Исходный код|исходники]] движка под [[Лицензия MIT|лицензией MIT]] на [[GitHub]] под названием Godot.


15 декабря 2014 движок достиг версии 1.0, первой стабильной версии нового продукта. В ней были добавлены дополнительные шейдеры, navimesh и lightmapping.<ref>{{cite web|url=http://www.godotengine.org/wp/godot-engine-reaches-1-0-releases-first-stable/|title=Godot Engine Reaches 1.0, Releases First Stable|date=2014-12-15|accessdate=2014-12-16|archiveurl=https://web.archive.org/web/20141216123017/http://www.godotengine.org/wp/godot-engine-reaches-1-0-releases-first-stable/|archivedate=2014-12-16}}</ref>
15 декабря 2014 движок достиг версии 1.0, первой стабильной версии нового продукта. В ней были добавлены дополнительные шейдеры, navimesh и lightmapping<ref>{{cite web|url=http://www.godotengine.org/wp/godot-engine-reaches-1-0-releases-first-stable/|title=Godot Engine Reaches 1.0, Releases First Stable|date=2014-12-15|accessdate=2014-12-16|archiveurl=https://web.archive.org/web/20141216123017/http://www.godotengine.org/wp/godot-engine-reaches-1-0-releases-first-stable/|archivedate=2014-12-16}}</ref>.


4 ноября 2015 проект Godot присоединился к организации Software Freedom Conservancy.<ref>{{cite web|url=https://sfconservancy.org/news/2015/nov/04/godot-joins/|title=Godot Game Engine is Conservancy's Newest Member Project|accessdate=2015-11-13|archive-date=2019-09-18|archive-url=https://web.archive.org/web/20190918011338/https://sfconservancy.org/news/2015/nov/04/godot-joins/|deadlink=no}}</ref>
4 ноября 2015 проект Godot присоединился к организации Software Freedom Conservancy<ref>{{cite web|url=https://sfconservancy.org/news/2015/nov/04/godot-joins/|title=Godot Game Engine is Conservancy's Newest Member Project|accessdate=2015-11-13|archive-date=2019-09-18|archive-url=https://web.archive.org/web/20190918011338/https://sfconservancy.org/news/2015/nov/04/godot-joins/|deadlink=no}}</ref>.


23 февраля 2016 вышла стабильная версия 2.0. Основные акценты в её разработке ставились на существенное повышение удобства работы в движке через рабочее окружение.<ref>{{cite web|url=https://godotengine.org/article/godot-engine-reaches-2-0-stable/|title=Godot Engine reaches 2.0 stable|access-date=2017-08-20|archive-date=2017-03-19|archive-url=https://web.archive.org/web/20170319115151/https://godotengine.org/article/godot-engine-reaches-2-0-stable/|deadlink=no}}</ref>
23 февраля 2016 вышла стабильная версия 2.0. Основные акценты в её разработке ставились на существенное повышение удобства работы в движке через рабочее окружение<ref>{{cite web|url=https://godotengine.org/article/godot-engine-reaches-2-0-stable/|title=Godot Engine reaches 2.0 stable|access-date=2017-08-20|archive-date=2017-03-19|archive-url=https://web.archive.org/web/20170319115151/https://godotengine.org/article/godot-engine-reaches-2-0-stable/|deadlink=no}}</ref>.


22 июня 2016 проекту Godot от [[Mozilla Foundation|Mozilla]] Open Source Support (MOSS) «Mission Partners» присуждена сумма в $20,000 для того, чтобы добавить в проект поддержку [[WebSocket]], [[WebAssembly]] и [[WebGL]] 2.0.<ref>{{cite web|url=https://blog.mozilla.org/blog/2016/06/22/mozilla-awards-385000-to-open-source-projects-as-part-of-moss-mission-partners-program/|title=Mozilla Awards $385,000 to Open Source Projects as part of MOSS “Mission Partners” Program|website=The Mozilla Blog|accessdate=2016-10-17|archive-date=2020-06-17|archive-url=https://web.archive.org/web/20200617234241/https://blog.mozilla.org/blog/2016/06/22/mozilla-awards-385000-to-open-source-projects-as-part-of-moss-mission-partners-program/|deadlink=no}}</ref>
22 июня 2016 проекту Godot от [[Mozilla Foundation|Mozilla]] Open Source Support (MOSS) «Mission Partners» присуждена сумма в $20,000 для того, чтобы добавить в проект поддержку [[WebSocket]], [[WebAssembly]] и [[WebGL]] 2.0<ref>{{cite web|url=https://blog.mozilla.org/blog/2016/06/22/mozilla-awards-385000-to-open-source-projects-as-part-of-moss-mission-partners-program/|title=Mozilla Awards $385,000 to Open Source Projects as part of MOSS “Mission Partners” Program|website=The Mozilla Blog|accessdate=2016-10-17|archive-date=2020-06-17|archive-url=https://web.archive.org/web/20200617234241/https://blog.mozilla.org/blog/2016/06/22/mozilla-awards-385000-to-open-source-projects-as-part-of-moss-mission-partners-program/|deadlink=no}}</ref>.


== О названии ==
== О названии ==
Хуан Линьетски на одной из презентаций сообщил, что название «Godot» является прямой отсылкой к пьесе [[Беккет, Сэмюэл|Сэмюеля Беккета]] «[[В ожидании Годо]]». Она характеризует непрекращающееся желание добавлять новые возможности в движок, что будет постоянно приближать его состояние к идеальному инструменту всё ближе и ближе, но этот процесс не будет иметь завершения.<ref>{{cite web|url=http://video.rmll.info/videos/introduction-au-moteur-godot/|title=Juan Linietsky presentation of Godot at RMLL 2015 in Beauvais, France|date=2015-07-07|access-date=2017-08-20|archive-date=2015-10-05|archive-url=https://web.archive.org/web/20151005152453/http://video.rmll.info/videos/introduction-au-moteur-godot/|deadlink=yes}}</ref>
Хуан Линьетски на одной из презентаций сообщил, что название «Godot» является прямой отсылкой к пьесе [[Беккет, Сэмюэл|Сэмюеля Беккета]] «[[В ожидании Годо]]». Она характеризует непрекращающееся желание добавлять новые возможности в движок, что будет постоянно приближать его состояние к идеальному инструменту всё ближе и ближе, но этот процесс не будет иметь завершения<ref>{{cite web|url=http://video.rmll.info/videos/introduction-au-moteur-godot/|title=Juan Linietsky presentation of Godot at RMLL 2015 in Beauvais, France|date=2015-07-07|access-date=2017-08-20|archive-date=2015-10-05|archive-url=https://web.archive.org/web/20151005152453/http://video.rmll.info/videos/introduction-au-moteur-godot/|deadlink=yes}}</ref>.


== Использование в играх ==
== Использование в играх ==
Строка 128: Строка 133:


== Ссылки ==
== Ссылки ==
* [http://www.godotengine.org/ Официальный сайт]{{ref-en}}
* {{official|http://www.godotengine.org/|lang=en}}
* [http://docs.godotengine.org/en/stable/index.html Документация] ([http://docs.godotengine.org/en/stable/classes/_classes.html API], [http://docs.godotengine.org/en/stable/reference/gdscript.html GDScript], [https://web.archive.org/web/20170322020837/http://docs.godotengine.org/en/stable/reference/shading_language.html Shading language]){{ref-en}}
* [http://docs.godotengine.org/en/stable/index.html Документация] ([http://docs.godotengine.org/en/stable/classes/_classes.html API], [http://docs.godotengine.org/en/stable/reference/gdscript.html GDScript], [https://web.archive.org/web/20170322020837/http://docs.godotengine.org/en/stable/reference/shading_language.html Shading language]){{ref-en}}
* [https://discord.gg/vdTVMEMNgn Discord сервер русскоязычного сообщества Godot]{{ref-ru}}
* [https://godotengine.org/qa/ Вопросы и ответы пользователей]{{ref-en}}
* [https://twitter.com/reduzio Твиттер главного разработчика]{{ref-en}}
* [https://twitter.com/reduzio Твиттер главного разработчика]{{ref-en}}
* [https://vk.com/godot_engine Сообщество Вконтакте]{{ref-ru}}
* [http://godot-engine.ru Русское сообщество Godot в интернете]{{ref-ru}}

{{Внешние ссылки}}
{{Внешние ссылки}}
{{Игровые движки}}
{{Игровые движки}}
{{rq|sources}}
{{rq|sources}}


[[Категория:Программное обеспечение с лицензией MIT]]
[[Категория:Свободные игровые движки]]
[[Категория:Свободные игровые движки]]
[[Категория:Игровые движки по алфавиту]]
[[Категория:Игровые движки по алфавиту]]

Текущая версия от 07:05, 27 мая 2024

Godot Engine
Логотип программы Godot Engine
Скриншот программы Godot Engine
Тип Игровой движок
Авторы Хуан Линиецки[вд] и Ариэль Манзур[вд]
Разработчик The Godot Foundation
Написана на C++[3] и Си[3]
Операционные системы GNU/Linux, macOS, Windows, BSD[d], iOS, Android, Универсальная платформа Windows, HTML5, WebAssembly, Xbox и Windows Phone
Языки интерфейса английский, арабский, бразильский португальский, болгарский, каталанский, чешский, нидерландский, эсперанто, финский, французский, галисийский язык, немецкий, греческий, иврит, венгерский, индонезийский язык, итальянский, японский, корейский, латышский язык, малайский язык, букмол, персидский, польский, португальский, румынский, словацкий язык, упрощённый китайский, испанский, шведский, тайский, китайский (вэньянь), турецкий, украинский и вьетнамский
Первый выпуск 14 января 2014
Аппаратные платформы Windows, macOS и Linux
Последняя версия
Кандидат в релизы 4.2 RC 2 (24 ноября 2023)
Бета-версия 4.2 beta 6 (13 ноября 2023)
Репозиторий github.com/godotengine/g…
Состояние Активное
Лицензия Лицензия MIT
Сайт godotengine.org
Логотип Викисклада Медиафайлы на Викискладе

Godot Engine (читается «Годо́», от фр. Godot[5]) — открытый кроссплатформенный 2D- и 3D-игровой движок под лицензией MIT, который разрабатывается сообществом Godot Engine Community. До публичного релиза в виде открытого ПО движок использовался внутри некоторых компаний Латинской Америки[6]. Среда разработки запускается на Android, HTML5, Linux, macOS, Windows, BSD и Haiku и может экспортировать игровые проекты на ПК, консоли, мобильные и веб-платформы.

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

Общая архитектура движка построена вокруг концепции дерева из наследуемых «сцен». Каждый элемент сцены (нода), в любой момент сам может стать полноценной сценой. Поэтому при разработке можно легко изменять полностью всю архитектуру проекта, расширять её элементы в любую сторону и работать с комплексными сценами на уровне простых абстракций.

Все игровые ресурсы, от скриптов до графических ассетов и игровых сцен, хранятся в папке проекта как обычные файлы, и не являются частью сложной базы данных проекта. Ресурсы, которые не представляют собой комплексных данных, хранятся в простых текстовых форматах (например, скрипты и сцены, в отличие от моделей и текстур). Эти решения позволяют значительно упростить разным командам разработчиков работу с системами управления версиями[7].

Написание игровой логики обеспечивается использованием собственного высокоуровневого динамически типизированного скриптового языка программирования под названием GDScript, синтаксис которого отдалённо напоминает язык Python. Отличием от Python является в первую очередь обязательное определение области видимости переменной через ключевое слово var и оптимизация языка под нужды системы сцен и узлов движка. Есть возможность использовать скриптинг на C++/D/Rust и другие языки через систему GDNative. Также существует версия Godot с поддержкой языка C# (Godot Engine Mono Version). В данный момент, начиная с версии 4.0, обеспечена полная поддержка C# 8.0 при установке .NET SDK 6.0. Разработчики Godot заявляли, что была опробована интеграция нескольких внешних скриптовых языков программирования (а именно Lua, Python и Squirrel) прежде чем было принято решение использовать собственный скриптовый язык. И только это позволило получить необходимый уровень оптимизации для движка и интеграции в среду разработчика[8].

Godot имеет как собственный интегрированный редактор скриптов с возможностями дополнения кода, авто-отступами, подсветкой синтаксиса, быстрым доступом к полному API движка и некоторыми другими возможностями, так и возможность открытия исходного кода скриптов, его редактирование и отладка в сторонних IDE и редакторах кода (один из таких — Visual Studio Code). Также в системе имеется гибкий отладчик, профайлер, монитор использованной видеопамяти и удалённый редактор сцен для контроля элементов в режиме реального времени.

В версии 3.0 была введена поддержка визуального программирования (Visual Scripting). Из-за низкой востребованности данной технологии разработчиками возможность визуального программирования исключена из релиза версии 4.0.

Графическая система для всех поддерживаемых платформ построена на OpenGL ES 3.0. В Godot Engine версии 4.0 добавлена поддержка Vulkan. Рендеринг включает в себя технологии order-independent transparency, normal mapping, specularity, полноэкранные постэффекты типа FXAA, bloom, DOF, HDR, гамма-коррекции, distance fog, динамические тени на основе shadow maps и другие.

Для создания шейдеров используется упрощённый шейдерный язык, который является близким подмножеством языка GLSL. Затем шейдер можно использовать в материале, экранном эффекте для 2D-визуализации. Шейдер делится на секции vertex и fragment. Также возможно полноценное создание шейдеров в визуальном редакторе.

Godot имеет отдельную графическую подсистему для 2D, которую можно использовать независимо от 3D. Примерами возможностей 2D являются графический интерфейс (рабочая среда Godot является главным примером возможностей графического интерфейса), спрайты, тайловая графика (квадратная, изометрическая и собственный формат), parallax scrolling, двумерное освещение и тени (точечного типа), система частиц и некоторые другие возможности. Разработчик может легко комбинировать и смешивать 2D и 3D в обоих направлениях (с помощью Viewport Node).

Окружение разработчика имеет встроенную систему анимирования и управляющие элементы для работы со скелетной анимацией, шейп-анимацией и сценами-заставками. А благодаря основанному на нодах дизайне движка, через редактор анимаций можно анимировать любой параметр, который присутствует в игре[9]. Также есть возможность делать вызовы любых собственных функций из ключа анимационного трека, что позволяет значительно упростить анимацию сложных сцен.

Игровая физика

[править | править код]

Физический движок для 2D и 3D разработан с нуля, что помогло достичь требуемого уровня оптимизации физической подсистемы. Реализованы возможности рейкастинга, обнаружение столкновений, динамики твёрдых тел и соединений между ними. Также имеется собственная реализация кинематического контроллера персонажа и 3D-контроллер автотранспортных средств с упрощённой системой подвески.

Целевые платформы

[править | править код]

В конце разработки проект может быть экспортирован на разные целевые платформы, которые можно разделить на ПК, мобильные, веб и консоли. Для разных платформ можно задавать разные параметры, такие как способ хранения данных (и их защита при необходимости), компрессия текстур, разрешение, а также некоторые уникальные параметры, характерные только для какой-то конкретной платформы (например разрешения для Android).

Текущая поддержка платформ включает WindowsUWP OS), MacOS, X11 (Linux, BSD), Android OS, iOS, HTML5. Также можно производить экспорт на другие платформы вручную через компилирование движка для SDK целевой платформы. Использование Godot незначительного количества внешних библиотек облегчает этот процесс.

Прочие возможности

[править | править код]
  • Многопоточность (скрипты работают в параллельных потоках и сами могут их создавать)
  • Система плагинов (плагин может быть написан на C++ или на GDScript[10])
  • Occlusion culling и система порталов (отсечение невидимых объектов)
  • Render targets (рендеринг изображения из камеры в текстуру)
  • Уровни детализации мешей (уменьшают нагрузку на видеочип)
  • Light baking (смешивание статического глобального и динамического прямого освещения)
  • Визуальный редактор шейдеров (программа шейдера может быть создана в визуальном редакторе графов)
  • Навигационная сетка (для построения путей на базе полигональных мешей)
  • Алгоритм поиска A* (быстрый алгоритм для построения путей в простых матричных сетках)
  • Текстурный атлас (может значительно снизить нагрузку на видеопамять на мобильных устройствах)
  • Поддержка видеокодека Theora (видео можно выводить в текстуру)
  • Аудиосистема поддерживает кодеки Ogg Vorbis и WAV (Ogg Vorbis для потокового аудио и WAV для аудиосемплов)
  • Система ввода поддерживает клавиатуру, мышь, геймпад и сенсорный экран (разные устройства могут быть назначены на абстрактное действие, и оно будет рассматриваться независимо от использованного метода ввода)
  • Конвейер импорта/экспорта/компрессии текстур (гибкая система работы с ассетами и автоконвертирования в необходимые форматы)
  • Конвейер импорта целостных 3D сцен (например, из Blender можно импортировать сцену вместе с освещением, камерами, мешами столкновения, порталами и анимированными персонажами)

Программисты Хуан Линьетски (англ. Juan Linietsky) и Ариель Манзур (англ. Ariel Manzur) начали разработку движка в 2007 году, и через некоторое время он уже использовался как закрытый программный продукт в некоторых компаниях. В феврале 2014 года разработчики приняли решение сделать технологию открытой, и выложили исходники движка под лицензией MIT на GitHub под названием Godot.

15 декабря 2014 движок достиг версии 1.0, первой стабильной версии нового продукта. В ней были добавлены дополнительные шейдеры, navimesh и lightmapping[11].

4 ноября 2015 проект Godot присоединился к организации Software Freedom Conservancy[12].

23 февраля 2016 вышла стабильная версия 2.0. Основные акценты в её разработке ставились на существенное повышение удобства работы в движке через рабочее окружение[13].

22 июня 2016 проекту Godot от Mozilla Open Source Support (MOSS) «Mission Partners» присуждена сумма в $20,000 для того, чтобы добавить в проект поддержку WebSocket, WebAssembly и WebGL 2.0[14].

О названии

[править | править код]

Хуан Линьетски на одной из презентаций сообщил, что название «Godot» является прямой отсылкой к пьесе Сэмюеля Беккета «В ожидании Годо». Она характеризует непрекращающееся желание добавлять новые возможности в движок, что будет постоянно приближать его состояние к идеальному инструменту всё ближе и ближе, но этот процесс не будет иметь завершения[15].

Использование в играх

[править | править код]

Некоторые из игр, созданных в OKAM Studio

  • El Asombroso Show Zamba
  • Dog Mendonça & Pizza Boy
  • Anthill
  • Running Nose
  • Project Carnival

Некоторые из игр, созданных сообществом[16]

Примечания

[править | править код]
  1. Maintenance release: Godot 4.2.2
  2. https://godotengine.org/article/maintenance-release-godot-3-5-3/
  3. 1 2 https://github.com/godotengine/godot
  4. Необходимо задать параметр title= в шаблоне {{cite web}}. [1]. Дата обращения: 30 июля 2015. Архивировано 12 января 2020 года.
  5. Godot Engine naming and pronunciation (англ.). godotengine.org. Дата обращения: 19 сентября 2023. Архивировано 21 сентября 2023 года.
  6. Linietsky, Juan Godot 2.0: Talking with the Creator. 80.lv. Дата обращения: 18 июня 2016. Архивировано 13 июня 2018 года.
  7. File Systems. Godot documentation. Godot. Дата обращения: 29 января 2016. Архивировано 6 февраля 2016 года.
  8. GDScript History. Godot documentation. Godot. Дата обращения: 29 января 2016. Архивировано 6 февраля 2016 года.
  9. Godot Animation tutorial. Godot Documentation. Дата обращения: 29 января 2016. Архивировано 6 февраля 2016 года.
  10. Plugins! Дата обращения: 20 августа 2017. Архивировано 19 марта 2017 года.
  11. Godot Engine Reaches 1.0, Releases First Stable (15 декабря 2014). Дата обращения: 16 декабря 2014. Архивировано 16 декабря 2014 года.
  12. Godot Game Engine is Conservancy's Newest Member Project. Дата обращения: 13 ноября 2015. Архивировано 18 сентября 2019 года.
  13. Godot Engine reaches 2.0 stable. Дата обращения: 20 августа 2017. Архивировано 19 марта 2017 года.
  14. Mozilla Awards $385,000 to Open Source Projects as part of MOSS “Mission Partners” Program. The Mozilla Blog. Дата обращения: 17 октября 2016. Архивировано 17 июня 2020 года.
  15. Juan Linietsky presentation of Godot at RMLL 2015 in Beauvais, France (7 июля 2015). Дата обращения: 20 августа 2017. Архивировано из оригинала 5 октября 2015 года.
  16. Awesome Godot - a curated list of free/libre games, plugins, add-ons and scripts for Godot. GitHub. Дата обращения: 25 июля 2015. Архивировано 31 января 2016 года.

Литература

[править | править код]
  • Ariel Manzur, George Marques. Godot Engine Game Development in 24 Hours, Sams Teach Yourself: The Official Guide to Godot 3. 0. — Pearson Education, 2018. — 412 с. — ISBN 978-0-13-483509-9.
  • Chris Bradfield. Godot Engine Game Development Projects. — Packt Publishing, 2018. — 298 с. — ISBN 978-1-78883-150-5.
  • Robert Ciesla. Godot 2.1 by Juan Linietsky and Ariel Manzur // Mostly Codeless Game Development: New School Game Engines. — Apress, 2017. — С. 116—121. — 233 с. — ISBN 978-1-4842-2970-5.