Как стать автором
Обновить

LibGodot позволит встраивать Godot в другие приложения, например, в Blender

Автор оригинала: Miguel de Icaza

..или Blender в Godot 🤔 в общем не суть)

История от Miguel de Icaza про встраиваемый игровой движок.

Много лет назад, работая в Xamarin, где мы создавали кроссплатформенные библиотеки для мобильных разработчиков, мы хотели предложить нашим пользователям возможности 2D и 3D игр в виде добавления 2D или 3D контента в их мобильные приложения.

Для 2D мы создали и разработали множество библиотек, вдохновленных Cocos2D.

С 3D ситуация была сложнее. Мы финансировали несколько библиотек в течение нескольких лет, вносили свой вклад в другие, но ничего не вышло (история этого заслуживает отдельного поста).

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

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

Мы вложили значительные средства в привязку Urho и создали UrhoSharp, которая стала отличной 3D-библиотекой для наших пользователей C# и работала не только на всех настольных и мобильных платформах, но мы проделали тонну работы, чтобы сделать ее отличной для гарнитур AR и VR. К сожалению, руководство Microsoft оставило UrhoSharp умирать.

Затем сопровождающий Urho ушел с поста, и Godot стал одним из самых популярных проектов с открытым исходным кодом в мире.

В прошлом году @Faolan-Rad внёс патч для Godot, чтобы превратить его в библиотеку, которую можно было бы встраивать в приложения. Я использовал эту библиотеку для создания SwiftGodotKit и с тех пор очень доволен ею - она позволяет людям встраивать содержимое Godot в свои приложения.

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

Они профинансировали некоторые первоначальные работы и наняли Gergely Kis's company для выполнения этой работы.

Gergely продемонстрировал эту работу на GodotCon в прошлом году. Я вернулся с GodotCon очень воодушевленным и решил превратить свой прототип Godot on iPad в полноценный продукт.

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

Сейчас на рассмотрении находится полный патч, позволяющий людям встраивать произвольные сцены Godot в свои приложения. Для пользователей SwiftUI это означает, что вы можете встроить сцену Godot в представление, отображать и управлять ею по своему усмотрению.

Надеюсь, команда примет это изменение в Godot, и как только это будет сделано, я обновлю SwiftGodotKit, чтобы предоставить эти новые возможности пользователям Swift (привязка для других платформ и языков оставлена на усмотрение)

После разговора с Juan прошло всего десять лет, но я снова твёрдо стою на земле Godot) 23 апреля 2024 г.

LibGodot - это система, позволяющая компилировать Godot как библиотеку и подключаться к ней с помощью GDExtensions, передавая указатель функции на точку входа реализации GDExtension перед запуском Godot.

LibGodot добавляет поддержку языков, которые поддерживают C, но не могут быть скомпилированы в общую библиотеку.

LibGodot позволяет использовать различные режимы выполнения C#, позволяя компилировать dotnetAOT, поддерживать C# android и C# web.

https://tirania.org/blog/archive/2024/Apr-23.html

https://github.com/migeran/libgodot_project

https://github.com/godotengine/godot/pull/72883

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.