LỜI NÓI ĐẦU
Khi chơi Auto Chess, chắc hẳn các bạn cũng tự hỏi: “Hệ thống rút bài trong Auto Chess được thiết kế như thế nào ?”.
Nếu bạn chưa biết Auto Chess là gì, mình có thể giới thiệu sơ lược:
Auto Chess là một Custom Map của Dota 2, một tựa game được phát triển bởi Valve. Người chơi sử dụng các hero được triệu hồi ra từ các quân bài để chiến đấu với 7 người chơi khác. Người chiến thắng là người còn lại sau cùng trên bàn cờ.
Thông qua việc kế thừa bộ thư viện chiến đấu đồ sộ của Dota 2. Auto Chess còn cải tiến hệ thống để biến sản phẩm của mình thành một tựa game Card Battle.
Số lượng bài viết giới thiệu về Auto Chess hiện tại trên mạng đã khá nhiều NHƯ BÀI NÀY. Thế nên mình sẽ không mất thời gian giải thích nhiều hơn về nó.
Thời gian gần đây, mình khá chú ý đến tựa game này, cũng có khá nhiều lí do liên quan
- Mình có thời gian chơi DotA khá lâu, từ khi nó còn là Custom Map trong Warcraft 3 Frozen Throne (phiên bản 6.55). Đến Dota 2 hiện tại, chắc cũng hơn 10 năm. Chính vì thế mà mình dành khá nhiều tình cảm cũng như thời gian tìm hiểu dành cho nó
- Auto Chess mang đến cho mình một khẩu vị riêng biệt so với các dòng game Card Battle hiện tại.
Chính những điểm trên là lí do khiến bài viết này ra đời.
1. HỆ THỐNG RÚT BÀI TRONG AUTO CHESS
Ngoài việc kế thừa bộ thư viện Hero khổng lồ của Dota 2, điều khiến cho Auto Chess hấp dẫn nhất là thể hiện sự tính toán chiến lược một cách “điên rồ” cũng như kiểm nghiệm sự may mắn của mình.
Hay ta có thể gọi nó với một cái tên mỹ miều hơn: “Nhân phẩm”
Tuy nhiên, “nhân phẩm” của bạn không hoàn toàn phụ thuộc vào may mắn. Nó là một hệ thống xác suất đã có sự tính toán kĩ lưỡng.
Công bằng mà nói, hệ thống rút bài trong Auto Chess vẫn là một trong những thứ đơn giản nhất trong khối lượng lớn những thiết kế khác của tựa game này. Nhưng cũng là thứ tạo nên sự hấp dẫn nhất.
Hôm nay, mình sẽ hướng dẫn các bạn cách Thiết kế Game để mô phỏng lại hệ thống này.
Ở cuối bài sẽ có đính kèm File mẫu dữ liệu thiết kế của mình. Để đảm bảo việc đọc hiểu dễ dàng hơn, bạn nên chú ý các thông tin dưới đây.
2. CÁC YẾU TỐ CHÍNH TRONG HỆ THỐNG RÚT BÀI
a. Hệ thống quân bài
Để thiết kế hệ thống rút bài thì đương nhiên điều đầu tiên bạn cần là quân bài. Hệ thống bài trong Auto Chess được chia thành 5 loại độ hiếm
- Common – Giá $1
- Uncommon – Giá $2
- Rare – Giá $3
- Mythic – Giá $4
- Legendary – Giá $5
Kết hợp ba quân bài giống hệt nhau và cùng cấp độ sẽ tăng cấp cho quân bài đó.
Vào từng thời điểm trong trận đấu, các quân bài với các độ hiếm khác nhau sẽ xuất hiện. Người chơi có thể tùy chọn từng loại cho phù hợp với chiến thuật của mình.
b. Thuộc tính quân bài
Mỗi quân bài sẽ mang 2 thuộc tính chính
- Loài (Species) – Thuộc tính này được xây dựng trên nhân dáng và kĩ năng của Hero. Thông thường mỗi quân bài chỉ thuộc một loài. Chỉ có một số lượng rất ít là cá biệt mang thuộc tính của cả 2 loài.
Dragon Knight mang trong mình dòng máu cả 2 loài là Human và Dragon.
- Hệ (Classes) – Thuộc tính này quy định hệ của Hero. Có rất nhiều hệ khác nhau (Knight, Hunter, Druid, Mage…).
Mình cũng từng có bài viết hướng dẫn phân biệt một số hệ nhân vật TẠI ĐÂY
Các quân bài có cùng Loài hoặc Hệ khi cùng xuất hiện trên bàn đấu sẽ có thêm những hiệu ứng bổ trợ khác.
c. Hệ thống cấp độ vật chủ
Trong Auto Chess, vật chủ là một con Courier vốn có chức năng chở đồ trong Dota 2. Ngoài chuyện để bán Skin ra thì việc để nó chạy lung tung trên sàn đấu khá vô dụng.
Thế nên, ở phiên bản Dota 2 Underlord (phiên bản Auto Chess của Valve) và Auto Chess Mobile. Nó đã bị trói giò hoặc xóa sổ 😀
Courier sẽ có 2 thuộc tính chính
- Sinh lực (HP) – Lượng máu của người chơi. Bạn sẽ bị loại khỏi vòng chiến khi lượng máu này tụt về 0.
- Cấp độ (Level) – Mỗi khi lên cấp, số lượng Hero được phép có mặt trên sàn đấu sẽ tăng lên một đơn vị. Tối đa sẽ có 10 cấp độ (nếu không tính vật phẩm hỗ trợ tăng slot).
3. PHÂN PHỐI XÁC SUẤT
Việc phân phối xác suất xuất hiện các quân bài sẽ phụ thuộc vào cấp độ của bạn.
Để hệ thống rút bài này hoạt động. Khi khởi tạo, một quân bài sẽ cần chạy 3 vòng lặp xác suất như sau
a. Vòng 1: Xác suất xuất hiện độ hiếm
Việc phân bố xác suất xuất hiện các quân bài với độ hiếm khác nhau sẽ tùy thuộc vào cấp độ của người chơi.
Điều này nhằm đảm bảo bài toán kinh tế trong game luôn đạt ở mức cân bằng tương đối. Sai số sẽ nằm ở việc người chơi sử dụng đồng tiền như thế nào.
Ở mỗi độ hiếm, sẽ có chung một tham số
- Init Ratio (tỉ lệ xuất hiện độ hiếm) – Quy định việc quân bài được rút sẽ mang độ hiếm nào.
b. Vòng 2: Xác suất xuất hiện một thuộc tính
Vòng lặp này sẽ quy định xác suất xuất hiện quân bài có một thuộc tính trùng với những Hero đang nằm trong Deck của bạn (tính cả quân trên bàn đấu và dự bị).
Điều này cần thiết khi bạn cần build một Deck bài theo Loài hoặc Hệ.
Các tham số cần có
- Matching Ratio (tỉ lệ trùng) – Quy định xác suất ra quân bài có một thuộc tính trùng với các quân bài có trong Deck.
- Matching Factor (hệ số trùng) – Sau mỗi lượt rút bài, nếu quân bài xuất hiện không đạt yêu cầu. Hệ số này sẽ được cộng thêm vào Matching Ratio.
Việc này đảm bảo sau một số lần rút giới hạn, quân bài đủ điều kiện sẽ xuất hiện (khi Matching Ratio = 100%)
Mình đã từng đề cập về việc sử dụng hệ số cộng dồn này khi Thiết kế Gacha trong BÀI VIẾT NÀY
c. Vòng 3: Xác suất xuất hiện quân bài giống nhau
Vòng lặp này quy định xác suất xuất hiện một quân bài giống hệt với một quân bài đang nằm trên Deck.
Điều này sẽ hữu dụng khi bạn cần nâng quân bài của mình lên cấp độ cao hơn.
Các tham số quy định việc này
- Perfect Ratio (tỉ lệ giống hệt) – Quy định xác suất ra quân bài giống hệt với một trong các quân bài có trong Deck.
- Perfect Factor (hệ số giống hệt) – Tương tự, cần cộng dồn hệ số để kiểm soát số lần rút như vòng lặp số 2.
Các tham số ở vòng lặp 2 và 3 sẽ cần đặt lên từng quân bài đang có trong Deck và tương ứng với độ hiếm của nó.
Các quân bài có độ hiếm cao sẽ khó rút trùng hơn các quân bài có độ hiếm thấp.
d. Hệ thống hoạt động
Các hệ thống trên sẽ cần được tính toán trước khi các quân bài mới xuất hiện. Ở mỗi lượt, người chơi sẽ rút 5 lá bài. Mỗi lần rút sẽ chạy các vòng lặp trên theo thứ tự như trên.
Nếu xuất hiện một quân bài đủ điều kiện, các hệ số sẽ được reset về giá trị mặc định. Khi áp dụng phương thức xác suất cộng dồn. “Nhân phẩm” của bạn sẽ thể hiện ở việc
Bạn mất bao nhiêu lần rút để có được quân bài như ý ?
LỜI KẾT
Hi vọng qua các chia sẻ trên, các bạn có thể mô phỏng lại hệ thống rút bài trong Auto Chess khi có nhu cầu.
Hệ thống này là phiên bản giản lược cho một số hệ thống Thiết kế Game có liên quan đến xác suất khác. Các hệ thống này sẽ có các tham số phức tạp hơn, ví dụ như
- Thiết kế hệ thống ra đơn đặt hàng trong các game Nông Trại (Hay Day, Khu vườn trên mây…)
- Thiết kế xác suất ra quân bài phù hợp với năng lượng hiện có (Clash Royale hoặc Hearthstone…).
Nếu có dịp, mình sẽ hướng dẫn các bạn cách xây dựng các hệ thống này 🙂
Riêng hôm này thì bài đã dài, mình xin phép được kết bài tại đây. Nếu các bạn có các câu hỏi hoặc thắc mắc, mình sẽ giải đáp ở phần bình luận nhé!
P/S: MẪU THIẾT KẾ DỮ LIỆU THAM KHẢO
Mình gửi đến các bạn mẫu dữ liệu được thiết kế với các tham số trên. Trường dữ liệu sẽ được trải ra qua 10 cấp độ của nhân vật.