Concernant les contrôles de Mass Effect il ne faut pas oublier que c'est un RPG pensé pour la console de salon et ensuite porté vers le PC. Et donc forcément, ça peut se ressentir dans la prise en main ensuite, qui n'offre pas les mêmes subtilités sur PC ou Xbox360.
Toujours sur le fameux Mako il faut bien avouer que ce n'est clairement pas la phase la plus travaillé. La grosse ficelle du "
grind" ressort trop facilement. Autant sur les mission principales avec les passages "couloir" ça reste agréable en venant varier le gameplay, autant ça devient vite rebutant dans les missions secondaires quand il faut explorer les planètes.
Déjà au niveau des contrôles, le gros problème qui gêne pas mal de gens, c'est qu'en plus de tourner les roues à droite ou à gauche quand on appuie sur droite ou gauche, le Mako avance ... D'où un effet un peu bizarre. Ajouté à ça un gros problème au niveau des collisions sur les maps, et je suis assez étonné qu'ils aient pu laisser passer un truc comme ça d'ailleurs. Les sols ne sont pas plats, dans le sens ou non seulement il y a des collines, des falaises, des gouffres, ça c'est bien, mais il y a surtout pleins de "petits relief", et ça c'est pas bien. Des petites aspérités qui viennent faire rebondir le Mako dans tous les sens et qui au final ne servent absolument pas le gameplay bien au contraire.
C'est un truc assez basique, mais normalement quand on fait des collisions, une règle quasi immuable c'est que le joueur doit pouvoir "glisser" contre ces collisions.
Explication en images :

Le joueur est représenté par le cercle rouge. Dans le cas 1 on a un mur, représenté en noir, et surligné en rouge ce qu'on appelle l'objet de collision. En gros dans un jeu vidéo, on a très souvent deux objets :
- un objets 3D visuel, qui ne sert qu'à afficher un bel objet à l'écran avec plein de polygones, ce mesh est visible au yeux du joueur donc,
- un objet de collision, qui vient par dessus l'objet 3D pour gérer les collisions, il est complètement invisible aux yeux du joueur. Sans lui le personnage passerait au travers de l'objet sans problème.
Dans le cas 1 l'objet de collision, surligné en rouge donc, suit exactement la forme du mur. Hors si le joueur avance en diagonale (comme indiqué par la flèche sur le cercle), il va resté coincé dans le premier creux. Et ensuite, s'il réussi à passer il va rester coincé contre le rebord qui dépasse. Extrêmement frustrant, là j'exagère volontairement le trait, en faisant avancer le personnage contre le mur. Mais ça reviendrait au même si le personnage était en train de straffer le long du mur par exemple.
Dans le cas 2 l'objet de collision ne suit pas la forme du mur mais forme un plan, si le joueur avance en diagonale contre le mur, il va simplement glisser contre le mesh de collision et continuer à avancer sans rester bloqué par le creux et le rebord.
En pratique, si on devait appliquer ça au cas de Mass Effect et son Mako il suffirait de tourner l'image de 90° vers la gauche. Le mur devient le sol, le cercles les roues. On sent bien quand on roule sur une planète avec le Mako qu'il rentre dans toutes les aspérités du terrain, ce qui a tendance à la faire rebondir ou changer de direction en permanence, ce qui est très chiant ... Le joueur n'a pas un contrôle réel et total du véhicule, c'est frustrant, ajouté à ça qu'en générale ces passages ne sont pas franchement dynamique et les maps innintéressantes et on obtient un résultat pas terrible.
Pour revenir sur les collisions, un exemple concret dans l'Unreal Engine (le moteur utilisé pour Mass Effect) :

On a l'objet 3D qui est une sphère, et on voit autour son objet de collision en "fil de fer" représenté par un cube rose ou vert. En pratique pour une collision de ce type le moteur n'a pas besoin d'une sphère complète, ça consommerait énormément de ressources. Dans ce cas il faudrait calculer la collision sur 760 triangles simultanément, alors que ce n'est pas réellement nécessaire. En effet, on obtient un résultat tout à fait similaire dans le feeling avec l'utilisation d'un simple cube, et donc seulement 12 triangles à tester simultanément. Là aussi l'exemple est poussé à l'extrême, si on avait voulu avoir une collision un peu plus douce on aurait utilisé un cylindre posé à la verticale autour de la sphère.
Et pour en finir sur ces calvaires aux commandes du Mako, on pourra noter que les maps sur lesquelles on roule en se cognant partout ont probablement été générées aléatoirement via différents outils de l'Unreal Engine. Je pencherais principalement pour l'utilisation de height-map. Attention explication simplifiée :
En gros, à l'origine on un plan découpé en 512 * 512 carrés. On crée une texture de taille 512 * 512 pixels. Cette texture est noire à l'origine on va peindre dessus en blanc en utilisant des dégradés (ou alors on est paresseux jusqu'au bout est on génère cette texture automatiquement avec Photoshop). On obtient un résultat dans ce goût là :

On applique cette texture au plan en tant qu'height-map, et là le miracle se produit, chaque pixel de la texture correspond à un carré du plan. Le pixel de coordonnées 150:200 correspond au carré de coordonnées 150:200 et ainsi de suite. Chaque pixel de couleur obtient une valeur en suivant le dégradé : un pixel noir vaut 0, un pixel gris foncé 250, un pixel gris moyen 500, un pixel gris clair 750 et un pixel blanc 1000. Et là vous imaginez la suite, ces valeurs correspondent en fait à des valeurs d'altitudes, un pixel blanc sur la texture aux coordonnées 500:500 va donc positionner le carré de coordonnées équivalentes à une altitude de 1000 mètres. Résultat :

Hors si le procédé est intéressant pour créer rapidement des cartes de manière aléatoire, les collisions qui sont ensuite générées automatiquement suivent l'objet 3D à la lettre. Résultat on se cogne partout et c'est pas franchement jouable.
En gros on sent qu'ils avaient peut être prévu un truc plus poussé, mais que pris par le temps ils ont dû faire au plus vite. Et donc en générale ce genre de techniques rapides et pas chères sont toujours les bienvenues.
Voilà, on m'excusera pour les fautes par dizaines (et si vous ne m'excusez pas et bien je vous

).