Thực hiện phân phối ngẫu nhiên giả?


8

Đôi khi một sự kiện ngẫu nhiên "thực sự" có vẻ không công bằng và khiến người chơi thất vọng. Chẳng hạn, kẻ địch có xác suất 20% để gây sát thương gấp đôi ("đòn chí mạng"). Do đó anh ta có thể thực hiện 4 cú đánh quan trọng liên tiếp với xác suất 1/725. Nó không nhỏ như âm thanh.

Tôi hy vọng xác suất có thể được điều chỉnh sau mỗi lần nhấn. Nếu người chơi chỉ cần có một đòn chí mạng, xác suất sẽ giảm cho lần đánh tiếp theo. Nếu không thì nó tăng lên.

Có một mô hình toán học cho hành vi này?


Câu trả lời:


9

Bạn có thể muốn suy nghĩ lại hoàn toàn những "cú đánh quan trọng" làm gì trong hệ thống của bạn và tại sao bạn lại sử dụng chúng. "Chà, các game nhập vai khác sử dụng chúng!" không phải là một lý do hợp lệ. Một dấu hiệu cảnh báo của một thiết kế sai lệch là cần phải áp dụng các quy tắc ngày càng đặc biệt hơn.

Bất kỳ loại tiền thưởng ngẫu nhiên nào cũng lấy đi từ kỹ năng người chơi trực tiếp, chiến thuật và thêm vào kế hoạch chiến lược (tải vật phẩm RPG, ưu tiên chỉ số trên trang bị, v.v ...). Do sự thay đổi trọng tâm này, bạn phải quyết định trò chơi của mình là gì trước khi áp dụng một cách bừa bãi các tiêu chuẩn cũ như phê bình và dò dẫm.

Đề nghị của tôi là nếu bạn muốn sự ngẫu nhiên tham gia bất kỳ phần nào trong trò chơi của bạn thì hãy vinh quang trong đó, hãy để nó ngẫu nhiên.

Nhưng nếu bạn thực sự muốn thêm nhiều quy tắc tùy ý, bạn có thể chỉ cần bắt đầu đếm ngược khi lần phê bình đầu tiên xảy ra và trong quá trình đếm ngược đó, mọi chỉ trích khác sẽ giảm xuống 50% và sau đó là 25%. Mỗi quan trọng, tất nhiên, đặt lại đếm ngược . Điều này cung cấp cho bạn hai vị trí để điều chỉnh các quy tắc tùy ý của bạn: thời gian đếm ngược là bao lâu và mức giảm được tích lũy ở mỗi mức quan trọng. Một sự kết hợp của hai điều khiển đó cho phép bạn rõ ràng tránh được vấn đề không được nói ra là "nếu ông chủ bị phê phán thì bình thường, sau đó là phê phán thứ hai?" kiểm tra chuỗi đơn giản sẽ không sửa chữa.


5

Dota 2 sử dụng PRD (phân phối ngẫu nhiên giả) không ảnh hưởng đáng kể đến kỳ vọng, nhưng làm giảm cơ hội của một vệt, ví dụ như vệt bash. Có một cái nhìn về điều này, giải thích mọi thứ chi tiết. http://www.youtube.com/watch?v=KdS-K_rosCI


Trong thực tế, nó không. Nó chỉ giới thiệu khái niệm mà không có bất kỳ chi tiết nào về thuật toán này.
Lai Yu-Hsuan

@ LaiYu-Hsuan Nó có, video phiên bản cơ bản có thể làm cho nó dễ hiểu hơn một chút: youtu.be/yR7BcWfBCsc
aaaaaaaaaaaa

3

Tôi nghĩ rằng đây là một trường hợp cố gắng quá thông minh sẽ dẫn đến một loạt các điều chỉnh và điều chỉnh cho trình tạo số ngẫu nhiên sẽ làm cho nó rất phức tạp.

Câu trả lời có thể nằm trong câu hỏi: nếu một người chơi có thể cảm thấy thất vọng vì quá nhiều đòn chí mạng liên tiếp, tốt, trực tiếp làm giảm tỷ lệ xảy ra điều này. Nếu RNG rút ra một điểm quan trọng thứ 4 liên tiếp, chẳng hạn, bạn có thể muốn cuộn lại nó. Hoặc thậm chí thi hành critical = false.


3

Một cách tiếp cận khá phổ biến mà bạn có thể sử dụng sẽ mang lại kết quả như sau: thay vì lăn chết mỗi lần, thay vào đó hãy chọn một thẻ: giả sử bạn có 1/10 cơ hội 'thất bại nghiêm trọng', 4/10 cơ hội thất bại, 4/10 cơ hội thành công và 1/10 cơ hội 'thành công quan trọng'. Sau đó, thay vì lăn một d10 (ẩn dụ) và xử lý kết quả, thay vào đó hãy xáo trộn một chồng mười thẻ kết quả (ảo) và giải quyết chúng, từng cái một, bất cứ khi nào bạn cần tạo ra kết quả như vậy. Khi bạn chạy ra khỏi bộ bài của mình, chỉ cần cải tổ lại và bắt đầu giao dịch lại. Điều này vẫn có thể tạo ra những thất bại quan trọng ngược, nhưng nó đảm bảo rằng sẽ có thành công (và thành công quan trọng) trong một khoảng thời gian hợp lý. Nếu bạn muốn mọi thứ không quá rõ ràng (và đừng bận tâm đến việc đưa ra một cơ hội nhỏ cho kết quả cực kỳ liên tiếp), bạn luôn có thể 'nhân đôi' bộ bài của mình; xây dựng một chồng gồm hai mươi thẻ chứa hai bản sao của mỗi kết quả và thay vào đó xáo trộn.


Đây là một câu trả lời tuyệt vời. Nó tương đương với: nếu bạn muốn 10 số ngẫu nhiên từ 0 đến 100, thay vì nhận một số ngẫu nhiên 10 lần, bạn chỉ cần tạo một mảng với tất cả các tùy chọn có thể (0, 1, 2, ..100) và xáo trộn nó, sau đó sử dụng đầu tiên 10. Điều này tránh lặp lại để nó không hoàn toàn tương đương, nhưng trong nhiều trường hợp, đó là một giải pháp tốt hơn nhiều.
zeh

1

Bayesian Inference xử lý tình huống khá nhiều. Bạn bắt đầu với phân phối xác suất cho một sự kiện xảy ra, sau đó một khi nó xảy ra, bạn cập nhật xác suất này thành một sự kiện mới. Đây là xác suất trước và sau tương ứng. Nó thường hữu ích nhất để xem cái này ở dạng cây (lấy cái này ra khỏi internet).

nhập mô tả hình ảnh ở đây

Trong cây, các nhánh biểu thị xác suất lấy nhánh đó và các nút là sự kiện. Vì vậy, trong trường hợp của bạn, hãy tạo cho A, B, C các sự kiện nhận được một đòn chí mạng bằng các đòn tấn công A, B và C. Sau đó, P và NP sẽ là sự kiện nhận được một thứ khác hay không. Chúng tôi nhận thấy rằng vào thời điểm (B -> P) có một cơ hội 25% nhận được một đòn chí mạng cho rằng bạn có một trong những lượt cuối cùng. Tất nhiên cây của bạn sẽ không giống như thế này, nhưng đó là điều tốt nhất tôi có thể làm trong 5 phút.


1
Suy luận Baysian không có gì để làm với điều này!
bắt đầu từ

@starwed sau đó bạn có muốn đưa ra một thuật ngữ khác thay vì chỉ la hét với tôi không?
Jemmy

@Jeremy, bạn cần trả lời cách giải quyết vấn đề của OP. Cho đến nay, bạn chỉ cần sắp xếp lại câu hỏi của mình bằng một minh họa toán học. Nhưng điều đó không nói cho OP biết làm thế nào để RNG vui hơn.
kurtzbot

1

Tôi nghĩ rằng đã có một số câu trả lời hay được đưa ra ở trên nhưng sẽ gợi ý một cách tiếp cận khác.

Khi người chơi thực hiện một đòn chí mạng, bạn sẽ cho anh ta một phần thưởng nhỏ để lôi kéo chơi tiếp. Giống như cách một người nghiện cờ bạc sẽ ở lại bàn poker trong 'chỉ một chút nữa thôi' sau khi thắng ván bài. Khi kẻ địch bị tấn công nghiêm trọng, nó có thể không làm tăng trải nghiệm trò chơi mà chỉ cảm thấy không công bằng, đặc biệt nếu đó là điều khiến họ thua trận.

Do đó, đề nghị của tôi là chỉ giữ các crits cho người chơi và không sử dụng chúng cho kẻ thù. Sau tất cả, người chơi là một anh hùng và nên được các vị thần ưu ái để đạt được sự vĩ đại :)


0

Dưới đây là những kỹ thuật ngẫu nhiên nhưng không hoàn toàn ngẫu nhiên mà tôi sử dụng.

1) Túi xáo trộn. Đặt tất cả các kết quả hợp lệ trong một túi, chọn ngẫu nhiên và loại bỏ nó khỏi túi. Lặp lại cho đến khi túi rỗng sau đó đổ đầy túi. Để thêm lại một cách ngẫu nhiên, hãy đổ đầy túi khi nó chỉ còn X vật phẩm.

2) Tỷ lệ phần trăm lũy tiến. Cơ hội đầu tiên X%, nếu thất bại lần thứ hai là X + Y%, sau đó X + 2Y%, v.v. Đặt lại thành X% khi thành công. Cả giá trị bắt đầu và tiến trình có thể được điều chỉnh (thậm chí phi tuyến tính).

3) Thời gian hồi chiêu nội bộ. Cuộn X & cơ hội, nếu thành công, không lăn trong N giây tiếp theo hoặc lần thử M hoặc bất cứ điều gì. Có thể kết hợp với các phương pháp khác. Để thêm tính ngẫu nhiên, có nhiều kiểm tra sự kiện với các coodlown khác nhau, tức là thực hiện 2 cuộn ở mức 25% với thời gian hồi chiêu nội bộ 3 và 7 giây trái ngược với 1 cuộn với 50% với icd 5s (không chính xác như nhau, nhưng bạn có thể tính toán và phù hợp nếu quan trọng).

4) Khoảng cách cán trước. Thay vì kiểm tra so với phần trăm mỗi sự kiện, chỉ cần chọn khi sự kiện xảy ra. Ví dụ: "ông chủ này tấn công mỗi lần tấn công 1d4 + 4". Hoạt động tốt khi muốn một cái gì đó xảy ra tương đối nhất quán và hơi ngẫu nhiên, nhưng bạn không muốn quay lại các sự kiện. Trong một số trường hợp, một trường hợp đặc biệt của phương thức (2) cộng (3). Một lần nữa để ngẫu nhiên hơn, bạn có thể có 2 hoặc nhiều chuỗi trùng lặp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.