GDevelop

GDevelop est un logiciel permettant de créer tous types de jeux 2D sans utiliser de langage de programmation qui se veut accessible aux plus jeunes grâce à un système de conditions et d'action sous forme de blocs appelé événements. Le programme est entièrement gratuit et les jeux créés avec fonctionnent sous Windows, GNU/Linux ou sur le Web (jeux en HTML5) et appartiennent totalement a l'utilisateur qui a le droit d'en faire un usage commercial sans payer de royalties ou de licence.

GDevelop

Informations
Créateur Florian Rival (4ian)
Développé par Florian Rival (4ian), Victor Levasseur, Aurélien Vivet (Bouh), Arthur Pacaud (arthuro555), Franco Maciel (Lizard-13), Todor Imreorov (blurymind)
Fichier exécutable .exe (Windows), .app (Mac OS)
Première version 1.0.8504202 Beta ()
Dernière version 5.0.0-beta103 ()
Version avancée Page sur les versions avancées
Dépôt https://github.com/4ian/GDevelop
État du projet En développement actif
Écrit en C++, JavaScript
Système d'exploitation Microsoft Windows, Linux et macOS
Environnement Windows, GNU/Linux, Mac OS (bêta)
Langues Français, Anglais, Japonais, Russe, Espagnol, Polonais, Chinois (simplifié), Portugais, Italien
Type Moteur de jeux
Politique de distribution Gratuit
Licence Open source Licence MIT
Documentation http://wiki.compilgames.net/doku.php/gdevelop5/
Site web https://gdevelop-app.com/

Chronologie des versions

Le code du moteur et de l'IDE qui composent GDevelop sont open-source, toutes personnes voulant y contribuer le peuvent, il est accessible sur le dépôt officiel sur Github.

Fonctionnalités

À travers les mises à jour, GDevelop propose de plus en plus de fonctionnalités. En voici un aperçu non exhaustif.

Export en un clic

Un export sans outils spécialisés sous Android, Windows, GNU/Linux et pour le Web est proposé. Il est aussi possible de faire un export local qui permet de build avec Cordova sous iOS. Grâce à l'export vers le Web, il est possible de publier le jeu vers des plateformes comme Kongregate, Itch.io, Gamejolt ou autres.

Les comportements

On peut ajouter des comportements aux objets du jeu, un même objet peut en avoir plusieurs. Définissez en une fois comment l'objet doit agir en lui appliquant le comportement, appliquez le comportement sur des centaines d'objets ils agiront tous de la même manière.

Un comportement permet par exemple d'ajouter un moteur physique (celui inclut dans GDevelop par défaut est Box2D), des algorithmes pour trouver un chemin, agir comme un jeu de plateforme, permettre de déplacer l'objet à la souris ou au tactile, des transitions, etc.

Les extensions

Les extensions contiennent les événements, comportement et fonctions, aussi bien celles pour que GDevelop fonctionne que celles que les utilisateurs ont partagé pour qu'elles soient disponibles au travers d'une bibliothèque communautaire directement dans GDevelop.

Vous pourrez ajouter à votre jeu en quelques clics des événements approuvés et fonctionnels.

Les fonctions

Les fonctions permettent de créer des événements réutilisable dans n'importe quelles feuilles d’événements, événement externe, et même dans les extensions.

JavaScript

L'implémentation du langage JavaScript est un point fort permettant aux utilisateurs avancés d'étendre les possibilités au-delà de la limite d'événements en manipulant directement le moteur de GDevelop. Ceci offre de nouveaux horizons pour tout développeur.

Partout où il est possible d'utiliser un événement classique, il vous est possible d'écrire du JavaScript.

Publicité

Gdevelop supporte AdMob (Google) (plateformes mobiles seulement), et Shopify, ces deux services vous permettent l'ajout de publicité sous forme de vidéo, bannière, écran interstitiel et lien pour Facebook Instant Games. GDevelop supporte Facebook Instant games. Il est donc possible de publier des jeux Facebook et d'interagir avec les services Facebook dans le jeu.achat.

Fonctionnement

Gestionnaire de projet

Lorsqu'un projet est ouvert vous y trouverez les paramètres (niveaux), les scènes et niveaux, les ressources, les feuilles de code externe, les agencements externes, les extensions et les fonctions.

On peut choisir à travers celui-ci la scène à éditer, ainsi que modifier ses principaux paramètres, comme le titre et la couleur de fond. Après avoir choisit la scène à éditer, un éditeur de scène s'ouvre pour la modifier.

Éditeur de scène

L'éditeur de scène permet d'organiser la scène en positionnant les objets voulus. Nous pouvons par exemple positionner l'objet "Héros", créer un décor en installant plusieurs objets "Fond" et "Mur", puis insérer les ennemis en mettant les objets "Méchants". L'éditeur permet de tester directement la scène comme elle sera rendue dans le jeu final en l'affichant dans une fenêtre externe (un débogueur est disponible afin d'obtenir des informations (sur les objets, les variables...) ou encore de modifier les scènes durant le déroulement de celles-ci.

Gestionnaire de ressources

L'éditeur de ressources permet de gérer toutes les images qui vont être utilisées par le jeu par l'intermédiaire des objets.

Il est possible d'utiliser les formats d'image JPG, PNG. GDevelop supporte directement la transparence intégrée aux images.

Vous y trouverez aussi les polices d'écriture (TTF, TTC), la musique, fichiers sons et musique (WAV, MP3, OGG), et les fichiers vidéos (MP4).

Éditeur d'objets

L'éditeur d'objet permet la création des objets (qui peuvent représenter le joueur, une arme, une image d'arrière-plan ou encore une barre de vie) qui seront ensuite affichés sur la scène.

Les objets peuvent, définis par les extensions, être de différents types. Par exemple, les objets "Sprite" (image animée) peuvent disposer de plusieurs animations, contenant elles-mêmes des directions (8 directions ou une seule direction qui tournera à 360°). D'autres types d'objets, tels que les objets "Texte", "Mosaïque" uniquement pour le moment, "Vidéo", "Boite 3D" (GD4), sont aussi utilisées par leur extension respective et au travers d'extensions. Le logiciel possède aussi un objet "Émetteur de particules" permettant d'utiliser des particules simplement dans le jeu.

Les objets supportent depuis un comportements (voir ci-dessus dans fonctionnalités) de jeux de plateforme.

Éditeur de calques

L'éditeur de calques permet de gérer facilement les calques ou les différentes couches qui composent la scène, un objet peut être sur un calque différent d'un autre. Par exemple une (les HUD) barre de vie fixe à l'écran ne sera pas sur les ennemis qui même calquent les entités ainsi que le héros qui se déplace.

Le placement des objets sur les différents calques se fait dans les propriétés de l'objet.

Cela permet d'ordonner plus facilement ces objets, et d'interagir avec un groupe d'entre eux en particulier (par exemple cacher le calque HUD pour cacher les HUD au lieu de cacher chaque objets un par un) via l'éditeur de scènes.

Éditeur d'événements (feuille d'événement)

L'éditeur d'événements permet de programmer grâce à un principe de conditions et actions. Chaque événement est constitué de conditions avec un autre (un objet est-il en collision, le curseur est-il sur un objet, la vitesse de l'objet est-elle supérieure à... ) et d'actions, qui seront effectuées si les conditions sont remplies (déplacer un objet, créer un objet, afficher un texte, jouer un son...).

Il est possible d'utiliser des sous-événements et d'ajouter des commentaires ou des liens vers les événements des autres scènes du jeu. Le support des boucles ou des événements-fonctions est inclus. Les conditions et actions et types d’événements sont extensibles grâce à des apports créés par la communauté.

Les événements sont améliorés en interne par GDevelop pour une meilleure optimisation lors de l’exécution du jeu.

Compilation des jeux

GDevelop permet de compiler des jeux en des jeux autonomes, ne nécessitant pas le logiciel Electron (pour GDevelopo5). La compilation permet d'exporter pour Windows, MacOS, Gnu/Linux. La compilation via Cordova permet de créer des applications pour IOS ou Android, et enfin il est possible de juste transcrire les évènements en JavaScript pour GDevelop, ou des jeux HTML pour ensuite les mettre en ligne et jouer depuis tout navigateur web récent.

Technologies

L'IDE de GDevelop 5 est écrit en en Javascript. L'interface du logiciel est en React et utilise les bibliothèques material-ui et PIXI pour le rendu. Pour modifier le projet une librairie C++ portée en WebAssembly est utilisée. Les outils Piskel, Jfxr et YarnSpinner sont inclus pour assister le development. Le tout est emballé avec Electron.

GDevelop 4 est écrit en C++ et repose essentiellement sur la bibliothèque SFML pour la gestion du multimédia et sur Widgets pour l'interface de l'éditeur. Le logiciel utilise également Boost et TinyXML.

Le moteur de jeu actuel (GDJS) est fait en Javascript pour la plus grande partie ES5 (On peut trouver des traces d'ES6 ici et la, surtout dans les extensions).

Jusqu'a GDevelop 4, il y avait aussi un moteur Natif en C++ (GDCPP) mais il a été abandonné car non-utilisable sur un navigateur et qu'il n'était plus possible de maintenir deux moteurs. Il est prévu de la supporter a nouveau quand GDJS sera assez stable et complet.

GDevApp

GDevApp est une web application permettant avec le moteur de GDevelop de faire des jeux sans programmation directement depuis un navigateur. La web app est basée sur le code de GDevelop et dispose d'une interface plus simple mais de la même puissance en interne.

GDevApp a désormais été remplacé par l'éditeur de base de GDevelop 5, qui a été reprogrammé en JavaScript et qui est du coup nativement compatible avec le navigateur (l'interface est complète et a presque toutes les fonctionnalités de l'éditeur de bureau).

Financement participatif de mars à mai 2014

Un financement participatif a été mis en place sur le site Indiegogo du 23 mars au 18 mai 2014 (Page du projet). Il s'agissait de récolter des fonds pour permettre :

  • Le portage de GDevelop sur Gnu/Linux MacOS et un meilleur support pour Ubuntu.
  • Le développement d'une option d'export (Cordova) vers iOS et Android pour les jeux HTML5.
  • L'accélération du développement de certaines fonctionnalités si les fonds sont suffisants (Éclairages dynamiques ou moteur de particule pour les jeux HTML5 par exemple)

Les contributeurs pouvaient accéder aux versions bêta des nouvelles fonctionnalités en avant-première.

Selon l'auteur principal du logiciel :

"Le G est une sorte de spirale qui a été coupée (au D de "Développer") (on part du centre et on suit le G, puis on continue une spirale imaginaire jusqu'à l'arc sous le G, puis on continue une spirale imaginaire de l'arc pour faire le tour du G).

Le sens de la spirale est qu'il s'agit d'une forme où l'on part d'un point et où l'on se développe en tournant autour de ce que l'on a déjà. J'ai aimé l'analogie avec la programmation, où vous créez une application/jeu en construisant une abstraction/fonctions/comportements sur des choses simples, alors vous pouvez réutiliser ces abstraction/fonctions/comportements pour rendre les choses encore plus complexes et intéressantes, et ainsi de suite.

Le logo est donc un indice très subtil de l'art de construire des objets (dans notre cas de jeu) en assemblant des blocs de construction - ce qui est maintenant particulièrement le cas avec les comportements personnalisés / extensions utilisant des événements.

Note finale, la spirale comme la propriété intéressante qu'il va dans toutes les directions, remplissant l'espace entier. C'est un indice pour permettre aux gens de créer des choses sans limites - vous n'êtes pas contraint d'aller dans une direction."

Histoire

Selon l'auteur principal du logiciel :

"Mon idée avec GDevelop, quand je l'ai commencé il y a quelque temps (2008) c'était de rendre n'importe qui capable de créer des jeux, et pas uniquement les gens avec une expérience en programmation.

Pour cela, j'ai travaillé sur la réalisation d'un éditeur accessible (avec une interface non encombrante et facile à apprendre) et sur la réalisation des règles du jeu via un système basé sur des événements visuels.

J'ai d'abord travaillé sur un logiciel plus ciblé pour créer des jeux d'aventure. Mais comme le temps passait, j'ajoutais toujours de nouvelles fonctionnalités et je me demandais si je pouvais faire un moteur de jeu qui était à la fois d'usage général pour les jeux 2D et avec une douce courbe d'apprentissage.

Il y avait déjà des créateurs de jeux similaires à cette époque, mais la plupart d'entre eux vous demandaient de coder pour rendre quelque chose de complexe ou étaient très limités.

Les événements visuels comme dans GDevelop sont la meilleure chose que j'ai trouvé. Ils sont simples mais très rapides à écrire - même par rapport à la programmation traditionnelle.

L'objectif de GDevelop est d'avoir un moteur à la fois facile à utiliser, avec une interface intuitive et des concepts rapides à apprendre, et toujours capable de créer des jeux très avancés, indépendants ou commerciaux. Ceci est possible car les concepts GDevelop sont basés sur des bases solides (événements, objets, comportements), qui s'inspirent des langages de programmation ou des bibliothèques. Le moteur de jeu et l'éditeur sont construits avec des bibliothèques open-source performantes et de premier ordre. Enfin, l'ensemble du moteur est assez flexible pour être complété par des extensions, qui peuvent même être écrites en utilisant des événements dans GDevelop lui-même - de sorte que GDevelop est amélioré par sa communauté elle-même !"

  • La première version de GDevelop est 1.0.8504202 Beta, 11 août 2008.
  • La première version de GDevelop 5 est 5.0.0-beta93 , 08 mai 2020.
  • La dernière version de GDevelop 4 stable est GDevelop 4.0.97, 3 avril 2018.
  • Le forum est ouvert depuis approximativement 2008.
  • Le serveur Discord GDevelop est ouvert depuis le 14 décembre 2016.

Liens externes

  • Portail du jeu vidéo
  • Portail du logiciel
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.