Qu'est-ce qu'un moteur de jeu? Eh bien, à quoi pensez-vous lorsque vous lisez le mot «moteur»? Si vous êtes comme moi, c’est une image de métal et de verrous assis au cœur d’un véhicule. Quelque chose qui convertit l'électricité ou la combustion en énergie – le cœur battant de nos voitures.

Les moteurs sont la somme de nombreuses pièces. Et chaque composant, qu’il soit grand, petit ou déformé, a un objectif spécifique et important, permettant au moteur de fonctionner avec sa magie mécanique.

C’est précisément ce que les développeurs de jeux d’image espèrent invoquer en ce qui concerne les «moteurs de jeu». Les moteurs de jeu sont les collections de bibliothèques de codes et de frameworks qui donnent vie aux jeux. Bien qu’ils soient souvent invisibles, les moteurs de jeu sont toujours au travail, aussi longtemps que le jeu est en marche.

Qu'est-ce qu'un moteur de jeu?

Comme mentionné ci-dessus, les moteurs de jeu sont des collections de code sous forme de bibliothèques et de frameworks. Mais qu'est ce que cela veut dire exactement? Décrivons quelques termes courants pour voir à la fois la forêt ET les arbres. Notez que ces explications sont simplifiées et qu'il ne s'agit que d'une vue d'ensemble.

Une ligne de code correspond à ce que l’on appelle une déclaration. Les déclarations sont les feuilles et les branches individuelles dans notre analogie de forêt. Ce sont les éléments qui composent les constructions plus grandes dont nous discuterons.

Obtenez assez de déclarations en un seul endroit et vous avez une bibliothèque. Ce sont les arbres.

Les bibliothèques sont collections de code axé sur la fourniture de solutions à des problèmes spécifiques. Vous avez peut-être entendu parler des fichiers du programme «.dll» – cet acronyme signifie «bibliothèque dynamique liée» et c’est exactement le type de bibliothèque dont nous parlons.

Si vous avez un problème à résoudre ou une mission à accomplir, il existe une bibliothèque pour cela. L’une des bibliothèques les plus répandues et les plus utilisées aujourd’hui est OpenGL (Ouvrir la bibliothèque graphique). Comme son nom l’indique, il s’efforce de fournir une norme graphique facile à utiliser pour une grande variété de plates-formes.

Prenez quelques bibliothèques, écrasez-les ensemble et vous aurez l’étoffe d’un framework. C'est une petite clairière.

Cadres sont des collections de code de niveau supérieur aux bibliothèques. Ils intègrent généralement plusieurs bibliothèques et d'autres composants granulaires pour s'attaquer à différents problèmes à la fois, en les orientant vers la création d'une expérience particulière. C'est là que nous commençons à voir le proto-moteur émerger de l'œuf proverbial.

Un cadre commun est Microsoft .NET Framework,
 qui donne au programmeur les outils numériques pour tout gérer de
requêtes de base de données en ligne sur du code asynchrone multithread.

Microsoft NET Framework

Toutes ces fonctionnalités se concentrent sur un objectif particulier. Mais cet objectif peut être plus large et plus difficile à définir que celui de la bibliothèque. Supposons donc que .NET offre «une expérience dynamique, portable et robuste pour les utilisateurs et les développeurs via des fonctionnalités modernes de haut niveau» et ainsi de suite.

Bien sûr, nous pourrions discuter d’autres constructions de données et de code, mais pour l’instant, nous avons suffisamment parlé des arbres. Parlons de la forêt.

Le moteur de jeu est un ensemble de toutes les constructions précédentes, et d’autres. Chaque moteur est rempli à ras bord de bibliothèques, de frameworks et d’autres ensembles de code permettant l’interfaçage avec du matériel et la gestion de fonctionnalités telles que les graphismes, l’audio, les entrées, la mise en réseau, la physique, l’IA, etc.

Exemple de moteur Unreal
Crédit d'image: Unreal Engine

De retour dans la journée, des moteurs de jeu personnalisés ont été construits pour chaque match. De plus, ils ne travaillaient que sur un seul matériel, comme l'Atari 2600 ou la NES. Mais avec le temps, l'élaboration de nouvelles normes et d'architectures communes a donné naissance à différents systèmes et séries de systèmes, capables de partager le même code. Ainsi, le moteur de jeu est né d'une question d'efficacité: écrivez du code une fois, utilisez-le partout où vous le pouvez et réutilisez le code pour les jeux à venir.

Comment fonctionne un moteur de jeu?

Toutes ces bibliothèques et ces cadres coopèrent sous le capot. Le résultat est le jeu que vous voyez sur votre moniteur, que vous écoutez via vos haut-parleurs et que vous manipulez avec votre contribution. Chaque composant du moteur établit une interface entre le matériel, le système d'exploitation et le moteur lui-même pour produire un résultat. Ces résultats forgent un jeu de l'éther numérique.

Jeu de Cuphead
Projet fini

Par exemple, OpenGL traduit les données représentant des objets 2D ou 3D en instructions permettant au GPU de les restituer. FFmpeg transforme les sons enregistrés en bits et en octets et revient à la volée. PhysX gère la logique et les données sous-jacentes aux interactions physiques pour simuler des objets virtuels dotés de propriétés réelles telles que la masse et l'inertie. Et ce n’est que pour citer quelques exemples remarquables tirés des sous-systèmes de moteur courants.

Il existe des centaines, voire des milliers de bibliothèques et de frameworks destinés à vos jeux préférés et à leurs moteurs – sans parler des composants développés explicitement pour des jeux individuels. C’est vrai: même un moteur ne peut pas couvrir toutes les bases.

Unité "class =" wp-image-11855 "srcset =" https://accro-jeux.fr/wp-content/uploads/2019/11/Qu39est-ce-que-l39unite-Jeu-de-haut-niveau.jpg 1000w, https: // vkehe45v84w20n29m1 .netdna-ssl.com / wp-content / uploads / 2019/10 / Unity-300x163.jpg 300w, https://vkehe45v84w20n29n1m63wok-wpengine.netdna-ssl.com/wp-content/uploads/2019/10/Unity- 768x416.jpg 768w, https://vkehe45v84w20n29n1m63wok-wpengine.netdna-ssl.com/wp-content/uploads/2019/10/Unity-610x331.jpg 610w "tailles =" (largeur maximale: 1000px) 100pw " />
 
<figcaption data-lazy-src=