Salut,
V8… en même temps tu ne choisis vraiment pas la facilité.
Je cherchais un langage de script pour embarquer dans un jeu que je développe en amateur depuis 8 ans. La solution facile c’est lua.
J’avais envie d’aller plus moin et j’ai naturellement pensé à JavaScript, et donc le moteur V8.
Eh bien même à mon niveau, j’ai pas réussi à builder la version C++ du moteur V8. Comme toi, je suis resté perplexe devant 4 Go de bordel. Tellement que j’ai décidé finalement de créer mon propre langage de programmation…
Désolé, je me suis un peu égaré.
Aujourd’hui, de plus en plus, on se contente de jouer aux lego, sans vraiment chercher à comprendre comment sont faits les lego.
Tant que ça s’emboîte plus ou moins, on ne se pose pas trop de question.
Ca crée des dérives et il y a des critiques (auxquelles j’ai tendence à adhérer), voir le billet sur le désenchantement du logiciel.
Le truc c’est qu’une brique de lego, c’est pas construit de façon à ce qu’on puisse facilement analyser comment ça a été fabriqué. Tu utilises la brique ou tu ne l’utilises pas, c’est tout.
Alors quand on cherche la composition et le pourquoi du comment de la forme d’une brique, bizarrement, d’un coup, la doc devient rare !
A partir de là, me meilleur conseil que je puisse te donner si tu veux vraiment apprendre le pourquoi du comment, c’est:
- Tu regardes une brique de lego system, une brique de lego technics, une brique de duplo, un lazy. Tu compares, tu observes… le mot-clé ici, c’est analyser plusieurs solutions connues.
- Qu’est-ce qui compose une brique et que tu vois de l’extérieur ? Il y a la face de dessous, la face de dessus avec les picots ou points d’emboîtement, différentes sortes de briques avec des tailles qui sont multiples les unes des autres…. mot-clé pour cette étape: décomposer, décortiquer
- Lorsque tu es prêt, tu commandes du plastique liquide et tu essaies de couler tes propres briques. Ici on expérimente par soi-même.
Et en fait on en apprend infiniment plus en essayant de couler ses propres briques, plutôt que de simplement continuer à jouer aux lego.
Au début, tu feras sûrement des tas de plastique informes, mais petit à petit, tu arriveras gentiment à faire des briques qui peuvent s’assembler, de mieux en mieux et de plus en plus solidement.
Tu constateras les défauts et les limites de ta propre création et des briques de lego originales; tu comprendras pourquoi elles ont la forme qu’elles ont et ce qui fait qu’elles s’assemblent si bien, et peut-être un jour, qui sait, que les tiennes seront meilleures…
Et ensuite ? le questionnement peut être récursif. Le plastique liquide que tu commandes, en fait, il en existe des centaines de sortes différentes, avec des caractéristiques qui vont influencer la simplicité ou la solidité d’assemblage des briques.
Du coup on recommance: on analyse 5 sortes différentes… on mélange les sortes ou en essaie d’en synthétiser une nouvelle… et puis on finit par aller chercher le pétrole soi-même dans les gisements et faire de la physique nucléaire.
Il n’y a pas de limite, à part le temps que tu veux/peux consacrer et la volonté d’apprendre.
Ce qu’il faut garder à l’esprit, c’est qu’il faut se fixer des objectifs progressifs, et ne pas vouloir immédiatement se dire "je veux faire X en mieux".
Ton blocage, il vient sûrement de là.
Je ne compte personnellement plus le nombre de projets ou pseudo-projets avortés par découragement parce que j’avais mis la barre trop haut trop vite.
Sur 1000 trucs que j’ai un jour commencé, seuls 5 ou 6 ont abouti à des choses suffisament intéressantes pour être diffusées.
Pour revenir à du plus concret, effectivement, entre faire des applications Elektron avec Node.js/JavaScript/HTML/CSS et maîtriser tout ce qu’il y a derrière, il y a un gouffre, et un gros.
Electron c’est quoi ? C’est basiquement un navigateur web.
IL y a quoi dans un navigateur web ? Le moteur JavaScript, le moteur de rendu, des protocoles et du réseau… mais n’oublions pas qu’un navigateur web, c’est aussi une application qui s’affiche dans une fenêtre avec des menus, des onglets et des boîtes de dialogue…
Du coup un des domaines que tu pourrais partir explorer, puisque tu connais visiblement bien le web, c’est essayer de faire ton propre navigateur. Certaines clémentines l’ont déjà fait puisqu’il y a des sujets dans le forum vos projets.
Pour ça tu peux utiliser des bibliothèques graphiques pour faire des applications de bureau natives: QT ou WXWidgets par exemple. Ils proposent des composants qui intègrent un moteur de rendu et un moteur JavaScript tout faits, souvent une variante de Chromium. Au passage tu apprendras un nouveau langage, au choix python, C# ou C++.
Mine de rien tu vas changé d’air, ça ne fait pas de mal, et tu auras considérablement élargi tes connaissances informatiques.
Ce n’est qu’une idée parmi d’autres. Si tu fais plutôt des jeux, tu seras peut-être intéressé en premier par les coulisses des différentes API JavaScript mises à disposition (WebGL, WebAudio, etc.). ET ensuite peut-être, si tu veux toujours sortir d’Elektron, par les frameworks pour créer des jeux vidéo, parmi lesquels unity en C# ou pygame en python.
Je ne fais que balancer des idées en vrac, j’espère que ce post t’a aidé.