Allow building native games in GDevelop 5

I have created some native mini games and templates in GDevelop 4. would be great to add support for native games in GDevelop 5.

GDevelop description:

allowing to create HTML5 and native games without any knowledge in a specific programming language.

GDevelop website:

Even if GDevelop 4 supports native games, we recommend switching to GDevelop 5 and HTML5 games.

GDevelop github:

The C++ game engine, used to build native games (not used in GDevelop 5).

The native engine has been abandonned, beacuse of the following reasons afaik (@4ian feel free to correct me):

  • We don’t have enough contributors for maintaining 2 engines (double work for every feature/thing)
  • Features working in specific platforms only were confusing to users
  • HTML5 games can be ported to practically all platforms, the native can’t be ported on the web
  • I think there were some OS dependent issues with the native platform too
  • JavaScript is an easier language so it brings more contributors
  • The native engine had some low quality extensions/code that couldn’t be removed as people were using it

@arthuro555 reasons cited here are correct: agility, fast development, portability across platforms, contributors, user confusion.

Note that the frontier between what is “native” and what is not is becoming blurry as new technologies like WebAssembly are getting adoption in JS engines.
In the future it’s probable that the “HTML5” engine will be having small or large parts in WebAssembly - so what you could call almost “native”.
It’s also possible that at some point we cross compile from JS to some native code for some platforms. Some game engines (Cocos Creator) are also using JS for the logic but “native” OpenGL for rendering - that’s another road.

All of this to say, it’s not all white or black.
At the end of the day, players can’t distinguish between an old GDevelop 4 “native” game and a new GDevelop 5 “JavaScript” game.

I think we might need to remove this reference to “native” on the website, because I think it’s creating false ideas in people minds.

Just would like to add that, players maybe not but developers can. When it comes to compatibility and support for native API`s and hardware or more robust games, personally I find HTML5/JS/Cordova/Electron painful to work with if compatibility and performance is important.

Personally I love the approach of Cocos Creator, running a JS engine in the browser and a native C++ engine on other platforms with JS support so we can maintain a single TypeScript codebase that compiles to JS for the core features at least on both web and native desktop and mobile platforms. I believe this is the direction GDevelop 4 was going at the end of it life. I wish this direction was followed but I also understand a JS engine is more attractive for small teams and contributors and I agree with all points except that the frontier between native and web is blurry. From players point of view, yeah but how many hours do you need to spend debugging Cordova to get there and realise the best approach is to drop support for that particular device or version of Android and iOS.

Anyhow, if GD is definitely remain a JS/HTML5 only engine, I would love to see the C++ code base from the engine gone for good, as I can see it is a huge obstacle for many people including me. It is just dirty. If JS and web is so good then be it JS (and maybe TypeScript) only. It would be even more attractive imo :+1: