Comment les moteurs comme Unreal sont-ils liés à OpenGL ou DirectX?

8

Je suis complètement novice en infographie, et plus encore en développement de jeux. Je recherche des informations pour apprendre rapidement les bases. J'ai une question en tête; Comment les moteurs comme le moteur Crytek ou le moteur Unreal sont-ils liés à OpenGL ou DirectX?

Je m'intéresse beaucoup à la physique des jeux, mais je n'arrive pas à comprendre comment la physique, les graphiques et le moteur se rejoignent; il y a des lacunes que je ne peux pas combler.

BRabbit27
la source
Voici une partie de la réponse, mais cela soulève simplement d'autres questions. scientificninja.com/blog/write-games-not-engines
BRabbit27
Où entre la physique? C'est comme si je devais écrire un algorithme de physique, par exemple un algorithme de collision, puis faire en sorte que certains cercles créés sur OpenGL se comportent conformément à mon algorithme de physique?
BRabbit27

Réponses:

10

TL; DR: Un moteur n'est qu'une collection de composants réutilisables.

Mur de texte: les jeux stockent une représentation du monde, par exemple vous auriez une entité comme une maison, qui a un maillage qui définit à quoi ressemble sa géométrie et une position.

Maintenant, vous avez probablement plus d'une entité. Disons que nous avons un personnage contrôlé par le joueur et quelques cases. Lorsque le joueur veut se déplacer, vous devez déplacer le personnage et vérifier s'il entre en collision avec des cases. C'est là que la physique entre en jeu. Selon la façon dont la physique est modélisée, le personnage peut simplement parcourir les boîtes, s'arrêter devant les boîtes ou pousser les boîtes.

Attention, cela ne fait que changer l'état interne du monde du jeu.

Ensuite, après avoir calculé le mouvement et la physique, vous effectuez un rendu d'image, par exemple, dessinez l'état actuel du monde sur l'écran.

OpenGL et DirectX sont des API graphiques, ils ne sont utilisés que pour restituer des éléments (par exemple le caractère) à l'écran.

Donc, vous dites essentiellement à OpenGL / DirectX "Je veux dessiner le personnage en position1 et une boîte en position2, et ...".

Bien sûr, il s'agit d'une simplification grossière excessive.

Quoi qu'il en soit, puisque nous ne voulons pas parcourir cette procédure étape par étape tout le temps, nous mettons ces choses dans les fonctions et les classes. Ainsi, nous pourrions avoir une classe physique qui détient toutes les fonctions nécessaires à la simulation physique, ou une classe graphique qui s'interface avec les graphiques api et dessine nos entités. Et voila, nous avons un moteur.

Exilyth
la source
Il manque un accent "Et voilà" haha ​​je plaisante. Merci beaucoup, je pense que je pensais bien, mais je n'étais pas sûr, alors j'ai décidé de demander. Merci beaucoup!
BRabbit27
2
DirectX n'est pas une API graphique, mais Direct2D et Direct3D le sont.
@JaakkoLipsanen oui je vois maintenant, DirectX est un framework complet pour le développement de jeux (3d, audio, vidéo, etc.) et Direct3D n'est que le module graphique.
BRabbit27