Làm một trò chơi 4X có thể vượt qua AI


8

Tôi đang mã hóa một trò chơi 4X khá "đơn giản" (nếu trò chơi 4X có thể đơn giản). Đó là phạm vi độc lập và tôi tự hỏi liệu có cách nào để đưa ra một AI có thể vượt qua mà không khiến tôi mất hàng tháng để mã hóa nó không.

Trò chơi có ba phần ra quyết định chính; chi tiêu cho các điểm sản xuất, chi tiêu cho các điểm di chuyển và chi tiêu cho các điểm công nghệ (về cơ bản có 3 "loại tiền tệ" khác nhau, tiền tệ chưa được sử dụng vào cuối lượt không được lưu)

  • Chi tiêu sản xuất
    • Nâng cấp một hành tinh (tăng công nghệ và sản xuất)
    • Đóng tàu (3 loại)
  • Di chuyển tàu từ các hành tinh đến các hành tinh (chi phí Điểm di chuyển)
    • Di chuyển để tấn công
    • Di chuyển để củng cố
  • Research Tech (có thể nghiên cứu một phần công nghệ tức là, như trong Master of Orion)

Kế hoạch cho tôi ngay bây giờ là một cách tiếp cận vũ phu. Về cơ bản có 4 tùy chọn rộng rãi cho người chơi -

  1. Nâng cấp hành tinh lên sản lượng công nghệ và sản xuất của mình

  2. Chinh phục càng nhiều hành tinh càng tốt

  3. Bảo vệ càng nhiều hành tinh càng tốt

  4. Đến một công nghệ nhất định càng sớm càng tốt

Đối với mỗi quyết định, tôi sẽ lặp qua các tùy chọn có thể và đưa ra điểm số; và sau đó AI sẽ chọn quyết định có số điểm cao nhất. Ngay bây giờ tôi không biết làm thế nào để 'trộn các quyết định'. Đó là, ví dụ, AI mong muốn nâng cấp và chinh phục các hành tinh cùng một lúc. Tôi cho rằng tôi có thể có một logic khác để tối ưu hóa lực lượng vũ phu trên sự kết hợp của 4 quyết định đó ....

Ít nhất, đó là kế hoạch của tôi nếu tôi không thể nghĩ ra điều gì tốt hơn. Có cách nào nhanh hơn để tạo ra một AI có thể vượt qua? Tôi không cần một thứ rất tốt, để cạnh tranh với Deep Blue hay đại loại thế, chỉ là thứ gì đó có ảo ảnh về trí thông minh.

Đây là lần đầu tiên tôi làm AI ở quy mô này, vì vậy tôi không dám thử một cái gì đó quá lớn. Cho đến nay tôi có kinh nghiệm với FSM, DFS, BFS và A *


2
Cách chính xác để tiếp cận vấn đề này là tự mình nghiên cứu về nó. Thực hiện những gì bạn mô tả và xem nó hoạt động tốt như thế nào. Sau đó làm cho nó tốt hơn. Khi bạn nghĩ rằng bạn có một thuật toán tốt, hãy triển khai lại AI để sử dụng cấu trúc mới. Tôi khuyên bạn nên xây dựng ngôn ngữ này bằng ngôn ngữ kịch bản như Lua, để dễ dàng ném mã cũ đi.
Nicol Bolas

Để làm rõ, tôi có thể thử thực hiện những gì tôi có trong tâm trí. Tôi chỉ tự hỏi liệu có những cách khác để tạo ra AI ngoài phương pháp tối đa hóa hay phương pháp 'lặp lại và tính toán tốt nhất' truyền thống.
Extrakun

Câu trả lời:


4

Âm thanh như bạn có thể thử Minimax để "trộn" các quyết định của bạn. Có một cuộc nói chuyện tại Game AI Conf năm ngoái của các lập trình viên đằng sau Green Corp, và đó là những gì họ đã sử dụng để xây dựng AI của mình. Họ đã mất rất nhiều thời gian để làm cho đúng, nhưng họ có một kết quả tốt.


1

Nếu nó đủ tốt để khơi dậy sự quan tâm (và bạn sẽ phải cho rằng nó sẽ như vậy, hoặc bạn có thể bỏ nó ngay bây giờ), và nó hỗ trợ kết nối mạng, cách hành động tốt nhất cho loại điều này là:

  • xây dựng nó nhiều người chơi mà không cần bất kỳ AI
  • đảm bảo rằng mọi dữ liệu được gửi đến máy khách đều có thể dễ dàng "hiểu" bởi AI
  • tạo ra một AI rất đơn giản, cho phép một số loại kịch bản hoặc nhiều tùy chọn cấu hình
  • cho phép người chơi sửa đổi các tập lệnh AI, liên kết chúng với trò chơi và để AI chơi qua mạng, như thể đó là một người chơi thực sự

Làm như vậy, phần khó sẽ là cho phép AI được viết kịch bản và sử dụng theo cách này, và bạn sẽ chỉ "thuê ngoài" tối ưu hóa AI thực tế cho người chơi.

Điều này không chỉ mang đến cho bạn một AI tốt hơn nhiều mà còn tăng thêm nhiều giá trị cho chính trò chơi!

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.