La porte est compliquée en jeux video

Proposé par
le
dans

Un objet simple comme une porte est parmi les plus difficiles à développer dans un jeu vidéo. En effet, elle doit interagir avec le personnage, le cacher et permettre son passage tout en permettant de voir ce qu'il y a derrière quand elle est ouverte. Des astuces furent ainsi utilisées : portes fixes avec temps de chargement, portes qui s'ouvrent verticalement (pas d'interaction joueur-porte), voire portes qui traversent le joueur.


Commentaires préférés (3)

a écrit : C'était peut-être vrai au tout début de la 3D, mais maintenant (enfin... depuis plusieurs décennies) n'importe quel moteur de jeu permet de faire une porte sans aucune difficulté ( d'ailleurs pourquoi une porte ? Un ennemi pose exactement le même problème, n'importe quel objet avec lequel le joueur interagis en fait). Je ne comprends pas trop l'anecdote... Afficher tout Ce qui suit n’est qu’une hypothèse :

Un personnage, c’est un décor de fond avec un personnage devant, qui masque juste une petite partie du décor. Le décor comme le personnage sont calculés en temps réel. La partie du décor qui est masquée par le personnage reste calculée (on dit qu’elle est « rendue », comme « moteur de rendu de jeu vidéo »), mais comme ça ne représente que peu de pixels, ça passe.

Pour une porte, ça masque un décor beaucoup plus grand, un tout autre univers en fait.
Porte fermée, il n’y a pas besoin de calculer. Mais porte ouverte, le personnage peut à tout moment entrer dedans et là, tout le décor doit être visible, rendu et prêt. Ça vient donc s’ajouter au reste du décor (la rue, une autre pièce…).

Dans beaucoup de jeu, le fait d’entrer dans une maison passe par un écran de chargement, ou carrément le changement d’affichage.

Par exemple, dans les jeux pokémon, quand on est dans la rue, on voit une porte mais pas l’intérieur. Mais dès qu’on rentre dedans, on voit l’intérieur mais pas la rue. Idem pour dans les jeux Super Mario, quand on rentre dans un tuyau pour entrer dans un souterrain.

a écrit : Moi qui n'y connais rien en programmation, je trouve les portes dans Ocarina of Time excellemment faites, je n'y vois aucun problème, et pourtant on est au début de la 3d... Mais on parle du meilleur jeu vidéo au monde (je suis très objectif), donc ce n'est peut-être pas très probant.
L'anecdo
te elle-même est très intéressante ; je n'aurais jamais imaginé les difficultés que pose cet élément de base. Mais, encore une fois, parce que je n'y connais rien. Afficher tout
Ce qui est difficile, c’est de réaliser une porte « réaliste » qui se referme si on la touche, qui s’ouvre avec la main du joueur qui touche la poignée peu importe où est le joueur, qui se ferme mal si un objet est placé devant (qui n’a jamais connu de bug de collision entre un ennemi mort et une porte…) , etc. Et finalement cela demande beaucoup d’efforts pour pas grand chose, les portes ne sont qu’un des aspects du jeu.

Par exemple dans elden ring, il n’y a pas d’ouverture de porte dans le gameplay. Les ouvertures de portes sont des mini cinématiques de jeu avec le joueur positionné toujours au même endroit. Ce sont d’immenses portes qui sont soit ouvertes soit fermées et qui ne réagissent plus ensuite avec l’environnement. Certaines portes s’ouvrent verticalement et avec cinématiques également.

Les plus belles modélisation de porte sont faites dans red dead redemption 2 où le rendu de réalisme est incroyable.

Sans oublier un élément très important de l’ambiance d’un jeu : le sound design. Et la pareil : grosse difficulté. Une porte est un element ouvert ou fermé du décor qui doit laisser passer le son ou le filtrer un minimum en position fermé. Il faut donc coder la source de bruit, le passage du son par le couloir, prendre en compte la position de la porte et atteindre le joueur.

Pareil avec les projectiles, les sorts de magies, l’attention des ennemis dans les jeu d’infiltration, etc… bref une porte en JV c’est un calvaire.


Tous les commentaires (25)

C'était peut-être vrai au tout début de la 3D, mais maintenant (enfin... depuis plusieurs décennies) n'importe quel moteur de jeu permet de faire une porte sans aucune difficulté ( d'ailleurs pourquoi une porte ? Un ennemi pose exactement le même problème, n'importe quel objet avec lequel le joueur interagis en fait). Je ne comprends pas trop l'anecdote...

Moi qui n'y connais rien en programmation, je trouve les portes dans Ocarina of Time excellemment faites, je n'y vois aucun problème, et pourtant on est au début de la 3d... Mais on parle du meilleur jeu vidéo au monde (je suis très objectif), donc ce n'est peut-être pas très probant.
L'anecdote elle-même est très intéressante ; je n'aurais jamais imaginé les difficultés que pose cet élément de base. Mais, encore une fois, parce que je n'y connais rien.

Autre astuce utilisée par certains développeurs c'est de faire des portes (et même des murs) invisibles à travers lesquels les joueurs et les PNJ peuvent passer sans trop de difficultés.

Coucou Cyberpunk.

a écrit : C'était peut-être vrai au tout début de la 3D, mais maintenant (enfin... depuis plusieurs décennies) n'importe quel moteur de jeu permet de faire une porte sans aucune difficulté ( d'ailleurs pourquoi une porte ? Un ennemi pose exactement le même problème, n'importe quel objet avec lequel le joueur interagis en fait). Je ne comprends pas trop l'anecdote... Afficher tout Ce qui suit n’est qu’une hypothèse :

Un personnage, c’est un décor de fond avec un personnage devant, qui masque juste une petite partie du décor. Le décor comme le personnage sont calculés en temps réel. La partie du décor qui est masquée par le personnage reste calculée (on dit qu’elle est « rendue », comme « moteur de rendu de jeu vidéo »), mais comme ça ne représente que peu de pixels, ça passe.

Pour une porte, ça masque un décor beaucoup plus grand, un tout autre univers en fait.
Porte fermée, il n’y a pas besoin de calculer. Mais porte ouverte, le personnage peut à tout moment entrer dedans et là, tout le décor doit être visible, rendu et prêt. Ça vient donc s’ajouter au reste du décor (la rue, une autre pièce…).

Dans beaucoup de jeu, le fait d’entrer dans une maison passe par un écran de chargement, ou carrément le changement d’affichage.

Par exemple, dans les jeux pokémon, quand on est dans la rue, on voit une porte mais pas l’intérieur. Mais dès qu’on rentre dedans, on voit l’intérieur mais pas la rue. Idem pour dans les jeux Super Mario, quand on rentre dans un tuyau pour entrer dans un souterrain.

Dans le genre petites astuces de jeux vidéos pour contourner les difficultés techniques c’est comme pour Ray-Man où il ont retiré les bras, jambes, et cou car trop compliqué à modéliser. Ou encore plus récemment le jeu Absolver où tous les personnages portent des masques ce qui était à la base pour éviter de devoir dessiner des visages (puis c’est devenu un élément caractéristique du jeu)

Pour les fréquenter régulièrement (et en faire partie), les développeurs (voire les informaticiens de manière générale) sont souvent des PME (Partisans du Moindre Effort)... :)

a écrit : Moi qui n'y connais rien en programmation, je trouve les portes dans Ocarina of Time excellemment faites, je n'y vois aucun problème, et pourtant on est au début de la 3d... Mais on parle du meilleur jeu vidéo au monde (je suis très objectif), donc ce n'est peut-être pas très probant.
L'anecdo
te elle-même est très intéressante ; je n'aurais jamais imaginé les difficultés que pose cet élément de base. Mais, encore une fois, parce que je n'y connais rien. Afficher tout
Ce qui est difficile, c’est de réaliser une porte « réaliste » qui se referme si on la touche, qui s’ouvre avec la main du joueur qui touche la poignée peu importe où est le joueur, qui se ferme mal si un objet est placé devant (qui n’a jamais connu de bug de collision entre un ennemi mort et une porte…) , etc. Et finalement cela demande beaucoup d’efforts pour pas grand chose, les portes ne sont qu’un des aspects du jeu.

Par exemple dans elden ring, il n’y a pas d’ouverture de porte dans le gameplay. Les ouvertures de portes sont des mini cinématiques de jeu avec le joueur positionné toujours au même endroit. Ce sont d’immenses portes qui sont soit ouvertes soit fermées et qui ne réagissent plus ensuite avec l’environnement. Certaines portes s’ouvrent verticalement et avec cinématiques également.

Les plus belles modélisation de porte sont faites dans red dead redemption 2 où le rendu de réalisme est incroyable.

Sans oublier un élément très important de l’ambiance d’un jeu : le sound design. Et la pareil : grosse difficulté. Une porte est un element ouvert ou fermé du décor qui doit laisser passer le son ou le filtrer un minimum en position fermé. Il faut donc coder la source de bruit, le passage du son par le couloir, prendre en compte la position de la porte et atteindre le joueur.

Pareil avec les projectiles, les sorts de magies, l’attention des ennemis dans les jeu d’infiltration, etc… bref une porte en JV c’est un calvaire.

a écrit : C'était peut-être vrai au tout début de la 3D, mais maintenant (enfin... depuis plusieurs décennies) n'importe quel moteur de jeu permet de faire une porte sans aucune difficulté ( d'ailleurs pourquoi une porte ? Un ennemi pose exactement le même problème, n'importe quel objet avec lequel le joueur interagis en fait). Je ne comprends pas trop l'anecdote... Afficher tout Un ennemi est modélisé bien plus précisément dans une base de données dédiées. Ils sont souvent assignés à une zone précise dont ils ne sortent rarement et interragisse avec le joueur sur une hitbox précise.

Cela dit c’est pareil, les PNJ ont souvent des problèmes avec les portes…. Qui n’a jamais fait une quêtes dans un jeu ou le PNJ devant nous suivre reste coincé dans une zone car il a du mal à passer la porte…

a écrit : Ce qui suit n’est qu’une hypothèse :

Un personnage, c’est un décor de fond avec un personnage devant, qui masque juste une petite partie du décor. Le décor comme le personnage sont calculés en temps réel. La partie du décor qui est masquée par le personnage reste calculée (on dit qu’elle est « rendue »,
comme « moteur de rendu de jeu vidéo »), mais comme ça ne représente que peu de pixels, ça passe.

Pour une porte, ça masque un décor beaucoup plus grand, un tout autre univers en fait.
Porte fermée, il n’y a pas besoin de calculer. Mais porte ouverte, le personnage peut à tout moment entrer dedans et là, tout le décor doit être visible, rendu et prêt. Ça vient donc s’ajouter au reste du décor (la rue, une autre pièce…).

Dans beaucoup de jeu, le fait d’entrer dans une maison passe par un écran de chargement, ou carrément le changement d’affichage.

Par exemple, dans les jeux pokémon, quand on est dans la rue, on voit une porte mais pas l’intérieur. Mais dès qu’on rentre dedans, on voit l’intérieur mais pas la rue. Idem pour dans les jeux Super Mario, quand on rentre dans un tuyau pour entrer dans un souterrain.
Afficher tout
Sans oublier que le moteur graphique ne charge que ce qui est devant le joueur ;)
Derrière vous à tout moment dans un jeu vidéo il y a du vide.

C’est d’ailleurs peut-être vrai également dans la simulation de réalité dans laquelle vous vivez….

a écrit : C'était peut-être vrai au tout début de la 3D, mais maintenant (enfin... depuis plusieurs décennies) n'importe quel moteur de jeu permet de faire une porte sans aucune difficulté ( d'ailleurs pourquoi une porte ? Un ennemi pose exactement le même problème, n'importe quel objet avec lequel le joueur interagis en fait). Je ne comprends pas trop l'anecdote... Afficher tout youtu.be/AYEWsLdLmcc
La vidéo donne de nombreux exemples du pourquoi la porte est un système complexe dans un jeu vidéo.
Si le lien ne marche pas, tapez "Why video game doors are so hard to get right". Video en anglais

a écrit : Sans oublier que le moteur graphique ne charge que ce qui est devant le joueur ;)
Derrière vous à tout moment dans un jeu vidéo il y a du vide.

C’est d’ailleurs peut-être vrai également dans la simulation de réalité dans laquelle vous vivez….
Oui, ce sont les langoliers qui passent quelques minutes après le présent pour faire disparaître le passé et tout son décor...

a écrit : Pour les fréquenter régulièrement (et en faire partie), les développeurs (voire les informaticiens de manière générale) sont souvent des PME (Partisans du Moindre Effort)... :) Ne dit-on pas entre programmeurs que le meilleur est celui qui est le plus paresseux ?

Ca explique les longs chargements dans les résidents evil sur ps1 a chaque ouverture de porte ^^

a écrit : Oui, ce sont les langoliers qui passent quelques minutes après le présent pour faire disparaître le passé et tout son décor... Super référence, j'y ai justement pensé aujourd'hui en finissant (il n'est jamais trop tard... ) la 1e saison de Loki -

Petite ALERTE DIVULGÂCHAGE qui ne concernera sans doute pas grand-monde...

- en me disant que Alioth avait un rôle très proche de celui des Langoliers dans cette nouvelle sous-estimée de Stephen King.

Ce qui est drôle dans les jeux video, c’est que les ampoules dans votre jeu consomment de la vrai électricité quand même

Ouuuh, mais si on fait une liste de ce qui est chaud à coder mais simple dans la vraie vie, elle va être longue !

C'est pareil pour les jeux vidéos de type Zelda (l'ancien), le Perso reste au milieu de l'écran, c'est le fond (le décore) qui bouge autour du personnage en fonction de la direction que choisi le joueur ;)

La conduite (voiture, avion) c'est pas mal aussi niveau douille

En dehors du fait du tout début de la 3D, les « box collider » etc… il faut faire un peu de cours de codage pour comprendre le fonctionnement d’une porte. C’est pas si simple que ça ne paraisse. Ça réunit un peu toutes les lois de la physique.

Pour finir, il n’existe pas de porte « parfaitement » réelle dans un jeu ou le joueur peut réellement interagir avec une porte. Ou alors avec de la motion capture, ce qui est « pré enregistré » et donc plus trop réel…

Petit truc tout simple : dans la plupart des jeux la porte s’ouvre dans les 2 sens. Ça évite les problèmes style joueur qui doit reculer en même temps qu’il tire la porte vers lui, sinon il se cogne dedans.

je me rapelle, dans Fallout, mettre des coups de pied dans la porte des chiottes dans les stations de métro, on pouvais balancer une grenade dans la pièce sans que la saleté de goule assise sur la cuvette réagisse, mais dès qu'on "activais" la porte, ca activais la goule, et sans chargement, hein!!!
Effectivement en y repensant, pas évidente à modéliser, une porte parfaite (et encore moins une porte vitrée...^^ en tout cas j'en ai jamais vu dans un jeu vidéo... AU BOULOT!)

-M'enfin! Tu ne sais pas que les chats ne supportent pas les portes fermées?
-MOI ce que je ne supporte pas, ce sont les courants d'air!!!
(ref à trouver)