[ManiaCrash] Je fabrique ma voiture avec fennec ! (part 1)

Il y a déjà plus d’un an, je commençais à expérimenter autour d’une nouvelle physique pour les véhicules de ManiaCrash, la probable suite de ManiaDrive. En effet, pour un jeu de caisses, l’essentiel de l’expérience utilisateur (voire du gameplay lui-même) passe par la physique des véhicules, ce qui en fait évidement l’un des éléments les plus travaillés pour cette catégorie de jeux : TrackMania, rFactor, Burnout, … autant de réponses complètement différentes autour d’une problématique pourtant identique : faire cohabiter 4 roues, un volant et la volonté du joueur.

Il existe essentiellement deux grandes orientations distinctes pour simuler le comportement d’un véhicule dans un jeu : se créer ses propres règles arbitraires ou suivre celles imposée par la physique.

La première option est évidement tout à fait adaptée aux conduites orientées arcade. On imagine mal, par exemple, Wipeout faire autrement que de s’inventer une physique complètement farfelue capable de gérer les virages en épingle à 800 km/h que propose le jeu. De la même manière, si vous avez déjà touché à un monument comme Daytona USA, je pense que vous voyez précisément ce que peut être une « physique custom ».

Concrètement, avec ce genre de solutions, on va par exemple remplacer les ensembles suspensions-pneus par un simple lancé de rayon sous la voiture pour déterminer sa position par rapport à la route et la déplacer sur l’axe de la hauteur en conséquence (les roues sont souvent dessinées dans un second temps à partir de ces informations), gérer le déplacement de la voiture sur un plan 2D, sans avoir besoin d’autre chose que de simples fonctions trigonométriques, etc.

A l’opposé, il est possible de se baser sur les règles « réelles » de la physique pour reproduire une comportement nettement plus proche de la réalité, à l’aide de la mécanique des corps rigides, de l’aérodynamique, voire de la pneumatique, de l’électronique, …

Au delà de l’énorme complexité de la simulation elle-même, le problème qui se pose très vite, c’est que créer un véhicule pour le jeu est à peu près aussi exigeant … que créer une véritable voiture ! Depuis la naissance de l’automobile, les constructeurs s’acharnent à inventer toutes sortes de choses pour améliorer le comportement des voitures : meilleur répartition des masses, suspensions Mac-Pherson, barres anti-roulis, évolutions pneumatiques, essieux directionnels, …

Dès lors, si l’on se contente de considérer une voiture dans un jeu comme une grosse boîte uniforme supportée par 4 cylindres, l’inévitable se produit dès les 100 premiers mètres : la voiture oscille violemment avant de se renverser lamentablement tel Richard Hammond dans un Suzuki Carry.

De son coté, pour la voiture, ManiaDrive utilise bien une « dynamique » basée sur un moteur physique (ODE), mais applique toutes sortes d’astuces pour offrir un comportement plutôt sain et assez simple d’accès pour le joueur. Une approche réaliste mais très assouplie, en somme.

L’astuce principale, liée à l’équilibrage général du véhicule (de mon point de vue, la chose la plus difficile à obtenir et de loin !), passe par un balancier invisible, placé nettement sous la voiture :

Ce balancier n’entre évidement pas en compte lors des calculs des collisions. Malgré sa faible taille, son effet est énorme, particulièrement parce qu’il est 4 fois plus dense que le corps de la voiture. Le centre de gravité est ainsi complément rabaissé, et la voiture contre très efficacement les efforts inertiels rencontrés lors des forts virages et les gros freinages, qui sont les situations les plus exigeantes pour l’équilibre de la voiture.

L’autre astuce très importante est liée à la friction des contacts roues-sol, qui se trouve être une constante dans ManiaDrive ! Cela signifie littéralement que « l’efficacité* » des pneus est la même quelle que soit la vitesse, les forces exercées sur le pneu, … Le pneu parfait, donc.

* Attention tout de même, cela ne signifie par pour autant que l’adhérence est constance, c’est un paramètre dépendant des forces appliquées (FDS : Force Dependent Slip).

Pour en revenir à la suite de ManiaDrive 1.x, je suis en train d’établir depuis quelques semaines maintenant une liste des points qui pourraient avoir un intérêt au niveau de la modélisation de la voiture :

  • températures (pneus, freins, huile, embrayage, …)
  • pression de gonflage des pneus
  • contacts pneus-route utilisant un modèle type Pacejka
  • différentiels ordinaires (central ? à glissement limité ?)
  • courbes de couple / embrayage
  • abs / esp / boite auto
  • forces aérodynamiques (traînée et appuis)
  • barres anti-roulis
  • batterie (charge, décharge)
  • retour de force (moment d’alignement)
  • démarreur / noyade
  • résistance tête pilote
  • feu ? / buée ? / météo ? / « splashs » ?
  • essuie-glace
  • clignotants
  • casse du par-brise / des rétros

Cette liste peut sembler ambitieuse et faire appel à des points à priori très futiles, mais il ne s’agit en aucun d’une « feature list » figée, mais bien d’un ensemble de directions qui semblent intéressantes à creuser pour ce que je souhaite faire pour ManiaCrash.

Reste que pour l’instant, le résultat, c’est ça :

C’est à dire une véritable savonnette absolument impossible à conduire, capable de partir dans un drift « fast & furious staïle » pendant une simple tentative de créneau. C’est simple, le machin rond en face du conducteur ne sert pas à diriger le véhicule, mais uniquement à émettre plus ou moins de fumée. Plutôt plus, d’ailleurs.

La suite de tout ça (et l’objectif de cette série d’article), c’est d’essayer d’une faire … une véritable voiture. A suivre !


Publié

dans

par

Étiquettes :

Commentaires

9 réponses à “[ManiaCrash] Je fabrique ma voiture avec fennec ! (part 1)”

  1. Avatar de Msieur lapin
    Msieur lapin

    Enorme ce truc, enorme, je suppose que travailler sur sa propre physique fait de toi un amoureux de rfactor non???

  2. Avatar de Xfennec
    Xfennec

    Oui, évidement.
    J’en ai déjà beaucoup parlé, mais rFactor est un grande source d’inspiration pour la suite de ManiaDrive, une sorte de preuve qu’un jeu réaliste peut être particulièrement fun.
    Reste que ManiaCrash étant a priori beaucoup moins axé « course » que rFactor, je compte bien développer à fond tout l’aspect « pannes mécaniques » que rFactor offre déjà en partie … Je rêve de pouvoir faire du caravane pulling en Peugeot 104, dans une côte, avec la seconde qui craque et la jauge d’huile prête à exploser.

  3. Avatar de skaven
    skaven

    Pour ‘recadrer’ la physique quand j’utilisait ODE, on avait mis quelques PID controller. Ca dégage les oscillations.

  4. Avatar de PositiveFunk
    PositiveFunk

    Bah heu sinon ton jeu de caisse preferee ce serait le quel??? Parce que je ne vois pas comment on peut faire mieux que Rfactor niveau conduite… Il manque quoi a ce jeu??? Quel est le jeu qui se rapproche le pus de R???

  5. Avatar de CYANure
    CYANure

    En simu, je joue à LFS et Rfactor, j’ai bien testé RBR mais j’ai jamais été foutu de faire un circuit sans me planter à tous les virages. Pourtant, j’aimerais bien y arriver mais je crois que le rallye c’est pas pour moi.

    Iracing, 20$/mois = LOL.

  6. Avatar de protocol
    protocol

    Une pt’ite demo pour calmer l’apetit? :p

  7. Avatar de Gato
    Gato

    Pour les oscillations en tout genre, comme dit plus haut par skaven, c’est toujours gérable en ajoutant des correcteurs…Bon, après, ça devient de l’automatique bien lourdingue.

    Par contre je connaissais pas du tout le boulot de Pacejka et ç’a l’air vraiment intéressant, est-ce que par hasard tu connaitrais des exemples d’implémentations dans des moteurs ?
    Si possible libres, pour pouvoir voir comment ça marche (je sais, on peut toujours rêver) ?

  8. Avatar de Latpin
    Latpin

    Je viens de tomber là-dessus, ça m’a fait pensé à ton article.
    Est-ce quelquechose qui titillerai ta curiosité ?
    Je vais le tester dès que j’ai le temps.

    Sinon, comme dit protocol, tu nous prévois une petite démo ?

Laisser un commentaire