Moteur! ou Qu'est-ce que la physique des jeux



Lors de la création d'un jeu, les développeurs doivent trouver un équilibre non seulement en mécanique, mais aussi en physique. Réalisme ou arcade? En général, quelqu'un comme ça. L'essentiel est le ventilateur et le plaisir. Il est nécessaire de créer les lois fondamentales de votre monde et d'expliquer que la capacité de marcher au plafond est un mécanisme, pas un bug.

À quel point la physique des jeux devrait être compliquée, quels types de jeux existent et à quelles astuces les développeurs se tournent pour les implémenter - traduits sous la coupe

La physique dans les jeux vidéo est souvent considérée comme acquise. Si le personnage saute, il est obligé d'atterrir et de ne pas voler dans l'espace (bien qu'avec un jeu assez long dans Skyrim, cela puisse toujours arriver). Nous nous attendons à ce que les objets du jeu se comportent comme dans la vie (nous ne tenons pas compte des bogues).

La physique de la programmation peut se résumer à une ou deux méthodes avec quelques lignes de code. Ou peut-être un système complexe avec un moteur physique distinct (par exemple, Havok ou PhysX ) avec des millions de lignes de code. Quelle que soit la complexité, la physique des jeux est divisée en deux catégories: la physique du solide et la physique des corps mous.



La physique du solide est nécessaire dans la plupart des jeux 2D et 3D. La physique des corps mous décrit l'action des forces sur un objet qui prend diverses formes (par exemple, un drapeau). Afficher un corps mou est beaucoup plus difficile, donc cette approche est utilisée beaucoup moins souvent.

Le rôle important de la physique du jeu


La physique des jeux sert différents objectifs, mais les plus importants sont l'intuitivité et le plaisir. Si un objet se comporte de façon imprévisible, il sera difficile de comprendre les règles du jeu.

Si le ballon dans FIFA 20 rebondissait à chaque fois dans une direction aléatoire, il serait impossible de marquer un but. Les développeurs tentent de recréer le rebond du ballon en fonction de sa trajectoire, de sa vitesse et d'autres facteurs dans le monde réel. Pour que le joueur comprenne intuitivement comment manipuler le ballon ou d'autres objets. Soit dit en passant, FIFA 20 a beaucoup de mauvaises critiques précisément parce que sa physique ne fonctionne pas comme les fans l'attendaient.


De plus, les jeux ne sont pas tenus de respecter strictement les lois naturelles de la nature. L'essentiel est que le jeu soit amusant, et la mise en œuvre de véritables lois physiques peut détruire toute l'expérience. Imaginez Grand Theft Auto V avec une physique terrestre difficile (mais si vous le voulez vraiment, vous pouvez mettre un mod spécial ). Même un léger accident à grande vitesse se terminerait fatalement, tuerait le rythme et l'atmosphère. Pas très amusant.


Le développeur doit trouver le bon équilibre entre un jeu amusant et un jeu avec une physique réaliste. Et cela dépend souvent du public cible. Un bon exemple est la course.

Beaucoup de gens aiment Arcade Racing (Need For Speed), dans lequel toucher le broyeur ou un virage serré affecte faiblement le contrôle de la machine. D'autres préfèrent des simulateurs de course réalistes (Gran Turismo).

Mais même en créant des simulateurs, les développeurs tentent d'attirer un nouveau public - Gran Turismo s'est appuyé sur le photoréalisme (et dans une certaine mesure, cela a fonctionné). Mais au final, Polyphony Digital a ajouté un mode arcade pour conquérir un plus grand marché.

Physique du solide


En parlant de physique des jeux, nous entendons généralement la physique du corps rigide (RBP). Il décrit et reproduit les lois physiques applicables aux masses solides de matière. Le ballon dans FIFA 20 est un solide contrôlé par la physique du jeu.

Peu importe si nous regardons des titres 2D comme Pong ou des titres 3D comme Skyrim - la plupart des jeux ont une physique à semi-conducteurs linéaire.



Physique des jeux 2D


Prenons l'exemple de Pong. Deux solides (balle et raquette) entrent en collision encore et encore. Cela ne semble pas très encourageant. Le grand-père des jeux vidéo n'avait pas de physique réaliste.

Premièrement, les programmeurs ont ignoré la gravité, la friction et l'inertie. Il y avait juste une balle qui allait et venait à une vitesse constante.
Deuxièmement, l'angle de rebond de la balle par rapport à la raquette n'a pas été calculé avec précision. La balle ignore complètement la loi de réflexion: si la rotation et d'autres facteurs ne sont pas pris en compte, l'angle d'incidence de la balle à la surface est égal à l'angle de son rebond par rapport à celle-ci. À Pong, l'angle de réflexion a été déterminé par la proximité de la balle avec le centre de la raquette au moment du contact. La trajectoire d'origine n'avait pas d'importance. Les joueurs pouvaient changer complètement l'inertie de la balle, malgré le vecteur de son mouvement.

La trajectoire du ballon est devenue plus prise en compte dans les versions ultérieures et dans d'autres jeux similaires. Par exemple, dans Breakout. Mais même il n'y a pas de réalisme, sinon un jeu amusant se transforme en un jeu ennuyeux et difficile.



Les jeux avec l'artillerie ont été les premiers à prendre en compte la gravité et la résistance dans leur mécanique. Les utilisateurs tiraient à tour de rôle des boulets de canon, des flèches et des missiles pour détruire la base ennemie. Ces jeux prenaient en compte la balistique semi-réaliste, c'est-à-dire l'angle de lancement, la gravité, la résistance au vent et la vitesse d'origine. Mais encore une fois, les concepteurs n'ont pas cherché à tout faire comme dans le monde réel. Leur public cible était des gens ordinaires, pas des experts balistiques.

Le comportement des solides (principalement des obus) dépendait de plusieurs forces. Conformément à eux, les animations ont changé. Les flèches et les fusées sont un excellent exemple d'animation de solides dans des jeux similaires. Le plan du projectile pouvait changer pendant le vol et la flèche est restée droite. Deux points sur un objet dans un système de solides seront toujours à la même distance l'un de l'autre.

Des jeux comme Donkey Kong et Mario Bros. a fortement influencé la physique des projets 3D. Mario s'est lié d'amitié avec les lois physiques de base - la gravité, l'élan et l'inertie. Le saut est devenu la principale mécanique et est resté pour toujours dans l'industrie du jeu.



L'objet rebondissant devrait retomber. La seule question est de savoir à quelle hauteur il va augmenter et à quelle vitesse il va tomber? Et dans quelle mesure la gravité devrait-elle être réaliste dans un jeu?

Si Mario obéissait aux vraies lois de la physique, il n'aurait jamais réussi le premier niveau. L'équilibre a dû être changé pour le plaisir du jeu et les attentes des joueurs.

D'autres jeux de la série ont élargi ces limites - un double saut est apparu. Dans cette franchise, il a d'abord été ajouté à Super Mario 64, mais avait déjà été utilisé dans Dragon Buster en 1984.

Le double saut a commencé à être activement utilisé dans les plateformes (parfois même trop). Et il est toujours présent dans de nombreux projets modernes, dont la 3D. Par exemple, Devil May Cry et Unreal Tournament.

Physique 3D


La physique dans les jeux 3D n'est pas très différente de la physique dans les projets 2D. Les calculs sont compliqués par la troisième dimension (axe Z) et le fait que les objets sont constitués de plusieurs solides.

Dans la plupart des jeux 2D, les développeurs n'ont besoin de traiter que les données de quelques collisions de solides. Par exemple: Mario saute sur Kupu. Mario peut toucher n'importe quelle partie de la Kupa. Selon le point de contact, soit Coop se cache dans une coquille, soit Mario perd la vie. En tout cas, nous parlons d'une seule touche.



Dans les jeux 3D, plusieurs objets solides entrent en collision simultanément. Dans Uncharted, lorsque Drake grimpe un rocher, le programme surveille au moins ses bras et ses jambes - des solides individuels. Il peut rebondir et saisir les escaliers d'une ou deux mains, et l'animation sera différente.

Dans les jeux 3D (et certains 2D), les membres des personnages sont divisés en plusieurs solides reliés par des articulations. C'est-à-dire que le modèle de la main humaine se compose de l'avant-bras et de la main, qui sont reliés par le poignet et attachés à l'épaule par l'articulation du coude. Ceci est décrit par la physique ragdoll (de la poupée ragdoll - rag anglaise).


Image: Université de Californie , Riverside Des

composés de solides (joints) sont créés dans le système d'animation squelettique du moteur de jeu. Chaque solide doit se déplacer selon certaines règles afin d'avoir l'air réaliste. Pour calculer les mouvements, les programmeurs utilisent diverses techniques. Le plus célèbre est l'algorithme de Featherstone , une approche restrictive qui empêche les membres de traîner au hasard.

Il existe d'autres approches pour travailler avec ragdoll: intégration Werle (Hitman: Codename 47), cinématique inverse (Halo: Combat Evolved et Half-Life), ragdoll mixte (Uncharted: Drakes Fortune et bien d'autres) et animation procédurale (série Medal of Honor )



Toutes ces techniques visent à faire en sorte que le corps ne se relâche pas trop vite et ne tombe pas au sol, comme une poupée de chiffon. Le mouvement des solides incorporés dans un modèle est limité, ils se comportent donc de façon prévisible.

Permettez-moi de vous rappeler que vous devez toujours trouver un équilibre entre réalisme et plaisir. Même si le jeu va un peu tricher.

Prenez la série Sniper Elite. Dans le monde réel, un tireur doit prendre en compte un tas de variables: vitesse du vent, direction du vent, portée, mouvement de la cible, mirage, source lumineuse, température, pression et effet Coriolis .

Si Rebellion créait un authentique simulateur de tireur d'élite prenant en compte toutes les variables, le jeu deviendrait très difficile. Leur ignorance n'est pas uniquement due aux capacités des processeurs modernes. L'utilisateur moyen non seulement ne veut pas calculer tous ces facteurs pendant le jeu, il ne veut même pas les connaître. Il est plus rentable de laisser le joueur utiliser la lunette et d'afficher le vol de la balle au ralenti.


Call of Duty: Modern Warfare a un niveau où vous devez toucher une cible à longue distance. Le joueur doit tenir compte de l'effet Coriolis, ainsi que de la vitesse et de la direction du vent. Certaines personnes aiment ce défi, mais je l'ai abandonné.

La course est un autre genre qui nécessite beaucoup de calculs sur les solides et les forces qui agissent sur eux. Les roues sont en contact avec la surface de la route, la suspension est en contact avec les roues, les voitures entrent en collision. D'autres objets encore participent directement ou indirectement aux collisions.

Les forces physiques agissant sur les voitures lors des virages sont généralement simplifiées. Les dériver est simple, mais en même temps assez compliqué - les joueurs devraient ressentir de la satisfaction.

Les simulateurs Gran Turismo et Assetto Corsa ont des forces plus réalistes. Par exemple, Assetto Corsa Competizione (version 1.0.7)utilise un modèle de pneu à cinq points. Il comprend deux points sur le bord avant du pneu, deux à l'arrière et un au milieu - agissent tous ensemble comme un solide combiné. Les points peuvent se déplacer et se plier en trois dimensions, répondant indépendamment aux forces externes et au contact avec la surface. Des points supplémentaires augmentent considérablement le nombre de calculs effectués par le moteur.


Les modèles physiques dans les titres 3D sont beaucoup plus complexes qu'en 2D. Vous devez garder une trace de plus de variables et de points communs. Mais la plupart des calculs sont linéaires, de tels modèles sont donc beaucoup plus simples que les modèles à corps mou.

Physique du corps mou


La physique des corps mous (SBP) décrit les objets déformables. Il est utilisé moins souvent et est considérablement réduit dans les jeux vidéo en raison de l'énorme quantité de calcul.

Les corps mous sont des vêtements, des cheveux et des accumulations de particules telles que la fumée ou le brouillard. Les points d'un solide restent toujours à la même distance les uns des autres. Un corps mou peut se déformer et se déplacer de sorte que la distance entre ses points change.

Solides déformables


Le mouvement du corps mou peut être limité. Tous les points du drapeau resteront toujours sur le drapeau, ils ne peuvent pas se séparer. La plage de déviation des points les uns des autres dépend de la distance entre eux sur le drapeau lissé.

Les points adjacents restent toujours adjacents. Les points éloignés peuvent se rapprocher, mais en même temps, ils ne peuvent pas s'éloigner les uns des autres au-delà de la distance à laquelle ils sont fixés sur le drapeau étendu.



Le nombre de calculs pour le corps mou dépasse les capacités du CPU et du GPU. Par conséquent, les développeurs simplifient et trompent. Par exemple, une animation en boucle est utilisée. Mais une telle image ne semblera pas naturelle après un certain temps. Il vaut mieux ne pas recourir à un tel hack de vie si l'objet est au centre de l'attention.

Les vêtements ont presque les mêmes propriétés de corps mou que le drapeau, mais leur physique est encore plus complexe. D'abord parce que le joueur va certainement faire attention à elle. Ensuite parce qu'il est souvent plus dynamique: le joueur y exerce sa propre influence. Un bon exemple est la cape de Batman dans la série Arkham.


Les concepteurs ne peuvent pas utiliser d'animation en boucle sur une cape, car son mouvement dépend des actions du joueur. Si le joueur dirige le personnage vers la gauche, la cape doit se déplacer vers la droite afin d'afficher de manière réaliste l'inertie et la résistance à l'air.

C'est là que les moteurs physiques entrent en jeu. Dans Batman: Arkham Knight, Rocksteady a utilisé APEX Cloth PhysX. Cet outil vous permet de créer un masque pour les corps affichant des vêtements et d'ajuster les paramètres de leur mouvement. Selon la configuration, tout, de la soie à la toile de jute, peut être affiché.

Pour améliorer les performances, vous pouvez limiter les effets des forces naturelles sur le tissu. Par exemple, la méthode du vent peut être définie sur Précis ou Héritage. L'affichage partiel ignore les petites fluctuations, moins de calculs sont effectués.

Tous les points sur le tissu ne doivent pas être pris en compte - ils peuvent agir en groupe. Cela réduit le nombre de sommets qui doivent être traités. Cependant, tous ces groupes n'interagissent pas les uns avec les autres comme dans un vrai corps mou. Ils n'affectent principalement que les points les plus proches, de sorte que le nombre de calculs mathématiques est réduit à un niveau acceptable.

Systèmes de particules corporelles molles


Afficher de la fumée ou des nuages ​​est encore plus difficile. Les points de ces objets peuvent se déplacer de manière non linéaire les uns par rapport aux autres. Certains points peuvent dépasser les limites figuratives de l'objet et même former d'autres corps mous.

Les moteurs physiques ont considérablement amélioré les systèmes de particules ces dernières années. Regardez l'écran de bienvenue de Skyrim et à quel point la fumée y est réaliste.


Chaque particule dans le système du corps mou a une durée de vie statique. C'est la période du moment de son apparition au moment de sa disparition (après un certain temps, la source de particules la créera à nouveau). Pendant cette période, le point se déplace avec les paramètres donnés.

Prenons l'exemple de la fumée d'un feu de camp. Chaque particule se déplace vers le haut depuis la source: non linéaire, tournant et changeant aléatoirement sa position dans l'espace. Ils se lèvent donc jusqu'à la fin de leur durée de vie, puis ils sont retirés.

L'espérance de vie affecte l'apparence naturelle d'un système de particules. Avec une longue durée, vous pouvez créer une fumée assez réaliste à partir d'un incendie, mais cela chargera lourdement le processeur. Court - réduit le nombre de calculs, mais les particules n'auront que le temps de monter légèrement avant de disparaître.

La fumée dans l'économiseur d'écran Skyrim a l'air cool, simplement parce que rien d'autre ne se passe à l'écran. Toute la puissance du processeur et de la carte vidéo peut être dirigée pour simuler des particules de fumée avec une très longue durée de vie.



Dans le jeu lui-même, la fumée du feu ne semble plus aussi réaliste. C'est encore assez convaincant, mais plus simple: les développeurs ont réduit le temps d'affichage des particules dans une simulation. Il existe d'autres astuces. Par exemple, superposer plusieurs couches de fumée statique

La physique des corps mous est très soigneusement ajoutée aux jeux. Premièrement, une simulation complète de la physique des corps mous n'est pas nécessaire - en règle générale, elle n'est nécessaire que pour l'esthétique. Deuxièmement, la reproduction exacte du système du corps mou nécessite trop de calculs.

Résumer


La physique des jeux vidéo est un domaine complexe dans lequel les développeurs recherchent un équilibre entre le réalisme et les limites de la puissance de calcul. Des astuces, des simplifications et des moteurs physiques vous permettent de créer rapidement une physique assez réaliste, pour vous concentrer sur des aspects plus importants du jeu.



Le jeu devrait être intéressant. Le réalisme n'est pas si important par rapport au gameplay addictif. La physique des jeux est toujours importante - vous avez besoin de règles intuitives. En même temps, ils peuvent être modifiés pour enrichir le gameplay (rappelez-vous le double saut).

Si vous souhaitez mieux comprendre la physique des jeux vidéo, consultez les sections pertinentes du Guide Unity ou du Guide Lumberyard .

All Articles