De petites infos sur le moteur physique de Doom3

Je l’ai déjà posté sur la tribune, mais je pense que c’est plus logique de le poser ici. Il s’agit d’un mail d’Adam Moravanszky, une énorme tête qui bosse chez Novodex (un moteur physique encore peu connu, mais au potentiel énorme) : http://q12.org/pipermail/ode/2004-December/014735.html

Ce mail est une réponse à des remarques sur la mailing list d’ODE, qui étaient plutôt acides envers le moteur physique de Doom3. Adam rétorque qu’en fait, ce moteur est en fait parfaitement adapté aux besoins du jeu, et n’est pas généraliste comme Havok, Novodex, Takomak ou ODE le sont, par exemple. Il tire cette déduction d’un exercice auquel il s’est livré : remplacer le moteur de Doom3 par d’autres (Novodex utilise beaucoup cette technique pour montrer les capacités de son moteur… ils ont même créé un langage dédié à ça). Cette intégration semble avoir été assez laborieuse, pour différentes raisons (paraphrases en vue) :
– le moteur de Doom3 n’a aucun problème avec les forces et les vitesses très importantes, alors que les autres moteurs tendent à l’explosion dans ces situations (cf l’exploitation de ces phénomènes dans les HL² done quick ;), ou "ratent" des collisions dans le meilleur des cas.
– Il dispose d’un système de manipulation des objets physiques. Imposer un déplacement et/ou une rotation d’un objet est toujours une chose très complexe pour les autres moteurs (utilisateur qui manipule un objet à bout de bras, ascenseur, "entité réseau" qui pousse le joueur, …), qui est souvent assimilée à une "violation" de la physique, et il en résulte souvent un effet de tremblement assez caractéristique. Doom3 semble disposer de tout ce qu’il faut pour gérer ces cas.
– Une notion de sol directement intégrée au moteur et à la logique physique (pas de problème de "resting bodies").
– Le moteur semble très séquenciel (complexité linéaire), mais ne demande pourtant que très peu d’itérations. Adam parle même d’intelligence des objets physiques, par opposition aux moteurs traditionnels, qui font plutôt subir la physique aux objets.

En bref cela donne un moteur, qui certes n’est pas capable de faire autre chose que ce que fait Doom3, mais est complétement fiable (et rapide !) dans la réalisation de cette tâche.

"… an engine that was for once designed by game developers for their specific needs, rather than following the conventional design that originated in academia".
Et ça c’est cool ! (n’oubliez pas l’éternelle querelle entre les mathématiciens et les informaticiens, cf les critiques de la scène démo à l’époque 😉


Publié

dans

par

Étiquettes :

Commentaires

2 réponses à “De petites infos sur le moteur physique de Doom3”

  1. Avatar de CnE
    CnE

    "qui certes n’est pas capable de faire autre chose que ce que fait Doom3"

    Pourtant il semble que l’add-on, qui va inclure un gravity gun, utilise beaucoup plus les physiques, comme si celles ci avaient des possibilités, bridées dans doom 3.

  2. Avatar de Xfennec
    Xfennec

    Je ne sais pas grand chose de l’addon, mais le gravity-gun, c’est exactement ce qui est permis par le clip system ("manipulation des objets physiques") dont parle Adam. Il faudrait connaitre les détails de ce qu’apporte Resurrection of Evil pour le reste.

Laisser un commentaire