Перейти к содержимому
На основе Bevy
Bevy

Ваша браузерная игра, скомпилированная в нативное приложение

Когда проект готов покинуть вкладку, Engine экспортирует его и создаёт проект на Bevy на Rust — а затем компилирует его в сборку для Windows, macOS, Linux или Android.

Платформа

Bevy 0.19

Лицензия

MIT / Apache 2.0

Язык

Rust (rustc ≥ 1.95)

Рендерер

wgpu

Что такое Bevy

Bevy — это игровой движок, написанный на Rust, бесплатный и с открытым исходным кодом по двойной лицензии MIT / Apache 2.0. Он построен на архитектуре entity-component-system и рендерит через wgpu — ту же графическую абстракцию, что лежит в основе WebGPU. Он компилируется в настоящий нативный бинарник — без браузера и без рантайма, который нужно поставлять вместе с ним.

Зачем вообще второй движок

Именно Babylon.js делает aukimi возможным: 3D-приложение, которое открывается по ссылке. Но готовая игра зачастую должна быть файлом — тем, что можно выложить на страницу магазина, передать игроку или запустить без вкладки браузера. Вместо того чтобы просить вас пересобрать проект где-то ещё, Engine переводит его: сцена, созданная вами в браузере, становится проектом на Bevy, который компилируется в приложение для настольных систем или мобильных устройств.

Что на самом деле экспортируется

Сборка не делает снимок вашей сцены — она её извлекает: геометрия и материалы уходят в виде стандартного GLB, всё, что знает движок, но не может передать glTF (рельеф, растительность, небо, постобработка, данные сущностей, настройки сцены), уходит рядом в виде структурированного JSON, и из этих двух файлов генерируется полноценный проект на Rust. Это обычный проект Cargo — вы можете его прочитать.

  • scene.glb — геометрия, материалы, анимация
  • scene.json — рельеф, растительность, освещение, настройки
  • Сгенерированный проект Cargo для Bevy 0.19

Ваши скрипты переносятся вместе с проектом

Игровые скрипты, написанные в Engine, не переписываются вручную на Rust и не отбрасываются. Сгенерированный проект встраивает рантайм JavaScript (QuickJS) и подключает тот же скриптовый API, так что скрипт, написанный в браузере, выполняется в нативной сборке без изменений. Поддержание согласованности этих двух API — постоянное правило кодовой базы, а не что-то второстепенное.

Четыре платформы — и одна честно отсутствующая

Исполняемые файлы Windows, app-бандлы macOS, AppImage для Linux и APK для Android — вот платформы, которые сегодня предлагает панель сборки. iOS указан в списке, но отключён — требование к цепочке инструментов не спрячешь за индикатором загрузки. Если сервер сборки не может обработать вашу платформу, вы получаете сгенерированный проект на Rust для самостоятельной компиляции, а не сообщение об ошибке.

  • Исполняемый файл для Windows 10/11
  • App-бандл для macOS
  • AppImage для Linux
  • APK для Android (Android 8+)

То, что не переносится, честно об этом говорит

Два рендерера — это два рендерера. У некоторых вещей, которые умеет браузерный предпросмотр, пока нет аналога на стороне Bevy — среди них запечённые карты освещения и локализованные пробники света. Экспортёр составляет отчёт о конвертации, точно перечисляя, что не удалось перенести, вместо того чтобы молча это отбросить и дать вам обнаружить разницу уже в готовой сборке. Пробел, о котором можно прочитать, — это пробел, который можно спланировать.

Соберите свой проект в настоящий бинарник

Сделайте игру в браузере. Выпустите её как приложение.

Поддержать проект