GDevelop
GDevelop is a free, open-source, no-code game engine that enables users to create 2D, 3D, and multiplayer games without programming knowledge, utilizing a visual event-based system, drag-and-drop interface, and pre-built behaviors for logic and interactions.[1] Originally developed by Florian Rival as a side project in 2008, GDevelop's first public release on GitHub occurred in 2014, with version 5 launching in 2021 as a major overhaul emphasizing accessibility and modern web technologies.[2][3][4] The engine supports cross-platform exports to web browsers, iOS, Android, Steam, and desktop environments, allowing creators to publish games directly to app stores and gaming platforms while maintaining a lightweight footprint available on desktop, web, and mobile editors.[1] GDevelop fosters an open ecosystem with community-contributed extensions, JavaScript integration for advanced customization, and AI-assisted tools for asset generation and prototyping, powering notable titles such as Vai Juliette!, which became Brazil's Mobile Game of the Year in 2021 with over 1 million downloads.[1][2] Since incorporating as a company in London, GDevelop has raised over $2.7 million in funding to expand its services, including cloud builds and monetization options, while remaining fully MIT-licensed and committed to empowering indie developers and educators worldwide.[5]Overview
Core Concept
GDevelop is a free, open-source, cross-platform game engine designed for creating 2D and 3D games without requiring programming knowledge.[1][6] It provides visual tools that enable users to build, test, and publish games for platforms including web browsers, mobile devices (iOS and Android), desktop (Windows, macOS, Linux), emphasizing accessibility for rapid development and prototyping.[3] The engine's core strength lies in its no-code paradigm, which allows beginners, educators, and hobbyists to focus on creative aspects rather than syntax or debugging code, making it ideal for quick iterations and learning game design principles.[1] At its foundation is a visual scripting system that implements game logic through intuitive, drag-and-drop interfaces, replacing traditional coding with a more approachable method for defining behaviors and interactions. This approach briefly references an event-based system for structuring logic, but details on its mechanics are covered elsewhere. As an open-source project, GDevelop is released under the MIT license, permitting free use, modification, and distribution for both personal and commercial purposes. Its primary repository is hosted on GitHub at https://github.com/4ian/GDevelop, where the community contributes to its development, ensuring ongoing updates and extensibility.[3] This open nature fosters a collaborative ecosystem, with the engine's codebase actively maintained to support evolving game creation needs.[3]Target Users and Accessibility
GDevelop primarily targets hobbyists, educators, indie developers, and individuals without programming experience who seek to prototype and build games rapidly.[1] This audience benefits from the engine's no-code approach, which democratizes game creation by allowing users to focus on ideas rather than technical barriers. Educators, in particular, use it for teaching concepts in computer science and creative design, while indie developers leverage it for quick iterations on 2D and simple 3D projects.[6] Key accessibility features enhance its reach to diverse users. The core software is free and open-source, eliminating financial hurdles for entry-level creators worldwide.[7] It offers multilingual interface support in multiple languages including English, French, and Chinese (Simplified), facilitating adoption by non-English speakers.[8] System requirements remain low, requiring only a 64-bit processor, 1 GB of RAM, and WebGL-compatible graphics, enabling it to run on Windows, macOS, Linux, web browsers, and even resource-constrained devices like Chromebooks.[9] Community-driven resources further lower the learning curve. Official tutorials on the GDevelop Academy provide step-by-step guidance for beginners, covering everything from basic mechanics to advanced techniques.[10] The active forum at forum.gdevelop.io and Discord server offer peer support, troubleshooting, and knowledge sharing among thousands of users.[11] These platforms foster an inclusive environment where newcomers can access real-time help and collaborative examples. For mobile-first development, GDevelop includes dedicated apps for iOS and Android, allowing users to create, edit, and preview games directly on smartphones or tablets.[12] This portability supports on-the-go creation, particularly appealing to younger users or those in educational settings without access to desktops.[13]No-Code Game Creation
Event-Based Logic
GDevelop employs an event-based logic system that allows users to define game behaviors through visual scripting in event sheets, eliminating the need for traditional coding. These event sheets serve as the core mechanism for implementing game logic, where users create events consisting of conditions—triggers that evaluate to true or false—and corresponding actions that execute when all conditions in an event are satisfied. For instance, a condition might check if a player object collides with an obstacle, prompting actions such as reducing the player's health variable or playing a sound effect.[14][15] To handle more intricate logic, GDevelop supports sub-events, which are nested under parent events and only run if the parent's conditions are met, enabling hierarchical structures for efficient organization and performance optimization. Groups allow users to bundle related events together for better readability, with customizable colors and the ability to disable or enable them en masse during development. Modifiers, such as expressions like TimeDelta(), ensure actions scale consistently across varying frame rates, preventing issues like erratic movement in games running at 60 FPS versus 30 FPS. This setup facilitates complex decision trees without code, such as managing game states through variable comparisons.[15][16] Practical examples illustrate the system's versatility. For collision detection, an event might use the condition "PlayerSprite is in collision with Enemy" to trigger actions like deleting the enemy instance and incrementing a score variable by 1, applying only to the specific colliding objects. In scoring systems, a condition like "Coin is in collision with Player" leads to actions that add points to a global score variable and remove the coin from the scene, often combined with particle effects for feedback. State management can be achieved by tracking variables, such as an event with the condition "PlayerHealth <= 0" activating actions to transition to a game over screen or reset the level, using sub-events to handle variations like invincibility timers.[16][14] The advantages of this approach lie in its intuitiveness for beginners, who can grasp cause-and-effect relationships through a drag-and-drop interface without prior programming knowledge, while offering scalability for advanced users via nested logic and reusable expressions that support increasingly sophisticated games. Behaviors can extend this system by encapsulating common event patterns for objects, further streamlining development.[15][14]Behaviors and Objects
GDevelop provides a variety of object types as the foundational building blocks for game entities, allowing creators to represent visual, interactive, and structural elements without coding. These objects can be placed in scenes and manipulated through properties, animations, and interactions. Common built-in object types include sprites for displaying images or animations, text objects for rendering written content, particle emitters for generating dynamic effects like fire or explosions, 3D models for incorporating three-dimensional assets with support for lighting and shadows, and tilemaps for constructing level layouts using repeating tiles.[17][18][19][20][21] Behaviors in GDevelop extend the functionality of these objects by adding reusable mechanics, such as movement, collision handling, or state management, which are attached directly to individual objects via the editor's properties panel. The engine includes numerous built-in behaviors—over 100 options when considering core and standard extensions—that cover essential game mechanics, enabling quick implementation of complex interactions. Examples include the platformer character behavior for gravity-based jumping and running on platforms, the pathfinding behavior for AI navigation around obstacles, and the draggable behavior for user-controlled object manipulation via mouse or touch input. These behaviors are customizable through parameters like speed, acceleration, or obstacle detection grids, and they integrate seamlessly with object properties to simulate realistic physics or controls.[22][23][24] For more specialized needs, GDevelop supports the creation of custom behaviors using its visual event-based system, where users define logic through a drag-and-drop interface without writing code. These custom behaviors are built as part of extensions, incorporating events that run during object lifecycles such as creation, updates per frame, or destruction. A representative example is a health system behavior, which might include properties for maximum health points, damage intervals, and regeneration rates, along with actions to apply damage or check for death states. Once created, custom behaviors can be reused across multiple objects and projects, promoting modularity in game design.[25][26][27] Objects and behaviors interact dynamically through GDevelop's event system, where conditions detect states or collisions involving specific object instances, and actions trigger behavior methods to update positions, animations, or properties in real-time. For instance, an event might use a collision condition between a sprite object with a platformer behavior and a tilemap to adjust velocity or play a sound effect, ensuring responsive and interconnected game worlds. This integration allows behaviors to respond to event-based triggers, creating emergent interactions like enemy AI pursuing a player or particles emitting on object impact.[14][28]Asset Pipeline
GDevelop features a built-in asset store integrated directly into the editor, offering thousands of free and premium assets such as sprites, sounds, and complete game templates to accelerate project development.[29] These assets can be browsed and imported seamlessly within the application, allowing users to select and incorporate them into their projects without leaving the workspace.[30] The store supports a variety of categories, enabling quick prototyping with ready-made elements like character animations, backgrounds, and audio effects.[31] As of August 2025, GDevelop includes AI-powered tools that assist in generating assets, such as images and prototypes, further streamlining the no-code workflow for creators.[32] The import workflow for custom assets emphasizes simplicity and integration, primarily handled through the Resources tab in the project manager. Users add images, audio files, fonts, and videos by editing resource properties to select local files or URLs via the file explorer, or by using the automatic scanning feature to detect and import assets from the project folder.[33] Although direct drag-and-drop for initial import is not the primary method documented, assets can be efficiently added to objects—such as dragging sprites into scenes after import—and the system supports batch operations for multiple files.[18] Optimization occurs automatically during export to target platforms, with built-in options like toggling image smoothing for pixel art preservation and preloading audio to minimize runtime delays, ensuring compatibility across web, mobile, and desktop.[33] The asset pipeline scales effectively from basic 2D content to advanced formats, accommodating simple sprites alongside 3D models in glTF (.glb) format and skeletal animations through Spine integration.[34] Spine support enables complex 2D character rigging with bone-based animations and smooth transitions, imported as .json and .atlas files for runtime rendering via PixiJS.[35] This versatility allows projects to evolve without external tools for asset preparation. Efficiency in the pipeline is enhanced by real-time previews in the properties panel, where imported assets display immediately for editing and testing, and batch tools for managing resources en masse—such as removing unused or invalid files to streamline project size.[33] These features reduce iteration time, with assets ready for assignment to objects like sprites or 3D models upon import.[17]Advanced Features
Extensions and Customization
GDevelop's extension system allows users to expand the engine's capabilities by adding new objects, behaviors, actions, conditions, expressions, effects, and events, enabling the implementation of advanced game mechanics without relying solely on the core features.[36] These extensions can be created using the engine's visual event-based tools, which facilitate no-code development by leveraging drag-and-drop interfaces and predefined logic structures.[37] Community-created extensions form a significant part of the ecosystem, providing specialized add-ons for features such as advanced user interfaces, networking protocols, or procedural generation tools.[38] Official extensions, like those for ads or camera controls, undergo rigorous review, while community contributions are hosted on GitHub and lightly vetted for inclusion in the shared library.[36] This collaborative approach fosters innovation, with examples including the Dungeon Generator for level creation and Smooth Camera for enhanced movement tracking.[36] The creation process begins in the Project Manager, where users select "Create a new extension," rename it for specificity—such as "HealthSystem" for vitality mechanics—and then define components like objects or behaviors using the built-in visual editor.[37] No deep coding is required for basic extensions, as creators can assemble them from event sheets and reusable logic blocks, though JavaScript integration is available for more complex needs.[37] Representative examples include health bar behaviors that track player damage visually, inventory systems managing item collections through conditions and actions, and custom physics extensions simulating unique collision responses.[37] Extensions are shared and distributed through an integrated marketplace within the GDevelop editor, functioning as a package manager for searching, installing, and updating add-ons directly into projects.[39] Users can download from the in-app store or GitHub repository, with submissions following best practices to ensure compatibility and ease of use across the community.[40] This system promotes accessibility, allowing even novice developers to incorporate professional-grade features like auto-typing animations or in-app purchases.[41]JavaScript Support
GDevelop incorporates JavaScript support through its GDJS runtime, which compiles the visual event sheets into efficient JavaScript code for execution on web and desktop platforms.[42] This runtime enables seamless performance in browser-based games and exported applications by translating no-code logic into a JavaScript-based engine, allowing for cross-platform compatibility without requiring manual coding for basic projects.[43] For advanced customization, GDevelop permits the embedding of custom JavaScript code directly within event sheets via dedicated JavaScript code events. These events can be added by selecting the option from the events toolbar, providing access to the runtime scene object for manipulating variables, objects, and behaviors.[44] Developers can retrieve object instances using methods likeruntimeScene.getObjects("ObjectName") or access global variables through runtimeScene.getVariables().get("VarName"), enabling precise control over game elements.[44] This integration supports the inclusion of external libraries or custom functions, executed sequentially as part of the event flow.[43]
Common use cases for JavaScript in GDevelop include implementing complex algorithms that exceed the capabilities of visual events, such as advanced pathfinding or procedural generation.[43] It also facilitates API integrations, like fetching data from external services, and performance optimizations through low-level tweaks to object behaviors or rendering logic.[44] For reusable code, JavaScript can be packaged into extensions, which extend the engine's functionality for objects, behaviors, or new event types.[43]
This JavaScript layer supports a hybrid development approach, allowing users to transition from no-code event-based design to code-enhanced projects as complexity grows.[43] Beginners can prototype visually and later refine with JavaScript for scalability, maintaining the tool's accessibility while empowering programmers to handle intricate requirements.[44] The Monaco Editor, integrated into GDevelop, provides syntax highlighting, autocompletion, and IntelliSense to streamline this process.[43]