Rss

Interview avec Cyril « Cgg » Gantin, le papy de Defrag

Publiée sur FrenchFragFactory.

Avec plus de 10 000 cartes et plusieurs milliers d’auteurs, tous recensés et disponibles sur Wolrdspawn, une archive pour du contenu Quake 3 Arena fait par et pour la communauté, le mod Quake III: Defrag apparaît comme une exception dans le monde des FPS.

Codé par [flag_fr] Cyril « Cgg » Gantin et diffusé dès 2000, la sortie récente de la dernière version de Defrag est l’occasion d’un coup de projecteur sur ce projet et son auteur.

Note : en dehors de quelques conventions typographiques appliquées, la syntaxe originale a été respectée afin de préserver au mieux les réponses de Cyril. English readers may want to read a translation of this interview.

Cgg

Pourrais tu te présenter à nos lecteurs et nous en dire plus sur tes projets passés, actuels et futurs ?

J’ai 32 ans. Je me suis intéressé à la programmation très jeune. Id Software en délivrant ses SDK a fourni la matière qui me faisait défaut, m’a permis de nourrir cet intérêt, malheureusement plus tard que je ne l’aurais voulu en fait. C’était une source d’inspiration énorme. J’ai passé l’essentiel de mes années d’étudiant à poursuivre mes aspirations (plutôt qu’à effectivement étudier). Depuis je travaille, dans des conditions qui sont celles d’une startup. Je suis un développeur « bas niveau », qui se recoupe avec l’administration système orientée Unix et Internet. Mon travail me convient et m’ennuie dans le même temps. J’ai un intérêt récurrent pour la biologie moléculaire/évolutive et l’intelligence artificielle, que je souhaite explorer.

Je vis actuellement en République de Maurice, au sein de la population, ce qui a été le biais d’une acculturation que je ressentais déjà et désirais. Ma principale attache française est Paris. Je suis quelqu’un de généralement technique et peu causant. J’ai appris à composer avec le temps, pas nécessairement à mon avantage.

Est-ce que tu avais déjà codé avant Defrag ou Wise In Death ou Akimbo sont antérieurs à ce projet ? Comment as tu commencé à modder Quake3 ?

Quake m’a permis beaucoup, ces trois projets que tu cites sont l’essentiel de ce qui a été rendu public. J’avais trouvé dans Quake2 un moyen de m’investir à une époque où l’usage d’Internet n’avait pas son développement ultérieur. C’est pour moi une période significative d’enthousiasme et de passion, de possibilités. J’ai progressé et appris énormément. La transition vers Quake3 s’y est inscrite naturellement.

On sait déjà que tu as joué à Q3A mais quels sont les jeux qui t’ont le plus marqués ?

C’est difficile à dire. J’ai joué jeune, je retiens surtout des impressions dans leur contexte. Peut-être Pirates de Sid Meier qui ressort de manière assez marginale, pour la période du home computing (80s). Duke Nukem 3d et Warcraft 2 m’ont marqué pour la liberté d’action qu’ils offraient en comparaison. C’était la période du « PC multimedia », dont le qualificatif paraît redondant et grotesque. Doom, Wolfenstein, Syndicate, Sim City, qui sont antérieurs. Plus tard Quake3 et Warcraft III pour le jeu online. RTCW:ET quelque temps, plus sopĥistiqué après le DM/FFA. Dark Age of Camelot, Starcraft

J’ai un attrait pour les mondes autonomes tels que les créent ou peuvent les créer les jeux à là Peter Molyneux et les MMORPG, pourtant ces jeux me laissent toujours insatisfait.

Entre nous, qu’est-ce qui t’a plu le plus dans Q3, le code ou le gameplay ? ^^

Le code 🙂 Je suis un programmeur. Quake3 était un jeu poli et moderne, de fait davantage grand public que ses prédecesseurs. Peut-être pas le summum du gameplay. Ce qui m’a retenu hors le code était la profondeur de la communauté et de tout ce qu’elle avait à offrir. C’étaient de vrais bons moments. Je garde une attache sentimentale.

Les Défis de Fragdome aka DeFRaG

La génèse de Defrag : peux tu nous résumer comment et par qui tout a commencé ?

Le type s’appelait [flag_fr] Belzel, n’a pas participé longtemps en raison de dissensions internes. Il est celui qui a eu la première idée et a donné à Defrag son nom. Le concept a vu le jour au sein de Fragdome, c’était un site de news français pour Quake3, généraliste et accessible, plutôt débutant. Un « bot challenge » (s’enregistrer contre un bot selon certaines conditions – et sans timescale bien sûr :p) était proposé. Le challenge a muté en compétition de trickjumping par un biais que j’ignore en fait. Les premiers challenges ne consistaient qu’en un trick unique : rj, sj, cj. Les parcours sont venus peu de temps après.

Il y avait un mapper à bord, lequel allait par le nom de [flag_fr] El-Nionio, et je participais moi-même au site par curiosité, après avoir rendu public mon premier mod Quake3 (Wise in Death). J’en suis naturellement venu à accompagner les maps d’un bout de code. Le mod était (exactement) un chronomètre et deux map-objects (start/stop).

Donc voilà, oui : Defrag a été un bot-challenge. Ehe.

Et te souviens tu du numéro de version et de la date de sortie publique de Defrag ?

C’était aux alentours de septembre 2000. La première manifestation de Defrag étaient les maps, indépendamment du code qui est venu peu après. Quatre ou cinq maps l’ont précédé et étaient timées à l’aide d’un speaker en fin de parcours – à la main, donc, si. Le mod est sorti en version 1.0, et des défauts flagrants existaient du fait du peu de distance avec le code original de Quake3, notamment avec le drop d’items entre deux runs. Mais il était essentiellement question d’arbitrer physiquement chaque soumission.

On a migré sur Planetquake quelques mois plus tard, exposant defrag tout d’un coup à la scène internationale. Le code a commencé à s’appronfondir, notamment avec l’ajout des checkpoints et de premières mesures contre le cheat, encore rudimentaires. Il a été ensuite question des physics CPM, et la partie programmation de fil en aiguille a gagné en conséquence et pris la précédence, tandis que la communauté se développait peu à peu et fournissait ses propres scoreboards, ses propres maps.

Peux tu nous dire pourquoi 91 dans le numéro de version et pas 42 ?

Peut-être parce que je suis trop jeune pour avoir connu vraiment Douglas Adams. J’ai été libéral dans ma façon de dispenser les premiers numéros de version, en allant sans intermédiaires de 1.0 à 1.4 pour des modifications mineures, en l’espace d’à peine quelques semaines. A mesure que le mod et le développement ont gagné en complexité, on a adopté des conventions plus poussées, jusqu’à aujourd’hui ces versions à trois entiers, et les mois de délais nécessaires pour passer de 1.8 à une version 1.9, ou maintenant années pour aller de 1.91 à 1.92. :p

Tu n’imaginais sans doute pas à l’époque que ce mod aurait le succès et la durée qu’est la sienne, comment vois tu Defrag dans 10 ans ?

Non. Ce n’était le cas de personne. Defrag a été marqué par un flagrant défaut de foresight. Il a connu une évolution naturelle. J’ai souvent été impressionné par les degrés que prenait le mod, le degré de sophistication de la communauté qui a occupé et satisfait toutes les niches pour lesquelles on faisait défaut. Defrag répond à un concept qui lui est bien plus large. Il est apparu au bon moment, au bon endroit. On n’avait rien prévu.

Découvrir des maps par milliers, ou trouver des serveurs modifiés très avancés. Je vois Defrag plus volontiers comme un mouvement que par les limites de son instance que sont le mod et le développement qu’on a fourni. Je me suis senti émerveillé et dépassé au fond.

J’ai une forme de révérence pour la culture de la modification et du remix, telle qu’elle existe sur Internet. N’étant pas impliqué comme joueur je ne connais pas l’avenir de Defrag.

En dehors de toi, est-ce qu’il y a eu des contributeurs « longue durée » à Defrag ?

Je suis le développeur le plus ancien, celui qui a assisté à l’émergence, celui aussi qui un jour a écrit une première ligne de code dans Visual Studio. Defrag a été un travail collectif, avec ses figures, ses détracteurs et ses champions. Les gens sont venus et sont allés, les conceptions ne sont pas restées statiques. Du fait de ma position unique d’ancienneté, et en même temps de mon écart vis-à-vis des joueurs, je me place davantage comme référent – je suis le gardien, j’ai neuf têtes. Je plaisantais, lors d’une reprise en 2009, en me positionnant comme « Defrag’s grampa » – le sentiment est réel.

Pour le « cœur » de Defrag lui-même, [flag_us] Ozone-Junkie a été un programmeur déterminant, tant par sa contribution dans le code que par sa capacité à pousser le développement. [flag_uk] Moomin un peu plus tard a apporté son lot de contributions, plus générales, et nous a permis de polir nos habitudes et faire le lien avec la communauté online.

Code

Defrag à introduit de nombreuses fonctionnalités (PIP, cams, ghosts, …), quelle est selon toi la partie la plus sympa ?

La valeur de Defrag se trouve dans sa communauté à mon sens. Durant le développement j’ai aimé m’investir dans le problème du cheat prevention, et dans toutes sortes d’éléments qui font finalement de Defrag une expérience cohérente de développement. J’ai mis les mains dans beaucoup de choses. Le vrai « programming feat » pour moi est la manipulation des caméras et le système de replay, qu’a écrit mon coprogrammeur Ozone-Junkie.

Defrag a aussi inspiré d’autres jeux, comme les modes « course » de Xonotic (ex-Nexuiz) ou de Warsow, as tu été sollicité par ces projets ou d’autres ?

Pas vraiment. Je suis généralement assez peu présent par ailleurs. J’ai été brièvement au contact de Warsow, auquel je voulais apporter une contribution – davantage l’héritage que pouvait représenter defrag pour le mode racing. J’ai pu fournir quelques solutions aux problèmes qu’on avait nous-même rencontrés avec defrag. Ça reste anecdotique.

De nombreux joueurs de Quake Live aimerait voir l’ajout d’un mode Defrag, sujet brièvement évoqué par SyncError en 2010, avais tu été contacté à ce propos ? Que penses tu de cette idée ?

J’ai peu suivi QL. Mon seul contact direct avec Id est passé par TTimo, et a été plutôt expéditif. C’est assez insignifiant. D’un point de vue de développeur je suis parfaitement favorable.

Comment s’opère et qui participe aujourd’hui au développement ? Le choix du closed-source reste-t-il pertinent ?

Le développement a connu des cycles qui manquent de cohérence, avec de grandes phases de dépression. Il y a une base de code inexploitée (1.92) et depuis peu un contributeur actif, [flag_us] Marky, qui apporte des fixes et backporte certains éléments depuis 1.92. Je me place davantage comme référent technique, soutien.

Il y a eu reprise en 2009 qui coïncidait avec une volonté (et capacité) de ma part à allouer du temps à Defrag, et reprendre ce qui avait été laissé en friches. J’ai considérablement été porté vers une ouverture des sources alors. Defrag pour moi appartient à sa communauté. C’est finalement la défiance des joueurs eux-même qui a décidé du sort de la base de code, qui est restée fermée. Les principales réticences étaient liées au cheat, et à la crainte de voir apparaître une multitude de forks.

J’ai souvent considéré remettre Defrag dans d’autres mains, de façon à ce que le développement se poursuive. Ca n’a jamais fonctionné. Je suis davantage défiant aujourd’hui. Le projet a énormément d’inertie. Le potentiel pour les bourdes et le besoin de précision sont conséquents.

L’avenir… Peux tu nous en dire plus sur la roadmap du développement ? Est-ce que la branche 1.92 va bientôt devenir la principale ? À ce propos, quelles sont les différences entre la 1.91 et la 1.92 ?

1.92 était un renouveau et se proposait de compléter le multiplayer, le jeu sur serveur. Defrag était initialement destiné aux démos et a conservé cette lignée longtemps. 1.92 revoyait certaines logiques de base, comportait notamment un nouveau système de vote, scoreboards serveur, une réintroduction des timelimits, etc. Un programmeur ([flag_de] Berserker) a à son tour contribué une multitude de nouveaux éléments à l’intention des mappers. Le développement s’est essoufflé et est resté dans un état d’inachèvement notoire, difficile à reprendre.

Il y a une observation un peu malheureuse, mais empirique, qui est que ces projets réclament un investissement soutenu et conséquent. Les deux gros contributeurs de code sont Ozone-Junkie et moi, ce qui est flagrant dans les sources, qui se séparent trop clairement entre nos contributions respectives. J’ai programmé pour Defrag lorsque j’étais occupé à (ne pas) être étudiant. Ozone a connu une année sabbatique lorsqu’il fournissait la base de code. C’est plus difficile de s’y consacrer de manière casual, et ça porte un certain nombre de frustrations. Il y a un autre vice classique et récurrent dans ce type de contexte, dont je suis également fautif, qui est l’excès d’engouement, et un défaut de réalisation qui fréquemment lui fait suite.

Il y a des choses que j’aimerais encore faire avec Defrag, mais qui ne sont pas à l’ordre du jour. Je regarde d’un oeil bienveillant les dernières contributions, pour le moment.

J’ai quelques difficultés à me figurer Quake3 dans (encore) 10 ans. Ce sera sans doute toujours plus hardcore.

Le mot de la fin

Merci pour cette interview et pour tout le reste, un dernier mot avant de se quitter ?

Question freestyle ? Il y a un potentiel énorme dans la communauté et l’aspect libre d’Internet, ce qui ne l’exempte pas d’effets pervers. Mais c’est une culture à laquelle je peux me rallier en fait. C’est peut-être ce qui est le plus éloquent pour moi. Defrag a été une expérience marquante, et je souhaite que le concept évolue encore et puisse bénéficier à d’autres d’une même façon.

Comments are closed.