GDevelop

Last updated
GDevelop
Original author(s) florian rival(4ian)
Developer(s) florian rivial (4ian), Victor Levasseur, Aurélien Vivet (Bouh), Arthur Pacaud (arthuro555), Franco Maciel (Lizard-13), Todor Imreorov (blurymind) [1]
Initial releaseAugust 11, 2008;15 years ago (2008-08-11)
Stable release
5.3.189 [2]   OOjs UI icon edit-ltr-progressive.svg / 9 February 2024;33 days ago (9 February 2024)
Preview release
5.0.0 beta112 / July 15, 2021;2 years ago (2021-07-15) [3]
Repository https://github.com/4ian/GDevelop
Written in C++, JavaScript
Operating system Windows, Linux, macOS, Web browser
Platform Linux, macOS, Windows, iOS, Android, HTML5, Universal Windows Platform
Available in English, Community Provided Translations
Type Game creation system
Game engine
Game integrated development environment
License MIT License
Website gdevelop.io

GDevelop is a 2D and 3D cross-platform, free and open-source game engine, which mainly focuses on creating PC and mobile games, as well as HTML5 games playable in the browser. [4] [5] [6] Created by Florian Rival, a software engineer at Google, [7] GDevelop is mainly aimed at non-programmers and game developers of all skillsets, employing event based visual programming similar to engines like Construct, Stencyl, and Tynker. [8] [9]

Contents

As it was distributed under an open-source license, GDevelop has found used in games education, ranging from primary schools to university courses. [6] [10] [11] It has also been used by educators and researchers to create learning and serious games. [12] [13]

Game creation without programming languages

GDevelop aims to allow creators to create video games without any programming languages. They use these methods to allow this:

Event-based logic

GDevelop's primary focus is to allow all users to create games without code or a programming language. This is accomplished via an Event system, [14] which creates logic by monitoring for Conditions on when to trigger, and actions to take once the event conditions are met. The majority of events are presented in normalized language, so creators can avoid having to understand coding concepts found in many programming languages.

Behaviors

Behaviors allow for advanced combinations of pre-built functions and events to add logic like physics-based movement, pathfinding, acting as a platform or platform character game, allowing to move the object with the mouse or touch, transitions, etc. [15] Behaviors can be added to game objects, and the same object can have several behaviors. Behaviors can also be created using the Event system - allowing users to extend the existing set of behaviors without coding.

Built-In Asset Store

GDevelop has a built-in Asset Store that is host to hundreds of thousands of both free and paid assets. These can easily be inserted into a GDevelop project with a few clicks within the editor interface. [16]

Easy content pipeline

All game content including character art, backgrounds, text, etc, can be added directly through a point-and-click interface in the editor. Some example content types are Sprites, Tiled Sprites, 9-Patch (Panel) Sprites, Text Objects, Text Objects with BBText support, Shape Painters, and more. Music and Sounds can be imported directly into the events that utilize them.

Other features

GDevelop has Web, Local and Mobile clients. [17] The web client allowing for game development directly through the browser and saving to a cloud storage solution. Both Web and Local versions share the majority of their feature-set. The mobile version has a more limited feature set to comply with Google Play Store [18] and Apple App Store [19] regulations. A non-exhaustive feature-set available to clients include:

Extensions

User-made extensions can be created to allow for custom events, behaviors, or functions. Existing events can be turned into extensions from within a project's event sheet. These extensions can be shared within the IDE to the entire community and can be added within a few clicks. [20] Extensions can also implement new engine capabilities such as Kongregate API integrations or full masking support and improve the quality of the creator's game. Some things extensions can add gamepad support and cheats like the Konami code.

Javascript language support

Although GDevelop's primary focus is using the event system to enable development without any programming language code, a JavaScript code block can also be used in place of any event. [9]

In addition to using JavaScript code blocks for game logic, this also allows advanced users to extend the capabilities of events by directly manipulating the engine, expanding the capabilities of the engine.

Monetization support

GDevelop supports AdMob, Shopify, and Facebook ads allowing for advertising in the form of video, banner, interstitial screen and link to purchase.

Mobile editor app

GDevelop is available as a mobile app, optimized for both iOS [21] and Android. [22] There are scene and event limits for free accounts, but any level of Premium membership will unlock the app's full feature set. [23] This allows users to create games on Android and iOS devices, with cross-save support, meaning users can start a project on their mobile device and continue on their desktop, or vice-versa.

Game analytics

Users can opt to collect analytics data from their games, including the number of times the game has been played, the number of players, user retention over time, and more. [24] All of this data is collected anonymously and data collection complies with all current international data protection regulations. [25]

Shader effects

Introduced in beta 84, [26] GDevelop currently supports effects applied to each layer of a game scene. Shaders allow for advanced graphical effects, such as drop shadows, reflections, scanlines and color swapping, without having to create custom art for the effect.

Built-in content editors

Gdevelop's IDE also has built-in editors for graphics and audio. Piskel [27] is integrated for editing art, and JFXR [28] is integrated for creating sound effects.

One-click export

Games can be exported directly to Android, Windows, Linux, and Web platforms. [29] It is possible to make a local export that allows for manual iOS, Android, or desktop OS compiling, as well as export to platforms like Kongregate, itch.io, Google Play, etc.

gd.games: GDevelop's own game hosting platform

GDevelop also allows unlimited [30] one-click builds to be published on their own game hosting platform, gd.games, [31] even for free accounts. This gives game creators access to permanent URLs, creator profiles and more integrated analytics for their games. [24]

Supported platforms

GDevelop allows users to compile games into stand-alone games, without requiring the software to run.

The following platforms are supported for One-click export:

Additionally, the projects can be exported locally, and manually compiled to the following platforms:

Technologies used

For games, GDevelop uses GDJS, a JavaScript engine, with PixiJS and Three.js as 2D and 3D renderers. The editor interface is in React and uses WebAssembly to manipulate projects using the Core classes written in C++. [32] Both the editor interface and games are packaged using Electron.

GDevelop 4 used a GDCpp, a C++ engine, as well as GDJS, a JavaScript engine. GDCpp uses SFML and GDJS used Pixi.JS as a renderer. The editor interface was written in C++ and was essentially based on the library SFML for multimedia management and on wxWidgets user interface. The software also used Boost and TinyXML. The IDE and GDCpp were packaged via a standard C++ compiler.

History

According to the main author of the software:

"The idea with GDevelop is making game creation accessible to anyone, from beginners to seasoned game developers. GDevelop allows you to create the logic of your game using visual events, composed of conditions and actions. You can also build your game objects by composing pre-defined and customizable behaviours. This means that the entry barrier to learning the syntax and idioms of a programming language is removed. For people that are not developers, it’s a way to quickly get up and running with an intuitive interface. Lots of people love sandbox games. GDevelop is a sandbox - but what you can do with it is unlimited." [33]

GDevelop's initial 1.0 release was in 2008, on a foundation that was primarily C++ and had a more native OS focus. Over the years more and more features were added such as tilemap support, a particle system, and limited network support. Leading up to 2018, discussions around migrating GDevelop to a more portable and platform-agnostic base were made, and in January 2018 GDevelop 5 was released. [34]

Until GDevelop 5, the main engine was the C++ engine (GDCpp). GDevelop 5 dropped support for it in favour of the JavaScript engine (GDJS), first introduced on July 1, 2013. [35] The reason for dropping GDCpp was because it had issues across platforms, couldn't run in the browser or on phones due to the renderer (SFML [36] ) it was using, and GDevelop was lacking contributors in general to support both a JavaScript and a C++ engine. It is planned to bring a native engine back in the long term, but not in the short term [37]

GDevelop 5 included a complete rework of the IDE to begin using web technologies, like PixiJS and React. Support around GDevelop 4 was shifted over to GDevelop 5 to bring focus on enhancing the future of the engine.

Since GDevelop's launch, additional features and functionality have continually been added, such as BBText support, [38] Dialogue Support via Yarnspinner, layer-based shaders via PixiJS Shaders, [38] and native mobile apps to develop games on Android and iOS devices. Development and enhancement of the platform continues from 4ian and a group of repeat contributors.

3D support was added to GDevelop 5 on May 18, 2023, along with other changes. [39]

See also

Related Research Articles

<span class="mw-page-title-main">Simple DirectMedia Layer</span> Free software multimedia library

Simple DirectMedia Layer (SDL) is a cross-platform software development library designed to provide a hardware abstraction layer for computer multimedia hardware components. Software developers can use it to write high-performance computer games and other multimedia applications that can run on many operating systems such as Android, iOS, Linux, macOS, and Windows.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

Homebrew, when applied to video games, refers to software produced by hobbyists for proprietary video game consoles which are not intended to be user-programmable. The official documentation is often only available to licensed developers, and these systems may use storage formats that make distribution difficult, such as ROM cartridges or encrypted CD-ROMs. Many consoles have hardware restrictions to prevent unauthorized development.

The clipboard is a buffer that some operating systems provide for short-term storage and transfer within and between application programs. The clipboard is usually temporary and unnamed, and its contents reside in the computer's RAM.

<span class="mw-page-title-main">Mumble (software)</span> VoIP application

Mumble is a voice over IP (VoIP) application primarily designed for use by gamers and is similar to programs such as TeamSpeak.

<span class="mw-page-title-main">Box2D</span>

Box2D is a free open source 2-dimensional physics simulator engine written in C++ by Erin Catto and published under the MIT license. It has been used in Crayon Physics Deluxe, Limbo, Rolando, Incredibots, Angry Birds, Tiny Wings, Shovel Knight, Transformice, Happy Wheels, and many online Flash games, as well as iPhone, iPad and Android games using the Cocos2d or Moscrif game engine and Corona framework.

Apache Cordova is a mobile application development framework created by Nitobi. Adobe Systems purchased Nitobi in 2011, rebranded it as PhoneGap, and later released an open-source version of the software called Apache Cordova. Apache Cordova enables software programmers to build hybrid web applications for mobile devices using CSS3, HTML5, and JavaScript, instead of relying on platform-specific APIs like those in Android, iOS, or Windows Phone. It enables the wrapping up of CSS, HTML, and JavaScript code depending on the platform of the device. It extends the features of HTML and JavaScript to work with the device. The resulting applications are hybrid, meaning that they are neither truly native mobile application nor purely Web-based. They are not native because all layout rendering is done via Web views instead of the platform's native UI framework. They are not Web apps because they are packaged as apps for distribution and have access to native device APIs. Mixing native and hybrid code snippets has been possible since version 1.9.

Dart is a programming language designed by Lars Bak and Kasper Lund and developed by Google. It can be used to develop web and mobile apps as well as server and desktop applications.

<span class="mw-page-title-main">Mono (software)</span> Computer software project

Mono is a free and open-source .NET Framework-compatible software framework. Originally by Ximian, it was later acquired by Novell, and is now being led by Xamarin, a subsidiary of Microsoft and the .NET Foundation. Mono can be run on many software systems.

Enyo is an open source JavaScript framework for cross-platform mobile, desktop, TV and web applications emphasizing object-oriented encapsulation and modularity. Initially developed by Palm, it was later acquired by Hewlett-Packard in April 2010 and then released under an Apache 2.0 license. It is sponsored by LG Electronics and Hewlett-Packard.

<span class="mw-page-title-main">Construct (game engine)</span> Visual HTML5-based 2D game editor

Construct is an HTML5-based 2D video game engine developed by Scirra Ltd. It is aimed primarily at non-programmers, allowing quick creation of games through visual programming. First released as a GPL-licensed DirectX 9 game engine for Microsoft Windows with Python programming on October 27, 2007, it later became proprietary software with Construct 2, as well as switching its API technology from DirectX to NW.js and HTML5, as well as removing Python and adding JavaScript support and its plugin SDK in 2012, and eventually switched to a subscription-based model as a web app.

<span class="mw-page-title-main">RetroArch</span> Emulator and media player frontend

RetroArch is a free and open-source, cross-platform frontend for emulators, game engines, video games, media players and other applications. It is the reference implementation of the libretro API, designed to be fast, lightweight, portable and without dependencies. It is licensed under the GNU GPLv3.

<span class="mw-page-title-main">ORX</span> Game Engine

Orx is an open-source, portable, lightweight, plug-in-based, data-driven and easy to use 2D-oriented game engine written in C.

Felgo is a cross-platform development tool, based on the Qt framework. It can be used to create mobile apps or games. Felgo apps and games are supported on iOS, Android, Windows Phone, embedded devices and desktop devices. Felgo developers use QML, JavaScript and C++ to create mobile apps and games.

<span class="mw-page-title-main">Snap (software)</span> Software deployment system for Linux by Canonical

Snap is a software packaging and deployment system developed by Canonical for operating systems that use the Linux kernel and the systemd init system. The packages, called snaps, and the tool for using them, snapd, work across a range of Linux distributions and allow upstream software developers to distribute their applications directly to users. Snaps are self-contained applications running in a sandbox with mediated access to the host system. Snap was originally released for cloud applications but was later ported to also work for Internet of Things devices and desktop applications.

NativeScript is an open-source framework to develop mobile apps on the iOS and Android platforms. It was originally conceived and developed by Progress. At the end of 2019 responsibility for the NativeScript project was taken over by long-time Progress partner, nStudio. In December 2020 nStudio also oversaw the induction of NativeScript into OpenJS Foundation as an Incubating Project. NativeScript apps are built using JavaScript, or by using any programming language that transpiles to JavaScript, such as TypeScript. NativeScript supports the Angular and Vue JavaScript frameworks. Mobile applications built with NativeScript result in fully native apps, which use the same APIs as if they were developed in Xcode or Android Studio. Additionally, software developers can re-purpose third-party libraries from CocoaPods, Maven, and npm.js in their mobile applications without the need for wrappers.

Flutter is an open-source UI software development kit created by Google. It is used to develop cross platform applications from a single codebase for any web browser, Fuchsia, Android, iOS, Linux, macOS, and Windows. First described in 2015, Flutter was released in May 2017.

<span class="mw-page-title-main">Keybase</span> Security software

Keybase is a key directory that maps social media identities to encryption keys in a publicly auditable manner. Additionally it offers an end-to-end encrypted chat and cloud storage system, called Keybase Chat and the Keybase Filesystem respectively. Files placed in the public portion of the filesystem are served from a public endpoint, as well as locally from a filesystem mounted by the Keybase client.

<span class="mw-page-title-main">ZeroTier</span> Software company based in California

ZeroTier, Inc. is a software company with a freemium business model based in Irvine, California. ZeroTier provides proprietary software, SDKs and commercial products and services to create and manage virtual software-defined networks. The company's flagship end-user product ZeroTier One is a client application that enables devices such as PCs, phones, servers and embedded devices to securely connect to peer-to-peer virtual networks.

<span class="mw-page-title-main">HarmonyOS</span> Distributed operating system by Huawei

HarmonyOS (HMOS) is a distributed operating system developed by Huawei for smartphones, tablets, smart TVs, smart watches, personal computers and other smart devices. It has a multikernel design with dual frameworks: the operating system selects suitable kernels from the abstraction layer in the case of devices that use diverse resources. The operating system was officially launched by Huawei in August 2019.

References

  1. "GDevelop contributors list". GitHub . 2021-01-11. Archived from the original on 2021-02-06. Retrieved 2021-01-11.
  2. "Release 5.3.189". 9 February 2024. Retrieved 20 February 2024.
  3. "GDevelop 5.0.0-beta105". GitHub . 2021-02-06. Archived from the original on 2021-02-14. Retrieved 2021-02-09.
  4. Hattersley, Lucy. "How to make your own games on a Mac". Macworld UK. Archived from the original on 2020-07-22. Retrieved 2020-07-22.
  5. "Get Started in Game Development - GameDev.net". www.gamedev.net. Archived from the original on 2020-06-10. Retrieved 2020-07-22.
  6. 1 2 Correa, Jose David Cuartas (2015-06-27). Digitopolis II: Creation of video games GDevelop. Jose David Cuartas Correa. ISBN   978-958-9146-71-2. Archived from the original on 2023-03-31. Retrieved 2020-11-27.
  7. "Porting a Desktop Game Editor to the Browser with WebAssembly". InfoQ. Archived from the original on 2020-08-12. Retrieved 2020-07-22.
  8. Moore, D. M. (2020-04-14). "11 tools to get you started making video games". The Verge. Archived from the original on 2020-07-22. Retrieved 2020-07-22.
  9. 1 2 Griffey, Julia V. (2019-12-12). Introduction to Interactive Digital Media: Concept and Practice. Routledge. p. 151. ISBN   978-0-429-62073-7. Archived from the original on 2023-03-31. Retrieved 2020-11-27.
  10. Yu, Chak Tin; Tomorrowskills, Hobbypress (2020-06-10). STEM Education Series: Write Your First 2-player Tank Game: Using GDevelop. Amazon Digital Services LLC - KDP Print US. ISBN   979-8-6527-6854-6. Archived from the original on 2023-03-31. Retrieved 2020-11-27.
  11. "GDevelop for the education - Teach game creation". gdevelop-app.com. Archived from the original on 2020-07-23. Retrieved 2020-07-22.
  12. Kleftodimos, Alexandros; Evangelidis, Georgios (2018). "Augmenting educational videos with interactive exercises and knowledge testing games". 2018 IEEE Global Engineering Education Conference (EDUCON). pp. 872–877. doi:10.1109/EDUCON.2018.8363322. ISBN   978-1-5386-2957-4. S2CID   44107170.
  13. G, Gabriel Elías Chanchí; A, María Clara Gómez; M, Wilmar Yesid Campo (2019). "Proposal of an educational video game for the teaching-learning of the requirements classification in software engineering [Propuesta de un videojuego educativo para la enseñanza-aprendizaje de la clasificación de requisitos en ingeniería de software]". RISTI - Revista Iberica de Sistemas e Tecnologias de Informacao. 2019 (E22): 1–14. Archived from the original on 2020-07-22. Retrieved 2020-07-22.
  14. "Events [GDevelop wiki]". wiki.compilgames.net. Archived from the original on 2020-08-03. Retrieved 2020-08-06.
  15. "Behaviors ["GDevelop Wiki"]". wiki.compilgames.net. Archived from the original on 2020-07-24. Retrieved 2020-08-06.
  16. "Game assets in the GDevelop Asset Store | GDevelop". gdevelop.io. Retrieved 2023-08-02.
  17. "Download | GDevelop". gdevelop.io. Retrieved 2023-12-01.
  18. "GDevelop on Android: The First No-Code & Open-Source Game Engine for Mobile | GDevelop". gdevelop.io. 2023-03-29. Retrieved 2023-12-01.
  19. "GDevelop now on iOS: The First No-Code & Open-Source Game Engine for Mobile | GDevelop". gdevelop.io. 2023-12-04. Retrieved 2023-12-01.
  20. "Extensions [GDevelop wiki]". wiki.compilgames.net. Archived from the original on 2020-07-23. Retrieved 2020-08-06.
  21. "GDevelop - game maker". App Store. 2023-05-28. Retrieved 2023-08-02.
  22. "GDevelop - 2D/3D game maker - Apps on Google Play". play.google.com. Retrieved 2023-08-02.
  23. "GDevelop Premium Plans | GDevelop". gdevelop.io. Retrieved 2023-08-02.
  24. 1 2 "Games Dashboard - GDevelop documentation". wiki.gdevelop.io. Retrieved 2023-08-02.
  25. "Privacy Policy | GDevelop". gdevelop.io. Retrieved 2023-08-02.
  26. "GDevelop 5.0.0-beta84". GitHub . 2020-01-06. Archived from the original on 2022-07-08. Retrieved 2020-01-06.
  27. "Piskel - Free online sprite editor". www.piskelapp.com. Archived from the original on 2020-08-09. Retrieved 2020-08-06.
  28. "Jfxr : Frozen Fractal". frozenfractal.com. Archived from the original on 2023-01-25. Retrieved 2020-08-06.
  29. "Publishing games [GDevelop wiki]". wiki.compilgames.net. Archived from the original on 2020-08-05. Retrieved 2020-08-06.
  30. "GDevelop Premium Plans | GDevelop". gdevelop.io. Retrieved 2023-08-02.
  31. "gd.games - Play games made with GDevelop, the game making app". gd.games. Retrieved 2023-08-02.
  32. "How has been ported the game editor to the browser with WebAssembly". 2019-10-09. Archived from the original on 2020-08-12. Retrieved 2020-07-22.
  33. "Porting a Desktop Game Editor to the Browser with WebAssembly". InfoQ. Archived from the original on 2020-08-12. Retrieved 2020-08-06.
  34. "Release 5.0.0-beta14 · 4ian/GDevelop". GitHub. Archived from the original on 2022-07-08. Retrieved 2020-08-07.
  35. "Initial addition of GDJS to the source code". GitHub. Archived from the original on 2022-07-08. Retrieved 2020-08-09.
  36. "SFML". SFML. Archived from the original on 2020-08-14. Retrieved 2020-08-11.
  37. "Statement "Native games will be added to GDevelop 5 later." at the bottom of the downloads page". GDevelop official website. Archived from the original on 2020-08-09. Retrieved 2020-08-09.
  38. 1 2 "Release 5.0.0-beta84 · 4ian/GDevelop". GitHub. Archived from the original on 2022-07-08. Retrieved 2020-08-07.
  39. "GDevelop Engine Adds 3D Support". GameFromScratch. 2023-05-18. Retrieved 2023-08-20.