Mẹo xây dựng AI cho game đua xe 2D


10

Tôi có một dự án trường học để xây dựng AI cho một game đua xe 2D, trong đó nó sẽ cạnh tranh với một số AI khác ( không va chạm ).

Chúng tôi được cung cấp hình ảnh bitmap đen trắng của đường đua, chúng tôi được phép chọn các chỉ số cơ bản cho xe của mình (xử lý, tăng tốc, tốc độ tối đa và phanh) sau khi chúng tôi nhận được bản đồ. AI kết nối với máy chủ của trò chơi và cung cấp cho nó nhiều lần số thứ hai để tăng tốc và điều khiển hiện tại. Nhân tiện, ngôn ngữ tôi chọn là C ++. Các câu hỏi là:

Chiến lược hay thuật toán tốt nhất (vì tôi muốn thử và giành chiến thắng) là gì? Hiện tại tôi có một số ý tưởng được tìm thấy trên mạng và một hoặc hai ý tưởng của riêng tôi, nhưng tôi muốn trước khi tôi bắt đầu viết mã rằng quan điểm của tôi là một trong những điều tốt nhất. Những cuốn sách tốt là gì về vấn đề đó? Những trang web nào tôi nên tham khảo?

2d  c++  ai  racing 

1
Nó sẽ phụ thuộc vào độ chính xác của mô phỏng vật lý. Nếu không có vật lý, tôi sẽ chạy hết tốc lực mọi lúc ... nếu không, tôi sẽ bắt đầu giảm tốc độ trước mỗi lượt và tăng tốc 2/3 qua lượt.
Nate

Câu trả lời:


2

Thiết lập AI cơ bản, sau đó thiết lập API để xử lý ô tô của riêng bạn. Nếu bạn có thể đánh bại nó, bạn nên thiết lập một thuật toán ghi âm để có thể củng cố tích cực AI của bạn. Đây có thể là một mạng lưới thần kinh để điều chỉnh hành động của AI của bạn. Chẳng hạn như phanh dần vào một góc, vv

Bạn có được phép sử dụng các thư viện bên ngoài trong dự án của bạn? Nếu vậy, tôi đề nghị bạn nhìn vào FANN . Nó là một thư viện mạng thần kinh nhanh; để tiết kiệm cho bạn viết của riêng bạn. Nếu bạn cần mã nguồn, bạn luôn có thể tự viết nó, tuy nhiên có thể mất một chút thời gian.


1
Có vẻ quá mức cần thiết với tôi.
o0 '.

2
@ Lo'oris Chắc chắn, đặc biệt vì đây có lẽ là một dự án trường học khá đơn giản với thời gian hạn chế để tạo ra một giải pháp cho, tôi không nghĩ rằng việc học có giám sát là cách để thực hiện điều này, chỉ vì mục đích thực tế.
Ray Dey

Không khó để thiết lập và tùy thuộc vào mức độ của đối tượng mà OP đang thực hiện, phương pháp này có thể không nhất thiết là quá mức cần thiết. Đó là những gì tôi sẽ (và đã làm), thú vị và có thể khá đơn giản để đạt được kết quả hiệu quả. Phần khó nhất là xác định những gì nên được thực hiện trong quá trình tiền xử lý ...
deceleratedcaviar

2

Nếu bạn có thể xử lý trước bản đồ trước khi chạy AI, thì chỉ cần tính toán các đường đua tốt nhất thông qua các phân đoạn của bản đồ.

Bài đăng này trên GameDev.net có một số gợi ý.

Các cuốn sách Trí tuệ AI có rất nhiều bài viết về đua AI. Tôi chắc chắn muốn giới thiệu họ, đặc biệt là bài đầu tiên có các bài viết mô tả cách bạn có thể biểu thị bản đồ dưới dạng cấu trúc dữ liệu trong AI của mình.

Một phương pháp khác mà tôi đã thấy là học tăng cường đơn giản (Q-learning), có thể sẽ mất vài nghìn lần lặp để có được con đường tối ưu. Nó được mô tả trong bài viết này: http://www.cs.ubc.ca/~zhijin/540report.pdf


1

Dưới đây là một tài liệu tham khảo tuyệt vời để lái AI: Hành vi chỉ đạo cho các nhân vật tự trị . Đăng ở đây để mọi người tham khảo. Có rất nhiều thông tin để giúp bạn bắt đầu, nhưng cũng có rất nhiều thông tin, vì vậy đừng quá sa lầy vào các chi tiết.

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.