L’été dernier, j’avais voulu écrire un truc sur Crash Bandicoot, mais c’était tellement creux et vide que j’ai pas réussi.

- Mortal, pas nostalgique

Dojobar
L'émission de radio déjantée qui revient toutes les deux semaines !

Émission s24e02 − Echos of Wisdom
Le 22 octobre 2024, par Mortal







L’historique du speed-run de The Legend of Zelda: Ocarina of Time (partie 2)

Ou pourquoi les médaillons sont une vaste arnaque !

La dernière fois, nous avions vu qu’il n’était pas nécessaire d’avoir tous les médaillons des sages pour pouvoir accéder au château de Ganon. Tout simplement parce que le jeu ne vérifie que deux médaillons sur les six.

Et pourquoi donc ? Simplement pour optimiser le programme en lui-même. En effet, un jeu n’est rien d’autre qu’un programme informatique qui ne fait qu’en seule et unique chose : boucler.

Entre dans la boucle

En programmation, une boucle est une série d’instructions données à la machine qui se répète indéfiniment ou jusqu’à ce qu’une condition donnée soit remplie. Une console ne fait que ça : exécuter le même bout de programme tous les 1/60ème (ou 1/50eme) de seconde. Pourquoi 1/60ème ou 1/50ème ? Parce que cela correspond à la fréquence de rafraîchissement théorique de l’image (pour les consoles américaines et japonaises en 60Hz et pour les consoles européennes en 50Hz). Tous les 1/60ème de seconde, la console génère ce que l’on appelle une interruption pour signaler au programme qu’elle va afficher ce qu’il y a dans la mémoire vidéo (NDCyrare : cela reste théorique. En pratique Ocarina of Time tourne à environ 15/20 images/secondes, donc les calculs se font entre ces frames, et pas entre chaque rafraîchissement de la TV).

Une nouvelle fois, nous allons prendre un exemple très simple. Imaginons que l’on veuille le comportement suivant : quand on appuie sur Start, le jeu se met en pause (super innovant…). Au tout début de la boucle, on va donc vérifier les entrées (typiquement les touches du clavier qui sont enfoncés ou les boutons qui sont enfoncés). Si le bouton Start est enfoncé, le programme va déclencher une routine qui lancera l’animation montrant le menu de pause. On appelle cela un test. On peut alors décider de ne rien faire jusqu’à ce que l’animation se soit terminé ou de profiter du temps disponible avant l’affichage de l’image pour faire d’autres vérifications (d’autres tests).

Il faut maintenant bien imaginer que la console effectue une quantité de tests absolument gigantesque à chaque frame, tous les 1/60ème de seconde. Le programme qui fait les tests doit donc être très rapide, sinon cela va retarder l’affichage et le jeu va « ramer ».

Cette astuce de programmation permet donc d’optimiser un peu le jeu : au lieu de faire un test qui implique tous les médaillons, on fait un test seulement sur les deux derniers, en partant du principe que le joueur est obligé d’avoir ramassé les précédents.

Le speed-run infernal

Du coup, on peut se permettre de zapper une grande portion de la partie adulte du jeu et ce de manière quasi-transparente. Dans le pire des cas, il faut simplement aller récupérer l’arme dans le donjon, mais on peut complètement passer le boss et le médaillon sans se préoccuper. Et cela tombe bien, parce que les premiers temples sont relativement longs.

Ainsi, les premiers speed-runs que j’ai pu voir d’Ocarina of Time arrivait à descendre un peu en dessous des 3h : l’exploitation de quelques bogues dans les donjons, de quelques bogues pour bénéficier de déplacement plus rapides, etc permettant de faire assez rapidement les trois temples de Link enfant et de battre les deux boss nécessaires à l’obtention des médaillons de l’esprit et de l’ombre.

Malheureusement, c’est encore long (c’est toujours trop long). Et que se passerait-il si l’on pouvait se passer du Rubis Goron et du Saphir Zora ? Et si on pouvait simplement de pas rendre visite à l’arbre Mojo ? Nous verrons cela la prochaine fois…


Par Mortal
Le 3 septembre 2012 | Catégories : Editos

Je le couperai au montage…
Voir les articles de Mortal

A voir également
Les trucs qu'on a rédigés avec nos petits doigts potelés

Dojo Hebdo 588 : du 1er au 7 juillet 2024
Le 7 juillet 2024, par Gueseuch

Dojo Hebdo 587 : du 24 au 30 juin 2024
Le 30 juin 2024, par Gueseuch

Dojo Hebdo 586 : du 17 au 23 juin 2024
Le 23 juin 2024, par Gueseuch

Dojo Hebdo 585 : du 10 au 16 juin 2024
Le 16 juin 2024, par Gueseuch

Dojo Hebdo 584 : du 3 au 9 juin 2024
Le 9 juin 2024, par Gueseuch


Dojo Hebdo 583 : du 27 mai au 2 juin 2024
Le 1 juin 2024, par Gueseuch


Dojo Hebdo 582 : du 20 au 26 mai 2024
Le 26 mai 2024, par Gueseuch

Dojo Hebdo 581 : du 13 au 19 mai 2024
Le 19 mai 2024, par Gueseuch


Dojobar
L'émission de radio déjantée qui revient toutes les deux semaines !

Émission s24e02 − Echos of Wisdom
Le 22 octobre 2024, par Mortal