Wednesday, March 25 2015

L'étrange avenir du jeu vidéo et de l'image animée

Je me suis émerveillé de diverses nouvelles assez fabuleuses, libriste et amateur de l'histoire des techniques que je suis, qui sont tombée dernièrement.

Tout d'abord l'avalanche Valve.

SteamOS.

Tenez les gars, finalement si on standardise un peu un OS de qualité pour créer un nouveau marché, un peu dans l'esprit d'origine d'Android, open source bien sur hein. Ce serait chouettos les potos, comme dirait l'autre. En plus c'est pratique, pas beaucoup de boulot a faire a part un travail de surface sur une Debian, c'est populaire les Deb-based.

On fait comme Ubuntu  avec Dell, on s'assure que le truc marche bien sur un ensemble de machines bien standardisées, et on vend ça comme des quasi consoles. Hey, elle déchire pas cette idée ?

Non mais en plus, je me dis que s'ils ont pas été cons, la couche graphique "par défaut" est un truc hyper spécifique comme le front de XBMC, vraisemblablement juste le conteneur du client Steam linux, qui s'affiche en cold start suffisamment vite pour que l'on puisse le "killer" au lancement d'un jeu pour réserver toutes les ressources (CPU, GPU, RAM). Quelqu'un peut me confirmer ou m'informer ça ?

C'est couillu, et c'est de la vraie innovation itérative (je n'oserais qualifier ça de disruptif, juste terriblement inventif) et finement jouée, on va voir après.

Source 2

Oui mais, voila, Linux et les jeux... C'est un peu là que le bat blesse dans l'adoption, il y a deux trois ans, les meilleures bécanes linux faisaient des ordis de jeu passables.

Et justement, depuis deux trois ans (plus que ça ?), il commence à se générer un petit marché. Le premier épiphénomène notable était le Humble Bundle, qui à son origine avait pour exigence que la majorité des jeux soient open-sourcés et portés sur Mac et Linux en plus de Windows.

A ma connaissance, encore aujourd'hui sur des bundles de ce type qui existent encore, le "don libre" que l'on fait pour acheter une panoplie de jeux au minimum décents est toujours en moyenne bien supérieur chez les joueurs sur Linux que sur les autres plateforme, ce que je vois comme la traduction d'une attente, et le remerciement d'un geste apprécié.

Steam est arrivé sur Linux un peu plus tard, et la panoplie de titres à "haute portabilité" s'étoffe de jour en jours, d'une part grace au petit moteur 3D Unity qui tourne (en mono je crois, choix discutable, mais à cheval donné on ne regarde pas les dents) sur les plateformes majeures, mais aussi parce que les gros studios s'engagent aussi dans la partie, et que l'on voit enfin sur Linux des jeux de grosses licences, comme récemment Borderlands 2.

Unity a mis les choses en route, mais qu'est-ce qui manquait vraiment ?

Il faut se rendre compte aujourd'hui où sont les centres de couts d'un jeu AAA (EA, Ubisoft, etc) et leurs centres de compétences.

Une information révélatrice, c'est Ubisoft qui annonce que pour inclure des personnages joueurs féminins dans le jeu Assassin's Creed IV doublerait le prix. Et si c'est un peu exagéré, ça ne l'est pas tant que ça.

Il y a quelques années, le milieu du jeu vidéo avait prévenu que  l'amélioration incessante de la puissance graphique des consoles de salon et ordinateurs dédiés au jeu se traduisait par une croissance exponentielle du cout des éléments graphiques.

Ergo, pour tous les aspects "génériques" des jeux on utilise de plus en plus les moteurs génériques. Un des premiers exemples du genre est le moteur que David Perry avait développé, un moteur générique pour jeux de plateformes qu'il a pu adapter à diverses licences et en particulier Disney (Aladdin, Le Roi Lion), 7 Up (Cool Spot), et ses propres jeux délirants (comme Earthworm Jim).

On trouve ainsi des moteurs physiques, dont la conception demande de sérieuses compétences en ingénierie mécanique, et gèrent tout ce qui fait la vraissemblance de chaque mouvement. On des moteurs de scripts,qui permettent au scénaristes de créer l'histoire en posant des déclencheurs conditionnels, liés à des lieux, des actions du joueur, ou même du résultat de ses calculs de probabilité d'action comme dans un vrai jeu de rôles. Un très bon exemple est celui de Bethesda, auquel on reproche d'être très buggé (alors que parfois c'est de la simple incohérence scénaristique purement littéraire), et qui alimente les deux grosses licences The Elders Scrolls (Oblivion, Skyrim) et Fallout, en faisant des jeux collossaux. Là c'est moins complexe, hein, mais c'est quand même une belle ergonomie sur un moteur de règles en interne.

Et puis, bien sur, avant tout, la catégorie reine : les moteurs graphiques. Depuis le début des années 90, avec pas mal d'influence dans le secteur par John Carmack, créateur d'ID Software, la conception de moteur graphique est devenu quelque chose à part entière sur le marché. Celui de Doom, puis ensuite les différents Quake Engines, le Unreal Engine, les Cryengine de Crytek, avec à chaque fois un jeu pour montrer les capacités du moteur.

C'est un milieu pointu et exigeant, et je pense qu'on sous estime souvent la compétence mathématique colossale qu'ils demandent. Je vais utiliser deux exemples dans l'histoire de John Carmack.

La plus récente est le Carmack's reverse, il s'est avéré que John Carmack avait retrouvé en autodidacte une technique d'ombrage avancée pour laquelle il existait pourtant une antériorité. Tout dans l'affaire va dans le sens de la bonne fois.

D'autant plus que quelques années précédemment, alors qu'il avait libéré le code source du Quake 3 Engine, une des raisons du rush était son implémentation du "fast inverse square root", et les mathématiciens comprendront rapidement l'importance de cet algorithme dans les calculs vectoriels spaciaux, en particulier, encore une fois pour les calculs de réflexion et d'ombrage.

Bien, après cette parenthèse un peu longue, revenons à l'actualité. Valve disposait de ses propres moteurs graphique, jusqu'à récemment, le principal étant Source (dont on retrouve le nom dans Counter Strike Source, simple portage du célèbre FPS sur un moteur plus puissant et propre. Et voila que dans son flot d'annonces, il annonce que la nouvelle mouture, Source 2, est gratuite.

Unity avait fait le premier pas, et les moteurs graphiques sont un frein au portage ? Et bien avec Unreal qui annonce un moteur open-source en freemium (en gros ils prennent leur royalties si ça se vend), Valve annonce la même chose en gros.

C'est un peu ce que prédisaient ceux qui se battaient pour l'avenir de Linux dans les foyers, et qu'on croyait prêcher dans le désert. Ca arrive et c'est là. Mais c'est la moindre des nouvelles.

L'essor de la réalité virtuelle et des accessoires connectés

La réalité virtuelle est un vieux rêve. Je me rappelle avoir joué en VR la première fois sur une des bornes tournant sur Amiga 3000 au Futuroscope. C'est bien sur une expérience absolument saissante.

J'ai ensuite été amené sur un casque de réalité virtuelle moi aussi (un fiasco personnel retentissant de mon parcours en école d'ingé s'il faut l'avouer), et d'en voir les difficultés.

Occulus, avec Carmack (lui encore), a remis un coup à l'étrier de cette technologie, avant que des petits malins disent "non mais les gars, avant le problème c'étaient les capteurs de position, nous on fait des téléphones qui en sont bardés, on a qu'à les foutre dans un boitier qui tient la tête". Et Google de rétorquer avec une boite en carton, qui, croyez le où pas, fonctionne déjà foutrement bien. De la VR, chez soi, avec trois bouts de carton.

Sauf qu'on sait que c'est pas tellement l'orientation, le problème, c'est plutôt la position. Il y a des percées dans le secteur depuis des années, avec la wiimote, le Kinnect de Microsoft qui a vu tellement d'applications intéressantes en dehors du jeu (y compris médicales !) que son SDK a lui aussi été open sourcé. Des prototypes fonctionnels arrivent même à cartographier l'espace en 3 dimensions avec les ondes wifi.

Et Valve de surenchérir sur le carton : un projecteur de signaux lumineux, des réflecteurs, comme dans la motion capture, ce qu'on sait faire depuis des lustres.

Sauf que l'on oublie un aspect crucial, dans la réalité virtuelle. De la même façon que le cinéma 3D amène son lot d'inconforts, la réalité virtuelle en apporte aussi. En particulier en terme de stress et de désorientation. La plupart des démonstrations techniques actuelles agravent la perception de ce côté, car elles misent sur l'époustouflant.

Ce n'est pas une fatalité, la réalité virtuelle est utilisée depuis des années en médecine, justement sur le traitement du stress et des phobies, donc on a la compétence pour gérer cet aspect, mais il y a fort à parier que certains jeux vont faire parler d'eux pour avoir mal dosé.

De la même façon, la désorientation se gère assez bien, avec même des découvertes aussi étonnantes que tombant sous le bon sens, à savoir que rajouter un nez dans le champ de vision réduit la sensation de vertige. Eh oui. Il faudra y penser dans les éditeurs de personnages :)

Et puis reste la solution créative. On a des téléphones qu'on peut adapter pour faire des jeux en réalité virtuelle. Et on a de plus en plus d'objets connectés, partageant des APIs sans cesse plus similaires.

Je veux pas m'avancer, mais je pense qu'il y a un marché pour un "moteur émotionnel", qui permet de réguler les aspects de stress du jeu en fonction des réponses physiques apportées par les capteurs corporels des objets connectés.

Toujours, pour le client, avec la possibilité d'avoir la même chose quasiment sans un copec de plus.

Bref, ce paragraphe est moins intéressant pour le libriste que pour l'amateur de l'histoire et l'évolution des techniques, mais il a un sens que je tiens à intégrer dans ce discours

Renderman

Pixar annonce que son produit Renderman sera dorénavant lui aussi gratuit (tant que vous n'en faites pas profit).

Un peu de contexte pour expliquer l'énormité de la chose.

La conception d'un élément graphique "complet", mettons un personnage par exemple, ainsi que tous les sous items qui peuvent changer, passe par diverses étapes.

Il y a d'abord les prototypes crayonnés (à la main ou en speed painting à la tablette), et affinés en fonction des besoins lors du "character design".

Ces prototypes sont ensuite "sculptés" (dans certains cas, comme avec l'utilisation de Z Brush, c'est à peu près la vérité) en 3 dimensions, et on obtient un maillage, dont on cherchera à optimiser le nombre de polygones en fonction de la puissance mise à disposition par les machines du moment, j'y reviens (à l'extrême, on a un travail dit de "low poly").

Beaucoup de temps et de soin est apporté aux textures, c'est à dire ce qui va habiller graphiquement ce maillage. Là aussi, sans avoir jamais touché au sujet pratiquement, on se rend peut compte de l'immense variété ne serait-ce que de types de textures et de techniques de calcul de lumières sur celles ci (textures mates, l'ancienne technique du gouraud, textures anisotropes, etc, etc). Et lorsqu'on a choisi le type, il faut partir d'un élément de base pour créer un motif donnera le grain (parfois une image dont on répète le motif), puis s'assurer que cet aspect s'appliquera au bon ensemble de polygones, en prenant soin de choisir son type de référentiel de coordonnées (cubique, polaires, sphériques...)

Pour ce qui est de l'animation, en général c'est le plus simple, on colle un espèce de squelette dans le mayage en lui précisant ou ça tire et où ça coince, ces squelettes viennent avec des chorégraphies, que l'on peut faire soi même, ou récupérer d'acteurs en filmés en capture de mouvement (la plus célèbre démonstration d'une des toutes premières technologies du genre livrées avec 3DS Max est le bébé dansant d'Ally McBeal)

Lumière, action.

Et là, bonne nuit. Pour se rendre compte du résultat final, et, dans le cadre des films d'animation, pour réaliser les 24 images géantes par seconde c'est des mois et des mois de calcul parfois.

Pourquoi ? Parce que pour chaque point à l'écran, sa couleur est définie par un calcul de l'effet de chaque rayon lumineux de l'environnement sur la texture qui lui correspond à ce moment et à cet endroit.

Vous vous rappelez du Carmack's Reverse et du FISR ? C'est fait pour diminuer ce temps là, suffisamment pour que l'on puisse l'inclure dans un jeu. C'est pour ça aussi que si on veut gagner du temps en production, on utilise un nombre de polygones très bas et des textures simples (le low poly donc).

C'est handicappant pour l'industrie du cinéma, comme pour l'industrie du jeu vidéo, parce qu'à la moindre erreur on doit reprendre. On verra qu'il y a un parallèle intéressant à faire après.

Renderman c'est quoi ? C'est se dire que ce temps de calcul, on n'a pas besoin de l'immobiliser sur le poste d'un graphiste, on peut le déporter, ce qui permet à l'artiste de continuer son travail.

Mieux encore, si on le déporte, pourquoi ne pas faire en sorte que ce soit "scalable" comme aiment à dire les manageurs. Et tant qu'à faire, on utilise sur Linux avec de la virtualisation, et hop, c'est parti.

Renderman, c'est ça. En 2001 c'était la première fois qu'un Oscar (du mérite) était offert pour un travail purement technique. C'est maintenant la solution de l'industrie cinématograhique dans ces conditions (Star Wars, Lord of the Rings, etc).

De nouveaux métiers ?

Ce qui est intéressant et commun dans toutes ces nouvelles, c'est que comme d'ordinaire, l'histoire a tendance à se répéter.

Aux tous débuts de l'informatique, le temps CPU était une ressource rare et chère. Il se louait à prix d'or, et seul le code parfaitement écrit pouvait passer l'étape de la compilation. A l'extrême, on peut dire que c'est dans l'ADN de langages comme ADA.

De la même façon, dans les écoles d'informatiques, on apprenait à écrire un code le plus juste possible, parce qu'une compilation pouvait durer toute la nuit. Devenir un informaticien compétent était très très loin d'être une mince affaire.

Et puis, avec l'évolution des technologies, l'optimisation des compilateurs, l'amélioration des primitives des processeurs, et bien sur la loi de Moore, le temps CPU est devenu une ressource presque au rabais.

Aujourd'hui, quand on apprend l'informatique, et bien on peut travailler le javascript, qui n'est plus réellement compilé mais interprété à la volée, on a des pseudos compilations qui peuvent se faire en temps réel et amener une forme d'autocorrection directement dans les ateliers logiciels, ce qui fait que le processus d'apprentissage par erreur/essai est infiniment plus rapide... Et moins qualitatif dans l'ensemble.

Il faut inclure aussi d'autres parallèles, sur des marchés déjà affectés par des évolutions similaires et voir où elles ont mené. Le journalisme télévisé était à une époque un métier complexe : encore très empreint de la notion de journalisme, il s'associait avec le haut besoin de technicité dans la manipulation d'appareils complexes et couteux. Il fallait beaucoup de moyens et de temps.

Aujourd'hui la France se targue d'être le pays phare des "Journalistes reporters d'images", espèce d'homme orchestres fanfares ambulantes qui bouclent en l'espace d'une journée ou deux une séquence qui passera dans une émission d'information, avec d'autant moins de moyens que la chaine en question diffuse en continu.

Parallèlement, des indépendants produisent de plus en plus de contenu audiovisuel de qualité avec les mêmes moyens, plus de créativité et de spécialité, avec cela dit des méthodes de diffusion différentes, parralèles et que certains, comme Youtube, tentent de s'approprier.

Cette dépréciation qualitative des métiers existe aussi dans le jeu vidéo, en particulier depuis la grande époque du Flash et depuis l'essor du mobile.

Qualitativement, sur ces deux plateformes, on est un peu sur le "fast food" du jeu vidéo : il suffit de petites équipes pour sortir de petits jeux qui occuperont quelques heures, et seront rentabilisés plus sur leur diffusion que sur leur réel prix de vente.

La scène indépendante est encore une fois ici ce qui sauve le tout, en particulier parce que les grandes productions ont certes les moyens de se payer des éléments graphiques de toute beauté, mais elles oublient parfois que ce qui fait un jeu un jeu, c'est le plaisir de jouer, et que parfois, moins c'est mieux (World of Goo, Braid, Limbo...) ou bien elles oublient qu'un jeu vidéo peut être un véritable témoignage artistique (Ico, Papers Please, etc).

Ce que j'en retire, personnellement, c'est que le temps de calcul graphique (que j'appelerai par abus de langage temps GPU) est en train de suivre la même courbe de dépréciation que le temps CPU, en particulier avec ces nouvelles technologies.

Les techniques mises à disposition accélèrent colossalement par ailleurs la facilité de production de contenu, et je ne serais pas étonné que cela affecte tout le marché de la production de contenu audiovisuel numérique, au sens large.

Il est vraisemblable que les années qui viennent soient celles d'industries dans lesquelles les métiers, pourtant encore extrêmement côtés pour l'exceptionnel caractère technique des problématiques rencontrées, seront rapidement galvaudés.

Là où la démocratisation va contribuer à un partage plus large des compétences minimales dans ce métier, et où l'on peut s'en féliciter, on va voir également une explosion de petits studios voulant percer dans le multi-plateformes, la réalité virtuelle, et/ou le mobile, et qui "pondront" à la presse deux à trois jeux par mois pour une équipe de maximum deux personnes.

Et des agences plus grosses, façon Com2Us ou King, qui promeutront à la pelle du temps de travail payé au rabais mais très rentable.

Parallèlement, si on s'émerveillait il y a quelques années de certaines productions proposées par les Gobelins ou au festival d'Annecy, l'animation 3D va petit à petit devenir un métier d'ouvrier spécialisé taylorien comme l'est devenue l'informatique.

Les premiers marqueurs de cette tendance sont ce que j'appelle les "personnages cacahuètes", utilisés dans les dessins animés pour enfants à grande diffusion, ou bien dans les pubs. Ces modèles sont si réduits en polygones pour réduire les temps de production qu'ils ont à peu près autant de formes corporelles que les personnages de l'actualité en patates. Assez symptomatique aussi est la standardisation des visages féminins dans tout le milieu (et en particulier chez Disney).

De ce que j'en lis, cette décénie dispose maintenant de ses nouveaux chevaux de bataille : fournir toujours plus vite, en profitant des technologies déjà implantées, des contenus qui seront de plus en plus en toc, à l'exception de certaines productions soit très lourdement produites, soit absolument inventives et créatives.

Dans l'immédiat, le plus simple pour regarder la dynamique des choses dans ce contexte est toujours le même "follow the porn", c'est à dire, suivre où va l'industrie pornographique, qui est toujours un pionnier intéressant, occupant systématiquement une part importante des nouvelles productions de contenus populaires. (illustration, attention, contenu adulte : http://elderscrollsadultmods.xlogs.org/ )

Le combat ne fait que se déplacer, mais les choses qui se profilent sont, cela dit, diablement intéressantes, parce qu'il faut espérer les gemmes qui vont briller au milieu de ce bourbis, et qui nous transporteront, juste un petit peu plus loin, dans de nouvelles expériences...

Et après ?

Après ? C'est pas joyeux.

Une fois les compétences minimales requises amoindries, beaucoup de choses seront automatisées.

Là encore, les premiers symptomes pointent.

Tout d'abord, les algorithmes deviennent de plus en plus performants non seulement dans la perception des images, mais également dans la détermination des goûts généraux, ceux dans l'air du temps, mais aussi les goûts particuliers de tout un chacun.

Premier épiphénomène intéressant, par exemple, est l'expérience du développement de No Man's Sky. Le jeu se passe dans un espace de dimensions colossales, dans lequel des planètes et leur vie sont générées de façon procédurale sur un ensemble d'éléments graphiques de construction fournis à l'avance.

Le studio voulant garder une boucle de rétroaction permettant d'éviter le phénomène de "l'uncanny valley" en particulier mais aussi pour garder une identité graphique, ils ont du déléguer des sondes (spiders ou crawlers) qui parcourent cet espace infini et ramènent des clichés pour avoir un aperçu des choses. Là ce sont encore essentiellement les artistes qui sont aux commandes.

L'intersection de tout ça, d'ici 20 à 40 ans a priori, c'est bel et bien quelque chose qui est promis depuis des décénies par la science fiction : la capacité pour les média, puis les machines à nous enfermer dans un espace éternellement satisfaisant, éternellement renouvelé, éternellement personnalisé, éternellement contrôlé.

Le paradis, ou presque.

Et c'est reparti

Troisième ? Quatrième mouture ? On va garder le meilleur et on continue en recommençant.

Thursday, July 15 2010

Allons donc...

[Update : petite correction sur le pédigrée de M. Kua] Je viens de tomber sur le morceau de texte suivant Un développeur informatique peut-il devenir un manager IT ? Les programmeurs seraient "trop" passionnés Donc, si je comprends bien, d'après Patrick Kua, les développeurs seraient trop  […]

Continue reading

Tuesday, April 13 2010

Mythologie

Nous sommes dans la mythologie grecque, un beau mercredi du mois de Mars, qui n'a pas encore été inventé, vu que Mars s'appelle encore Ares à l'époque. Zeus est un poil en froid avec tous les titans, mais bon, il y en a quelque uns contre qui il n'a pas une dent (deux en particulier ont droit à un  […]

Continue reading

Thursday, November 5 2009

Analogie mécanique

Mon entreprise fait de la conception mécanique. Nous fournissons des arbres à cames pour l'industrie automobile.Le cahier des charges d'un nouveau produit est établi en fonction d'un objectif qui dresse un ensemble de conditions d'utilisation assez large (Encombrement, ordre de grandeur des couples  […]

Continue reading

Wednesday, November 4 2009

Du mythe de l'ingénieur informaticien

"Tiens je te présente Gustave-Rayond- Salut GR ! Ca te dérange si je t'appelle GR ?- Bah je préfère Ray- Bon ok, Ray, tu fais quoi dans la vie ?- Bah je suis ingénieur informaticien pour une boite du CACA 40"Oh bah... Là tu m'as tout dit mon bon Gustave-Raymond. Tu me diras, c'est un beau  […]

Continue reading