
* When launching the Debugger to inspect a game, open the Console to see internal messages sent by the game, JavaScript code or the game engine. * This is an advanced feature that is useful to find issues in your game or to see if your game is displaying any internal error.
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.