compte-rendu de la GDC 2001

Table des matières
Introduction
L'expo
Les jeux
DirectX Developer Day
Les conférences
Introduction
C'était mon premier voyage à la GDC et même aux Etats-Unis, aussi étais-je très content d'aller en Californie avec deux autres personnes pour quelques jours.
Je n'ai pas encore trouvé la bonne médication pour éviter complètement d'avoir le mal de l'air, mais je progresse :) (ce qui est une bonne nouvelle puisque le vol
de Paris à San Francisco a duré plus de 11 heures).
Quelques précisions géographiques, pour les gens comme moi qui n'habitent pas aux US : San Jose est la 3ème plus grande ville de Californie (et la 11ème des
Etats-Unis), est située à 80 km au sud de San Francisco, et est connue comme la "capitale de la Silicon Valley". La GDC s'y déroule depuis plusieurs années
car la ville possède un grand centre de conférences, et pas pour de quelconques
considérations culinaires (la nourriture de la GDC remplit l'estomac mais n'a rien de réjouissant, bien au contraire).

Encore quelques infos générales avant d'entrer dans le vif du sujet :
- la liste des conférences, des sociétés présentes à l'expo, etc, est disponible sur le site
http://www.gdconf.com
- certaines conférences commencent à être disponibles au format texte ou vidéo sur
http://www.gamasutra.com. Mais si vous le pouvez il est probablement plus intéressant de se procurer les "proceedings" (le gros bouquin),
qui contient la plupart (pas tout à fait toutes) des sessions.
- la météo était agréable, comparée à celle de la France à la même période (beaucoup de pluie et d'inondations). La température était très sympa :)
L'expo
Parallèlement aux conférences se déroule une exposition, de taille assez modeste, à laquelle participent les grands fabricants de matériels ou de middlewares
(moteurs 3D, systèmes de motion capture, outils graphiques ou de programmation, etc...) qui ont bien voulu faire le déplacement.
C'est l'occasion de rencontrer des gens que l'on ne connaît que par email (salut Ed ;) , et d'avoir un aperçu des nouvelles (?) technologies.
Voici une liste très subjective des exposants qui ont retenu mon attention :
- nVidia : démos de la GeForce3 sur tous les écrans, la plus jolie étant sans doute celle du caméléon (qui semble d'ailleurs leur servir de logo).
Des milliers de faces, l'animal est skinné, éclairé et bumpé (pixel shader) dans tous les sens, sans ralentissement.
- Intel : très belle démo du jeu Giants sur Pentium4, mais difficile de dire ce qu'il y avait derrière comme carte graphique et si cette version bénéficie
d'améliorations particulières. Egalement une nouvelle démo du moteur d'Unreal II, une sorte de marécage très détaillé mais de petite taille avec des
reflets dans tous les sens, dont voici quelques screenshots :
- ATI : démo habituelle ("Ark") de la Radéon.
- Criterion Software : quelques bonnes démos de Renderware sur PS2.
- NDL : NetImmerse 4 version beta sur Xbox, et un jeu de karting par Microïds.
- Havok : démos habituelles, plus un personnage qui marche / court / saute et dont les vêtements se déforment (un peu mieux que dans Nocturne à mon avis,
mais ils n'ont pas un jeu à faire tourner derrière)
- L'ATTRACTION de l'expo sur le stand GameSpy : la joueuse professionnelle de Quake3 Kornélia, qui donnait une leçon (et ensuite une poignée de main et
une sucette) à tous ceux qui osaient relever le défi : essayer de la fragger une fois (une seule !) en 1 contre 1 avant qu'elle n'arrive à un score de 6,
ou au time limit (6 minutes), pour gagner un t-shirt. Son score en milieu de 2ème journée : 120 parties à 0, 715 frags à 15, très impressionnant !
Entrainez-vous, le niveau est q3tourney2, elle joue sans lightmaps et avec les items simples, la plupart du temps au lightning gun, sur de très bonnes
machines (140 fps), et il n'y a pas de triche. Son secret : elle est gauchère ;) Pour ceux qui se posent la question : non, je n'ai pas eu le temps
d'attendre mon tour entre deux conférences, mais honnêtement il m'aurait fallu beaucoup de chance pour arriver à la toucher (ce serait plus facile pour moi
si elle était terroriste à Counter Strike). Et : oui, elle est plutôt mignonne :)
Les jeux
La GDC n'est pas un salon de jeux (ne pas confondre avec l'E3 en mai), et le seul endroit où l'on pouvait voir quelques sociétés de développement était
le " job fair " (= endroit où on peut laisser son CV ou rencontrer des boîtes qui recrutent, voire des cabinets de placement). Même là il n'y avait pas
grand chose à se mettre sous la dent, la seule démo intéressante était celle de Oddworld Inhabitants pour leur jeu Munch's Oddysee sur Xbox : un ensemble
de séquences assez longues du jeu tournant en boucle, et à vue d'oeil affichées en temps réel par le moteur (pas une cinématique, donc).
Très joli, le jeu semble intéressant, et il y a parfois beaucoup de personnages à l'écran.
Dans le même ordre d'idée, j'ai pu voir tourner une introduction très longue de Halo (Bungie) avant une conférence sur le portable high-tech
(et probablement équipé du nouveau chipset GeForce 2 GO) d'un des participants : très impressionnant.
Les seuls jeux réellement exposés étaient en fait ceux de l'Independent Games Festival : les 10 finalistes étaient présentés par les gens qui les ont
créés et sont généralement à la recherche d'un éditeur, pour mémoire le vainqueur de l'année dernière n'était autre que The Rift, édité par Microïds sous
le nom de Far Gate. Les résultats de la compétition, les démos et contacts sont disponibles ici :
http://www.igf.com.
DirectX Developer Day
Microsoft avait organisé une journée consacrée à DirectX 8, histoire d'en remettre une couche sur les shaders ; pour ceux qui l'ignorent
les shaders sont de petits programmes en pseudo-assembleur que la carte graphique va exécuter pour chaque point 3D qu'on lui envoie (vertex shader),
ou pour chaque pixel des faces qu'elle trace (pixel shader). Le but est de donner un maximum de contrôle au programmeur sur le pipeline TnL
(Transform & Lighting), c'est à dire de lui permettre de faire à sa façon du skinning, du morphing, du bump ou de l'environment mapping,
et tout un tas d'autres effets (l'intérêt est là : les effets ne sont plus limités à ceux qui ont été prévus par les fabricants de cartes).

deux exemples de shaders (non non, ce ne sont pas les textures qui sont comme ça !)
La différence majeure par rapport à la WGDC (juin 2000) est qu'il existe à présent une carte (la GeForce3) gérant réellement cette fonctionnalité en
hardware, et des démos mettant en avant les possibilités des shaders. Je pense que le but est atteint : ceux qui n'étaient pas encore persuadés de
l'utilité de cette flexibilité accrue sont à présent convaincus, les démos en mettent plein les yeux, notamment celles qui ont été montrées en début de
matinée : une séquence (de Max Payne ?) quasi-conforme à celle de Matrix lorsque Néo et Trinity entrent dans le building pour libérer Morpheus, et
surtout le 3DMark2001 (la première partie avec de gros objets 3D n'est pas terrible, mais celle des arbres qui bougent dans le vent avec les papillons
et la rivière est à tomber par terre !).
Un plugin d'export et un viewer sont disponibles pour 3DS Max 4 afin de prévisualiser le résultat des shaders, mais je ne sais pas comment les graphistes
peuvent les mettre en place ; j'ai eu l'impression que le programmeur devait d'abord coder ses shaders, et qu'ensuite le graphiste avait la possibilité
de charger celui qu'il voulait dans le viewer, et de l'appliquer à l'objet de son choix.
Pour être tout à fait exact, la journée n'était pas totalement et exclusivement réservée aux shaders ; il y a également eu une (petite) session sur D3DX
(cf doc DirectX), et une autre consacrée à Windows XP (anciennement Whistler), plateforme prévue pour la fin de l'année et recommandée pour le
développement : DirectX 8.1 y sera disponible avant que ce ne soit le cas sur les anciens OS, tous les moyens sont bons pour nous faire upgrader :(
Les slides du DirectX Developer Day sont disponibles sur
http://www.microsoft.com/corpevents/gdc2001/developer_day.asp.
Les conférences
Il y a plusieurs types de conférences : les lectures (une ou parfois deux personnes parlent d'un sujet donné, avec éventuellement une démo de leur
travail dans le domaine, puis répondent aux questions), les roundtables (un modérateur - comme sur les newsgroups - lance la discussion ou la fait
avancer mais chacun peut participer et faire partager son expérience), et les keynotes (l'orateur prêche la bonne parole). Exemple : j'ai assisté au
keynote (ou plutôt au show) du grand évangéliste Xbox de chez Microsoft, très drôle mais en fait décevant : aucune info nouvelle, et surtout pas de démo
des futurs launch titles pourtant déjà présentés au GameStock :( Nous avons juste eu droit à 3 exemples de shaders (fourrure, herbe, et un autre que
j'ai oublié), et un court extrait de Inevitable (ci-dessous) [joli mais sans intérêt, puisqu'il s'agit comme d'habitude d'un seul objet à beaucoup de
faces, éclairé par quelques lumières, sans les contraintes réelles d'un jeu - gestion du monde, nombreux objets, collisions, etc... Enfin bon, ce n'est
pas mal quand-même, il y a vraiment beaucoup de faces]
J'ai aussi testé un roundtable, dont le sujet était le passage aux consoles pour les développeurs PC. En résumé, les principales " nouvelles "
difficultés concernent la gestion de la mémoire (limitée, qui se fragmente...), celle des ressources (davantage de pré-processing afin de limiter les
seek du CD, et les contraintes en nombre de fichiers / répertoires / profondeur de l'arborescence sont plus lourdes), les outils de développement (plus
"jeunes" et donc buggés), la qualité de l'affichage (TV), et le processus d'approval.
J'ai assisté à 10 lectures, présentées par des gens connus pour qui a la mémoire des noms et se balade sur le net, ou lit des bouquins en anglais.
Pour faire court :
- vertex shaders en pagaille, moins de pixel shaders. Pourquoi ? Parce que les vertex shaders peuvent être utilisés même sans GeForce3 (émulés par le
processeur, et optimisés SSE pour les P3/P4), en DirectX 8 ou OpenGL (extensions spécifiques à chaque fabricant). En ce qui concerne les pixel shaders,
pas le choix : GeForce3 + DX8 obligatoires pour le moment.
- ombres portées temps réel : rien de neuf par rapport au livre Real Time Rendering (la conf. était présentée par ses auteurs), si ce n'est un nouveau
cas particulier pénible à gérer dans la méthode du stencil buffer [voir le papier pour les détails], également mentionné par Mark Kilgard.
- optimisations TnL : partage d'un maximum de buffers, gros et statiques de préférence, pas de CLod, limiter absolument l'overdraw (portals) et les
changements de renderstates, pré-trier les faces afin de maximiser les accès au cache de la carte. Très intéressante conf. de John Ratcliff
, suivie d'une démo du jeu sur lequel il travaille,
PlanetSide :
je peux vous dire que ça tue, mais grave ! L'herbe et les arbres notamment, c'est un vrai bonheur, il y en a partout (bon OK les bâtiments ne sont pas
mal non plus).

un screenshot, pas terrible comparé à lorsque ça bouge...
- displacement mapping : consiste à ajouter du détail à partir d'une texture, en créant de la géométrie (contrairement au bump, qui ne fait que modifier
l'éclairage). Imaginez 2 pauvres triangles : plus vous les approchez de la caméra, plus ils sont subdivisés (= découpés en une multitude de petites faces),
pour finalement créer un landscape. Evidemment il ne faut pas descendre trop bas en résolution (= remplacer le landscape par les 2 triangles tout plats),
il est toujours nécessaire d'avoir un certain nombre de faces pour que le landscape ne soit pas anguleux, mais l'important est qu'il est réellement sauvé
en tant que 2 triangles dans le fichier (bonjour le taux de compression !). OK, créer un heightfield à partir d'une texture ça n'a rien de révolutionnaire,
sauf que les petits gars de Matrox le font en temps réel (avec changement de résolution et géomorphing) grâce à un... vertex shader (et oui, encore), et
qu'ils ont bien donné l'impression de vouloir le faire en hardware sur leur prochaine carte. A suivre.
Je ne veux pas entrer dans les détails de conférences qui demandent souvent de solides connaissances en mathématiques (fog volumétrique, subdivision de
surfaces...), aussi c'est tout pour cette fois. Pour terminer je voudrais passer un petit 'bonjour' aux personnes (Jcab, Jason, et d'autres) qui ont
pris le temps de discuter avec moi malgré mon terrible accent français, certains ont été attirés par mes 3 magnifiques t-shirts Buffy, je pense que
j'utiliserai la même astuce la prochaine fois :)
haut de la page