Xây dựng bot cho Pokémon Auto Chess
Mỗi phòng chờ Pokémon Auto Chess không đủ người sẽ được lấp đầy bằng bot — những đối thủ do AI điều khiển, không phải do nhà phát triển tạo ra mà do chính người chơi xây dựng, bằng một công cụ Bot Builder được tích hợp sẵn trong game. Nếu bạn từng đối đầu với một bàn cờ AI được xây dựng tốt đến bất ngờ và tự hỏi ai đã tạo ra nó: ai đó đã thiết kế nó từng vòng một, gửi đi, và một người kiểm duyệt tình nguyện đã phê duyệt để nó gia nhập nhóm mà bất kỳ người chơi nào cũng có thể bị ghép đấu.
Trang này sẽ hướng dẫn cách xây dựng một bot thực sự được phê duyệt — bản thân công cụ, và các quy tắc mà một bài gửi cần tuân theo để trông giống một ván đấu thật của con người chứ không phải một kịch bản rõ ràng được lập trình sẵn.
Bot Builder thực chất là gì
Nó được tích hợp ngay trong chính client của game, không phải một trang web riêng — mở nó từ menu chính. Bạn sẽ dựng một bàn cờ cho từng vòng mà bot của bạn sẽ đi tới, chọn đơn vị, vị trí và vật phẩm hệt như đang chơi thật, và công cụ sẽ cho bạn cái nhìn trực tiếp về những gì bạn đang xây dựng: các hệ hiện tại, một ước tính độ khó/Elo cho toàn bộ bàn cờ, và số linh kiện vật phẩm bạn đã dùng tính đến vòng hiện tại.
Hãy lưu công việc của bạn ra file khi đang làm — không có tự động lưu, và một bot chưa hoàn thiện thì không thể gửi đi. Khi đã ưng ý, nút Gửi sẽ đưa bot của bạn đến kênh Discord #bot-creation, nơi một Bot Admin sẽ xem xét và hoặc phê duyệt (bot sẽ gia nhập nhóm thật mà người chơi có thể bị ghép đấu) hoặc trả lại kèm góp ý.
Quy tắc duy nhất mà mọi điều khác đều xuất phát từ đó
Một bot phải thể hiện điều mà một người chơi thật có thể thực sự làm được. Không có vàng để dùng như một đường tắt, không có vật phẩm hay đơn vị nào mà một ván đấu thật không thể tạo ra ở vòng đó, không có hành vi nào phá vỡ luật chơi áp dụng cho người chơi. Mỗi hướng dẫn cụ thể dưới đây thực chất chỉ là quy tắc này được áp dụng vào một phần riêng của công cụ.
Điều gì khiến một bot bị từ chối
- Không linh kiện vật phẩm. Chỉ trang bị vật phẩm đã chế tạo hoàn chỉnh. Công thức chế tạo của game thay đổi giữa các phiên bản; một bot cầm linh kiện thay vì vật phẩm hoàn chỉnh sẽ hỏng ngay khi công thức thay đổi.
- Đặt cho nó một hình đại diện và tên thật. Biểu tượng Ditto mặc định sẽ bị từ chối ngay — hãy chọn một Pokémon trong đội (lý tưởng nhất là carry, hoặc một Pokémon đại diện cho các hệ chính) để người chơi có thể nhận biết ngay họ sắp đối đầu với gì. Nếu cần cập nhật một bot đã được duyệt, hãy giữ nguyên avatar và tên; thay đổi một trong hai sẽ khiến nó được gửi như một bot hoàn toàn mới thay vì ghi đè lên bot cũ.
- Giữ Elo trung thực. Các mức phê duyệt là Người mới (dưới 850), Dễ (850–999), Trung bình (1000–1149), Khó (1150–1299), Cực khó (1300–1449) và Bậc thầy (từ 1450) — nhưng trên thực tế, bot vượt xa mức 1100–1200 hiếm khi được duyệt, và 1300+ gần như không bao giờ được duyệt, vì một đội hình mạnh đến mức đó không còn là một ván đấu thực tế nữa, mà là một kịch bản hoàn hảo được ghép lại.
- Chỉ dùng những gì bàn cờ thực sự kiếm được. Vật phẩm shiny và quyền dùng Shiny Charm đòi hỏi phải thực sự chơi một tuyến tích lũy hệ Baby trong nhiều vòng; các công cụ của hệ Artificial và tuyến khăn choàng của hệ Normal cũng theo cùng logic đó — đừng trang bị chúng trừ khi các hệ của chính bàn cờ đã thực sự mở khóa chúng trong một ván thật. Logic tương tự áp dụng cho bất cứ thứ gì gắn với một vòng quay đặc biệt hay sự kiện đặc biệt: nếu không được đảm bảo có ở mọi ván, bot cũng không thể dựa vào đó.
- Giữ tính nhất quán giữa các vòng. Trạng thái shiny, biểu tượng cảm xúc và vật phẩm đang cầm của một đơn vị không nên thay đổi tùy tiện giữa các vòng — trong một ván thật, chúng chỉ thay đổi vì một lý do cụ thể (một vật phẩm thực sự được trao, một đơn vị thực sự được bán). Nếu một vật phẩm cần chuyển từ đơn vị này sang đơn vị khác, điều đó chỉ hợp lệ nếu chủ sở hữu ban đầu đã được bán trước, giống như trong một ván đấu thật.
- Tôn trọng tính độc quyền theo vùng. Một dạng vùng (Alola, Galar, Hisui, Paldea) không thể xuất hiện trong cùng nhóm gặp gỡ của vùng đó như dạng gốc của nó — hãy kiểm tra vòng đó thuộc vùng nào trước khi đặt một dạng vùng vào đó.
Suy nghĩ như một người chơi, không phải một bảng tính
Công cụ này không theo dõi vàng, vì vậy việc kiểm tra tính thực tế hoàn toàn thuộc về bạn: liệu cấp độ, số lượng vật phẩm và tiến độ tiến hóa của bàn cờ này có thực sự khả thi ở vòng này không? Hai thứ phải đánh đổi lẫn nhau là cấp độ và roll lại — một bot lên cấp quá nhanh sẽ không có nhiều đơn vị tiến hóa, còn một bot roll nhiều để tiến hóa 2/3 sao nhanh sẽ bị chậm cấp độ. Hãy dùng chính những ván bạn từng chơi làm thước đo thực tế: một đơn vị 2 sao (3 bản) là thực tế trong vài lượt nếu tỉ lệ cửa hàng tốt; một đơn vị 3 sao (9 bản) sẽ mất thời gian lâu hơn đáng kể.
| Phong cách chơi | Vòng 10 | Vòng 13–15 | Vòng 17–20 | Vòng 22–25 | Vòng 27+ |
|---|---|---|---|---|---|
| Nhịp độ tiêu chuẩn lên cấp đều, roll vừa phải | Cấp 5 | Cấp 6–7 | Cấp 7–8 | Cấp 8–9 | Cấp 9, kinh tế có thể đã cạn |
| Roll nhiều theo đuổi tiến hóa nhanh/cao | Cấp 5 | Cấp 6 | Cấp 7 | Cấp 8, có thể đã cạn | Cấp 9 nếu đạt được |
Hãy xem đây là một phép kiểm tra lẽ thường, không phải một khuôn mẫu để sao chép y hệt — một bàn cờ được xây quanh một carry 3 sao có được nhờ roll nhiều nên trông rõ ràng chậm cấp hơn so với một bàn cờ lên cấp tối đa nhưng hy sinh tiến hóa. "Sập kinh tế" (tiêu gần hết vàng để đẩy cấp độ hoặc tiến hóa) là chuyện bình thường và được kỳ vọng trong một ván thật; một bot vừa lên cấp tối đa vừa tiến hóa hoàn toàn với vật phẩm đầy đủ ở mọi vòng sẽ trông như bất khả thi, chứ không phải mạnh.
Một vài điều nhỏ khác đáng nhớ: bạn không cần tiến hóa mọi thứ — một đơn vị cố tình giữ ở 2 sao là một kết quả hoàn toàn bình thường trong một ván thật. Vật phẩm cũng không cần phải là lựa chọn tối ưu về mặt lý thuyết; một ván thật thường kết thúc với lựa chọn tốt thứ nhì thay vì thứ bạn thực sự muốn.
Nhận trợ giúp và gửi bài
Nút Gửi trong client sẽ đưa bot của bạn thẳng đến #bot-creation để xem xét; các câu hỏi, góp ý cho một bot đang xây dựng dở, và thảo luận chung về việc tạo bot diễn ra ở #bot-builders. Cả hai kênh đều nằm trên máy chủ Discord chính thức: