Le trafic est une affaire de management

Les deux programmeurs Antti Lehto et Damien Morello, ainsi que la designer en chef de Colossal Order, Karoliina Korppoo, étaient interviewés au sujet du trafic dans le jeu sur le site Gamasutra. J'en ai fait la traduction tout en personnalisant cette publication.

Quelques explications

La gestion du trafic est probablement la tâche la plus importante dans Cities: Skylines. Il y a plusieurs routes différentes et toutes doivent servir à divers choix intéressants. L'outil de route est flexible pour permettre aux joueurs de construire des intersections complexes pour gérer le flux de la circulation, mais il est aussi assez simple pour ne pas faire.la construction de route basique, une corvée.

Les nombreux citoyens et les véhicules peuvent être simulés jusqu'à une certaine limite dans les rues en même temps. Si la limite n'est pas respectée, les citoyens peuvent choisir de voyager. Les citoyens dans le jeu ont des emplacements possibles lorsqu'ils désirent visiter. Ces endroits peuvent se remplir, ce qui se traduira par une plus forte demande dans ces endroits. Quand un citoyen quitte un endroit, ils choisissent la voie la plus rapide là-bas. Ils prennent en compte s'ils ont un véhicule, si des routes sont encombrées, et si le transport commun est disponible.

Basé sur ces facteurs, ils marchent, utilisent les transports publics ou leur véhicule. Les piétons peuvent utiliser les trottoirs mais ils ne peuvent pas traverser les routes. 

Les véhicules seront téléportés à leurs point d'origine si une modification survient sur leurs trajets car ils ont un itinéraire bien défini. La téléportation a été conçue comme un dispositif de sécurité.


L'objectif était dès le début du projet pour avoir des villes avec jusqu'à un million de citoyens, qui n'est pas une limite stricte, mais estimée pour une ville entièrement construite. Ceci a été une directive interne pour équilibrer les systèmes de la ville. Avec jusqu'à un million de citoyens, il était clair que tous ne peuvent être dans les rues au même moment, si nous voulons garder les exigences du système, raisonnable. Cela signifie que nous devions créer un système de travailleur,  et faire en sorte que le joueur ne soit pas pénalisé quand les cims travailleurs ne vont pas physiquement à leurs lieux de travail.

Nous avons passé beaucoup de temps à travailler et retravailler le système de circulation qui a été le plus grand défi dans le jeu car tous les joueurs interagissent avec ce système. Il est l'un des systèmes les plus importants. Au cours du développement, nous avons essayés de permettre aux voitures de changer de voie le plus souvent possible, par exemple. Cela a était le chaos pour toute la circulation routière car les voitures qui tentaient de rejoindre une voie fréquentée bloquaient deux voies pour ensuite provoquer un arrêt de la circulation.

Comme solution, nous avons créés un système ou les véhicules se téléportent à leur point d'origine si ils rencontrent une impasse. Le goulot d'étranglement d'origine est toujours là avec les véhicules qui avancent lentement, mais le bourrage ne se développent pas de façon incontrôlable. Cela rend la superposition de l'information à identifier la zone à problème, le peindre en rouge et donc montrer clairement au joueur quelle partie du réseau routier doit être regardé.


Le fonctionnement des routes

Quand un joueur met une route, il place un nœud. Deux nœuds créent un segment. Une route est réalisé en un ou plusieurs segments. Les segments, qui ont une taille maximale, seront divisés en plusieurs segments sur une longue distance. L''une des motivations de cette approche est que les routes doivent suivre la topologie du terrain, de sorte que même une route droite aura besoin de plusieurs segments de façon à ce qu'elle ne se coupe pas à travers le terrain ; une autre motivation étant les petits segments qui sont plus optimisés pour la détection d'interprétation, et de collision.

Les nœuds (appelés points de contrôle) détiennent la position de début et de fin d'un segment tout un segment détient un début et une fin de direction. Cette structure est ensuite "converti" à une courbe de Bézier en générant deux points de contrôle supplémentaires à l'aide de ces positions et des directions. La géométrie de la route est alors créée à l'aide d'un maillage avec un ensemble statique de pavage combiné avec un nuancier de sommets qui va transformer en conséquence  le maillage des données de spline. Ceci est efficace si les données de vertex pour les routes peuvent être partagées entre les mêmes types de routes, Les uvs sur le sens de la longueur sont également calculés dans le vertex nuancié basé sur la longueur de la spline.

Les intersections sont créées en utilisant une approche similaire et les segments placent leurs connexions à d'autres segments voisins ainsi que leur type de route. Chaque segment peut alors connaître leurs voies disponibles en utilisant leur type de route, qui définissent la quantité de voies et de leur compensation sur le maillage.


Compte tenu de l'information décrite ci-dessus, les voitures et les camions savent où ils peuvent rouler. Les véhicules sont des objets physiques simples qui utilisent une vitesse et plusieurs points cibles le long du trajet qu'ils souhaitent suivre. Ceci permet de prédire les courbes serrées et les intersections à venir pour que le véhicule ralentit ou freine en fonction des circonstances.

Quand un citoyen veut atteindre une nouvelle destination, un chemin sera calculée à partir de leur position actuelle à la destination cible, Ceci pour la marche, la conduite, en utilisant les transports en commun ... Au cours de ce processus, le pathfinding établit le meilleur chemin de la conduite du véhicule en calculant un score sur les segments / voies données, compte tenu du trafic, la limite de vitesse et la direction.


Le trafic est simulé à l'aide de la logique du premier arrivé, premier servi. Les véhicules utilisent les points de cible mentionnés plus tôt pour créer un segment "attention", lorsque deux véhicules de différents segments se croisent, nous savons qu'il va y avoir une collision si la vitesse et la distance au point d'intersection est utilisée pour déterminer qui fait quoi et qui a besoin de s'arrêter. Il y a une exception à cette règle avec des feux qui empêchent tout simplement les points cibles d'engager l'intersection, permettant au véhicule de ralentir et ou de s"arrêter jusqu'à ce que le feu passe au vert.

Le secret d'un résultat de performance décente est de distribuer les calculs autant que possible.

Le trafic est toujours la partie la plus difficile du jeu pour la plupart des joueurs. Les véhicules peuvent attendre sur une seule voie, tandis que les autres voies sont vides.Techniquement, une voie congestionnée raconte encore au joueur que quelque part loin dans la ville, une intersection empêche une circulation fluide, mais quand on regarde juste la longue lignée de véhicules, certains joueurs prennent cela comme un bug.

Maintenant, le principal défi est d'enseigner aux utilisateurs comment construire un bon réseau routier...

Commentaires