* This is done by compiling to wasm, without re-translating to JS, which is fine as it's for development only.
3.2 KiB
GDevelop.js
This is the port of GDevelop core classes to JavaScript. This allow GDevelop Core libraries to run in a browser or on Node.js.
🎮 GDevelop is a full featured, cross-platform, open-source game development software requiring no programming skills. Download it on the official website.
How to build
👋 Usually if you're working on GDevelop editor or extensions in JavaScript, you don't need rebuilding GDevelop.js. If you want to make changes in C++ extensions or classes, read this section.
-
Make sure you have CMake 3.17+ (3.5+ should work on Linux/macOS) and Node.js installed.
-
Install Emscripten, as explained on the Emscripten installation instructions:
| Linux/macOS | Windows |
|---|---|
git clone https://github.com/juj/emsdk.git |
git clone https://github.com/juj/emsdk.git |
cd emsdk |
cd emsdk |
./emsdk update |
emsdk update |
./emsdk install 1.39.6 |
emsdk install 1.39.6 |
./emsdk activate 1.39.6 |
emsdk activate 1.39.6 |
source ./emsdk_env.sh |
emsdk_env.bat |
- Launch the build from GDevelop.js folder:
cd GDevelop.js
npm install
npm run build -- --dev
ℹ️ Output is created in /path/to/GD/Binaries/embuild/GDevelop.js/ and also copied to GDevelop 5 IDE (
newIDEfolder).
⏱ The linking (last step) of the build can be very long when
-- --devis not specified, so be sure to include it. Only remove it if you are about to deploy a new version.
- You can then launch GDevelop 5 that will use your build of GDevelop.js:
cd ..
cd newIDE/app
npm install
npm start
More information in GDevelop 5 readme.
Tests
npm test
About the internal steps of compilation
The npm build task:
- Creates
Binaries/embuilddirectory, - Launches CMake inside to compile GDevelop with emconfigure to use Emscripten toolchain,
- Updates the glue.cpp and glue.js from Bindings.idl using Emscripten WebIDL Binder,
- Launches the compilation with
make(orninjaon Windows with CMake 3.17+) (you can also compile using MinGW-32 usingnpm run build-with-MinGW).
See the CMakeLists.txt for the arguments passed to the Emscripten linker.
Documentation
- The file Bindings.idl describes all the classes available in GDevelop.js.
- Refer to GDevelop documentation for detailed documentation of the original C++ classes.