Qu’est ce que l’API Vulkan ? Quel rôle pourrait elle jouer à l’avenir dans le marché du jeu vidéo?

Introduction

Qu’est-ce qu’une API ?

Pour commencer, qu’est-ce qu’une API (Application Programming Interface), une interface de programmation en français ? L’API est un ensemble de fonctionnalités (plus précisément classes, méthodes et fonctions) permettant aux développeurs de faire facilement le lien entre deux éléments, par exemple entre un site Internet et un service Web, comme le fait d’afficher des tweets sur une page. En fait, l’API facilite la vie des développeurs en leur proposant des fonctionnalités prêtes à l’emploi qui effectuent des actions automatiques, beaucoup plus longues et difficiles à réaliser sans API. 

Qu’est-ce qu’une API graphique

Une API graphique est une interface de programmation spécifique, qui permet de créer des rendus 2D et 3D simplement et rapidement, en utilisant des fonctions prêtes à l’emploi qui seront traitées par la puce graphique, en passant par le pilote graphique qui traduira les fonctions en commandes à exécuter. En utilisant une API graphique (Open GL, Vulkan, DirectX, etc.), il est alors possible de créer des moteurs 3D. Ces moteurs 3D (Unreal Engine, Unity 3D, etc.) seront ensuite utilisés par les développeurs de jeux vidéo pour créer leurs titres.

Vulkan d'abord annoncé sous l'appellation OpenGL Next est une interface de programmation graphique proposé par le consortium Khronos Group et qui a pour but de remplacer à terme OpenGL et ses dérivés en exploitant plus efficacement les architectures informatiques modernes. 25 ans après la création d'OpenGL, il vise à unifier les versions mobile (OpenGL ES) et bureau (OpenGL), et fonctionne sur Microsoft Windows, GNU/Linux, et Android. Une première version est sortie en février 2016, supportée entre autres par AMD ou Nvidia, et est compatible avec tout système supportant OpenGL ES 3.1.

Moteurs de jeux compatibles

  • Source 2 – En mars 2015, Valve annonce que Source 2, successeur du moteur originel Source, supportera Vulkan.
  • Serious Engine 4 – En février 2016,Croteam annonce le support de Vulkan dans leur moteur.
  • Unreal Engine 4 – En février 2016, Epic Games annonce le support de Vulkan lors d'un événement organisé par Samsung.
  • id Tech 6 – En mai 2016, id Software annonce le support de Vulkan pour la version 6 de leur moteur.
  • CryEngine – Crytek a annoncé vouloir inclure le support de Vulkan pour son CryEngine.
  • Unity – Le support est prévu pour 2016.
  • Xenko – Le support a été rajouté en juillet 2016.
  • Intrinsic – Un moteur de jeu libre publié sur GitHub.
  • Torque 3D MIT - En avril 2016, la communauté de développeurs annonce penser au support de Vulkan.

 

Jeux compatibles

  • The Talos Principle – Le premier jeu annoncé comme supportant Vulkan.
  • Dota 2 – Annoncé en mai 2016.
  • Doom – Annoncé en juillet 2016.
  • vkQuake – Un port de Quake annoncé en juillet 2016.

Les avantages de Vulkan

 

Vulkan dispose de nombreux avantages face à Open GL ES. Pour clarifier la situation, Vulkan ne remplace pas Open GL ES qui continuera d’évoluer parallèlement à Open GL. Les développeurs auront donc le choix d’utiliser Vulkan ou Open GL (ES) pour la création de leur moteur 3D. Les deux principaux avantages de Vulkan tiennent à la hausse des performances et à la baisse de la consommation.

Vulkan permet une hausse des performances grâce à plusieurs facteurs. Le premier, c’est le passage beaucoup moins fréquent par le pilote graphique. Avec Open GL ES, chaque commande de rendu doit passer par le pilote, ce qui induit de la latence, une charge processeur supplémentaire (l’overhead) et donc une diminution des performances. Vulkan permet d’éviter de passer par le pilote pour certaines actions (gestion de la mémoire et des threads), c’est pour cette raison qu’on dit que Vulkan est une API de bas niveau : elle peut piloter directement le GPU.

L’API graphique Vulkan permet aussi d’augmenter les performances grâce à un meilleur support des processeurs multicœurs, en supportant par défaut de multiples threads. Ainsi, Vulkan peut optimiser l’utilisation d’un processeur doté de multiples cœurs pour mieux répartir la charge et tirer parti des performances maximales. C’est grâce à cette nouveauté qu’il est désormais possible d’afficher des milliers, voire des centaines de milliers d’objets sur une scène sans mettre à genoux le processeur, tout en conservant une bonne fluidité, exprimée en images par secondes (FPS).

 

Vulkan, à gauche, utilisant davantage de cœurs pour plus de FPS

 

Dans le cadre d’un jeu qui n’est pas trop gourmand en terme de ressources, Vulkan pourra tout de même diminuer légèrement la consommation de l’appareil puisque le processeur sera moins sollicité et utilisé de manière beaucoup plus optimisée.

Enfin, Vulkan devrait permettre de profiter de titres PC et mobiles de plus en plus similaires en termes de fonctionnalités et de graphismes. En effet, Vulkan va permettre aux développeurs de moteurs 3D d’utiliser une seule et même base commune pour les titres destinés aux PC et les titres destinés aux mobiles. Il subsistera bien évidemment encore quelques différences, notamment du fait de la présence d’un écran tactile sur mobile ou d’une puissance plus faible, mais celles-ci tendent à disparaitre.

 

Les inconvénients de Vulkan

 

Les avantages de Vulkan sont contrebalancés par quelques inconvénients, à commencer par une plus grande difficulté dans la création de scènes 2D ou 3D. En effet, Vulkan a créé SPIR-V, un nouveau langage de programmation plus complexe que les langages utilisés auparavant par les développeurs. Ce nouveau langage permettra toutefois aux développeurs de réaliser des moteurs 3D largement plus optimisés. En fait, la plupart des développeurs non expérimentés ou qui n’ont pas le temps pourront passer par des moteurs 3D ou des middlewares déjà prêts à l’emploi à l’image d’Unity (Hitman Sniper, Lara Croft Go, etc.), d’Unreal Engine (Real Boxing 2 Creed, Mortal Kombat X, etc.) ou de Marmalade (SimCity Buildit, Earn to Die 2, etc.).

 

Certains acteurs craignent que Vulkan finisse comme Android Extension Pack : au fond d’un tiroir. Pour le moment, aucun jeu mobile n’a encore été développé en utilisant Vulkan, mais ça ne saurait tarder, puisque l’ensemble des acteurs des moteurs 3D ou des middlewares ont affirmé travailler au support de Vulkan. Face à Vulkan, on trouve deux autres API graphiques de bas niveau : Metal sur iOS et DirectX 12 sous Windows. Le fait que ces trois API soient de type bas niveau devrait faciliter le portage entre les plateformes par rapport à l’utilisation d’une API de haut niveau. Vulkan ne devrait donc pas fragmenter l’écosystème des appareils capables de faire tourner des jeux vidéo, et c’est tant mieux.

Une nouvelle API d’une portée importante

 

Le plus grand problème de Vulkan est que l’API est plus difficile à manier qu’OpenGL, par exemple, parce qu’elle impose une plus grande gestion des ressources par les développeurs. Cela permet de grandement optimiser le code, mais cela demande aussi beaucoup plus de travail. Khronos Group envisage donc une utilisation de Vulkan en complément à OpenGL. On s’attend à ce que la nouvelle API soit principalement utilisée pour les applications limitées par le CPU et celles qui nécessitent des performances exemplaires.

On devrait ainsi trouver des applications mobiles puisque c’est un domaine où les ressources sont limitées. Contrairement à l’OpenGL qui a diverses versions en fonction de la plateforme, il n’y a qu’une version de Vulkan avec des fonctionnalités à activer en fonction de l’utilisation que l’on compte en faire. Les premiers essais sont très positifs (cf. « Vulkan : jusqu’à 100 % plus de performances pour les smartphones ») et Android est déjà de la partie (cf. « L’API Vulkan adoptée par Android, multiplie les gnomes à l’écran »). Le fait qu’ARM, Mediatek et Qualcomm soient aussi des partenaires devrait signifier que leurs plateformes mobiles seront optimisées pour l’API. Par exemple, Qualcomm et ARM travaillent sur des pilotes pour Android 6.0. On s’attend aussi à ce qu’ils utilisent Vulkan dans d’autres domaines, comme l’automobile ou les drone

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *