Le moteur de jeu Godot 4.0

Pour un programmeur en quête de créer des jeux vidéo, Il aura à choisir entre plusieurs solutions. La première, est l’utilisation des bibliothèques bas niveau, ou les API, comme par exemple OpenGL, DirectX, ou Vulkan. Malgré que l’utilisation de ces bibliothèques offre une puissance énorme pour le jeu, ils restent rarement utilisés pour ce cas car ils sont très difficiles à utiliser. C’est comme l’assembleur, c’est un langage bas niveau très puissant, mais trop difficile pour être utilisé dans la programmation quotidienne. Ils sont généralement réservés pour des applications plus spécifiques, ou la création de plateformes graphiques ou les moteurs de jeux vidéo.

Le 2-ième choix est les frameworks ou les plateformes. Ils sont généralement vus comme une conglomération de bibliothèques visant à faciliter la programmation des jeux. Ils sont très populaires parmi les développeurs, puisque contrairement aux API, ils offrent une certaine aisance pour l’utilisation directe des fonctions et des routines Intrinsèques aux jeux vidéo. Comme par exemple le dessin direct sur l’écran, le chargement des images et des objets en 3D et des fichiers son, la capture de l’interface utilisateur comme le clavier ou la souris ou la manette, le scrolling, le bit blitting,le clipping, les sprites, le networking…etc. Ça peut Inclure les plateformes comme, SDL, Allegro, PyGame, SFML, ou Raylib.

Godot 4.0 introduction

Et dernièrement, les moteurs de jeux vidéo. Ces derniers sont totalement différents des 2 précédents dans le sens où ils ne tournent pas autour d’un langage de programmation qui va les utiliser comme des bibliothèques comme pour les solutions précédentes. Dans les moteurs de jeu, généralement le langage de programmation est, comme parmi d’autres, un simple outil utilisé pour la création de jeux vidéo. Ainsi le plus souvent les objets créés à l’extérieur du langage de programmation, sont utilisés pas plusieurs outils du moteur. Les outils sont concrètement des petits logiciels de haut niveau destinés à l’implémentation des opérations beaucoup plus complexes que de simples opérations graphiques. Comme par exemple les éditeurs de niveaux, les éditeurs de maps, moteurs physiques, éditeurs d’animation, éditeurs de particules…etc. On peut citer quelques moteurs de jeux les connus comme Godot, Unity, Unreal Engine, ou encore Game Maker. La vidéo en haut est une introduction au moteur Godot, et plus précisément sa nouvelle version 4 qui offre beaucoup d’améliorations par rapport aux versions précédentes.

Livre sur l’infographie

L’infographie est définie comme étant le domaine de création d’image numérique assisté par ordinateur, le domaine dans lequel des logiciels spécifiques sont utilisés pour aider à modeler des images et des illustrations graphiques, la suite d’Adobe avec ses logiciels phares Photoshop et Illustrator est sans doute la plus célèbre dans le domaine. Mais le livre dont on va parler ici concerne une autre définition du terme infographie, en Anglais c’est appelé Computer Graphics, et c’est la discipline de l’informatique englobant les études de méthodes pour générer et synthétiser du contenu visuel par ordinateur, généralement de la 3D (3 dimensions) mais ça peut inclure aussi de la 2D (2 dimensions), en d’autres mots c’est l’étude des algorithmes utilisés pour reproduire les scènes en 3D comme ceux utilisées dans les jeux vidéo, la simulation 3d, les environnements virtuels, les films d’animation 3D…etc.

Computer Graphics from Scratch – couverture

Le livre avec la couverture en haut est nommé Computer Graphics from Scratch, from scratch signifie à partir de zéro. L’auteur est un enseignant en infographie et il a avec le temps réussi à rassembler une collection d’articles sur les algorithmes du domaine, et qui a décidé un jour de tout mettre dans un livre, le livre est payant mais tous les articles dans le livre sont heureusement gratuits et disponibles sur le site de l’auteur. Le livre et le site sont subdivisés en 2 parties, une pour le Raytraycing, dans laquelle des techniques et des algorithmes sont expliqués pour générer de la 3D en images de synthèse, c’est généralement la 3D utilisée dans les films et les séquence vidéos en 3D, la particularité du Raytraycing c’est que ça permet de produire de la 3D réaliste et de très bonne qualité, mais elle n’est pas temps réel, son rendu doit passer par un processus très lent de précalcul pour générer une séquence vidéo. La deuxième partie est sur la Rasterization, ça concerne le rendu en temps réel de la 3D, c’est la technologie utilisée dans les jeux vidéo, le rendu est instantanément produit sans précalcul, mais la qualité de la 3D n’est pas aussi réaliste que le Raytraycing.

Micro3D engine – un petit moteur de rendu 3D

L’avantage de ce livre c’est qu’il traite les principaux concepts de mathématique et de la géométrie, qui sont généralement assez difficiles dans d’autres livres du même genre, et arrive à les simplifier au niveau d’un lycéen, les algorithmes sont aussi présentés d’une manière très simple et très claire, sans oublier de mentionner sa taille qui est de 200 pages, le rendant très accessible. J’ai eu par le passé l’occasion de travailler sur un Rasterizer, il est présenté sur la vidéo en haut, c’est un petit moteur de rendu 3D dans lequel j’ai implémenté les éléments de base dans un Rasterizer, à savoir la translation, la rotation, le changement d’échelle, la texture, l’élimination de faces cachées…etc, malgré qu’il lui manque encore beaucoup de choses comme, le chargement d’objet 3D, le shading, l’ombrage..etc. C’est l’un des projets que j’ai beaucoup apprécié la programmation et dont j’ai beaucoup appris, le code est très petit sur approximativement 3000 lignes de code en C, il est public et disponible sur mon dépôt GitHub et que vous pouvez tester par vous même par ce lien.