Bạn đã bao giờ cảm thấy bối rối trước số lượng từ viết tắt trong thế giới game chưa? Từ thể loại game đến thuật ngữ kỹ thuật, có rất nhiều thứ cần theo dõi. Ví dụ, RNG là một trong số đó.
Trong bài viết này, chúng ta sẽ tìm hiểu RNG là gì trong bối cảnh game video. Bài viết sẽ giải thích ý nghĩa của RNG, đi sâu vào một số ví dụ và xem liệu nó có thể áp dụng như thế nào trong speedrunning – một hình thức phá đảo game.
RNG là gì?
RNG là viết tắt của Random Number Generator (Máy phát số ngẫu nhiên). Đây được định nghĩa là một thiết bị hoặc thuật toán có khả năng tạo ra các con số ngẫu nhiên. Trong ngữ cảnh chơi game, RNG đề cập đến các sự kiện không giống nhau xảy ra mỗi lần bạn chơi.
Máy tính gặp khó khăn trong việc tạo số ngẫu nhiên. Điều này là do máy tính được lập trình để làm theo một hướng dẫn cụ thể, không hoàn toàn ngẫu nhiên. Bạn không thể bảo máy tính “Hãy tạo cho mình một con số ngẫu nhiên”, vì điều đó mâu thuẫn với mục đích của nó.
True RNG và Pseudo-RNG
Để tạo ra một con số ngẫu nhiên thực sự bằng máy tính, bạn cần sử dụng một thiết bị vật lý được gọi là hardware random number generator (trình tạo số ngẫu nhiên phần cứng). Công cụ này sử dụng các quá trình vật lý nhỏ như tiếng ồn điện tử để tạo ra các con số ngẫu nhiên.
Không ai có thể dự đoán hoặc biết trước những gì sẽ xảy ra với các sự kiện như vậy, nên chúng thực sự ngẫu nhiên nhất có thể. Loại RNG này rất quan trọng trong các hệ thống tập trung vào bảo mật và được sử dụng trong các hình thức mã hóa phổ biến. Việc ai đó có thể tìm ra cách hệ thống tạo ra các con số ngẫu nhiên trong một giao thức mã hóa sẽ gây ra rắc rối lớn.
Tuy nhiên, điều này không phải là mối quan tâm chính với RNG trong chơi game. Để có tốc độ nhanh và việc tái tạo dễ dàng hơn, nhiều chương trình và game sử dụng thứ được gọi là pseudorandom number generation (tạo con số giả ngẫu nhiên).
Pseudo-RNG sử dụng một thuật toán để thực hiện các phép toán trên một giá trị “seed” (khởi đầu) nhằm tạo ra một con số ngẫu nhiên. Để có các kết quả khác nhau mỗi lần, việc sử dụng một seed ngẫu nhiên là vô cùng quan trọng.
Một ví dụ đơn giản là sử dụng số mili giây hiện tại làm seed, và sau đó thực hiện một số phép toán trên nó:
int rand = (a * milliseconds + b) % c
Mặc dù điều này không thực sự ngẫu nhiên, vì việc sử dụng cùng một seed sẽ tạo ra kết quả giống nhau mỗi lần, nhưng nó là đủ tốt cho các game video.
Ví dụ về RNG trong chơi game
Bây giờ, khi chúng ta đã hiểu về kỹ thuật của RNG, hãy xem một số ví dụ về cách RNG hình thành vai trò trong các game.
Loot RNG
RNG chơi một vai trò quan trọng trong các game tập trung vào việc thu thập loot như Destiny, Borderlands và Diablo. Khi bạn mở một rương kho báu hoặc đánh bại một kẻ thù, phần thưởng được tạo ra sẽ không giống nhau trong mỗi trường hợp. Game xác định các phần thưởng ngẫu nhiên mỗi lần, vì vậy bạn có thể gặp may mắn và nhận được một vật phẩm siêu hiếm ngay lập tức, hoặc bạn có thể nhận được một bộ áo giáp cấp thấp.
Tuy nhiên, để giữ cho trò chơi cân bằng, việc xác định loot drop không hoàn toàn ngẫu nhiên. Các game có hệ thống để ngăn bạn nhận được vũ khí tốt nhất từ rương kho báu đầu tiên bạn mở. Mỗi game có cách xử lý khác nhau, có thể giới hạn vật phẩm dựa trên cấp độ của bạn.
Việc nhận được những chiến lợi phẩm tốt hơn là một trong những lý do khiến game video trở nên “gây nghiện”.
Xác định tỷ lệ phần trăm cơ hội với RNG
Nhiều game sử dụng RNG để xác định tỷ lệ phần trăm xảy ra của một sự kiện nào đó. Điều này thường được thấy trong các game nhập vai.
Ví dụ, khi bạn tấn công trong các game nhập vai như Persona 5 hoặc Chrono Trigger, bạn có thể kích hoạt một đòn chí mạng gây thêm sát thương. Điều này xảy ra ngẫu nhiên, mặc dù trong nhiều game, bạn có thể tăng cơ hội bằng cách sử dụng một số vật phẩm nhất định. Trong game Pokemon, RNG xác định xác suất gặp được các con pokemon hoang dã và loại nào bạn sẽ gặp phải.
Những ví dụ tương tự này xuất hiện trong các game như Super Smash Bros. Nhân vật Mr. Game & Watch có một động thái gọi là Judge, hiển thị một số từ 1 đến 9 khi được sử dụng. Giá trị này được xác định bằng RNG, trừ khi bạn gặp phải cùng một số hai lần liên tiếp.
Thực hiện procedural generation thông qua RNG
RNG là trung tâm của procedural generation, xu hướng phổ biến trong chơi game. Procedural generation đề cập đến quá trình tạo nội dung game thông qua thuật toán thay vì việc tạo từng phần một.
Các game nổi tiếng như Minecraft và Spelunky sử dụng procedural generation để tạo ra thế giới độc đáo thông qua một giá trị seed, vì vậy mỗi người chơi sẽ có một trải nghiệm khác nhau mỗi khi chơi.
Giống như các hình thức RNG khác, các nhà phát triển game đưa ra hạn chế để không tạo ra những thế giới quá ngẫu nhiên. Ví dụ, bạn không sẽ tìm thấy các khối đất nổi ngẫu nhiên trên một đại dương trong Minecraft.
RNG trong speedrunning
Bạn có thể đã nghe về RNG trong speedrunning – việc phá đảo game. Với những người chơi speedrunner, mục tiêu là hoàn thành một game trong thời gian ngắn nhất có thể. Do đó, RNG mang đến yếu tố không thể đoán trước cho trò chơi speedrun.
Mặc dù thường gây khó khăn, nhưng RNG không phải lúc nào cũng mang nghĩa tiêu cực trong speedrun. Sự khác biệt giữa các lần chơi có thể làm cho trò chơi thú vị hơn, vì nó giúp cải thiện thời gian với một chút may mắn.
RNG speedrun nhỏ đến trung bình
Đôi khi, RNG không quan trọng đối với mỗi lần chơi. Ví dụ, vị trí chính xác mà kẻ thù xuất hiện trong một phòng, hoặc việc bạn bị đòn chí mạng trong một cuộc chiến thông thường hay không, không ảnh hưởng rất lớn đến thời gian tổng cộng.
Trong các trường hợp khác, RNG có thể gây ra sự chậm lại đáng kể. Ví dụ, trong Super Mario Sunshine, trận đấu với King Boo liên quan đến việc quay một máy chơi game slot với 5 kết quả có thể xảy ra. Để đánh bại King Boo, trước tiên bạn phải ghép ba biểu tượng quả dứa để tạo ra nhiều loại trái cây.
Sau đó, bạn phải ném một quả ớt vào King Boo để cháy lưỡi của nó và sau đó đánh nó bằng bất kỳ loại trái cây nào khác. Với RNG tốt, quả ớt sẽ xuất hiện ở một vị trí thuận tiện để bạn có thể nhanh chóng hoàn thành trận chiến. Tuy nhiên, nếu không may, bạn có thể phải quay roulette nhiều lần.
RNG “phá game”
Một số game có phần không may với RNG có thể làm hỏng trò chơi của bạn. Ví dụ, điều này xảy ra trong Banjo-Kazooie.
Gần cuối game, bạn tham gia một chương trình đố vui được gọi là Grunty’s Furnace Fun, kiểm tra bạn thông qua các câu hỏi về cuộc phiêu lưu. Những câu hỏi có thể liên quan đến Gruntilda, nhân vật phản diện trong game. Nếu bạn đã nói chuyện với chị gái của Gruntilda, Brentilda, suốt game, cô ấy sẽ cho bạn câu trả lời cho những câu hỏi này.
Tuy nhiên, câu trả lời chính xác cho những câu hỏi này lại ngẫu nhiên trong mỗi lần chơi. Speedrunner không muốn lãng phí thời gian nói chuyện với Brentilda, vì vậy họ phải đoán câu trả lời trong thời gian chính xác. Điều này hoàn toàn dựa vào may mắn. Nếu bạn trả lời sai quá nhiều lần, bạn có thể “chết” và mất rất nhiều thời gian.
Sự phụ thuộc vào RNG này vào cuối game gây khó chịu cho speedrun, vì người chơi không thể làm gì khác ngoài hy vọng may mắn. Mặc dù vậy, speedrunner thường tìm cách vượt qua những rào cản này, như video dưới đây:
Vận dụng RNG
Như chúng ta đã thảo luận, pseudo-RNG trong game không thực sự ngẫu nhiên, vì bạn có thể tái tạo kết quả nếu bạn sử dụng cùng một seed. Nhiều game sử dụng bộ đếm thời gian nội bộ làm seed, có thể hơi khó khai thác. Nhưng có nhiều game dễ dàng hơn để chơi.
Golden Sun, một game nhập vai trên Game Boy Advance, là một ví dụ tuyệt vời về điều này. Game xác định phần thưởng bạn nhận được khi hoàn thành một trận chiến dựa trên những hành động bạn thực hiện trong cuộc đối đầu. Điều này có nghĩa là nếu bạn chiến đấu trong một trận chiến chống lại cùng một kẻ thù bằng cách sử dụng cùng một chiến thuật, bạn sẽ nhận được cùng một vật phẩm như vậy mỗi lần.
Speedrunner có thể sử dụng các công cụ giả lập để phân tích một game và tìm hiểu liệu họ có thể thao túng RNG của nó hay không. Sau đó, họ có thể tận dụng lợi thế bằng cách đảm bảo kết quả mong muốn hoặc giảm thiểu việc lãng phí thời gian tiềm năng từ RNG. Tuy nhiên, với những người chơi bình thường không biết về seed, loại RNG này đã đủ ngẫu nhiên.
Bài viết đã điểm qua RNG là gì, ví dụ về cách RNG ảnh hưởng đến các game và cách áp dụng nó trong speedrun. Bây giờ bạn hiểu rõ hơn về vai trò của RNG trong chơi game.
Bài viết được chỉnh sửa bởi HEFC. Hãy ghé thăm trang web HEFC để tìm hiểu thêm thông tin về các khóa học liên quan đến lĩnh vực công nghệ và game.