Claude 8d995d43ba Support 3D models with textures stored in separate files
GLB files can be exported with their textures kept in separate image
files instead of embedded in the model. Until now GDevelop only imported
the .glb itself, and the glTF loader silently gives up on textures it
can't download - so these models were displayed and exported without any
texture, with nothing telling the user why.

3D models now use the "embedded resources" mechanism already used by
tilemaps and Spine skeletons: when a model is imported, an image resource
is created for each texture file it refers to, and the association
between the path written in the model and the resource is remembered in
the model resource metadata.

At display time, the glTF loaders of the game engine, of the editor and
of the resource thumbnails are given a handler that resolves these paths
to the image resources, so textures are shared with the rest of the game
and no extra file is ever downloaded. The settings of the image resources
(their smoothing) are re-applied afterwards, as the glTF loader
configures textures according to the model only.

In the game engine, this complements the sharing of textures embedded in
models: models with textures in separate files get a loader with both
the handler and the plugin sharing embedded textures, and their textures
are released with the model like any other.

Exposing these resources in the Core also means they are properly
renamed, copied at export, listed in the resources a scene must preload
and, most importantly, not considered unused anymore.

Resources whose embedded resources are missing from the project are now
shown as errored in the resources list, with an explanation in the
resource properties - this works for any resource referring to others.

Also fix embedded resource names keeping backslashes on Windows, and
remove a leftover debug print in ExposeEmbeddeds.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0185fZmBS2k7dUxvptTgniuS
2026-09-28 15:56:18 +00:00
2026-03-11 17:30:11 +01:00
2026-05-21 12:46:30 +02:00

GDevelop logo

GDevelop is a full-featured, no-code, open-source game development software. You can build 2D, 3D and multiplayer games for mobile (iOS, Android), desktop and the web. GDevelop is designed to be fast and incredibly intuitive: make games using an easy-to-understand yet powerful event-based system and modular behaviors. Create with AI that assists or builds alongside you.

The GDevelop editor when editing a game level

The GDevelop editor when editing a game level

Getting started

❔ I want to... 🚀 What to do
🎮 Use GDevelop to make games Go to GDevelop homepage to download the app!
⚙️ Create/improve an extension Read about creating an extension, with no-code or code.
🧑‍💻 Contribute to the editor or game engine Follow this README.
👾 Create or sell a game template Submit a free example or a paid template on the Asset Store.
🎨 Share or sell an asset pack Submit a free or paid asset pack on the Asset Store.
🌐 Help translate GDevelop Go on the GDevelop project on Crowdin or translate in-app tutorials.
👥 Get online game services or commercial support See offers for professionals, teams or individual creators.

Are you interested in contributing to GDevelop for the first time? Take a look at the list of good first issues, good first contributions or the "🏐 not too hard" cards on the Roadmap.

Games made with GDevelop

  • Find GDevelop games on gd.games, the gaming platform for games powered by GDevelop.
  • See the showcase of games created with GDevelop and published on Steam, iOS (App Store), Android (Google Play), Itch.io, Newgrounds, CrazyGames, Poki...

Some games made with GDevelop

Technical architecture

GDevelop is composed of an editor, a game engine, an ecosystem of extensions as well as online services and commercial support.

Directory ℹ️ Description
Core Core classes, describing the structure of a game and tools to implement the IDE and work with GDevelop games.
GDJS The game engine, written in TypeScript, using PixiJS and Three.js for 2D and 3D rendering (WebGL), powering all GDevelop games.
GDevelop.js Bindings of Core, GDJS and Extensions to JavaScript (with WebAssembly), used by the IDE.
newIDE The game editor, written in JavaScript with React, Electron, PixiJS and Three.js.
Extensions Built-in extensions for the game engine, providing objects, behaviors and new features. For example, this includes the physics engines running in WebAssembly (Box2D or Jolt Physics for 3D). All the official and experimental extensions are on this repository. Community extensions are available here.

To learn more about GDevelop Architecture, read the architecture overview here.

Pre-generated documentation of the game engine is available here.

Status of the tests and builds: macOS and Linux build status Fast tests status Windows Build status https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg

Community

Development Roadmap

License

  • The Core library, the native and HTML5 game engines, the IDE, and all extensions (respectively Core, GDJS, newIDE and Extensions folders) are under the MIT license.
  • The name, GDevelop, and its logo are the exclusive property of Florian Rival.

Games exported with GDevelop are based on the GDevelop game engine (see Core and GDJS folders): this engine is distributed under the MIT license so that you can distribute, sell or do anything with the games you created with GDevelop. In particular, you are not forced to make your game open-source.

Star History

Help us spread the word about GDevelop by starring the repository on GitHub!

Star History Chart

Languages
JavaScript 88%
C++ 7.7%
TypeScript 3.9%
CSS 0.2%