Entri ini menceritakan kembali video secara gratis.
Mungkinkah Mengunggah Tingkat Tidak Mungkin di Super Mario Maker? . Ada tautan ke video
The Impossible Level di dalam video, jadi saya akan menceritakannya kembali. Menceritakan kembali saya tidak berpura-pura akurat, saya hanya ingin berbagi materi yang menarik.
Apa yang akan dibahas
Menemukan bug dalam perangkat lunak bisa sangat berbeda. Saya mencari kesalahan dalam kode sumber, dalam file biner, di kompleks perangkat lunak besar, dan bahkan di beberapa perangkat keras. Tetapi ada area di mana saya hampir tidak pernah melakukan apa pun - mencari kesalahan dalam permainan komputer.
Orang-orang menghabiskan banyak waktu untuk menemukan bug di game. Ini bisa menjadi kesalahan logis, matematis dan bahkan programmer. Seseorang melakukan ini untuk melihat permainan dari sudut yang baru, sementara seseorang mencoba untuk melewati permainan setidaknya beberapa detik lebih cepat daripada pemain lain. Tampaknya bagi saya bahwa komunitas speedraners (orang-orang yang bermain game untuk kecepatan) yang membuat kontribusi besar untuk mencari gangguan dan kesalahan game. Tapi kami akan menghemat waktu selama bagian itu di lain waktu, hari ini hanya cerita tentang menemukan kesalahan dalam logika game.
Pada September 2015, Nintendo merilis Super Mario Maker, platformer tentang tukang ledeng Mario yang terkenal. Salah satu fitur kunci dari permainan adalah kemampuan bagi pengguna untuk membuat level sendiri (di sini mereka disebut kursus) dan membaginya dengan pemain lain. Seseorang menciptakan level, melacak persentase keberhasilan, dan seseorang, pada kenyataannya, melewati level-level ini. Pada saat inilah para pemain peneliti menyisir tangan mereka - apakah mungkin untuk menerbitkan level yang tidak bisa dilewati?
Tidak ada gunanya menggambar sesuatu seperti itu, meskipun levelnya benar-benar tidak bisa dilewati, kami juga tidak akan bisa menerbitkannya.
Nintendo menghadapi tugas yang agak menarik - bagaimana mencegah perpustakaan menjadi "berantakan" dengan level yang kosong dan tidak bisa dilewati. Dan mereka berhasil mengatasinya. Solusinya cukup elegan dan telah digunakan lebih dari satu kali dalam gim dengan konsep kreatif serupa: Anda harus melewati level sendiri sebelum menerbitkan dan mengunggahnya ke server. Dan sekali dari awal dan sekali dari setiap pos pemeriksaan. Bahkan, tugas bermuara pada kenyataan bahwa perlu untuk mengembangkan kursus yang penulis dapat ambil selama publikasi, tetapi tidak setelah itu.
Mencoba nomor 1. Kunci kode
Gim ini memiliki banyak objek yang berinteraksi satu sama lain sesuai aturan yang diketahui. Anda dapat mencoba memainkan sesuatu seperti kunci kode.
Misalnya, Anda dapat mengambil benda kerja berikut:
Kupa (1) tidak dapat melewati segerombolan monster di jalurnya (3), dengan pengecualian hantu (2). Monster, sementara di kepala masing-masing, tidak tersebar dan diam. Jika Mario menabrak balok bata (4), maka monster yang lebih rendah dari tumpukan akan mati, menjatuhkan hantu satu blok lebih rendah. Jika hantu itu di baris yang sama dengan kompartemen, dia bisa melangkah lebih jauh. Penulis level mengetahui jumlah monster sebelum masing-masing hantu, dan dia tahu berapa kali Anda harus menekan setiap blok untuk membersihkan jalan bagi kompartemen. Begitu coupe melewati semua monster, itu mengaktifkan pelatuk dan membersihkan bagian untuk Mario.
Contoh ini hanya untuk tujuan ilustrasi - dalam upaya nyata untuk membuat kunci kode, semuanya menjadi lebih rumit. Pemain tidak melihat monster, level dibagi menjadi segmen independen, di mana masing-masing Anda perlu tahu berapa kali dan batu bata mana yang harus dikalahkan. Dan hanya bagian yang pasti dari semua segmen yang membuka bagian ke pintu keluar dari kursus.
Sayangnya, pendekatan ini memiliki sejumlah kelemahan signifikan:
- Semacam penggemar
kutu buku dapat menghabiskan banyak waktu dan memilah-milah semuanya secara kuantitatif. - Seorang pemain yang sukses hanya akan memukul blok yang dipilih secara acak dan, TUNGGU, ini akan menjadi blok yang sangat perlu untuk mencapai jumlah yang sama kali.
- Pemain cukup mengunduh kursus dan membukanya di editor. Setelah belajar, dengan uji tuntas, mereka akan mempelajari "kode".
Kami terus mencari cara untuk mengunduh level yang tidak dapat dilewati.
Mencoba nomor 2. Koin merah
Pengguna ReflectivistFox menerbitkan video
The Impossible Level di mana ia mengusulkan ide yang menarik untuk menerbitkan tingkat yang tidak bisa dilewati. Benar, ada batasan yang signifikan: kita melalui jalurnya jika Anda memainkannya dari awal hingga keluar, dan AKURASI SECARA BENAR-BENAR-SEMUA tidak dapat dilewati jika Anda menggunakan pos pemeriksaan. Tampaknya di bawah pembatasan seperti itu tidak begitu menarik untuk mempertimbangkan konsep level, tetapi pada kenyataannya, bahkan langkah seperti itu sangat penting. Apakah Anda masih ingat bahwa selama pemuatan tingkat perlu untuk melewatinya tidak hanya dari awal, tetapi juga dari setiap pos pemeriksaan? ReflectivistFox mengatasi setengah dari batasan - levelnya dapat dicapai pada saat boot, tetapi tidak dalam mode normal.
Gagasan utamanya adalah menggunakan elemen permainan "koin merah" (Saya akan segera mengklarifikasi bahwa para pemain menyebut mereka berdua "merah" dan "merah muda.") Mereka merah di game sebelumnya di seri Mario dan pink di Super Mario Maker. Prinsip kerja mereka sama, oleh karena itu, selanjutnya saya hanya akan menggunakan "merah"). Dalam level biasa, koin merah digunakan sebagai bagian dari kunci yang dikumpulkan. Penulis kursus memiliki beberapa koin seperti itu di tempat-tempat yang sulit dijangkau. Segera setelah Mario mengumpulkan semuanya (pemain mengetahui jumlah persis koin), ia menerima kunci ke pintu khusus, di belakangnya mungkin ada beberapa bonus atau bagian yang lebih jauh ke atas.
Fitur penting adalah bahwa titik-titik ini sangat dipengaruhi oleh titik-titik ini. Checkpoint menyimpan permainan saat Mario mengaktifkannya. Jika pemain kalah, karakter mati, kemudian memuat dari pos pemeriksaan terakhir terjadi. Semua elemen gim dipulihkan: musuh, bonus, dan lainnya. Tapi bukan koin merah. Mereka tidak dipulihkan, meskipun jumlah koin yang dikumpulkan tetap. Dan ini bukan fitur keseluruhan. Jika Anda mengumpulkan semua koin merah dan kalah, maka perilakunya berubah - penghitung akan diatur ulang ke nol, dan koin akan berada di tempat asalnya.
ReflectivistFox pada levelnya menggunakan dua fitur permainan.
Harap dicatat bahwa pos pemeriksaan (bendera merah di tengah) setengah tertutup oleh blok. Pengaturan seperti itu menciptakan efek yang menarik - Anda dapat mengaktifkannya dengan mencapai blok teratas, dan ketika memuat game tidak akan dapat membuat karakter di dalam blok, dan itu akan "drop out" di bawah, dekat pintu dan dinosaurus.
Dengan demikian, pemain yang melakukan booting dari pos pemeriksaan akan dibawa ke rute alternatif. Pada rute ini yang berikut menantinya:
Ada banyak elemen dan sangat sulit untuk dijelaskan secara singkat, jadi saya hanya akan menyoroti hal-hal yang paling penting.
Mario muncul dari pintu dan pandangannya diarahkan dengan cara yang sama seperti pada gambar, tetapi ia harus menuju ke pintu ke kanan (4). Untuk melakukan ini, ia harus berjalan di sepanjang panah ke kiri, naik dan pergi melalui blok dari atas ke kanan (dalam tangkapan layar, jalan naik dan ke kanan berjalan di sepanjang perbatasan, tetapi Anda tidak dapat membuat tembakan yang lebih baik). Konstruksi khusus objek (1) melarang karakter berputar, jika dia melakukannya, maka objek (2) akan menghilang, dan dinding yang bergerak di atasnya akan menutup lorong. Semua metode lain terikat pada naga menggunakan blok POW (3) - ia akan mendorong dan menggerakkan punggungnya, yang akan memungkinkannya untuk pergi ke kiri tanpa memprovokasi kelompok sebelumnya (1). Sayangnya, memindahkan unit POW (3) membuatnya tidak mungkin menggunakan pintu (4). Untuk memasuki pintu, pemain harus meletakkan sesuatu di bawah pintu agar sejajar dengannya. Pemain dapat mencoba untuk mengambil blok POW (3) dengan sulap dan membawanya ke pintu, tetapi penulis juga mengurus hal ini - bagian vertikal dari rute terlalu tinggi untuk diatasi dengan lompatan normal. Semua opsi yang tersedia untuk pemain akan menyebabkan ledakan POW atau ketidakmampuan untuk membawa unit ini ke pintu (4). Justru situasi yang tidak dapat dipecahkan ini sehingga seorang pemain bertemu yang memutuskan untuk lulus level ini dari pos pemeriksaan. Tetapi bagaimana penulis sendiri memberikannya saat publikasi?
Perhatikan blok (kosong), yang saya tandai dengan angka 5. Awalnya, sebuah koin merah terletak di tempat ini. Selama perjalanan, sebelum pos pemeriksaan, pemain tidak bisa lewat dan pasti akan mengambil koin ini, dan itulah sebabnya di tempat ini sekarang kosong. Selama pemeriksaan, permainan tidak dapat menentukan koin merah mana yang telah dikumpulkan pemain, oleh karena itu, dengan memuat keadaan permainan di pos pemeriksaan, ia mengembalikan semua koin merah, memungkinkan pemain penjelajahan untuk mengumpulkan semuanya jika diperlukan. Koin merah kedua ditembok ke dinding dan tidak mungkin untuk mengumpulkan, sehingga memastikan ketidakmampuan untuk me-reset penghitung koin, dan oleh karena itu, selama permainan, tidak akan ada koin di tempat blok (5) saat dibutuhkan. Dan pada saat publikasi, itu akan dijamin di sana - yang memungkinkan Anda untuk menggunakannya alih-alih blok POW (3) untuk bergerak ke kiri dan dengan tenang keluar dari pintu (4). Dan sudah ada jalan keluar dari jalur terdekat.
Hasil dari upaya ini:
- Anda dapat lulus level jika Anda tidak menggunakan pos pemeriksaan sama sekali. Karena itu, metode ini tidak cocok untuk kita.
- Melewati level selama publikasi dan selama game masih memiliki perbedaan gameplay, yang berarti kita harus terus mencari.
Jangan berkecil hati, teruskan dan lihat.
Mencoba nomor 3. Jamur aneh
Perbedaannya ditemukan! Inilah yang disebut "jamur aneh." Dengan probabilitas 1%, jamur aneh muncul bukan yang biasa.
Seperti inilah rupa jamur yang aneh.
Tapi Mario setelah, hmm ... menggunakan jamur. Strange Mario berbeda dari lompatan yang biasanya lebih tinggi dan lebih lama. Selain itu, jika Mario pertama kali makan jamur biasa, dan kemudian aneh, maka Mario akan menjadi aneh. Jika Anda melakukan yang sebaliknya, itu akan tetap aneh - jamur biasa tidak akan memiliki efek apa pun.
Jika semuanya begitu sederhana, maka siapa pun dapat membuat level seperti ini:
Panjang parit dirancang khusus agar Mario yang biasa tidak melompati parit itu, dan yang aneh itu mudah. Cukup untuk mengulanginya berulang-ulang sampai jamur aneh keluar. Sayangnya, metode ini tidak cocok untuk kita, karena memberikan keseluruhan 1% untuk kemungkinan lulus. Untungnya, level Nintendo juga tidak senang karena fakta bahwa 99% tidak dapat dilewati dan mereka memutuskan untuk memperbaiki situasi ini. Pada saat publikasi, jamur aneh tidak akan pernah muncul.
Ini dia! Kita hanya perlu membalikkan logika. Jika selama bagian yang biasa jamur bisa rontok, tetapi tidak selama publikasi, maka Anda harus membawa semuanya menjadi absolut. Hal ini diperlukan untuk memaksa jamur muncul, dan kemudian dalam mode biasa Mario aneh akan selalu bermain, dan pada saat publikasi - yang biasa.
Ini mungkin terlihat seperti “peternakan jamur” keseluruhan, yang akan memaksa Mario untuk mengumpulkan sekitar 200 jamur (batas 100 blok dari satu jenis, tetapi Anda dapat menempatkan 100 di dunia utama dan 100 lainnya di yang tambahan).
Dan ini adalah contoh dari "jebakan" untuk Mario yang aneh. Karena lompatan yang lebih tinggi, ia tidak akan dapat berubah menjadi cabang di sebelah kiri dan akan dikunci sampai penghitung waktu berakhir (tepatnya, ada sistem bom dan rintangan yang memaksa Mario melompat lebih tinggi, dan untuk Mario yang aneh ini cukup untuk mengunci dirinya sendiri, dan yang biasa hanya mengaktifkan bom dan bisa keluar tentu saja).
Menyatukan dan meringkas:
- Upaya yang sangat baik, yang hanya dengan probabilitas besar tidak akan memungkinkan untuk melewati permainan dalam mode normal.
- Namun ada kemungkinan 13,4% (0,99 ^ 200 ~ 0,134, jika kita percaya bahwa semuanya dihasilkan dengan probabilitas yang sama) bahwa jamur aneh tidak akan rontok, dan levelnya masih akan dilewati. Dan kalaupun tidak merata, maka masih ada peluang, dan level tersebut berpotensi tercapai.
Apa yang harus dilakukan Kesempatan terakhir.
Mencoba nomor 4. Blok dengan entitas ganda
Apakah Anda ingat gambar pertama artikel ini? Saya akan mengulanginya:
Level ini sebenarnya diterbitkan di antara level lainnya. Dan itu masih bisa diterbitkan.
Nintendo melakukan pekerjaan dengan baik ketika dia datang dengan logika memeriksa level, tetapi ini tidak selalu terjadi. Ketika game baru saja dirilis, ia memiliki bug. Dan jika kita menggunakan salah satunya, kita akan dapat memenuhi rencana kita.
Pertama, Anda perlu menghapus semua data di Wii U dan menginstal Super Mario Maker v1.0. Anda harus melakukan ini secara offline agar gim tidak diperbarui. Dan akan dimungkinkan untuk memainkan permainan seperti pada saat peluncuran.
Sekarang kita perlu berbicara tentang blok dengan entitas ganda. Ini adalah kesalahan yang membuat blok terlihat satu arah, padahal sebenarnya semuanya sangat berbeda. Untuk membuat satu, Anda harus mengambil salah satu dari tiga jenis blok - koin, awan atau blok padat yang tidak bisa dilewati, letakkan di peta, dan letakkan blok lain di atas set yang sama, tetapi bergerak di sepanjang rute, dan kemudian hapus rute (blok dengan rute awalnya memiliki cara kecil).
Kami menempatkan blok berkelanjutan dengan rute di cloud.
Blok tersebut akan runtuh dan berperilaku seperti blok asli, dan terlihat seperti ditumpangkan. Setelah beberapa waktu, Nintendo menambalnya, yang memecah semua level yang menggunakan bug ini, karena perbaikan blok hampir ganda hanya tersisa ditumpangkan.
Blok (1) hanya terlihat solid, tetapi secara logis itu adalah koin biasa.
Setelah level seperti itu dibuat, tidak perlu mempublikasikannya segera. Lebih tepatnya, ini patut dicoba - permainan akan menawarkan untuk mengambil kursus kami, yang akan kami lakukan dengan mudah. Tetapi mengirimkannya ke server gagal, kami tidak menghidupkan Internet. Tapi bagaimanapun, level akan ditandai sebagai lulus dan dikirim ke server tanpa pemeriksaan tambahan. Bahkan setelah memperbarui game ke versi saat ini. Di mana tentu saja sudah mustahil untuk diselesaikan.
Selesai! Ini dia - dimuat dan tentu saja tidak ada cara dan dalam keadaan apa pun adalah level yang lumayan. Pada upaya keempat, kesuksesan tercapai. Ini menyimpulkan perjalanan singkat kami ke dunia eksplorasi game Super Mario Maker.
Kesimpulan
Terima kasih telah membaca lembaran teks ini dengan gambar. Saya mencoba berbicara tentang proses menemukan kesalahan dalam logika aplikasi. Dalam hal ini, ini adalah permainan, tetapi pendekatan umum dipertahankan jika dipindahkan ke sistem dan perangkat lunak aplikasi. Kode dapat ditulis dengan baik, tetapi ini tidak berarti bahwa semuanya akan berfungsi sebagaimana dimaksud. Kerentanan logis sangat berbahaya dan sulit dideteksi, tetapi ini juga menarik.
Semua game bagus, kerentanan dan bagus!