Có thể làm gì để cải thiện trò chơi chiến lược thời gian thực điên rồ nhất AI?


12

Tôi đã có cuộc trò chuyện này với một người bạn của tôi về việc liệu AI có thể được tạo ra hay không có thể đánh bại bất kỳ con người nào mà không gian lận tài nguyên trong một trò chơi chiến lược thời gian thực. Một AI sẽ chơi gần như hoàn hảo. AI của các trò chơi ngày nay có nhiều lĩnh vực có thể được cải thiện, hầu hết chúng đều dựa vào gian lận tài nguyên, phát triển cơ sở sớm tốt hơn vì điều đó và tấn công theo sóng.

Tuy nhiên, câu hỏi đặt ra là cần phải làm gì để cải thiện vấn đề này để có được AI tối thượng. Ngoài ra, nếu bạn có bất kỳ ví dụ nào về một trò chơi có sử dụng một tính năng nhất định thì nó sẽ rất tuyệt.

Chỉnh sửa: Có rất ít sự làm rõ tôi có thể cung cấp cho những người chưa đọc tiêu đề hoặc một vài đoạn mô tả vấn đề. Đây là về các trò chơi chiến lược thời gian thực và AI tối thượng. Điều đó có nghĩa là Strarcraft, Warcraft, Generals, Red Alert, Age of Empires, AI War, v.v. Các trò chơi có nhiều cấp độ khó hơn, nhưng trọng tâm ở đây là thử thách cuối cùng.

tenpn có một bài viết tuyệt vời chứa đầy tài nguyên tuyệt vời. Cảm ơn bạn, tenpn! Tôi muốn nhiều người sẽ đóng góp theo hướng đó.


6
Thực sự câu hỏi này không có ý nghĩa nếu không có trường hợp cụ thể. Tất cả các trò chơi đều có cách triển khai AI khác nhau, tùy thuộc vào cơ chế trò chơi có liên quan và 'cách cải thiện chúng' sẽ thay đổi ồ ạt. Ít nhất đây phải là Community Wiki, vì không có câu trả lời 'đúng' ở đây.
MrCranky

2
Xa hơn trước đây: Hãy xem rằng Cờ vua là một trò chơi chiến lược.
Rushyo

1
Tại sao bạn sẽ muốn? Tạo ra một AI hoàn hảo cho trò chơi của Pong là hoàn toàn tầm thường, và hoàn toàn không có gì thú vị để chơi. Mục tiêu của trò chơi AI không phải là đánh bại người chơi, vì đó là người chơi (không phải máy tính), người được cho là đang vui vẻ.
Ian Schreiber

1
Ian: OP đang nói về một cái gì đó rất khác với Pong. Thật dễ dàng để tạo ra một AI AI không thể đánh bại hoặc AI Tic-Tac-Toe. Cờ vua có thể được đưa đến một AI mà chỉ có rất, rất, rất tốt nhất có thể đánh bại. Nhưng RTS là một trò chơi bóng khác nhau.
Vịt Cộng sản

2
Bạn có thể quan tâm đến thuật toán STRIPS .
dùng712092

Câu trả lời:


12

Đó là một câu hỏi khó trả lời. Để nói rõ những gì cần cải thiện, bạn cần phải có một số AI đã biết để làm việc. Tuy nhiên, đây là một số ví dụ về RTS AI từ aigamedev.com (yêu cầu đăng ký):

Thật không may, hầu hết các công cụ thực sự tốt là đằng sau paywall.

Một giải pháp AI phổ biến là Công cụ lập kế hoạch hành động hướng mục tiêu, sử dụng các quy tắc để hình thành các kế hoạch nhằm xác định mục tiêu. Đã được một lúc rồi nhưng nó rất tuyệt. Có một tổng quan ngắn gọn (pdf) có sẵn trên trang web của Jeff Orkin về cách nó được áp dụng cho FPS, nhưng chính xác cùng một nguyên tắc (với các quy tắc và mục tiêu khác nhau) hoạt động cho RTS.

Nhiều RTS sẽ sử dụng các thừa kế của GOAP, với các cấp độ khác nhau nhận mục tiêu từ cấp độ trên và quan tâm đến các cấp độ chi tiết khác nhau của chiến trường. Tôi đã đọc một bài viết tuyệt vời về một số AI của wargame WWII được cấu trúc như thế này, nhưng với tất cả đó là google, tôi không thể tìm thấy liên kết bây giờ. Sao vàng cho bất cứ ai có thể giúp tôi ra.

Tất nhiên, hiệu quả của GOAP và các nhà hoạch định khác phụ thuộc vào mức độ bạn phân tích thế giới trò chơi của mình và mức độ tinh tế của hành động và mục tiêu của bạn.

Công nghệ phổ biến khác bao gồm Kiến trúc tiện ích (pdf) để ghi điểm và ưu tiên, và bảng đen để phân tích thế giới trò chơi.


6

Vấn đề là, nếu bạn có AI

có thể đánh bại bất kỳ con người nào mà không gian lận tài nguyên trong một trò chơi chiến lược thời gian thực

sau đó bạn có một trò chơi sẽ không có ai chơi bởi vì họ không thể vượt qua cấp độ đầu tiên.

Phần khó nhất của lập trình AI là làm cho AI có thể đánh bại, nhưng có thể bị đánh bại bởi một người có một chút kỹ năng. Làm cho nó quá dễ dàng để đánh bại và người chơi sẽ bị loại bỏ bởi một thách thức, làm cho nó quá khó và một lần nữa, mọi người sẽ chán ngấy với việc bị đánh bại mọi lúc.

Vì vậy, không phải là tạo ra AI phức tạp (rốt cuộc, điều đó không khó, AI có thể xử lý đồng thời mọi thứ trong khu vực chơi của nó trong khi người chơi chỉ có thể xử lý những gì trên màn hình), mà nhiều hơn là tạo ra một trò chơi cân bằng.


1
Để làm rõ, việc tạo ra một AI có thể đánh bại bất kỳ con người nào không khó vì AI có thể điều khiển các đơn vị của nó với độ chi tiết tốt hơn bất kỳ con người nào có thể hy vọng (do các ràng buộc UI). Một con người mất vài giây để phản ứng với các sự kiện, chọn và chỉ huy các đơn vị, trong khi AI có thể cập nhật các đơn đặt hàng cho từng đơn vị riêng lẻ mỗi lượt 'trò chơi' để phản ứng với bất kỳ sự kiện nào. Nhưng trong thực tế, điều này không được thực hiện vì nó sẽ khiến trò chơi trở nên tẻ nhạt. Phần thực sự khó khăn là làm cho AI đủ câm để đánh bại.
Skizz

3
Để làm rõ việc làm rõ - làm cho AI bất khả chiến bại không khó lắm; làm cho AI có thể đánh bại, thách thức và hấp dẫn là rất xa, khó khăn hơn nhiều.
Skizz

3

Rất nhiều điều có thể được thực hiện nhưng phản ứng ngay lập tức của tôi đối với câu hỏi này là một câu hỏi ngược lại: tại sao mọi người lại muốn RTS AI tối thượng? Và tại sao người này không chơi trực tuyến, chống lại một đối thủ khác của con người?

Điểm mấu chốt là: nó không phải là vấn đề để làm cho AI khả chiến bại, đó là vấn đề làm cho nó nghĩ đủ nhanh (. Ví dụ như nó để có các phím tắt) để có thể thi đấu với 3 hoặc thậm chí 7 đối thủ AI trên bản đồ cùng với một máy tính thông thường. Ngay cả hôm nay và ngày mai, và tôi hy vọng nó sẽ không thay đổi thậm chí mười năm kể từ bây giờ.

Vấn đề tiếp theo là: miễn là AI tuân theo các quy tắc nghiêm ngặt, nó sẽ có thể khai thác được. Ngay cả các quy tắc mờ sẽ làm cho nó dễ bị khai thác. AI sẽ phải học, và nó sẽ phải phạm sai lầm - cố ý và vô ý. Nó cũng sẽ cần phải làm bạn ngạc nhiên. Và sau đó bạn đang chơi với một người khác. Vì AI thậm chí không tiến gần đến việc sao chép cách suy nghĩ của con người cả về thuật toán và về khả năng xử lý, tốt hơn hết là bạn không nên lãng phí thời gian của mình cho một người chơi AI, điều đó gần như không thú vị để chơi với người khác con người, nếu chỉ cho các yếu tố xã hội liên quan.


1

Những gì bạn định nghĩa là 'gian lận tài nguyên' giống như 'tăng cường cân bằng' trong các trò chơi đua xe. 'Tăng' được sử dụng để thử và giữ các gói ở gần nhau để tạo ra ảo ảnh về một cuộc đua chặt chẽ. Nếu trình phát không dẫn đầu, nó có thể giữ cho trình phát CPU trong tầm nhìn và nếu trình phát đó dẫn trước nó giữ áp lực lên đối thủ bằng cách đặt trực tiếp trên đuôi của bạn, ngay cả khi CPU chính nó là một người lái xe tầm thường.

Trong RTS, bạn đang xem một tập hợp các giá trị có thể được sắp xếp tối ưu. Bạn biết chính xác phải mất bao lâu để có được tài nguyên, chi phí xây dựng các vật phẩm, thời gian đi qua bản đồ, v.v.

Nếu bạn là người đã tạo ra các bảng và có sẵn thông tin cho bạn thì đó chỉ là vấn đề số bị bẻ khóa dữ liệu để tìm ra tỷ lệ tốt nhất cho đầu ra.

Nhưng thật vui biết bao khi chơi với một kẻ thù luôn làm chính xác điều tương tự dựa trên bối cảnh của sân chơi?

Vì vậy, bạn thêm hỗn loạn. Bạn cung cấp cho AI một hiệu quả trên thang trượt. Bạn có nó quấy rối người chơi. Nếu người chơi dường như làm quá tốt, bạn có AI gian lận một chút và cung cấp cho nó một số tài nguyên hoặc quân tiếp viện bổ sung để giữ cho người chơi đứng vững.

Bạn muốn người chơi cảm thấy sự hài lòng khi đối mặt với một đối thủ đầy thách thức, thay vì đánh vào một AI yếu đuối hoặc bị Hal9000 tàn sát. Sự hoàn hảo của một đối thủ CPU nằm ở sự không hoàn hảo của nó. :)


2
Và khác nhau, nhưng có liên quan: Thật tuyệt nếu AI đôi khi thực hiện những điều không phải là lựa chọn tốt nhất về mặt kỹ thuật của họ, nhưng thêm một chút thú vị vào trò chơi, chẳng hạn như sử dụng các đơn vị hoặc di chuyển bất thường (ví dụ: đội quân không kích ở phía sau căn cứ của người chơi )
Bart van Heukelom

0

Một điều lớn là bạn phải theo kịp sự phát triển chiến lược của trò chơi. Không có sự phát triển nào sẽ cho phép AI chiến thắng trận đấu Starcraft 1 (chơi công bằng) nếu họ nghĩ rằng một đội quân thủy quân lục chiến chính là cách chơi một trò chơi Terran vs Terran.

Điều này không chỉ giúp AI không bị đánh bại liên tục do lựa chọn chiến lược lỗi thời, mà việc có nhiều tiết mục tiếp cận trò chơi sẽ khiến AI hấp dẫn hơn, nếu AI đưa ra những lựa chọn khả thi trên đường đi.

Một cây chiến lược phong phú thậm chí cho phép trượt khó khăn; ví dụ, Zerg AI điên rồ sẽ có xu hướng thực hiện các cách tiếp cận linh hoạt có thể thích nghi với kẻ thù và nhanh chóng mở rộng khi có cơ hội, nhưng ở mức độ khó thông thường, nó có khả năng chọn các bản dựng cứng nhắc hơn và ít bị mở rộng hơn.

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.