2 điểm bởi GN⁺ 2024-04-05 | 1 bình luận | Chia sẻ qua WhatsApp
  • Build trong Mario Kart 8 có hiệu năng khác nhau tùy theo tổ hợp tay đua, thân xe, lốp, tà lượn, nên rất khó chọn ra build tối ưu giữa vô số phương án
  • Nếu chỉ nhìn vào tốc độ thì Bowser hoặc Wario có vẻ là lựa chọn tốt, nhưng lựa chọn thực tế trong đua xe gần với bài toán tối ưu đa mục tiêu, nơi phải xét đồng thời tốc độ và gia tốc
  • Những lựa chọn như Koopa, chậm hơn ở cùng mức gia tốc hoặc có gia tốc thấp hơn ở cùng tốc độ, có thể bị loại là lựa chọn bị chi phối
  • Các lựa chọn còn lại tạo thành Pareto front, nhưng phương án nào là tốt nhất trong đó còn phụ thuộc vào phong cách chơi và trọng số đặt lên từng chỉ số
  • Khi sở thích chưa rõ ràng, Pareto front không đưa ra một đáp án duy nhất mà giúp thu hẹp phạm vi thử nghiệm bằng cách loại bỏ các tổ hợp kém rõ ràng

Rút gọn build Mario Kart 8 bằng Pareto front

  • Build trong Mario Kart 8 gồm bốn thành phần: tay đua, thân xe, lốp, tà lượn, và mỗi thành phần có các chỉ số hiệu năng như tốc độ và gia tốc
  • Mỗi thành phần có hàng chục lựa chọn, một số chỉ khác về phong cách dù có cùng chỉ số, nhưng ngay cả khi loại trùng lặp vẫn còn lại hàng nghìn tổ hợp
  • Nếu chỉ xét một chỉ số duy nhất thì việc lựa chọn trở nên đơn giản hơn
    • Ví dụ, nếu xếp hạng tay đua chỉ theo tốc độ, Bowser hoặc Wario sẽ trông như những lựa chọn tự nhiên
  • Khi xét cả tốc độ lẫn gia tốc, mỗi lựa chọn đều có điểm mạnh và điểm yếu riêng, khiến việc xác định tối ưu chỉ bằng bảng xếp hạng đơn giản trở nên khó khăn
  • Nếu một lựa chọn tệ hơn hoặc bằng lựa chọn khác ở mọi chỉ số đang xét thì đó là lựa chọn bị chi phối
    • Trong ví dụ, Koopa có tốc độ thấp hơn Cat Peach ở cùng mức gia tốc, và gia tốc thấp hơn Toadette ở cùng mức tốc độ
    • Những lựa chọn như vậy có thể bị loại khỏi danh sách ứng viên nếu mục tiêu là chiến thắng
  • Các lựa chọn hiệu quả không bị chi phối tạo thành Pareto front hoặc Pareto frontier
  • Hiệu quả Pareto là tiêu chí khách quan để loại bỏ các lựa chọn kém hơn rõ ràng, nhưng không có nghĩa mọi lựa chọn trên frontier đều tốt như nhau
    • Nếu muốn cân bằng giữa tốc độ và gia tốc, bạn có thể tránh các tay đua nằm ở hai cực của frontier
    • Lựa chọn cuối cùng vẫn phụ thuộc vào phong cách chơi, kỹ năng và mức độ ưu tiên dành cho từng chỉ số

Những đánh đổi lặp lại cả ngoài Mario Kart

  • Cấu trúc đánh đổi tương tự cũng xuất hiện thường xuyên ngoài game
  • Nếu biết chính xác trọng số gán cho từng chiều, tức là hàm hữu dụng, thì có thể gộp nhiều chiều thành một giá trị duy nhất và biến nó thành bài toán tối ưu một mục tiêu
  • Khi hàm hữu dụng chưa biết hoặc còn không chắc chắn, Pareto front hữu ích để loại bỏ những lựa chọn rõ ràng là kém hiệu quả
  • Pareto front không cho biết ngay từ đầu đâu là lựa chọn tốt nhất duy nhất; bạn vẫn cần tự thử các lựa chọn hiệu quả còn lại để tìm ra phương án phù hợp với mình

Các giả định đơn giản hóa và nguồn dữ liệu

  • Bài viết có đưa vào một số giả định đơn giản hóa khác với cách tính thực tế trong game
    • Các chỉ số được chuyển thành chỉ số dẫn xuất trong game và không phải lúc nào cũng có quan hệ tuyến tính với chỉ số gốc
    • Ngoài tay đua, trang bị còn có 4 chỉ số tốc độ và 4 chỉ số điều khiển, nhưng bài viết lấy giá trị trung bình đơn giản cho chúng
    • Dạng cụ thể của hàm hữu dụng bị ẩn đi và có thể đóng vai trò lớn trong lựa chọn thực tế
  • Dữ liệu tham khảo từ Mario Kart 8 Deluxe in-game statisticsMario Kart and the Pareto Frontier

1 bình luận

 
GN⁺ 2024-04-05
Ý kiến trên Hacker News
  • Phần trực quan hóa/bài viết này cho thấy rất rõ vấn đề lựa chọn chỉ để có lựa chọn mà cá nhân tôi không thích trong thiết kế game ngày nay
    Có vẻ các nhà thiết kế dễ rơi vào cái bẫy đánh giá quá cao những câu như “hơn 700.000 cách build!”. Họ đẩy gánh nặng bùng nổ tổ hợp này sang cho người chơi, và nếu những lựa chọn đó không làm trải nghiệm cốt lõi của game tốt hơn đáng kể thì chẳng khác nào làm phí thời gian. Điều này càng đúng nếu người chơi có kinh nghiệm có thể loại bỏ phần lớn không gian lựa chọn một cách an toàn; dù sao cũng có internet, nên kiểu gì cũng sẽ có người tính ra. Tôi không hiểu vì sao lại giấu yếu tố cạnh tranh đằng sau một bài toán tối ưu lồi, và khó mà nói đó là để vui hơn
    Cấu hình trang bị trong FPS cũng là một ví dụ của xu hướng này. Một khẩu súng cũng có các đánh đổi giữa ống ngắm, nòng súng, phụ kiện gắn dưới, băng đạn, đạn dược, trong khi trước đó người chơi đã phải chọn lớp nhân vật/vũ khí rồi. Nếu cốt lõi của FPS là chọn vị trí chiến thuật và ngắm bắn, những tùy chọn này giống như một chiêu rẻ tiền để hút thêm chút thời gian chơi. Các thương hiệu như Halo và Battlefield cũng rơi vào cái bẫy này và làm hỏng danh tiếng của mình
    Những lựa chọn bổ sung cho lối chơi cốt lõi, như kinh tế theo vòng của Counter-Strike, vẫn hoàn toàn có thể tồn tại. Nếu mọi lựa chọn trao cho người chơi đều chỉ diễn ra trong menu thì đó nên được xem là dấu hiệu cảnh báo. Ngành thiết kế game nên đặt trọng tâm vào lối chơi và tự sự hơn là thống kê/tổ hợp học

    • Còn tùy vào lý do chơi. Gánh nặng bùng nổ tổ hợp chỉ là vấn đề khi bạn muốn tối ưu min-max; nếu chơi cho vui thì nó giống “mình thích nhân vật nào” hay “cánh nào đẹp” hơn
      Điều quan trọng nhất là không áp đặt cách chơi lên người khác. Trừ khi được hỏi rõ ràng, đừng nói “X là tốt nhất nên phải chọn”, mà hãy để mỗi người chơi theo cách của mình
    • Lối chơi và tự sự không kích thích ham muốn sưu tầm và xu hướng cờ bạc tốt bằng “mọi thứ có thể mở khóa”
      Nhìn chung tôi đồng ý rằng cách này là chiêu rẻ tiền và quá phổ biến. Dù vậy, nó vẫn có ý nghĩa ở chỗ trao cho người chơi “việc để làm”, chẳng hạn như mở khóa nội dung. Nó cũng thêm vào trải nghiệm cảm giác “đây là lý do tôi vẫn còn chơi game này”
    • Tệ hơn nữa là nó biến một số người chơi thành con mồi dễ bắt nạt. Người chơi nghiêm túc không chỉ có kinh nghiệm và kỹ năng, mà giờ còn có thể bắt đầu bằng một nhân vật đủ mạnh để thắng người mới dù chấp một tay
      Ai cũng biết có kiểu người chơi cùng mà hút cạn niềm vui của tất cả mọi người. Từ góc nhìn của bên bán game, đây không chỉ là điều xấu mà còn là thiết kế ngu ngốc
    • Trong thể loại ARPG/Diablo, Path of Exile gần như là ví dụ tệ nhất. Mỗi nhân vật phát triển theo một đồ thị 2D gồm hơn 1.300 nút kỹ năng thụ động được kết nối theo vùng, và chỉ có thể chọn khoảng 100 nút trong số đó, trong khi việc hoàn tác thì đắt đỏ hoặc bất khả thi
      Tuy nhiên, chính lượng lựa chọn áp đảo đó tạo ra một tầng lớp chuyên gia và người tạo build để người chơi thông thường dựa vào. Ước gì bản thân game cung cấp thêm công cụ để khám phá chuyện này, chẳng hạn một hệ thống hướng dẫn build ngay trong game
    • Những game như Mario Kart nên có hai chế độ. Một chế độ tiệc tùng nơi mọi người chơi trong cùng điều kiện, và một chế độ chuyên gia nơi chiến lược vĩ mô đóng vai trò lớn hơn
      Ngay cả trong tiệc tùng, thuộc tính khác nhau của các nhân vật cũng khiến game năng động hơn và rốt cuộc là vui hơn. Vấn đề là khi có ai đó dành cả tuần trước để nhập mọi chỉ số vào Excel và đến nơi đã biết cách tối ưu để thắng tất cả. Nhưng nên kẻ ranh giới ở đâu? Việc đó có bất công hơn so với tập luyện một đường đua suốt cả tuần không?
      Cần chấp nhận rằng game không phải lúc nào cũng công bằng. Thể thao cũng vậy. Nếu chơi tennis với người từng thi đấu giải, người chơi casual có đưa cho dân chuyên một cây vợt tệ hơn rất nhiều thì vẫn khó mà đánh trúng được một quả
      Cân bằng để người chơi casual và chuyên nghiệp có thể cạnh tranh trong cùng điều kiện là việc rất khó, và nếu không khéo có thể biến game thành thứ cực kỳ đơn giản, chỉ phụ thuộc vào gieo xúc xắc. Ít nhất, nếu cho thấy rõ đây là game Excel hay game phản xạ thì sẽ công bằng hơn một chút
  • Tôi luôn biết lốp nhỏ màu đỏ là tốt nhất. Tiếc là phân tích này bỏ sót thứ quan trọng nhất với tôi: phong cách, và tình yêu dành cho Zelda. Vì vậy cá nhân tôi sẽ phải bỏ qua toàn bộ

    • Bạn chỉ đang tối ưu cho một kết quả khác thôi. Cứ áp dụng cùng cách tư duy, nhưng lấy độ gần với Zelda làm chỉ số chính là được
    • Trong MK8 gốc, lốp Triforce và tàu lượn Hylean khá tốt, nhưng trong MK8 Deluxe thì chỉ số của chúng không còn tốt đến vậy
    • Tôi luôn chọn Koopa, hóa ra có vẻ là tệ nhất. Dù vậy, trong nhóm bạn thì tôi vẫn là người thắng áp đảo nhiều nhất
      Để giữ công bằng, tôi sẽ tiếp tục chơi Koopa :)
  • Một bài trình bày thật sự ấn tượng. Tôi đã biết về hiệu quả Pareto/biên Pareto rồi, nhưng giờ chắc sẽ không bao giờ quên nữa; mỗi lần nhắc đến sẽ nghĩ tới Mario Kart và Koopa đáng thương bị thống trị

    • Chơi Koopa là chế độ khó của MK, và nếu thắng thì có thể thấy tự hào hơn. Cảm giác như Piccolo hay Rock Lee đeo tạ khi tập luyện vậy ;)
    • Nếu Koopa đạt hiệu quả Pareto thì hẳn đã chơi tốt hơn
    • Không biết Koopa có tốt hơn trong các kiểu tùy biến khác không
    • Những bài như thế này chính là dạng phương tiện mới mà nhiều trang tin và ấn phẩm số mơ tới khi pitching với các nhà đầu tư mạo hiểm. Nhưng tôi nghĩ các bài trình bày số thuyết phục nhất thường mang tính tự phát
      Không thể thiết kế nó như một mục tiêu; thường nó sẽ có cảm giác gượng ép và khó chịu. Nhưng thỉnh thoảng có những trường hợp tuyệt vời đến mức như lần này: “Ừ, cứ lấy lượt cuộn của tôi đi”
  • Về mặt thiết kế thì tôi phản đối. Với tôi, bài trình bày này quá chậm và gây bực bội suốt từ đầu đến cuối, giống như phải xem video để tìm thông tin. Về điểm đó, định dạng notebook ban đầu tốt hơn nhiều
    Bố cục bên trong từng phần thì đẹp, nhưng hoạt ảnh và layout phản hồi theo cuộn khiến việc đọc khó chịu hơn so với một tập biểu đồ tĩnh
    Nội dung thì xuất sắc, và việc xem sự khác biệt giữa nhân vật với kart được thể hiện ra sao rất thú vị

    • Tôi hoàn toàn đồng ý rằng hoạt ảnh và layout phản hồi theo cuộn làm việc đọc khó chịu. Tôi không hiểu vì sao HN lại mê mẩn kiểu site này đến vậy
      Thực ra nó không khiến việc hiểu trở nên dễ hơn hay tốt hơn, mà chỉ có cảm giác như thiết kế quá tay vì chính thiết kế
  • Bài viết hay. Mặt trận Pareto trong kết quả cho thấy rõ thiết kế game khó đến mức nào. Dù có hàng triệu tổ hợp khả dĩ, trong môi trường cạnh tranh thực tế chỉ có một phần cực nhỏ được dùng

    • Điều đó không có nghĩa là các tổ hợp khác không có giá trị. Chúng có thể có giá trị về mặt tùy biến ngoại hình, và cũng có yếu tố giải đố khi tạo và tối ưu build theo nhiều chiều
      Chắc chắn cũng sẽ có một mặt trận Pareto meta trong sự cân bằng giữa tính hữu dụng cạnh tranh của từng tổ hợp và niềm vui mà nó thêm vào game
    • Cần nhớ rằng mặt trận Pareto không phải là một đường 2 chiều, mà là một bề mặt trong một không gian vector nhiều chiều nào đó. Mọi game đều có rất nhiều khía cạnh có thể tối ưu min-max. Như những người khác đã nói, Mario Kart cũng không thể quy giản chỉ còn tốc độ và tăng tốc
      Trong một game đủ phức tạp, có thể xem mọi build đều nằm trên mặt trận Pareto vì chúng tối ưu một hàm chi phí cụ thể nào đó
    • Đồng ý. Nhưng cũng còn tùy vào mục tiêu của game. Tối ưu min-max không phải là cách chơi duy nhất, và không phải ai cũng cực kỳ cạnh tranh
  • Có nói “Một danh mục rủi ro thấp, lợi nhuận cao? [...] tất nhiên là nếu bạn đã biết chính xác các trọng số”, nhưng trong trường hợp này, nhờ cấu trúc của bài toán mà nó được rút gọn thành tối ưu hóa 1 chiều
    Trong lựa chọn danh mục đầu tư, thứ được tối ưu không phải là lợi nhuận của một khoản đầu tư đơn lẻ, mà là lợi nhuận đầu tư trong suốt đời người. Nhờ lãi kép, điều này trở thành một hàm của rủi ro và lợi nhuận. Vì vậy có thể tìm phân bổ tối ưu mà không cần bất kỳ sự đánh đổi nào: https://two-wrongs.com/the-misunderstood-kelly-criterion.htm...

    • Không hẳn vậy. Một trong những đầu vào lớn là tỷ lệ giữa vốn đầu tư và khoản tiết kiệm hằng năm. Một cú sụt giảm lớn vào giai đoạn sau của cuộc đời thì tệ, nhưng ở giai đoạn đầu thì không phải vấn đề quá lớn
      Tiêu chuẩn Kelly cấm các khoản cược rất sinh lời nhưng có rủi ro phá sản đáng kể. Vì khi tài sản về 0, bạn mất cơ hội lãi kép trong tương lai. Nhưng nếu còn trẻ và danh mục đầu tư nhỏ so với thu nhập, điều này lại quá thận trọng
      Bài viết cũng ám chỉ điều này khi nói tổng chiết khấu của tiền lương tương lai là một phần của tài sản hiện tại. Nói vậy là chính xác, và nếu còn trẻ thì đó cũng là biến quan trọng nhất với chênh lệch nhiều bậc độ lớn. Thú vị là tác giả dường như hiểu điều này nhưng lại không bận tâm
  • Nghĩ đến việc dùng thứ này như một công cụ thiết kế thấy rất đáng mong đợi. Nó có vẻ hữu ích khi thiết kế một game có mặt trận Pareto rộng hơn gồm các build vừa thú vị vừa khả thi

  • Bài viết thú vị hơn nhiều so với những gì tiêu đề gợi ý. Làm rất tốt

    • Tiêu đề được gửi ban đầu mang tính mô tả hơn nhiều, nhưng theo quy định đã được đổi để khớp với tiêu đề của bài viết
  • Một phân tích và trực quan hóa thật sự tuyệt vời. Tuy nhiên, Mario Kart 8 + 200cc có một biến số thú vị. Phần lớn người chơi không muốn tốc độ vượt quá một mức nhất định, vì quá nhanh sẽ khó điều khiển
    Vì vậy thay vì tối đa hóa chỉ số tốc độ tuyệt đối, có thể bạn muốn tối thiểu hóa chênh lệch so với chỉ số tốc độ tối ưu phù hợp với mình

    • Trông cũng không khác mấy so với việc chế tạo xe đua thật. Nếu phải phanh sớm đến mức bị vượt ở góc cua thì động cơ lớn cũng chẳng có ý nghĩa. Hơn nữa, phanh nhiều như vậy sẽ làm phanh quá nhiệt
      Nhiều khi tốc độ tối đa thấp hơn nhưng không cần giảm tốc lại tốt hơn
    • Đúng vậy. Ở 200cc, khả năng điều khiển và tăng tốc là những yếu tố quan trọng nhất
      Tăng tốc quan trọng vì khi bị đánh trúng hoặc va chạm, mà đó không phải là chuyện “nếu” mà là “khi nào”, bạn cần bắt kịp lại thật nhanh
  • Đây thật sự là một trong những phần trực quan hóa ấn tượng nhất tôi từng thấy. Không biết tác giả dùng công cụ gì để làm?