Инженер Apple публично прислал пулл-реквест в репозиторий Godot, где от имени компании изъявил желание добавить в игровой движок поддержку visionOS, операционной системы гарнитуры Vision Pro. С помощью Godot подразумевается как запуск игр в плоском окне, так и создание иммерсивных приложений.
visionOS — операционная система Apple для устройств смешанной реальности. Именно под управлением visionOS работают очки Apple Vision, первая заявка компании в сегменте устройств подобного рода. Из-за высокой цены (от $3 499) первая гарнитура смешанной реальности Apple пока пользуется особой популярностью в основном среди энтузиастов. Операционка активно развивается, регулярно выходят новые версии. Эксперты ожидают, что дата выхода visionOS 3 будет объявлена на WWDC 2025 в июне.
В свою очередь, Godot — бесплатный и свободный движок для создания 2D- и 3D-игр. Движок кроссплатформенный: он работает на Windows, macOS, операционных системах на ядре Linux, вариантах BSD (нужно скомпилировать самостоятельно), а также для Android и для веба доступны редактор в экспериментальном режиме и полноценный экспорт проектов. Для iOS экспорт проектов Godot доступен ещё с самых ранних версий, но редактора для этой платформы нет.
Среди целевых платформ Godot пока нет visionOS. Из-за зрелости соответствующего тулсета большинство игр на Godot — двумерные. Это не отменяет популярности движка для 3D-игр, и есть даже стороннее решение для работы Godot на visionOS — GodotVision. Этот проект предлагает запустить headless-инстанс Godot 4.3, который будет управлять рендером RealityKit. Говоря проще, Godot управляет бэкендом, а RealityKit выполняет роль фронтенда.
GodotVision продолжает развитие, нет никаких объявлений о намерении закрыть проект. В планах — добавить функции ARKit, чтобы добиться отслеживания рук и плоских поверхностей, перезагрузка состояния сцены в редакторе без необходимости рекомпилировать что-то в Xcode, интеграция с Godot XR Tools. GodotVision имеет реальные примеры использования: на нём построена простая игра Defend Cow Castle.
Вообще, у visionOS есть официальная поддержка всего двух сторонних игровых движков: Unity (через прослойку PolySpatial) и, в статусе экспериментальной, Unreal Engine. Теперь Apple берётся за ещё один популярный движок. 21 апреля инженер компании Рикардо Санчез-Саэс прислал в репозиторий Godot пулл-реквест #105626. В нём Рикардо объявил о намерениях Apple:
Сделать возможным запуск в visionOS существующих игр на Godot в виде плоского окна.
Добавить поддержку создания иммерсивных приложений с помощью Godot.
Представитель Apple рассказал, что этот процесс будет разбит на три стадии:
Добавление нативной поддержки платформы visionOS. В качестве базы берут реализацию поддержки iOS. При этом код между вариантами для iOS и для Vision Pro будет максимально повторно использован.
Реализация компиляции и линковки файлов Swift внутри Godot и замена main.mm на visionOS компонентами приложений SwiftUI. Это необходимо для запуска иммерсивных приложений. (На сленге visionOS под immersive experience понимаются такие приложения, которые окружают пользователя в его поле зрения, создают иллюзию существования в реальном мире и могут перекрывать физические объекты).
Внедрение плагина виртуальной реальности для иммерсивных приложений на Vision Pro.
Этот пулл-реквест от инженера Apple касается только первого пункта. Как рассказывает Санчез-Саэс, внутри Apple уже есть работающие версии для второго и третьего пунктов, но присылать их будут последовательно и только после принятия предыдущего.
Присланный на данный момент пулл-реквест добавляет в репозиторий Godot в директорию drivers отдельный каталог apple_embedded, а не задействует существующий drivers/apple, где лежит код для существующих платформ Apple. Как утверждает Рикардо, реализация поддержки движка переиспользует много кода в вариантах для visionOS и iOS, но не для macOS.
Поскольку у visionOS нет поддержки OpenGL, соответствующего кода не добавляется.
Утверждается, что Apple уже оттестировала содержимое пулл-реквеста на демо-проекте Platformer 3D из каталога демо-проектов Godot. Был достигнут нативный запуск на visionOS, но при этом сохранилась работа на iOS. Для теста брались рендеры Mobile и Forward+ c драйвером Metal на обеих платформах.
Санчез-Саэс также прислал несколько вопросов сообществу Godot. Один из них касается допустимости переименования и перемещения некоторых файлов, другие требуют более развёрнутого ответа:
Apple просит прислать проекты, где плагины встраиваются и линкуются во время экспорта. Сама компания тестов подобных проектов для visionOS не проводила, но ожидает, что всё будет так же, как работает на iOS.
Инженер попросил помощи в реализации One-Click-Deploy и прямого экспорта файлов .xarchive и IPA.
Также компания не проводила тестов развёртывания напрямую на устройство на iOS с помощью довольно старого инструмента ios_deploy. Рикардо предложил убрать совместимость с ним, если никому не нужно.
Наконец, у visionOS в Godot нет даже иконки — просто файл SVG с текстом «visionOS». Как пишет представитель компании с капитализацией выше 3 триллионов долларов, «было бы неплохо, если бы кто-то придумал хороший логотип».
Источник новости: habr.com