- Giải thích chiến lược lấy ngôi sao Watch for Rolling Rocks trong Super Mario 64 với 0.5 lần nhấn A, không có lần bấm A mới nào, chỉ dùng thao tác giữ A được duy trì từ trước khi bắt đầu
- Đầu vào A được chia thành press, hold và release; nếu tiếp tục giữ A đã nhấn từ ngôi sao trước đó thì có thể được tính là 0.5 cho một ngôi sao riêng lẻ, và là 0 lần nhập thêm trong toàn bộ lượt chạy
- Cốt lõi của chiến lược là di chuyển vị trí home của Scuttlebug và dùng ranh giới kích hoạt căn phòng để nâng nó lên, sau đó tận dụng misalignment và cú nảy để đạt đủ độ cao của bệ ngôi sao
- Tốc độ ngang cần thiết được tạo ra bằng Hyper Speed Walking thông qua việc kết hợp nước nông, dốc đứng, gate và phán định out-of-bounds, và việc tích tốc độ mất khoảng 12 giờ
- Lộ trình di chuyển PU được thiết kế để quay lại main map và tiếp cận elevator cùng bệ ngôi sao bằng cách khớp phép chuyển đổi short của floor collision, syncing speed theo từng độ dốc và căn chỉnh QPU
Tiêu chuẩn của 0.5 lần nhấn A
- Một lần nhấn A không phải là đầu vào xảy ra trong chớp mắt mà được chia thành ba giai đoạn: press, hold, release
- press được dùng để làm Mario nhảy
- hold có thể được dùng cho cú kick nhỏ, swim dưới nước, rơi chậm khi twirl, và rơi chậm khi dùng Wing Cap
- release hiện không có ví dụ nào hữu ích hoặc quan trọng
- 0.5 lần nhấn A có nghĩa là không nhấn A mới mà tiếp tục hold A đã được nhấn trước đó
- Ví dụ Over the Rainbow cho thấy cách tính này
- để tới cannon platform chỉ cần hold A
- lần bắn cannon thứ nhất và lần bắn cannon thứ hai mỗi lần đều cần một A press
- nếu chỉ xét riêng ngôi sao đó thì được tính là 3 lần nhấn A
- trong toàn bộ lượt chạy A Button Challenge, có thể tiếp tục hold A press đã dùng để vào course nhằm đáp ứng yêu cầu hold đầu tiên
- vì vậy Over the Rainbow được tính là 2.5 A presses khi xét riêng một ngôi sao, và thêm 2 A presses khi xét toàn bộ lượt chạy
- Chiến lược Watch for Rolling Rocks cũng bắt đầu khi A đã ở trạng thái được nhấn từ đầu level, và trong toàn bộ lượt chạy thì đầu vào này được tính là nối tiếp từ một A press trước đó
Vận chuyển và nâng Scuttlebug
- Scuttlebug Transportation tận dụng tính chất vị trí home của Scuttlebug sẽ được cập nhật khi nó va chạm với Mario
- Scuttlebug tuần tra trong một bán kính nhất định quanh home
- khi Mario đi vào bán kính đó, nó sẽ thực hiện lunging attack
- nếu Scuttlebug va vào Mario, vị trí của Scuttlebug tại thời điểm va chạm sẽ trở thành home mới
- Việc vận chuyển có một số giới hạn
- Scuttlebug không thể ra khỏi native room của nó và sẽ bị kẹt ở door
- nếu nó đi vào wall từ vị trí thấp hơn home hiện tại quá nhiều thì có thể biến mất, nên cần tránh điều này trong lúc vận chuyển
- Mục tiêu là đưa Scuttlebug và home của nó tới gần góc ngay bên dưới ngôi sao Watch for Rolling Rocks
- Scuttlebug Raising dùng phạm vi kích hoạt của rolling rocks room để nâng Scuttlebug lên cao
- room và các object bên trong chỉ được kích hoạt khi Mario ở trong rolling rocks room hoặc trong vùng vàng nhỏ bên ngoài door
- nếu Mario ở ngoài đó thì room sẽ trông đen và các object trở nên invisible, không di chuyển
- ngay cả khi đang không hoạt động, Scuttlebug vẫn có thể quay về phía Mario và bắt đầu lunge
- sau khi Mario vào vùng vàng để kích hoạt Scuttlebug, nếu Mario rời vùng vàng đúng lúc Scuttlebug đạt đỉnh quỹ đạo thì Scuttlebug sẽ không rơi xuống mà dừng ở độ cao đó
- lặp lại quá trình này sẽ tiếp tục nâng Scuttlebug lên cao hơn
- Bán kính phát hiện của Scuttlebug không phải là hình cầu mà là hình trụ kéo dài vô hạn theo phương dọc, nên dù nó lên cao đến đâu vẫn có thể tiếp tục dụ nó lunge
- Trong chiến lược này, Scuttlebug được làm cho lunge về phía home để nó lơ lửng ngay trên góc đó
- nếu Mario kích hoạt nó khi đang ở trong bán kính của Scuttlebug, Scuttlebug sẽ lunge về phía Mario và có thể di chuyển về phía door
- cách đó nhanh hơn, nhưng chiến lược này cần vị trí gần góc nên không dùng
Misalignment và đạt đủ độ cao
- Phần phía trên của góc có một đặc tính gọi là misalignment
- trong mã trò chơi, floor collision checking và wall collision checking được xử lý theo cách khác nhau
- kết quả là trong một vùng 1x1 unit, Mario có thể không bị đẩy khỏi wall và chui xuống dưới floor
- Nếu Mario ở dưới floor ít hơn 79 units thì sẽ bị snap trở lại lên trên floor
- Ở bước cuối, chiến lược kết hợp cú nảy từ Scuttlebug và ground pound với misalignment để lấy đủ độ cao leo lên bệ Watch for Rolling Rocks
Hyper Speed Walking và di chuyển Parallel Universe
- Tốc độ cần thiết được tạo bằng Hyper Speed Walking
- trên slope quá dốc, bình thường Mario không thể đứng yên và sẽ trượt
- ở phần underwater của một slope ngập trong nước nông, nếu cố chạy uphill thì Mario sẽ chạy lùi và tốc độ tiếp tục tăng mà không có upper bound
- Thông thường Mario sẽ rơi xuống nước hoặc ra khỏi slope nên khó tích được nhiều tốc độ, nhưng có thể dùng gate và out-of-bounds để tích tốc độ tại chỗ
- phần đáy của gate được tính là ceiling
- nếu Mario cố di chuyển quá gần ngay bên dưới ceiling thì trò chơi sẽ từ chối việc dịch chuyển vị trí đó
- sau khi lấy được một lượng tốc độ nhất định, nếu đổi hướng để intended next position vượt qua wall và trở thành out-of-bounds thì trò chơi sẽ không đặt Mario ra out-of-bounds mà giữ Mario đứng nguyên tại chỗ
- vì out-of-bounds kéo dài liên tục nên có thể tích tốc độ lâu hơn so với ceiling của gate
- Trong chiến lược này, gate được mở ra và một phần tốc độ được tạo dưới gate ceiling, sau đó angle được xoay về phía out-of-bounds để tích nốt phần tốc độ còn lại
- Việc tích tốc độ mất khoảng 12 giờ
PU, QPU, syncing speed
- Position của Mario là số dấu phẩy động, nhưng trong floor triangle collision test thì nó được chuyển thành short
- phần lẻ bị truncated
- các giá trị quá lớn hoặc quá nhỏ sẽ được đưa vào khoảng từ -32768 đến 32767 bằng modulo operator
- Dù vị trí thực tế nằm ngoài phạm vi này, vị trí dùng cho floor detection vẫn bị loop trở lại vào hộp ban đầu
- ngay cả khi ở vị trí thực của Mario không có địa hình, nếu vị trí floor detection nằm trên địa hình thì trò chơi vẫn coi Mario đang đứng trên mặt đất
- những vùng hoạt động như bản sao của map gốc như vậy được gọi là Parallel Universe, hay PU
- PU không có graphics, cũng không có object, enemy, coin, star hay wall như elevator hoặc item block
- Trên máy N64, nếu camera đi theo Mario vào PU thì có thể bị crash, nên chiến lược này cố định camera ở main map để tránh crash
- Trò chơi kiểm tra xem Mario có đứng trên floor hay không ở mỗi quarter step của chuyển động
- với kiểu di chuyển PU đơn giản, phải nhảy qua 4 PU trong một lần để mỗi quarter step đều nằm trên địa hình
- khoảng cách 4 PU này được gọi là QPU
- Speed thực tế và de facto speed dùng cho chuyển động là khác nhau
- de facto speed được xác định từ một phần của speed thực tế tùy theo độ dốc của slope
- slope càng dốc thì với cùng một speed, de facto speed càng nhỏ
- Speed khiến khoảng cách QPU khớp với quarter step được gọi là syncing speed
- syncing speed thấp nhất là tốc độ di chuyển chính xác 1 QPU
- các bội số của nó cũng là syncing speed, cho phép di chuyển nhiều QPU trong một lần
- mỗi slope có một tập syncing speed khác nhau
- Trong ví dụ di chuyển PU của Secret Aquarium, cần lần lượt thỏa mãn syncing speed của nhiều slope, và mất khoảng 12 giờ để đạt syncing speed đầu tiên, khoảng 25 giờ để đạt syncing speed thứ hai
- Lộ trình Watch for Rolling Rocks được thiết kế để chỉ cần tích tốc độ trong 12 giờ thay vì 25 giờ
- path đi lên từ hồ gồm hàng chục floor triangle có độ dốc khác nhau
- trong số đó, sáu triangle từ T1 đến T6 được chọn, và độ dốc của chúng giảm nghiêm ngặt
- độ cao của sáu triangle này phủ kín quãng chênh cao cần thiết từ dưới lên trên mà không có khoảng trống
- bằng cách lần lượt dùng các triangle này, bản thiết kế route được hoàn thiện chỉ với first syncing speed của slope ban đầu
Lộ trình cuối cùng và lấy ngôi sao
- Lộ trình cơ bản bắt đầu từ slope Hyper Speed Walking, đi lên theo path phía trên hồ, dùng hai elevator, rồi tới Amazing Emergency Exit platform và được phóng về phía Watch for Rolling Rocks platform
- Trong lúc di chuyển PU, nếu speed hơi thấp hơn syncing speed thì Mario đi relative forward, còn nếu hơi cao hơn thì đi relative backward
- Chỉ cần lệch angle một chút khỏi cardinal direction thì do khoảng cách QPU, sideways movement sẽ bị phóng đại rất nhiều
- Việc quản lý QPU alignment là cực kỳ quan trọng
- lưới tương ứng với bội số của 4 PU được gọi là QPU grid
- khi Mario nằm trên lưới này thì ở trạng thái QPU aligned
- các kiểu di chuyển PU dương khác cần điều kiện đặc biệt như out-of-bounds hoặc đổi slope
- nếu bị QPU misaligned thì có thể rất khó quay lại main map
- Trên lake path, tại mỗi triangle từ T1 đến T6, speed được hạ xuống gần syncing speed của slope đó rồi Mario di chuyển uphill để sang triangle tiếp theo
- mỗi lần đổi triangle, QPU alignment sẽ thay đổi, nhưng route được lên kế hoạch để đến cuối các thay đổi này triệt tiêu lẫn nhau và trở lại trạng thái QPU aligned
- ở triangle thứ sáu, Mario tiếp cận main map bằng cách di chuyển zigzag
- Vì PU không có object nên các elevator chỉ có thể được dùng sau khi đã quay lại main map
- Lý do phải tiếp tục hold A là để có thể nhấn B thực hiện cú kick nhỏ
- nếu không có kick thì Mario sẽ đi xuyên qua elevator
- có kick thì Mario có thể đứng lên elevator và lấy thêm độ cao
- Pha di chuyển cuối cùng là kick về phía Amazing Emergency Exit platform rồi đổi hướng để launch về phía Scuttlebug
- chuyển động này tạo ra displacement 10 PU sang phải và 3 PU xuống dưới, nên Mario được đặt sẵn ở vị trí cao hơn 3 PU và lệch trái 10 PU để kết thúc ở main map
- đồng thời vị trí tương đối trên map cũng được điều chỉnh để có thể thực hiện bước cuối cùng
- Scuttlebug được kích hoạt ngay khi vào phiên bản PU của room, và phải tới nơi trước khi nó rơi xuống quá nhiều nên ở pha tiếp cận cuối chỉ có vài frame dư địa
- Cuối cùng, dùng cú nảy từ Scuttlebug và ground pound trong vùng misalignment để lấy đủ độ cao leo lên bệ Watch for Rolling Rocks, và lấy ngôi sao với 0.5 A presses
1 bình luận
Các ý kiến trên Hacker News
Tôi nghĩ đây chẳng phải là video YouTube hoàn hảo sao
Phía sau có soundtrack Mario tuyệt vời và cảnh gameplay, các biểu đồ tự làm trực quan hóa chuyện đang xảy ra, còn phần thuyết minh thì giải thích những gì trên màn hình
Nó còn tham khảo cả các video YouTube khác và bình luận, cực kỳ chi tiết và uyên thâm, mà cũng không bán thứ gì
Cảm giác như được làm vì tình yêu hơn là vì lượt xem; với tôi, đó là đỉnh cao của YouTube
Rất chi tiết và uyên thâm, đi qua thần kinh hóa học/sinh hóa, tâm lý học, game, hành vi con người, văn hóa và tôn giáo, rồi cả cách chúng thay đổi theo thời gian
Với tôi, những thứ như vậy là đỉnh cao của YouTube
Tôi thì rất khó chịu nổi nhạc nền
Độ sâu kiến thức và năng lực phân tích của pannenkoek thật sự đáng kinh ngạc
Xem các video SM64 xong tôi bị nâng tiêu chuẩn lên, nên rất khó tìm được mức độ nghiêm ngặt và chất lượng sản xuất tương tự ở các game khác
Thứ gần nhất tôi từng thấy đến giờ là một video nói về cách các speedrunner chinh phục yếu tố ngẫu nhiên trong một câu đố của Wind Waker
https://youtu.be/1hs451PfFzQ
AsumSaus cũng có nhiều video mổ xẻ các cơ chế kỳ quặc của Melee
Hầu như cái nào cũng hay nên khó chọn, nhưng https://www.youtube.com/watch?v=rA8kpvTBh8Q và https://www.youtube.com/watch?v=9fo0cPmj4VA là điểm bắt đầu tốt
Kênh này nói về bố trí bộ nhớ, cách các bug ngoài ý muốn hoạt động, tập lệnh CPU, cách mọi thứ diễn ra ở cấp phần cứng, v.v.
Rất khuyến nghị
https://www.youtube.com/@RGMechEx
https://www.youtube.com/channel/UCYDnJiF0_RqSjkjvjRbG1tA
Đặc biệt, series làm Paper Mario crash theo vô số cách kỳ lạ đã trở thành meme
Tiếc là không còn hoạt động từ sau năm 2020
Video ngắn nhưng phân tích tốt
Tôi rất khuyến nghị https://youtu.be/6sPS4yqC72I hoặc https://youtu.be/TM7SutJyDCk
Đây là nerd porn tinh khiết và thật sự tuyệt
Những giải thích kiểu như việc phát hiện va chạm của game thực ra nhận giá trị dấu phẩy động rồi chuyển thành short khiến não tôi được gãi đúng chỗ một cách kỳ lạ
Việc một game như SM64 vẫn mê hoặc và níu chân mọi người sau hàng chục năm kể từ khi phát hành nói lên rất nhiều điều
Có vẻ ngày càng ít game chủ lưu hiện nay chia sẻ được mức độ đam mê như vậy từ người chơi
Toàn bộ lịch sử của thử thách nút A
https://www.youtube.com/watch?v=yXbJe-rUNP8
Video dài hơn 5 tiếng, tôi thường bật làm nền hoặc xem để giết thời gian
Lượng kiến thức và mức độ khai thác bug mà những người này thể hiện thật phi lý
Một số khám phá thật sự điên rồ, và điều đáng kinh ngạc là có quá nhiều thứ chỉ vừa đủ hoạt động
Nhìn chung Bismuth cũng là một YouTuber có chất lượng cao
Tôi đã cười vỡ bụng ở đoạn “tích lũy tốc độ trong 12 giờ”
https://youtu.be/kpk2tdsPh0A?t=640
Lối tư duy thật sự rõ ràng
Thật thích khi trên Internet có nhiều người thông minh đến mức này
Dĩ nhiên ai muốn dùng trí óc của mình thế nào là quyền của họ, nhưng việc dồn tâm sức đến mức này vào một bug cực kỳ khó hiểu của một game khoảng 30 năm tuổi, để chứng minh rằng một màn trình diễn không thể thực hiện trong thực tế nếu không có công cụ hỗ trợ là khả thi về mặt kỹ thuật, trông thật sự kỳ quặc
Video giải thích thì xuất sắc, nhưng mục tiêu nền tảng bên dưới với tôi lại có vẻ vô lý
Nếu bạn thích câu chuyện về vũ trụ song song, tôi rất khuyến nghị xem speedrun SM64 1-Key https://youtube.com/watch?v=iUt840BUOYA, rồi tiếp theo là phần giải thích của Bismuth https://youtube.com/watch?v=wjge1bVobN0
Đây là một thành tựu kỹ thuật thật sự đáng kinh ngạc, dựa rất nhiều trên nghiên cứu của pannenkoek2012
Vũ trụ song song và toàn bộ bối cảnh xung quanh nó đều sinh ra từ việc số nguyên 16-bit bị overflow trong mã kiểm tra sàn
Mario 64 thường lưu vị trí bằng dấu phẩy động, nhưng trong kiểm tra va chạm thì chuyển đổi sang số nguyên 16-bit
Thật sự đáng kinh ngạc
Mỗi khi thấy những người bị một niềm đam mê nào đó thôi thúc mạnh mẽ đến mức dốc vào đó sự tận tụy cực đoan như vậy, tôi lại thấy khâm phục
Hiếm khi tôi từng cảm thấy một niềm đam mê đủ để khiến mình làm việc chăm chỉ đến thế
Đôi khi tôi nghĩ giá mà những người như vậy dùng tài năng và năng lượng của họ vào những việc thật sự quan trọng như chữa bệnh hay các đột phá khoa học thì tốt biết mấy
Ít nhất thì với chính họ, họ cũng có thể cảm thấy tiềm năng lớn của mình không bị lãng phí
Chỉ riêng công sức bỏ vào video này có lẽ cũng đủ để cho ra một bài nghiên cứu tử tế
Tôi ước gì mình có mức động lực như thế trong công việc, nhưng nhìn chung thì chỉ biết thán phục
Tôi thích video này
Gần đây hơn, họ còn làm một video về các yếu tố kỹ thuật cụ thể của N64, và cần lưu ý về số thực dấu phẩy động
https://youtu.be/nYDmBdUalgo
Có ai giới thiệu thêm các video kiểu hố thỏ như bài gốc không?
Chủ đề gì cũng được
Tôi thích những video cho thấy một việc có thể đi sâu đến mức nào
Hiện video tôi thích nhất là https://youtu.be/_hjRvZYkAgA
https://youtu.be/KVgoy_a_gWI
https://youtu.be/6gjsAA_5Agk
Video này cũng giải thích 0,5 lần nhấn A là gì và vì sao người ta quan tâm
Mario 64 không quan tâm đến thao tác thả nút, nên các runner không tính riêng thao tác thả
Vì lúc nào cũng có thể chọn không thả A, nên trong các run tối thiểu số lần nhấn A, họ chỉ thả A để có thể nhấn A lại
Trong phần bình luận trực tiếp có thể giải thích ngắn gọn 0,5 A “nghĩa là gì”, nhưng nếu không có lời giải thích này thì rất dễ thắc mắc vì sao lại phải quan tâm đến nó
Cũng cần giải thích rằng khi giữ A, Mario sẽ có hành vi khác so với khi không nhấn A
Nếu trong trường hợp đầu tiên bạn nhấn A rồi không thả ra, thì trường hợp thứ hai có thể mượn input đó để dùng
Nếu nó quan tâm đến trạng thái đang giữ, như lướt trên không, thì chẳng phải tất yếu nó cũng quan tâm đến trạng thái không giữ, như đang ở trên không nhưng không lướt, hay sao
Để chuyển từ trạng thái đang lướt trên không sang trạng thái ở trên không nhưng không lướt, bạn phải thả nút
Tôi có hiểu sai không?
Tôi mới chỉ chơi M64 khoảng 5 phút, nhưng đã đưa vào danh sách sẽ chơi một ngày nào đó, và vẫn đang cố thuyết phục bọn trẻ mê game này để tôi cũng có cớ dành thời gian chơi
Muốn nhảy lần thứ hai thì trước hết phải thả nút
0,5 thực ra gần với khái niệm một input A được kéo dài qua nhiều màn chơi hơn
Nhìn bề ngoài thì sẽ nghĩ “0,5 rốt cuộc là cái gì?”, nhưng cuối cùng chỉ là vấn đề ngữ nghĩa