..или 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
Автор: Axelaredz