
Avoid having getters in the gd::Platform or the gd::Project, as they should not be responsible for this. Instead, use gd::MetadataProvider to fetch the BehaviorMetadata. Don't show in changelog
GDevelop.js
This is the port of GDevelop core classes to WebAssembly+JavaScript. This allows 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 the GDevelop editor or extensions in JavaScript, you don't need to rebuild 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
ℹ️ Output is created in /path/to/GD/Binaries/embuild/GDevelop.js/ and also copied to GDevelop 5 IDE (
newIDE
folder).
-> ⏱ The linking (last step) of the build can be made a few seconds faster by specifying -- --dev
. Be sure to remove it before building a release version, as this disable "link-time optimizations" of the generated WebAssembly module.
- 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/embuild
directory, - 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
(orninja
on 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.