Il était une fois, la carte des vols

Playrion > AM2  > Il était une fois, la carte des vols
Carte des vols évolution 2013-2017

Il était une fois, la carte des vols

Sur Airlines-Manager 2, l’une des fonctionnalités qui a le plus évolué depuis la naissance de l’application mobile est la carte des vols. Romain nous invite dans son monde de développeur pour nous en raconter l’histoire.

 

Read in English

 

 

La carte des vols c’est une longue aventure !

 

 

Lorsque nous avons commencé le développement d’Airlines-Manager 2 Mobile en 2013, la carte était très basique.

 

Tout a commencé avec une astuce assez simple, à la connexion du joueur on prenait une capture d’écran d’une image de carte avec des lignes dessinées dessus. Cette capture d’écran était assez lourde pour un téléphone, nous ne pouvions donc la faire qu’une seule fois, à la connexion. Mais le problème, c’est qu’il était impossible de recharger cette carte puisque cela aurait nécessité que l’application se coupe à chaque nouvelle ligne créée, le temps que la capture d’écran se régénère.

Première carte des vols

La carte des vols et l’interface de l’application en 2013

 

Et ce n’est pas tout ! À l’époque, chaque avion était un objet à part. Un peu comme des boutons. Alors par exemple quand un joueur avait 500 avions, c’était comme si on affichait 500 boutons sur la carte ! C’était ingérable sur le long terme ; le système étant trop lourd, les grosses compagnies ne pouvaient pas se connecter.

 

 

Une évolution étape par étape

 

La première étape a été d’arrêter de faire une capture d’écran de la carte et de trouver un moyen différent d’afficher les lignes. En effet, à l’origine, chaque ligne d’un joueur était calculée comme un élément unique -comme pour les avions- c’était trop lourd à gérer pour les téléphones.

 

Aujourd’hui, les lignes sont regroupées en un seul objet. En réalité, c’est un objet en 3D ce qui permet de prendre en compte toutes les lignes en une seule fois et non plus une par une comme c’était le cas avant. Cette solution nous a permis de retirer le système de capture d’écran de la carte.

 

L’étape suivante a été de trouver une solution pour afficher les avions. Après plusieurs journées de travail et de recherche, nous sommes arrivés à une solution plutôt astucieuse.

Plutôt que d’afficher des boutons (widgets* pour employer un terme plus exact), nous avons utilisé les « Particules ».

Mais au lieu de laisser ces particules vivre leurs vies de manière aléatoire, nous scénarisons leurs mouvements à l’aide d’un algorithme puissant pour qu’elles suivent une trajectoire bien précise.

 

Le système étant beaucoup plus léger, on a pu améliorer la qualité de la carte avec des lignes plus nettes. Auparavant, nous n’avions pas la main sur ce degré de netteté, c’est un grand bond en avant !

Nous sommes donc partis de quelque chose de statique et lourd pour arriver à un système léger, flexible, d’une meilleure qualité, et sans gêne pour l’utilisateur.

 

 

Les particules : Une réflexion basée sur l’expérience

 

Au fil du temps, et à force de recevoir des demandes d’amélioration pour cette carte, nous nous sommes posés un long moment pour réfléchir à de nouvelles techniques. Nous savions que la solution était très complexe à mettre en place (pour mettre en place le système de particule, ndlr), mais le jeu en valait la chandelle.

Carte des vols actuelle

La carte des vols telle que vous la connaissez aujourd’hui

Pour expliquer un peu plus ce qu’est une particule, on pourrait décrire cela comme un objet très simple. Une forme avec une position, une couleur et une image. L’avantage c’est qu’il y a des optimisations du côté du processeur du téléphone qui permettent de pouvoir calculer beaucoup plus rapidement une grande quantité de particules.

 

En temps normal, un téléphone va faire apparaître les éléments en plusieurs couches. Grâce au système de particules, il les affiche en une seule. C’est pour ça que l’affichage est beaucoup plus rapide.

 

À l’époque de la première carte, l’affichage pouvait prendre 3 à 4 secondes, le temps de calculer la carte et faire la capture d’écran. En plus, à l’époque la carte était stockée sur le téléphone pour un usage ultérieur… qui n’a jamais été ré-utilisé ! (Rires)

 

En retirant ce système de capture d’écran on a pu gagner 1 ou 2 secondes ! Maintenant, l’affichage est presque instantané.

 

Finalement, les particules, c’est une méthodologie différente, qui s’est avérée moins complexe que ce qu’on aurait pu le croire au départ. Ajouter et supprimer des avions aujourd’hui ne pose plus aucun problème.

 

 

Une fonctionnalité qui a eu son importance

 

D’ailleurs, pour l’anecdote, l’option qui permet de cacher les avions de la carte remonte à l’époque où il n’y avait pas encore cette optimisation. Quand on “cachait” les avions (via le menu de paramètre), il y avait un vrai gain de performance.

 

Aujourd’hui cela permet surtout d’avoir une carte plus claire. Désormais, c’est davantage une question d’esthétisme que de performance. Avec ce nouveau système, qu’il y ait 50 ou 5 000 avions, ça ne change pas grand chose.

 

 

Plus de légèreté = nouvelle fonctionnalité !

 

Le détail d’un vol en direct, c’est une fonctionnalité que nous avons pu mettre en place grâce à cette optimisation. Cela nous permet d’afficher avec précision les données d’un vol. Pour cette fonctionnalité, on s’est inspiré des nombreux logiciels de suivis de vols que les passionnées d’aéronautique connaissent bien (FlightRadar, FlightAware etc.).

Carte détail d'un vol

Le détail d’un vol en temps réel

 

En conséquence, nous avons dû mettre à jour nos serveurs et nos algorithmes pour permettre cette nouvelle fonctionnalité. Les progrès précédents en matière d’optimisation étaient tels que l’on pouvait se permettre cette entorse pour une amélioration significative.

 

 

Un long parcours avec des défis à surmonter

 

L’évolution de la carte s’est faite sur une longue durée. La première version de l’application étant parue en 2014, c’est à partir de mi-2015 que l’on a commencé à revoir les choses en retirant la capture d’écran. Et les particules datent de début 2016.

Depuis nous continuons d’optimiser la carte des vols, notamment via des améliorations sur nos serveurs. (ndlr : le nombre de serveurs pour faire tourner Airlines-Manager a été multiplié par 9 depuis 2015)

 

Plus récemment, nous avons apporté une nouvelle optimisation de la carte des vols.

En effet, l’affichage de la carte pour les joueurs qui ont beaucoup (beaucoup) de lignes nous ont donné un peu de fil à retordre ! Dans les faits, un objet 3D est décomposé en triangle, et le moteur 3D est limité à 65 000 triangles pour un seul objet 3D. Le problème que cela posait pour une compagnie ayant beaucoup de lignes, c’est que l’on dépassait cette limite. Il a donc fallu que l’on trouve une solution. On a donc créé un deuxième objet de lignes.

 

Certains joueurs ont donc deux objets pour faire apparaître toutes leurs lignes, sinon le moteur ne pourrait pas toutes les afficher.

 

On aurait pu rester sur la solution d’origine, mais les joueurs prennent trop de place, ils ont de trop grosses compagnies ! Ils sont trop forts ! (Rires)

Et encore, on a fait que deux objets. Mais à force d’agrandir leurs compagnies, nos joueurs vont peut-être nous pousser à ajouter d’autres objets de lignes ! Mais… je ne suis pas pressé. (Rires)

 

 

Maintenant on peut aussi voir le profil des autres compagnies. L’affichage des lignes des autres joueurs utilise la même technique que pour la carte des vols, elles sont simplement un peu moins nettes pour des raisons d’optimisation.

 

 

La démarche nous ayant menée à faire autant évoluer la carte des vols, est celle que nous nous efforçons d’appliquer à l’ensemble du jeu.

 

*Widgets : Éléments adaptés à de l’interface comme des boutons, menus, images…

 

Read in English

Qui sommes-nous ?        -        Presse        -        Airlines Manager 2        -        Co-Production        -        Airlines Manager 2 for School        -        Contactez-nous