OWNI http://owni.fr News, Augmented Tue, 17 Sep 2013 12:04:49 +0000 http://wordpress.org/?v=2.9.2 fr hourly 1 Le code source du premier jeu http://owni.fr/2011/11/17/le-code-source-du-premier-jeu/ http://owni.fr/2011/11/17/le-code-source-du-premier-jeu/#comments Thu, 17 Nov 2011 11:02:01 +0000 Trois Couleurs http://owni.fr/?p=87210 À l’occasion de l’exposition Game Story, au Grand Palais, OWNI s’associe au magazine Trois Couleurs pour vous proposer plusieurs articles autour du jeu vidéo, issus du hors-série concocté par la rédaction de Trois Couleurs, “Games Stories”.

Je sortais de l’université, du Dartmouth College, et j’ai commencé à travailler au M.I.T. (Massachusetts Institute of Technology) à l’automne 1958. Je bossais sur l’intelligence artificielle (I.A.) dans un laboratoire avec John McCarthy. Nous avancions sur des pistes visant à créer cette forme d’intelligence. J’ai commencé l’élaboration d’un programme qui permettrait de gérer des listes d’informations via un ordinateur.

L’idée, c’était d’autonomiser la machine pour qu’elle interprète ces listes de manière rationnelle afin d’éviter la saisie et la valorisation des informations par la main de l’homme. Mon rôle était de traduire les idées des chercheurs en langage informatique. Après d’intenses, travaux nous sommes parvenus à intégrer ce langage, cette I.A. nommée Lisp, dans un IBM 704 au printemps 1959.

Russel + PDP-1 = Spacewar!

Bref, je planchais sur différents projets, lorsque à l’automne 1961 une entreprise, la Digital Equipment Corporation, donna au M.I.T. un ordinateur : le PDP‑1. Celui-ci fut installé près de mes bureaux. Je connaissais une bande de types du club de modélisme ferroviaire, le TMRC (Tech Model Railroad Club), qui expérimentaient sur le PDP‑1. Je suis donc passé les voir et la machine a retenu mon attention. Il y avait un programme de démonstration qui tournait dessus, et qui présentait trois points sur l’écran. Chacun de ses points était influencé par les autres, ils tournaient ensemble, produisant une sorte de motif kaléidoscopique.

C’était marrant de jouer avec pendant quelques heures. Mais j’ai vite trouvé ça barbant. Le système était trop aléatoire, les motifs pas si intéressants et pas vraiment différents à la longue. Alors j’ai évoqué l’idée de construire un programme plus abouti. Il se trouve qu’à ce moment la course aux étoiles battait son plein. En 1961, les Russes ont mis un homme en orbite. Juste après, les Américains sont parvenus à faire de même. J’ai réalisé que bien peu d’humains savaient comment piloter une navette spatiale. Je me suis dit qu’on devrait produire un logiciel d’entraînement au pilotage d’engins spatiaux.

Comme d’habitude avec ce genre de projet, les gens m’ont dit : « Tu sais… C’est vraiment une super idée. Vraiment chouette. Par contre, ça a l’air compliqué… Et pourquoi tu ne le ferais pas toi-même ? » [Il se met à rigoler comme un bossu, ndrl] Et voilà comment je me suis retrouvé à écrire les lignes de code de Spacewar! sur le PDP‑1 en 1961.

J’ai eu l’idée de mettre en scène deux vaisseaux spatiaux, et de leur donner la capacité de se tirer des missiles dessus. J’y ai ajouté la possibilité d’accélérer et de tourner. Ça, c’était vraiment marrant à jouer. Mais il y avait encore des ajouts à faire pour rendre l’expérience tout à fait intéressante.

J’avais intégré en arrière-plan une voute stellaire fictive. Un informaticien, Peter Samson, trouvait ça tragiquement peu réaliste. Il a donc créé un petit programme, qu’il a appelé Expensive Planetarium. Il permettait de représenter de vraies galaxies. En intégrant ce planétarium dans mon jeu, je me suis rendu compte que mon code était perfectible, que je pouvais augmenter la vitesse de calcul du programme. Cela m’a permis d’accélérer les déplacements des vaisseaux, d’alléger le calcul de leur positionnement. Du coup, on a eu de l’espace en rab. On l’a comblé avec la gestion de la gravité entre les deux vaisseaux.

Le hic, c’était qu’on n’avait plus de place pour gérer la gravité des missiles. On a donc décrété qu’il s’agissait de missiles-photons, non affectés par la gravité. Les vaisseaux évoluent sur une grille qui définit leur position et la direction d’émission des missiles. On ne pouvait figurer cela en trois dimensions, mais uniquement sur un seul plan, or celui-ci intégrait de vraies propriétés physiques. Ainsi, j’ai pu mettre les vaisseaux en orbite autour d’une étoile qui les attirait, ce qui a conféré au jeu une dimension réellement tactique.

Cela nous a pris d’abord six semaines, sur notre temps libre, pour achever la première version de Spacewar! Puis six autres semaines pour terminer la version avec gravité. Vous pouvez penser que c’est très rapide, mais il faut comprendre qu’il n’y avait que deux mille lignes de code à assembler – l’ordinateur ne nous permettait pas d’en faire beaucoup plus.

Le seul truc sur lequel on s’est vraiment arraché les cheveux, c’était la gestion de la rotation des vaisseaux, compte tenu de la puissance de calcul dont on disposait. Une vraie prise de tête. J’ai trouvé la solution en retournant le problème. Au lieu de calculer la position en permanence, on pouvait la calculer uniquement au moment où elle changeait. Pour le reste, c’est allé tout seul. Non, on n’appelait pas ça un « jeu vidéo », le terme n’est apparu que vingt ans plus tard. Je ne peux pas vous laisser dire que Spacewar! est le premier jeu vidéo. Il y a eu OxO en 1952, ou Tennis for Two en 1958. En 1959, j’ai vu des types du M.I.T. Competition Center mettre au point un programme de balle rebondissante.

“Je ne peux pas vous laisser dire que Spacewar! est le premier jeu vidéo.”

Revenons à Spacewar! Les gens de Digital Equipment Corporation, qui avaient mis le PDP‑1 à notre disposition, ont vu le jeu. Nous, on a pensé brièvement leur vendre le programme. Mais il n’y avait aucune raison qu’ils veuillent l’acheter, et le prix qu’ils proposaient était dérisoire. En fait, ils étaient un peu embêtés parce que notre machin paraissait vraiment trivial. Eux, ils cherchaient à vendre des ordinateurs sérieux à des gens sérieux. Ils ont aussi réalisé que c’était un chouette argument de vente. Peu de temps après, il y a eu un accord officieux entre les chaînes de production et les revendeurs du PDP‑1. En bout de production, le dernier truc que faisaient les assembleurs, c’était de charger Spacewar! sur les machines et regarder s’il tournait correctement. Ce que faisaient à leur tour les revendeurs pour s’assurer que l’ordinateur n’avait pas souffert pendant le trajet. Quand des clients entraient dans le magasin, on leur montrait Spacewar! car, à l’époque, les machines ne proposaient pas grand-chose de visuellement parlant.

De notre côté, nous avons participé à la diffusion du jeu auprès des utilisateurs du PDP‑1. Vous pouviez en demander très simplement une copie auprès de Digital Equipment Corporation. Du coup, beaucoup de personnes ont vu Spacewar!, notamment parce que la moitié des PDP‑1 se trouvaient dans les universités. C’était un truc que les étudiants aimaient montrer à leurs amis. Bien sûr, tout le monde le connaissait au M.I.T. Ce qui fait que ce fut le jeu le plus populaire pendant quelques années. Ça, et aussi le fait qu’il n’y avait pas de concurrence à l’époque.

“Spacewar! est devenu une source d’influence pour beaucoup d’ingénieurs en informatique”

Ainsi, Spacewar! est devenu une source d’influence pour beaucoup d’ingénieurs en informatique. Si vous voulez, c’est peut-être en cela (à part le fait qu’on était les premiers à représenter des explosions sur un écran) que l’on peut dire que c’est le « premier » jeu vidéo : il a montré que si vous aviez un peu de temps à tuer sur un ordinateur, vous pouviez vous asseoir et commencer à coder votre propre jeu. Prenez le jeu d’arcade Asteroids, sorti en 1979. Le concepteur avait joué à Spacewar!, Asteroids s’en est beaucoup inspiré, il n’y a qu’à le regarder. Enfin, notre jeu peut se jouer à deux ; le sien, on en profite que tout seul…

Après cette aventure, j’ai gardé peu de contacts avec le jeu vidéo. Dix ans après Spacewar!, c’est devenu une industrie, avec les bornes d’arcade. Moi, je bossais sur d’autres projets en lien avec mes premières recherches. Une autre décennie plus tard, l’informatique est devenue bon marché et les gens ont commencé à faire des jeux maison. Par la suite, je me suis impliqué dans des start-up de jeu vidéo, mais les lois du business ont fait qu’il n’est plus possible de bricoler un programme seul. Vous avez besoin de plusieurs ingénieurs et d’un paquet d’artistes. Regardez les génériques de fin d’un jeu moderne, ça ressemble au long défilé d’un générique de film. Aujourd’hui, je continue de montrer Spacewar! aux visiteurs du Computer History Museum en Californie. On a de la chance, le PDP‑1 est une machine increvable.


Propos recueillis par Étienne Rouillon
Illustrations de Marion Dorel pour Trois Couleurs
Article initialement paru dans le hors-série Games Stories du magazine Trois Couleurs

Retrouvez la Une “Games Stories”les deux autres articles du magazine Trois Couleurs sur Owni :
Tournez manettes !
Infographie : L’incroyable généalogie du jeu vidéo

]]>
http://owni.fr/2011/11/17/le-code-source-du-premier-jeu/feed/ 7