Компиляция для Web-Браузера
См. также
На этой странице описывается, как скомпилировать HTML5-редактор и экспортировать двоичные файлы шаблонов из исходного кода. Если вы хотите экспортировать свой проект в HTML5, прочтите Экспорт в Web.
Требования
Для составления шаблонов экспорта для Web необходимо следующее:
SCons 4.0+ собрать систему.
См. также
Чтобы получить исходный код Godot для компиляции, см. Получение исходного кода.
Для общего обзора использования SCons в Godot, смотрите Введение в систему сборки.
Создание шаблонов экспорта
Перед началом работы убедитесь, что emcc доступен в вашем PATH. Обычно это настраивается Emscripten SDK, например, при вызове emsdk activate и source ./emsdk_env.sh/ emsdk_env.bat.
Откройте терминал и перейдите в корневой каталог исходного кода движка. Затем поручите SCons создать веб-платформу. Укажите target как template_release для релизной сборки или template_debug для отладочной сборки:
scons platform=web target=template_release
scons platform=web target=template_debug
По умолчанию в движок будет встроен синглтон JavaScriptBridge singleton. В официальных шаблонах экспорта также включен одиночный объект JavaScript. Поскольку вызовы eval() могут представлять угрозу безопасности, для сборки без синглтона можно использовать опцию javascript_eval:
scons platform=web target=template_release javascript_eval=no
scons platform=web target=template_debug javascript_eval=no
По умолчанию поддержка потоков WebWorker включена. Чтобы отключить её и использовать только один поток, можно использовать опцию threads для сборки веб-шаблона без поддержки потоков:
scons platform=web target=template_release threads=no
scons platform=web target=template_debug threads=no
Теперь Emscripten скомпилирует движок в WebAssembly. После завершения сборки полученный файл будет помещен в подкаталог bin. Его имя — godot.web.template_release.wasm32.zip для релиза или godot.web.template_debug.wasm32.zip для отладки.
Наконец, переименуйте zip-архив в web_release.zip для шаблона релиза:
mv bin/godot.web.template_release.wasm32.zip bin/web_release.zip
И web_debug.zip для шаблона отладки:
mv bin/godot.web.template_debug.wasm32.zip bin/web_debug.zip
GDExtension
Шаблоны экспорта по умолчанию не поддерживают GDExtension из соображений производительности и совместимости. Подробнее см. на с export page.
Вы можете создать шаблоны экспорта, используя опцию dlink_enabled=yes для включения поддержки GDExtension:
scons platform=web dlink_enabled=yes target=template_release
scons platform=web dlink_enabled=yes target=template_debug
После завершения файл будет помещен в подкаталог bin. К его имени будет добавлено _dlink.
Наконец, переименуйте zip-архивы в web_dlink_release.zip и web_dlink_release.zip для шаблона релиза:
mv bin/godot.web.template_release.wasm32.dlink.zip bin/web_dlink_release.zip
mv bin/godot.web.template_debug.wasm32.dlink.zip bin/web_dlink_debug.zip
Сборка редактора
Также можно собрать версию редактора Godot, работающую в браузере. Эта версия редактора не рекомендуется вместо нативной сборки. Вы можете собрать редактор с помощью:
scons platform=web target=editor
После завершения работы результирующий файл будет помещен в подкаталог bin. Его имя будет godot.web.editor.wasm32.zip. Вы можете загрузить содержимое ZIP-архива на свой веб-сервер и открыть его в браузере, чтобы воспользоваться редактором.
Требования к веб-серверу см. на странице экспорта.
Совет
Репозиторий Godot включает скрипт Python для размещения локального веб-сервера. Его можно использовать для локального тестирования веб-редактора.
После компиляции редактора извлеките ZIP-архив, созданный в папке bin/, затем выполните следующую команду в корневом каталоге репозитория Godot:
# You may need to replace `python` with `python3` on some platforms.
python platform/web/serve.py
Это действие автоматически загрузит содержимое папки bin/ и откроет веб-браузер по умолчанию. На открывшейся странице перейдите к godot.editor.html, и вы сможете протестировать веб-редактор таким образом.
Обратите внимание, что в вариантах использования в производстве, этот веб-сервер на базе Python использовать не следует. Вместо этого следует использовать проверенный веб-сервер, например Apache или nginx.