
Qui s’appuie aussi sur le C++ pour ses projets commerciaux
Dans la filière jeux vidéo comme dans de nombreux autres domaines où les solutions prennent principalement la forme de programmes informatiques, le choix du langage de programmation est l’un des aspects auquel les intervenants n’échappent pas. En fonction de l’objectif à atteindre, à chacun sa liste de critères.
Un programmeur peut requérir d’un langage de programmation qu’il soit fiable c’est-à-dire qu’il permette de garder la main sur le contrôle des bogues. La nécessité de s’affranchir de la dépendance à un système d’exploitation en particulier peut aussi rentrer en ligne de compte. En sus, il y a des facteurs comme la simplicité ou le choix de paradigmes de programmation qui sont susceptibles d’intervenir. Jonathan Whiting – un travailleur de la filière programmation de jeux vidéo – cite ces critères (parmi d’autres) pour désigner le langage C comme son meilleur choix pour la programmation de jeux vidéo.
« Il y a des choses qui ne sont pas négociables. Tout d'abord, le langage de programmation doit être fiable. Je ne peux pas me permettre de passer mon temps à m'occuper de bogues que je n'ai pas causés moi-même. De plus, je veux éviter de me lier à un système d’exploitation particulier et dans l'idéal j'aimerais avoir la possibilité de développer pour les consoles. Il est donc important que mon langage de programmation dispose d'une bonne prise en charge de bibliothèques portables. L’aspect le plus important sur ma liste est la simplicité : le langage idéal est celui que je peux mémoriser avec aisance, ce qui permettrait de ne pas avoir à consulter de la documentation tout le temps. Gérer les bugs est un énorme gouffre créatif. Je veux pouvoir générer moins de bogues, donc je veux un typage fort, des messages d'avertissement stricts et une analyse statique du code. Je veux que les bogues soient plus faciles à trouver ce qui nécessite de disposer de bons outils de débogage. Je me soucie encore plus de la vitesse du compilateur. Je ne suis pas un maître zen de la concentration et attendre plus de 10 secondes est une perte de temps, oui, mais plus important encore, cela me brise le rythme. Dans des cas d’attente de ce type, je passe sous Twitter et la conséquence est que c’est plus de 5 minutes de gaspillées. Enfin, je ne suis pas fan de programmation orientée objet. J'ai passé la majeure partie de ma vie professionnelle à travailler avec des classes et des objets, mais plus je passe de temps, moins je comprends pourquoi on doit combiner le code et les données de manière aussi rigide. Je veux traiter les données comme des données et écrire le code qui convient le mieux à une situation particulière », précise-t-il.
En matière de programmation de jeux vidéo, l’un des débats de fond porte sur la gestion de la mémoire. La plupart des langages de programmation dont on fait usage dans la filière s’appuient sur des ramasse-miettes. Seulement, les retours à propos de leur utilisation font état de ce que le programmeur perd le contrôle sur les périodes d’allocation et de libération des zones de mémoires par le Garbage Collector. Cet état de choses pose le problème de la gestion de certains aspects temps réel. Pour résoudre le problème, certaines équipes de développement proposent de revenir à une gestion manuelle des allocations et libérations des zones de mémoire. Des cas de figure de ce type positionnent le langage C dans la liste de ceux susceptibles de faire l’affaire.
C’est pour autant de raisons que Whiting code ses jeux dans un C « vanilla », c’est-à-dire épuré dont les programmeurs disposent dans d’autres langages (frameworks, …). Il y a seulement que son développement laisse filtrer qu’il s’appuie sur le langage C dans le cadre de projets personnels. Toutefois, il reconnaît qu’il fait plutôt usage du langage C++ pour la plupart de ses projets commerciaux.
« Le langage C++ couvre mes besoins, mais est loin de respecter mes critères en matière de choix de langage de programmation pour le développement de jeux vidéo. C'est un langage très compliqué. Malgré la disponibilité de bons outils, il est facile de créer des bogues en s'appuyant sur ce dernier. Il est également lent à compiler comparé à C. Il est cependant très performant et offre des fonctionnalités dont le langage C ne dispose pas », écrit-il.
Aux langages C# et Java, Withing oppose la simplicité du langage C qui se traduit par la non-nécessité d’embrasser des paradigmes de programmation « complexes » comme la programmation orientée objet. « Comme la plupart des langages évolués, ils ont tendance à cacher la complexité d'une manière qui ne l'empêche pas de vous mordre », lance-t-il.
La programmation de jeux vidéo est aussi une histoire de plateforme cible. Si l’on veut écrire des programmes pour de vieilles machines (Game Boy, Amiga, Atari) alors les possibilités de faire autrement qu’avec l’assembleur deviennent très minces. Avec l’aura actuelle de la plateforme Android, des langages comme Java ou Kotlin arrivent à se tailler des parts de marché même si l'on attribue au C++ le fauteuil de langage par excellence des jeux vidéo.
Source : billet de blog
Et vous ?


Voir aussi :




Vous avez lu gratuitement 1 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.