game/godot

Godot - Compiling for the Web

C/H 2018. 12. 3. 08:30

Compiling for the Web

Requirements

To compile export templates for the Web, the following is required:
웹용 내보내기 템플릿을 컴파일하려면 다음이 필요합니다.

  • Emscripten 1.37.9+ If the version available per package manager is not recent enough, the best alternative is to install using the Emscripten SDK
    패키지 관리자별로 사용 가능한 버전이 최신 버전이 아닌 경우 가장 좋은 방법은 Emscripten SDK를 사용하여 설치하는 것입니다
  • Python 2.7+ or Python 3.5+
  • SCons build system

Building export templates

Before starting, confirm that the Emscripten configuration file exists and specifies all settings correctly. This file is available as ~/.emscripten on UNIX-like systems and %USERPROFILE%\.emscripten on Windows. It's usually written by the Emscripten SDK, e.g. when invoking emsdk activate latest, or by your package manager. It's also created when starting Emscripten's emcc program if the file doesn't exist.
시작하기 전에 Emscripten 구성 파일이 있는지 확인하고 모든 설정을 올바르게 지정하십시오. 이 파일은 UNIX 계열 시스템에서는 ~/.emscripten으로, Windows에서는 %USERPROFILE%\.emscripten 으로 사용할 수 있습니다. 일반적으로 Emscripten SDK에 의해 작성됩니다 예: emsdk를 호출 할 때 latest 또는 패키지 관리자가 활성화하십시오. 파일이 존재하지 않으면 Emscripten의 emcc 프로그램을 시작할 때 생성됩니다.

Open a terminal and navigate to the root directory of the engine source code. Then instruct SCons to build the JavaScript platform. Specify target as either release for a release build or release_debug for a debug build:
터미널을 열고 엔진 소스 코드의 루트 디렉토리로 이동하십시오. 그런 다음 SCons에게 JavaScript 플랫폼을 작성하도록 지시합니다. release 빌드의 release 또는 debug 빌드의 release_debug로 target을 지정하십시오.

scons platform=javascript tools=no target=release
scons platform=javascript tools=no target=release_debug

By default, the JavaScript singleton will be built into the engine. Since eval() calls can be a security concern, the javascript_eval option can be used to build without the singleton:
기본적으로 JavaScript 싱글 톤은 엔진에 내장됩니다. eval() 호출은 보안 문제 일 수 있기 때문에 javascript_eval 옵션을 사용하여 싱글톤 없이 빌드 할 수 있습니다.

scons platform=javascript tools=no target=release javascript_eval=no
scons platform=javascript tools=no target=release_debug javascript_eval=no

The engine will now be compiled to WebAssembly by Emscripten. Once finished, the resulting file will be placed in the bin subdirectory. Its name is godot.javascript.opt.zip for release or godot.javascript.opt.debug.zip for debug.
Emscripten이 엔진을 WebAssembly로 컴파일합니다. 끝나면 결과 파일은 bin 하위 디렉토리에 저장됩니다. 그 이름은 릴리스 용 godot.javascript.opt.zip 또는 디버그 용 godot.javascript.opt.debug.zip입니다.

Finally, rename the zip archive to webassembly_release.zip for the release template:
마지막으로 zip 아카이브의 이름을 webassembly_release.zip으로 변경하여 릴리스 템플릿을 만듭니다.

mv bin/godot.javascript.opt.zip bin/webassembly_release.zip

And webassembly_debug.zip for the debug template:
그리고 디버깅 템플릿을위한 webassembly_debug.zip :

mv bin/godot.javascript.opt.debug.zip bin/webassembly_debug.zip

Building per asm.js translation or LLVM backend

WebAssembly can be compiled in two ways: The default is to first compile to asm.js, a highly optimizable subset of JavaScript, using Emscripten's fastcomp fork of LLVM. This code is then translated to WebAssembly using a tool called asm2wasm. Emscripten automatically takes care of both processes, we simply run SCons.
WebAssembly는 다음과 같은 두 가지 방법으로 컴파일 할 수 있습니다. 기본값은 Emscripten의 LLVM 빠른 압축 포크를 사용하여 가장 최적화 된 JavaScript 하위 집합 인 asm.js로 먼저 컴파일하는 것입니다. 이 코드는 asm2wasm이라는 도구를 사용하여 WebAssembly로 변환됩니다. Emscripten은 자동으로 두 프로세스를 처리하고 단순히 SCons 만 실행합니다.

The other method uses LLVM's WebAssembly backend. This backend is not yet available in release versions of LLVM, only in development builds built with LLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly. Compiling with this backend outputs files in LLVM's .s format, which is translated into actual WebAssembly using a tool called s2wasm. Emscripten manages these processes as well, so we just invoke SCons.
다른 방법은 LLVM의 WebAssembly 백엔드를 사용합니다. 이 백엔드는 LLVM의 릴리스 버전에서는 아직 사용할 수 없으며 LLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly로 빌드 된 개발 빌드에서만 사용할 수 있습니다. 이 백엔드로 컴파일하면 LLVM의 .s 형식으로 된 파일이 출력됩니다. 이 형식은 s2wasm이라는 도구를 사용하여 실제 WebAssembly로 변환됩니다. Emscripten은 이러한 프로세스도 관리하므로 SCons만 호출합니다.

In order to choose one of the two methods, the LLVM_ROOT variable in the Emscripten configuration file is used. If it points to a directory containing binaries of Emscripten's fastcomp fork of clang, asm2wasm is used. This is the default in a normal Emscripten installation. Otherwise, LLVM binaries built with the WebAssembly backend will be expected and s2wasm is used. On Windows, make sure to escape backslashes of paths within this file as double backslashes \\ or use Unix-style paths with a single forward slash /.
두 가지 방법 중 하나를 선택하려면 Emscripten 구성 파일의 LLVM_ROOT 변수가 사용됩니다. Emscripten의 fastcomp clang 바이너리가 들어있는 디렉토리를 가리키면 asm2wasm이 사용됩니다. 이는 Emscripten 설치시 기본값입니다. 그렇지 않으면 WebAssembly 백엔드로 빌드된 LLVM 바이너리가 예상되며 s2wasm이 사용됩니다. Windows에서는 이 파일 내의 경로의 백 슬래시를 이중 백 슬래시(\\)로 이스케이프 처리하거나 Unix 스타일 경로를 단일 슬래시 /로 사용하십시오.

반응형

'game > godot' 카테고리의 다른 글

Godot - Cross-compiling for iOS on Linux  (0) 2018.12.05
Godot - Compiling for Universal Windows Platform  (0) 2018.12.04
Godot - Compiling with Mono  (0) 2018.12.01
Godot - Packaging Godot  (0) 2018.11.30
Godot - Optimizing a build for size  (0) 2018.11.29