Je l’avais déjà dit à l’époque du Gamescamp à Paris, le monde du jeu vidéo est très indulgent avec lui même concernant l’innovation. Nous avons tendance à penser que nous sommes très innovant alors que ce n’est pas nécessairement le cas. Certes nous avons pas mal de gens qui repoussent les limites du réalisme graphique, d’autres qui expérimentent de nouveaux modèles de narration mais dans l’absolu il y a un différentiel important entre l’innovation et notre sentiment d’innovation. Une preuve simple consiste à regarder la façon dont nous construisons les jeux, et plus précisément le langage d’application utilisé : c’est du C/C++ et ça fait bien 20 ans que cela dure.
Pourtant ces derniers temps le C++ a la vie dure, il suffit de voir le nombre de gens qui s’attaquent au C++ en lui même, une petite recherche vous confirmera que c’est récurent sans compter ceux qui voient dans la programmation objet un paradigme inadapté à l’architecture des ordinateurs modernes. Il faut dire que le C++ cumule pas mal de tares : langage difficile à compiler il propose une syntaxe très complexe quand on commence à regarder cela de plus près. Je pense que nous avons tous des cas de bugs tordus du à un cast implicite ou des séances de décryptage de message d’erreurs du compilateur parce qu’on avait utilisé des templates. En gros il serait peut être temps de passer à autre chose.
La question est bien entendu quoi ? Idéalement il devrait s’agir d’un langage compilé vu que nous sommes dans un domaine qui extrait la moindre goutte de performance de la machine. Cela écarte d’emblée les C# et autres Java sans parler des Ruby et Python. Il devrait s’agit d’un langage impératif, à la syntaxe claire, si possible « C Like » avec des facilités pour faire de la programmation multithreadée. J’aimerais bien aussi qu’il soit orienté objet tout en permettant de vraiment contrôler à bas niveau ce qu’on fait.
Parmis les noms qui reviennent après discussion avec un ami, le D et Go serait des candidats potentiels. Pour le Go j’ai juste peur que son approche limité de l’objet me révulse mais je suis près à étudier toute alternative. Bien entendu ce langage devrait être supporté sur un maximum de plateformes ce qui inclus dans notre cas les consoles de jeux. Or quand on voit la difficulté à produire des outils de développement par certains constructeurs de consoles on se dit que ce n’est pas gagné… même si la complexité du C++ n’est peut être pas étrangère à ça.
Dans tous les cas si l’on veut que cela progresse à ce niveau là il nous faudra du résultat scientifique, il nous faudra du middleware qui va avec, et plein d’autres choses. D’ailleurs cela me fait penser qu’il existe peut être déjà des retour sur l’UDK depuis sa sortie et sur les différences au niveau du développement constaté quand on utilise l’Unreal Script. Dans tous les cas, j’aimerais bien expérimenter.