Cách triển khai AI cho game đối kháng


8

Tôi đã chế tạo một máy bay chiến đấu 2D http://neighr.com/mif/index.htmlngày hôm qua.

'Người chơi' thứ hai hầu như không làm gì cả. Thực sự không có gì. Thành thật mà nói, tôi chưa bao giờ làm một trò chơi trước đó có một đối thủ như thế này.

Vì vậy, câu hỏi của tôi là, làm thế nào để bắt đầu với lập trình AI cho đối thủ? Có hướng dẫn, thực hành tốt nhất? Tôi muốn nó là một thử thách (cho người chơi chứ không phải bản thân tôi).

Câu trả lời:


12

N-gram là phổ biến ở đây. Ý tưởng cơ bản là giữ một danh sách các động tác mà người chơi đã thực hiện. Sau đó, bạn có thể, với N lần di chuyển cuối cùng của người chơi, tìm ra khả năng phần trăm cho lần di chuyển tiếp theo của anh ta.

Trò chơi của bạn nên có một cơ sở dữ liệu về các bộ đếm và khối hiệu quả cho mỗi lần di chuyển.

Đối với các chế độ tấn công trong AI, bạn vẫn có thể lập mô hình trình phát cơ bản để xác định những cuộc tấn công nào mà người chơi gặp khó khăn nhất trong việc chặn hoặc chống lại và sử dụng lại chúng.

Đối với khó khăn về AI, chỉ cần hạ thấp AI ở mức độ dễ dàng hơn. Chế độ AI tồi tệ nhất có thể đảo ngược các lựa chọn (nghĩa là, nếu nó biết người chơi thường chặn các cú đấm, thì nó có độ cao hơn là thấp hơn để ném một cú đấm). Chế độ khó cao nhất sẽ sử dụng thuật toán không bị khuyết tật, và có khả năng sẽ đánh bại những thứ nhảm nhí ra khỏi người chơi.

Nếu bạn đang tìm cách làm cho trò chơi trở nên thú vị hơn, tôi cũng khuyên bạn nên thêm cá tính vào AI. Một số nhân vật có thể chế nhạo nhiều hơn, một số có thể phòng thủ nhiều hơn là tấn công, v.v. người chơi thích có thể gán trí thông minh của con người cho các nhân vật AI.


3

Thành thật mà nói, một số câu trả lời hàng đầu khuyên dùng AI phức tạp hơn, Nếu đây là một nỗ lực ban đầu trong một trò chơi và bạn chưa thành thạo về mã, bạn có thể thử cho một AI ngu ngốc hơn

Ví dụ, một hệ thống đơn giản

chờ đợi (0-3 giây)

Cuộn d6

chọn từ 6 hành động.

Hoặc một cái gì đó tương tự tùy thuộc vào bạn có bao nhiêu hành động


2

Đây là cách tôi sẽ làm về ai cho một trò chơi chiến đấu.

Lập danh sách các bước di chuyển (tùy thuộc vào char) phù hợp với các khoảng cách khác nhau từ người chơi và để anh ta chọn một nước đi. Nếu khó khăn được đặt ra khó khăn. Có anh ấy chọn một di chuyển khó khăn. Nếu không, chọn di chuyển mà ít hơn cho trung bình và ít hơn cho dễ dàng. Bạn cũng có thể đưa vào một yếu tố ngẫu nhiên chọn các phạm vi khác nhau từ yếu tố mà người chơi thực sự gặp phải tùy thuộc vào độ khó. Lượng quyết định nên dựa trên độ khó khi anh ta đánh giá 3 giây sau mỗi lần di chuyển (dễ) 2 giây (trung bình). Mỗi lần xác định quá trình hành động của mình.

tóm tắt, chọn một khoảng cách (di chuyển được thiết lập), chọn di chuyển và sau đó họ chờ bao lâu trước khi họ làm điều tương tự. Ở giữa chờ đợi hành động tiếp theo, họ có thể oanh tạc và né tránh một cách tình cờ. Hi vọng điêu nay co ich.


+1 Đây là một giải pháp cực kỳ đơn giản nhưng hoàn toàn khả thi & hiệu quả. Trong mọi trường hợp, bạn sẽ biết liệu một hệ thống như thế này đã được sử dụng trong bất kỳ trò chơi thương mại nào chưa? :)
Miguel

Không, tôi không có. Tôi đang nói từ rất ít kinh nghiệm. Vì vậy, nếu nó tốt, và tôi nghĩ về nó. Sau đó, chắc chắn tôi không phải là người đầu tiên (nếu nó tốt). N di chuyển sẽ thông minh hơn. Nhưng khó hơn.
Kaliber64
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.