The Problem

GDevelop addresses the gap between visual, no-code game editors and engines that require programming. Most engines force a choice: either a visual tool with limited depth, or a code-first engine with a steep learning curve. GDevelop's event-based system and modular behaviors aim to let non-programmers build 2D, 3D, and multiplayer games while keeping the engine itself open and extensible.

What This Does

This repo is a fork of the upstream 4ian/GDevelop (25,970 stars) and is a collection of six self-contained projects, not a single codebase. The newIDE/ folder (3,596 files) is the React-based editor where games are designed. GDJS/ (1,027 files) is the JavaScript game engine runtime that executes the games. Core/ (551 files) holds the C++ game logic core, and GDevelop.js/ (313 files) binds that C++ core to JavaScript via Emscripten.

The build is CMake-driven (CMakeLists.txt at root and in Core/, Extensions/, Extensions/3D/), with yarn as the package manager and Travis CI plus GitHub Actions for CI/CD. The runtime ships for multiple targets: web (GDJS/Runtime/index.html), Electron (GDJS/Runtime/Electron/main.js), Cordova, and Facebook Instant Games.

How It Is Wired

The wiring has not been mapped for this repository yet — no internal call graph or traced execution paths were produced. What the structure shows: the editor (newIDE/) composes game logic through the C++ core (Core/) exposed via GDevelop.js/ bindings, and the runtime (GDJS/) executes that logic in the browser or on device. The 1,044 test files are split across Core/tests/main.cpp, GDJS/tests, and the IDE's test suites, but no test command appears in the four GitHub Actions workflows read — a finding covered below.

How To Use It

The README directs contributors to newIDE/README.md for editor/engine development. Build steps are not documented in the root README excerpt; the CMake files imply a C++ build for Core/, and the package.json files in GDJS/ and GDJS/Runtime/Electron/ imply yarn install for the runtime. Exact commands are not present in the repo's root documentation, so verify against newIDE/README.md before running.

Real-World Use

A developer extending GDevelop writes a new behavior as an extension under Extensions/ (532 files), following the extension creation guide linked in the README. The extension is compiled through the CMake targets (Extensions/CMakeLists.txt) and exposed to the editor, where a game designer wires it to sprites via the event system without touching code — the core value proposition of the platform.

Code Health & Issues

The following comes from static analysis of this repo, not opinion:

  • High — Committed .env file: newIDE/app/.env is tracked and the app loads it. Remove from git, rotate every credential, commit a .env.example.
  • High — Third-party GitHub Actions pinned to tags, not SHAs: .github/workflows uses aws-actions/configure-aws-credentials@v2, chromaui/action@v1, peter-evans/*@v3/@v2. Tag moves can swap the code running with your token.
  • High — No lockfile beside SharedLibs/ThreeAddons/package.json; untested transitive versions can ship.
  • High — CI declares no test command across the 4 workflows despite 998 test files; the green check asserts nothing.
  • Medium — No permissions: declaration on workflows that reference secrets; GITHUB_TOKEN inherits repo default.
  • Medium — No Dependabot/Renovate config despite 11 manifests.
  • Medium — No dependency vulnerability scan in CI.
  • Medium — No pre-commit secret gate; the .env leak will recur.
  • Medium — persist-credentials not set to false on checkout in .github/workflows/build-storybook.yml.
  • Low — No timeout-minutes on workflow jobs.

The Bottom Line

This is the real GDevelop engine — a substantial, mature codebase with a serious editor, a C++ core, and a multi-target runtime. The engineering is solid; the hygiene gaps are the concern: a live .env, unpinned CI actions, and CI that doesn't run its own tests. Use it to build or extend a no-code game engine, but fix the secrets and CI issues before treating it as production infrastructure.