Gdevelop : questions sur le dépot Git

Hep ! Simple curiosité actuellement (mais avec pourquoi pas des idées!), je parcours de plus en plus les sources de Gdevelop du github. Je regarde aussi pas mal de choses concernant SFML, même si je me rends compte que mal de tutos SFML me parlent en chinois sur bcp d’aspects.

Y’a-t-il un document de référence présentant l’architecture générale du soft, des mvc ou quoique ce soit qui me permette de mieux appréhender les briques que sont chacun des “scripts” de GD ? J’avoue avoir pas mal de lacunes sur l’architecture, le développement et l’ingénierie logicielle, c’est pas mon rayon moi qui vient du web et qui suis plus dans le business intelligence aujourd’hui.

Je suis preneur de conseil en termes de ressources pour m’auto-former si vous en avez sous le coude.

Pour déballer mes idées, si j’étais en mesure de m’approprier le fonctionnement de tout ça, j’aurais pas mal de propositions à soumettre ou à commit directement en termes d’ergonomie voire de fonctionnalités… Ca peut aller de rajouter une liste de sélection de calque dans l’éditeur de propriété là ou il n’y qu’un champ texte, rajouter/uniformiser des inputs clavier (pour uniformiser un peu) à pourquoi pas donner de la profondeur à certaines extensions, de nouveaux type d’événements, etc. Je suis surpris qu’un soft avec le potentiel de Gdevelop n’ait pas davantage de contributeurs.

L’idée étant c’est que même si je n’ai pas forcément bcp de temps je suis d’un naturel curieux, à défaut d’avoir les compétences de mes envies, je me dis que je ne mourrerai pas plus bête d’avoir étudié le fonctionnement d’un logiciel qui occupe pas mal de mon temps libre.

Dans une optique plus lointaine j’ai été approché par une assoc de par chez moi qui organise des digital apero et conférences sur plein de choses “numériques”, et j’ai eu l’occasion de parler de Gdevelop avec quelques intervenants après des présentations et on m’a demandé si j’étais près à intervenir pour une conférence d’environ une heure à présenter l’outil… En tant qu’utilisateur ça va, et je pense que c’est surtout auprès du public de “créatifs” que ça risque d’intéresser (bcp sont séduit par Unity, mais dès qu’on tombe sur C# ça décroche, les créa conchient le code !). D’un autre coté en revanche les développeurs, quand on leur parle de “faire un jeu sans coder” ils ne prennent pas ça très au sérieux… Donc voilà aussi une partie de ma demande, avoir plus de bille déjà pour informer un public un peu pointu, et être capable de bien identifier les forces et faiblesses de l’ide dans mes propos si je décide de me lancer dans un exposé sur Gdevelop…

Je pense que tu peux commencer par là :
http://4ian.github.io/GD-Documentation/GDCore%20Documentation/index.html

Après, l’organisation des dossiers n’est pas détaillée malheureusement.

C’est une bonne idée que de vouloir parcourir le code :slight_smile: Quelques pistes :

Si t’a fait un peu de web, t’a peut être déjà regardé le moteur de jeu HTML5 ici : github.com/4ian/GD/tree/master/GDJS/Runtime

Les extensions sont des briques assez isolées et donc les plus abordables. Par exemple, l’objet texte (HTML5 toujours) : github.com/4ian/GD/blob/master/ … eobject.js

Dans son dossier (github.com/4ian/GD/tree/master/ … TextObject), tu trouvera des fichiers Extension.cpp et JsExtension.cpp qui déclarent à GD ce que fournit l’extension.

Question logiciel, un jeu est composé de classes que tu retrouve toutes dans ce dossier (la on commence à toucher du C++ et des choses plus abstraites) : github.com/4ian/GD/tree/master/ … re/Project
Regarde par exemple ce qu’est un objet : github.com/4ian/GD/blob/master/ … t/Object.h

De manière générale, tous les fichiers contenu dans un dossier nommé IDE (ou un sous dossier) va être une fenêtre ou un outil participant à l’affichage graphique de l’éditeur.

Si tu veux pas te faire peur au départ, reste du coté des premiers liens que j’ai filé. :slight_smile: Le gros avantage du moteur de jeu HTML5 c’est qu’il est pas trop énorme et facilement modifiable (limite tu peux modifier les fichiers directement, attention si tu casses tout prépare toi à réinstaller GD).
La documentation que t’a filé Victor permet de compiler le logiciel par toi même, elle s’adresse plus aux programmeurs expérimentés.

Merci de vos réponses. La partiehtml5 de GD est celle qui me botte le moins, je ne doute que je pourrais rapidement faire des choses avec mais j’ai encore le réflexe de travailler a la main en web, en mode quick and dirty :smiley:

Je vais devoir passer par C++ je pense quoiqu’il en soit, ce qui me rebute moins que d’autres langages, et donc passer par les bases. J’ai bouffé pas mal de poo mais sur des langages propriétaires ( lingo/ActionScript), un peu de java, mais ça commence à dater !

Je vais suivre le mini tuto sur la creation d’extension et parcourir le dossier IDE,je reviendrai vous voir pour des questions.

Question à deux balles mais qui pourrait me permettre d’aborder des problèmes avec une connaissance du “fond” : est-il possible de voir/récupérer en clair le code C++ générer par Gd avant compilation ? En gros j’aimerais si c’est possible voir ce que j’ai créé dans GD une fois traduit en langage c++.

J’ai commencé à parcourir certaines fichier header et cpp du dossier project, c’est vrai que très abstrait à mon niveau, le problème étant que je ne maitrise pas les bases du langage… Du coup je lis sur developpez.com, mais là aussi pas évidant de trouver mon bonheur, le cours d’introduction mêlent tantôt des concepts que je maitrise très bien, tantôt des “trucs” dont je n’ai jamais entendu parler. Des recommandations de site/lecture/ouvrage ?

EDIT : je vois des références à la librairie WX dans GD, je me trompe ?

Il faut décocher la case “Supprimer les fichiers temporaires de compilation dès que possible” dans les paramètre de GDevelop (page “Répertoire”). Après redémarrage de GDevelop, les fichiers cpp devraient rester dans le dossier de compilation temporaire (C:\Users/TON_UTILISATEUR\AppData\Local\Temp\GDTemporaries). Le code n’est pas très bien mis en forme par contre.

Voilà une liste d’ouvrage plutôt complète sur le C++ (pour tous les niveaux) : http://stackoverflow.com/a/388282 (par contre, c’est en anglais)

C’est wxWidgets : une library pour les interfaces graphiques.

Bon bin merci je potasse, juste pour être sur, sur quels éléments je dois être vigilants dans ce que je potasse ? Y’a 2 approches qui ressortent, une qui part from scratch sur C++, et un autre avec historique (c’est tjrs bon) mais pleine de parallèle avec C, j’en perds mon latin sur certains exemples où quelquefois on décrit ce qu’il ne faut faut surtout pas faire, et on voit qu’ils le font quand meme dans l’exemple d’apres…

Questions : apparemment C++ peut être utilisé sauce objet, fonctionnel ou procédural, j’imagine qu’on est dans la POO sur vos développements ?

Oui, c’est de la POO. Après, il vaut mieux apprendre le C++ directement sans passer par le C (ça évite d’apprendre des pratiques du C qui sont mauvaises en C++ : les pointeurs nus sont encore trop souvent utilisés en C++…).

C’est ce que j’ai cru voir mais les cours sont pas toujours clairs, ou alors certains le sont en écartant toute référence à C mais me sont difficilement abordable, je google toutes les 2 phrases.

EDIT : c’est parti pour quelques heures sur https://openclassrooms.com/courses/programmez-avec-le-langage-c, je pense pas avoir besoin de 50h vu mes bases, mais pour l’instant c’est ce qui me parait le plus adapter, je retrouverai ce bon vieux stackoverflow quand arriveront les soucis :slight_smile:

J’ai commencé par ce tutoriel justement. :slight_smile:

Tu me conseilles quel IDE pour débuter ? Je précise sous windows… Après j’avoue que ceux présentés ont l’air pas mal mais du coup j’ai surtout besoin d’un couple débugueur/compilateur… Je me vois pas abandonner mon beau sublime text editor en fait :p.

Code::Block est certainement le plus pratique. Car Sublime text ne fournit pas de moyen de gérer la configuration d’un projet C++ (il serait nécessaire de compiler les fichiers un à un à la main puis de les lier en exécutable).

Néanmoins, dans le cas de GDevelop, j’utilise Atom (similaire à Sublime Text) et 4ian utilise Sublime Text (aux dernières nouvelles). Nous ne faisons pas la compilation à la main pour autant car CMake permet (moyennant l’écriture de script de compilation plutôt simples) de générer “les commandes pour tout compiler” (entre guillemets car c’est plus complexe que ça). En général, on a donc l’éditeur de code ouvert ainsi que la console pour (re)lancer la compilation (avec une simple commande).

Après, il faut installer le compilateur (fourni avec un débogueur en général). GDevelop est compilable avec GCC, TDM-GCC (distribution Windows de GCC) et Clang (sur Mac OS X). Dans le cas de Code::Block, il existe un installateur qui fournit un compilateur (une version différente de celle utilisée pour compiler GDevelop).

Code::Block :smiley:

Ah, J’adore ce logiciel ! Ce qui est pratique c’est que tu peux mélanger C & C++ aussi, c’est pratique quand tu connais les deux :slight_smile:

C’est donc sur OpenClasserom aussi que j’ai appris (partiellement) ces languages