Est-il possible de charger un niveau infranchissable dans Super Mario Maker?

Cette entrée est une nouvelle version gratuite de la vidéo. Est-il possible de télécharger un niveau impossible dans Super Mario Maker? . Il y a un lien vers la vidéo The Impossible Level dans la vidéo, je vais donc la raconter aussi. Mon récit ne prétend pas être exact, je veux juste partager du matériel intéressant.

Ce qui sera discuté


Trouver des bogues dans un logiciel peut être très différent. Je recherche des erreurs dans les codes sources, dans les fichiers binaires, dans les grands complexes logiciels et même dans certains matériels. Mais il y a un domaine dans lequel je n'ai presque jamais rien fait - la recherche d'erreurs dans les jeux informatiques.

Les gens passent beaucoup de temps à trouver des bugs dans les jeux. Il peut s'agir d'erreurs logiques, mathématiques et même de programmeur. Quelqu'un fait cela pour regarder le jeu sous un nouvel angle, tandis que quelqu'un essaie de passer le jeu au moins quelques secondes plus vite que n'importe quel autre joueur. Il me semble que c'est la communauté des speedraners (les gens qui jouent aux jeux de vitesse) qui a énormément contribué à la recherche des défauts et des erreurs du jeu. Mais nous gagnerons du temps lors du passage une autre fois, aujourd'hui c'est juste une histoire de trouver des erreurs dans la logique du jeu.

En septembre 2015, Nintendo a sorti Super Mario Maker, un jeu de plateforme sur le célèbre plombier Mario. L'une des principales caractéristiques du jeu était la possibilité pour les utilisateurs de créer eux-mêmes des niveaux (ici, ils sont appelés des cours) et de les partager avec d'autres joueurs. Quelqu'un crée des niveaux, suit le pourcentage de succès et quelqu'un, en fait, passe par ces niveaux. C'est à ce moment que les joueurs des chercheurs se sont peignés les mains - est-il possible de publier un niveau infranchissable?


Il est inutile de dessiner quelque chose comme ça, bien que le niveau soit vraiment infranchissable, nous ne pourrons pas non plus le publier.

Nintendo a fait face à une tâche plutôt intéressante - comment empêcher la bibliothèque d'être «encombrée» avec des niveaux vides et infranchissables. Et ils se sont bien débrouillés avec elle. La solution est assez élégante et a été utilisée plus d'une fois dans des jeux avec un concept créatif similaire: vous devez passer par le niveau vous-même avant de le publier et de le télécharger sur le serveur. Et une fois depuis le début et une fois de chaque point de contrôle. En fait, la tâche se résume au fait qu'il est nécessaire d'élaborer un cours que l'auteur pourra suivre pendant la publication, mais pas après.

Numéro de tentative 1. Verrouillage du code


Le jeu possède de nombreux objets qui interagissent les uns avec les autres selon des règles connues. Vous pouvez essayer de jouer quelque chose comme un verrou de code.

Par exemple, vous pouvez prendre la pièce suivante:


Un kupa (1) ne peut pas traverser un essaim de monstres sur son chemin (3), à l'exception des fantômes (2). Les monstres, lorsqu'ils sont sur la tête de l'autre, ne se dispersent pas et restent immobiles. Si Mario frappe un bloc de briques (4), le monstre inférieur de la pile mourra, laissant le fantôme un bloc plus bas. Si le fantôme est sur la même ligne que le compartiment, elle peut aller plus loin. L'auteur du niveau connaît le nombre de monstres avant chaque fantôme, et il sait combien de fois vous devez frapper chaque bloc pour ouvrir la voie au compartiment. Dès que le coupé passe tous les monstres, il active la détente et dégage le passage pour Mario.

Cet exemple n'est fourni qu'à titre d'illustration - dans les tentatives réelles de verrouillage de code, tout était plus compliqué. Le joueur ne voit pas de monstres, le niveau est divisé en segments indépendants, dans chacun desquels vous devez savoir combien de fois et quelle brique à battre. Et seul le passage exact de tous les segments ouvre le passage à la sortie du parcours.

Malheureusement, cette approche présente un certain nombre d'inconvénients importants:

  • Une sorte de passionné de nerd peut passer beaucoup de temps et trier tout quantitativement.
  • Un joueur qui réussit frappera simplement les blocs sélectionnés au hasard et, SOUDAINEMENT, ce seront les blocs mêmes qui devront être frappés le même nombre de fois.
  • Les joueurs peuvent simplement télécharger le cours et l'ouvrir dans l'éditeur. Après avoir étudié, avec une diligence raisonnable, ils apprendront le "code".

Nous continuons la recherche d'un moyen de télécharger un niveau infranchissable.

Tentative numéro 2. Pièces rouges


L'utilisateur ReflectivistFox a publié une vidéo de The Impossible Level dans laquelle il a proposé une idée intéressante pour publier un niveau infranchissable. Certes, il y a une limitation importante: nous suivons son cours si vous le jouez du début à la sortie, et il est ABSOLUMENT PRÉCIS - COMPLÈTEMENT - complètement passable si vous utilisez le point de contrôle. Il semblerait que sous de telles restrictions, il n'est pas si intéressant de considérer le concept d'un niveau, mais en fait, même une telle étape est très importante. Vous souvenez-vous toujours que lors du chargement de niveau, il est nécessaire de le parcourir non seulement depuis le début, mais également à partir de chaque point de contrôle? ReflectivistFox a surmonté la moitié de la limitation - son niveau peut être atteint au démarrage, mais pas en mode normal.

L'idée clé est d'utiliser l'élément de jeu «pièce rouge» (je préciserai immédiatement que les joueurs les appellent à la fois «rouge» et «rose». Ils étaient rouges dans les jeux précédents de la série Mario et roses dans Super Mario Maker. Le principe de leur travail est le même, par conséquent, ci-après, je n'utiliserai que «rouge»). Dans les niveaux ordinaires, les pièces rouges sont utilisées dans le cadre de la clé collectée. L'auteur du cours possède plusieurs de ces pièces dans des endroits difficiles d'accès. Dès que Mario les récupère tous (le joueur connaît le nombre exact de pièces), il reçoit la clé d'une porte spéciale, derrière laquelle il peut y avoir des bonus ou un passage plus haut dans le niveau.

Une caractéristique importante est que ces points sont particulièrement affectés par ces points. Checkpoint enregistre le jeu lorsque Mario l'active. Si le joueur perd, le personnage meurt, puis le chargement à partir du dernier point de contrôle se produit. Tous les éléments du jeu sont restaurés: ennemis, bonus et plus encore. Mais pas les pièces rouges. Ils ne sont pas restaurés, bien que le nombre de pièces collectées reste. Et ce n'est pas toute la fonctionnalité. Si vous collectez toutes les pièces rouges et perdez, le comportement change - le compteur sera remis à zéro et les pièces seront à leur place d'origine.

ReflectivistFox à son niveau utilisait deux fonctionnalités du jeu.


Veuillez noter que le point de contrôle (drapeau rouge au centre) est à moitié fermé par le bloc. Un tel paramètre crée un effet intéressant - vous pouvez l'activer en atteignant le bloc supérieur, et lors du chargement du jeu ne peut pas créer un personnage à l'intérieur du bloc, et il "tombera" ci-dessous, près des portes et du dinosaure.

Ainsi, le joueur qui démarre du point de contrôle sera emmené vers un itinéraire alternatif. Sur cette route, l'attend:


Il y a de nombreux éléments et il est très difficile de les décrire brièvement, donc je ne soulignerai que les choses les plus importantes.

Mario apparaît de la porte et son regard est dirigé de la même manière que sur la photo, mais il doit se diriger vers la porte de droite (4). Pour ce faire, il doit parcourir les flèches vers la gauche, monter et parcourir les blocs du haut vers la droite (dans la capture d'écran, le chemin vers le haut et vers la droite longe la bordure, mais vous ne pouvez pas faire un meilleur tir). La construction spéciale des objets (1) interdit au personnage de tourner, s'il le fait, alors l'objet (2) disparaîtra et le mur en mouvement au-dessus de lui fermera le passage. Toutes les autres méthodes sont liées au dragon à l'aide du bloc POW (3) - il repoussera et bougera le dos, ce qui lui permettra d'aller à gauche sans provoquer tôt le groupe (1). Malheureusement, le déplacement de l'unité POW (3) rend impossible l'utilisation de la porte (4). Pour entrer dans la porte, le joueur doit placer quelque chose sous la porte afin d'être au même niveau que lui. Le joueur peut essayer de ramasser le bloc POW (3) avec un tour de main et de le porter à la porte, mais l'auteur s'en est également occupé - la partie verticale de l'itinéraire est trop haute pour être surmontée avec un saut normal. Toutes les options disponibles pour le joueur entraîneront une explosion de POW ou l'impossibilité d'amener cette unité à la porte (4). Ce sont précisément ces situations insolubles qu'un joueur rencontre qui décide de passer ce niveau à partir d'un point de contrôle. Mais comment l'auteur lui-même l'a-t-il transmis lors de sa publication?

Faites attention au bloc (vide), que j'ai marqué avec le chiffre 5. Au départ, une pièce rouge se trouve à cet endroit. Pendant le passage, avant le checkpoint, le joueur ne peut pas passer et va sûrement prendre cette pièce, et c'est pourquoi à cet endroit est maintenant vide. Pendant le contrôle, le jeu ne peut pas déterminer quelles pièces rouges le joueur a collectées.Par conséquent, en chargeant l'état du jeu dans le point de contrôle, il restaure toutes les pièces rouges, donnant au joueur qui commence la chance de les collecter si nécessaire. La deuxième pièce rouge est murée dans le mur et elle est impossible à collecter, ce qui garantit l'impossibilité de réinitialiser le compteur de pièces, et donc, pendant le jeu, il n'y aura pas de pièce à la place du bloc (5) lorsque cela est nécessaire. Et au moment de la publication, il y sera garanti - ce qui vous permet de l'utiliser à la place du bloc POW (3) pour vous déplacer à gauche et sortir calmement de la porte (4). Et il y a déjà une sortie du parcours à proximité.

Le résultat de cette tentative:

  • Vous pouvez passer le niveau si vous n'utilisez pas du tout le point de contrôle. Par conséquent, cette méthode ne nous convient pas.
  • Passer le niveau lors de la publication et pendant le jeu a encore des différences de gameplay, ce qui signifie que nous devons continuer à chercher.

Ne vous découragez pas, continuez et regardez.

Tentative numéro 3. Champignon étrange


La différence a été trouvée! C'est le soi-disant «champignon étrange». Avec une probabilité de 1%, un étrange champignon apparaît à la place de l'habituel.


Voilà à quoi ressemble un champignon étrange.


Mais Mario après, hmm ... en utilisant le champignon. Strange Mario diffère des sauts significativement plus élevés et plus longs habituels. De plus, si Mario mange d'abord un champignon ordinaire, puis étrange, alors Mario deviendra étrange. Si vous faites le contraire, cela restera toujours étrange - un champignon ordinaire n'aura aucun effet.

Si tout était si simple, n'importe qui pourrait créer un niveau comme celui-ci:


La longueur du fossé est spécialement conçue pour que le Mario habituel ne saute pas dessus, et l'étrange est facile. Il suffit de le rejouer encore et encore jusqu'à ce qu'un étrange champignon tombe. Malheureusement, cette méthode ne nous convient pas, car elle donne au total 1% pour la probabilité de réussite. Heureusement, le niveau Nintendo n'est pas non plus content car à 99% il est infranchissable et ils ont décidé de corriger cette situation. Au moment de la publication, d'étranges champignons n'apparaîtront jamais.

Ça y est! Nous avons juste besoin d'inverser la logique. Si pendant le passage habituel le champignon peut tomber, mais pas pendant la publication, alors vous devez tout ramener à un absolu. Il faut forcer le champignon à apparaître, puis dans le mode habituel l'étrange Mario jouera toujours, et au moment de la publication - l'habituel.


Cela peut ressembler à une «ferme de champignons» entière, ce qui forcera Mario à collecter environ 200 champignons (une limite de 100 blocs d'un type, mais vous pouvez en placer 100 dans le monde principal et 100 autres dans le monde supplémentaire).


Et voici un exemple de «piège» pour l'étrange Mario. En raison d'un saut plus élevé, il ne pourra pas se transformer en branche sur la gauche et sera verrouillé jusqu'à la fin du chronomètre (pour être précis, il existe un système astucieux de bombes et d'obstacles qui obligent Mario à sauter plus haut, et pour l'étrange Mario, cela suffit pour se verrouiller, et l'habituel active simplement la bombe et peut dévier).

Le rassembler et résumer:

  • Une très bonne tentative, qui avec juste une énorme probabilité ne permettra pas de passer le jeu en mode normal.
  • Néanmoins, il y a une probabilité de 13,4% (0,99 ^ 200 ~ 0,134, si nous pensons que tout est généré avec une probabilité égale) que l'étrange champignon ne tombe pas et que le niveau soit encore dépassé. Et même si ce n'est pas uniformément, alors il y a encore une chance, et le niveau peut potentiellement être atteint.

Que faire? Dernière chance.

Tentative numéro 4. Blocs avec une double entité


Vous souvenez-vous de la première photo de cet article? Je vais le répéter:


Ce niveau a en fait été publié entre d'autres niveaux. Et il peut encore être publié.

Nintendo a fait du bon travail lorsqu'elle est venue avec la logique de vérifier les niveaux, mais ce n'était pas toujours le cas. À la sortie du jeu, il y avait des bugs. Et si nous en utilisons un, nous pourrons réaliser notre plan.

Vous devez d'abord effacer toutes les données sur Wii U et installer Super Mario Maker v1.0. Vous devez le faire hors ligne pour que le jeu ne soit pas mis à jour. Et il sera possible de jouer au jeu tel qu'il était au moment du lancement.

Maintenant, nous devons parler de blocs avec une double entité. C'est un problème qui a permis aux blocs de se regarder dans un sens, alors qu'en fait ils sont complètement différents. Pour en créer un, vous avez dû prendre l'un des trois types de blocs - une pièce de monnaie, un nuage ou un bloc solide infranchissable, le placer sur la carte, et placer un autre bloc au-dessus du même ensemble, mais en se déplaçant le long de l'itinéraire, puis supprimer l'itinéraire (les blocs avec un itinéraire ont initialement petit chemin).


Nous avons mis un bloc continu avec un itinéraire sur le cloud.

Ces blocs s'effondreront et se comporteront comme le bloc d'origine, et auront l'air superposés. Après un certain temps, Nintendo l'a corrigé, ce qui a cassé tous les niveaux qui utilisaient ce bug, car la réparation de blocs pratiquement doubles n'a été que superposée.


Les blocs (1) ne semblent solides, mais logiquement, ce sont des pièces ordinaires.

Une fois un tel niveau créé, il n'est pas nécessaire de le publier immédiatement. Plus précisément, cela vaut la peine d'essayer - le jeu proposera de suivre notre cours, ce que nous ferons facilement. Mais l'envoi au serveur échoue, nous n'avons pas activé Internet. Mais de toute façon, le niveau sera marqué comme passé et envoyé au serveur sans vérifications supplémentaires. Même après la mise à jour du jeu vers la version actuelle. Dans lequel le cours est déjà impossible à terminer.

C'est fait! Ici, il est - chargé et absolument certainement en aucun cas et en aucun cas est un niveau passable. À la quatrième tentative, le succès a été obtenu. Ceci conclut notre court voyage dans le monde de l'exploration du jeu Super Mario Maker.

Conclusion


Merci d'avoir lu cette feuille de texte avec des photos. J'ai essayé de parler du processus de recherche d'erreurs dans la logique de l'application. Dans ce cas, il s'agit d'un jeu, mais les approches générales sont conservées si elles sont transférées au système et au logiciel d'application. Le code peut être bien écrit, mais cela ne signifie pas que tout fonctionnera comme prévu. Les vulnérabilités logiques sont très dangereuses et difficiles à détecter, mais cela est également intéressant.

Tous les bons jeux, les vulnérabilités et bien!

Source: https://habr.com/ru/post/fr433424/


All Articles