newIDE/docs/How-are-exporters-and-platforms-working.md
🤚 Before starting to read this document, it's highly recommended that you read the architecture overview here. 👈
When a game is previewed or exported, there are multiple concepts that are being used.
GDevelop is built on platforms. A platform is the term used in GDevelop codebase to describe the class that:
gd::Project as argument and copying all resources, exporting files, launching the code generator for events.For now, there is a single platform used in the GDevelop editor, which is called GDJS (GDevelop JavaScript platform). The different exports that you can find in the editor are using the same generator that export a whole game but with different parameters.
JsExtension.cpp or JsExtension.js files.Confused about why extensions are "declaring" stuff? Read the overview of the architecture.
It depends on what you are targeting:
index.html or a set of files to export.It's highly recommended as the Core library is actually making a lot of stuff for you. It contains:
Remember that exporting the game is one thing, but you might also have to support the same extensions as the existing ones in GDevelop (depending on how much degree of compatibility you're aiming for).