joust

2001.03.10

Douglas Edric Stanley

> source code: joust

Mode d'emploi. Cliquez dans l'image pour faire monter l'oiseau. Pour le controller horizontalement, appuyez sur les flèches « gauche » et « droite » de votre clavier. On peut aussi faire voler l'oiseau en appuyant sur n'importe quelle autre touche.

Argument. Ce diagramme reproduit les mouvements de l'oiseau de combat du jeu vidéo Joust language:en) (1982). Ce jeu reprend certains aspects du jeu lunar lander, notamment l'effet de gravité, mais ajoute la nécessité d'interagir continuellement, c'est-à-dire en réappuyant en permanence sur le bouton « voler » pour maintenir sa position verticale. Cet effet est facilement repérable dans le diagramme de fonctionnement (cf. « joust.js »). Car en réalité deux vecteurs agissent sur une même variable : le joueur modifie la vitesse verticale de l'oiseau en lui diminuant en permanence sa vitesse verticale, alors que le jeu lui même ne cesse d'augementer cette même variable. En se fiant au diagramme, on observe que le jeu augemente cette variable en permanence (+ 0.03) jusqu'à ce qu'il arrive à une vitesse maximale de 2.5. Le joueur, de son côté annule en quelque sorte cette augmentation, en diminuant cette vitesse (- 0.6) jusqu'à une vitesse minimale de -1.5. Le décalage entre les deux vecteurs de modification (+0.03 contre -0.6) est dû à la vitesse à laquelle travaillent ces deux agents. La machine, elle, travaille dans un cycle de 60 modifications par seconde, alors que le joueur — même le plus nerveux au monde — ne pourra pas dépasser quelques modifications (peut-être une demi-douzaine au maximum) par seconde. Ce décalage, qui oblige le joueur à se maintenir en permanence face à une horloge qui ne s'arrête jamais de battre, construit la tension palpable dans ce jeu fort ludique. Ce principe de décalage temporelle est une arme souvent employé dans des jeux vidéo, ainsi que dans différentes machines plus artistiques (cf. Floccus, Brittish Petroleum, Gameplay, Helikopter) : le « battement » de la machine est tout simplement pas le même battement du corps (cœur/système nerveux). La machine cesse d'être purement réactif dans une échelle de 1:1, et se met à improviser, à stocker, et à moduler via son algorithme de plus en plus tangible.

Williams Electronics, Joust

En plus de ce vecteur constant qui tire l'ensemble du jeu vers le bas, il y a une inertie horizontale qui rend également difficile la manipulation de l'oiseau : pour inverser sa direction, on doit appuyer également plusieurs fois sur la direction voulu. Au lieu de changer de direction immédiatement (gauche, droite, haut, bas) comme dans Pacman (1979), le joueur doit ici ralentir d'abord sa vitesse actuelle avant de pouvoir prendre sa nouvelle direction. Le jeu obtient cette difficulté supplémentaire très concrètement en ajoutant une couche d'abstraction dans la manipulation de l'oiseau : au lieu d'attribuer directement une valeur à la variable de vitesse (comme dans Pacman), ici il est obligé de la modifier en passant par une variable supplémentaire : dans notre code, cette variable s'appelle « FLAP_H » et corréspond à la valeur ajoutée ou soustraite à la variable de déplacement horizontale. On ne contrôle plus, on influence.