35

Ở trường, một trong những giáo sư của tôi đã tạo ra một trò chơi 3D (không chỉ là động cơ), nơi mà tất cả người chơi hoàn toàn được AI điều khiển, và đó là nhiệm vụ của chúng tôi để lập trình AI cho một người chơi đơn lẻ. Về cơ bản, chúng tôi đã cung cấp một API để tương tác với thế giới trò chơi.Sân chơi dành cho Trí tuệ Nhân tạo?

Việc triển khai AI của chúng tôi sau đó được đưa vào trò chơi cùng nhau và chúng tôi đã xem khi các chương trình của chúng tôi chiến đấu với nhau.

Nó giống như robot soccer, nhưng ảo, với rất nhiều súng lớn và không có bóng đá.

Tôi hiện đang tìm kiếm bất kỳ điều gì tương tự (và mã nguồn mở) để chơi cùng. (Tốt nhất là trong Java, nhưng tôi đang mở cho bất kỳ ngôn ngữ nào.) Tôi là không phải tìm kiếm một công cụ trò chơi hoặc một khung công tác ... Tôi đang tìm một trò chơi hoàn chỉnh đơn giản là thiếu mã AI ... tốt hơn thiết lập cho loại bài tập này. Gợi ý?

Trả lời

21

Điều này nghe có vẻ rất giống với Robocode.

Robocode là một trò chơi lập trình, mục tiêu là phát triển một xe tăng chiến đấu robot để chiến đấu chống lại các tăng khác trong Java hoặc .NET. Các trận chiến robot đang chạy trong thời gian thực và trên màn hình.

+11

khiếu nại của tôi về RoboCode là nó nhanh chóng trở thành một dự án học tập trig chứ không phải là một dự án học tập API hoặc AI. Một khi bạn phát triển một tập hợp các thư viện để trừu tượng đi các trig bạn có thể nhận được để lập trình làm việc AI. IMHO nó nên đi kèm với một thư viện như một phần của API. –

+2

@ Chris Nava: Tôi đang viết xuống trong sổ ghi chép ý tưởng của mình cho các dự án nguồn mở. –

+2

Hãy cho tôi biết nếu bạn đặt nó xuống đất. –

6

Lớp AI của tôi đã sử dụng mã nguồn mở BZFlag, điều này hóa ra khá thú vị và mang tính thông tin.

2

Bạn có thể bắt đầu với this game

Một số AI đã được thực hiện để bạn có thể lấy một ví dụ

9

Check-out Mario AI. Bạn có thể lập trình một AI để kiểm soát Mario. Có một cuộc thi và một số giấy tờ liên kết với nó. Rất dễ cài đặt và chạy với Java hoặc bất kỳ ngôn ngữ JVM nào.

1

Khám phá ORTS.

+0

Đây chỉ là một công cụ trò chơi. – Dolph

+0

ORTS là một khung công tác trò chơi RTS mã nguồn mở. Bạn thiết lập nó, xác định trò chơi, và sau đó bạn viết các tác nhân AI sử dụng API để chơi trò chơi. –

2

Tôi biết bạn đã gián tiếp tham chiếu RoboCup trong câu hỏi của bạn, nhưng tôi nghĩ nó đáng được đề cập ở đây với tiêu đề. Có cả 2D và 3D phiên bản:

Các giải đấu 2D là trừu tượng hơn với các lệnh như di chuyển, đánh bắt, đá.

Giải đấu 3D phức tạp hơn khi bạn phải điều khiển các góc của mỗi bản lề trong cơ thể rô bốt 3D (22 trong số đó có mô hình Nao).

Cả hai đều là bài tập hợp lệ cho AI. Nó có thể phụ thuộc vào khu vực AI mà bạn muốn chơi cùng.

Cả hai có thể được lập trình từ bất kỳ ngôn ngữ/nền tảng nào hỗ trợ cổng TCP. Bạn sẽ tìm thấy mã mẫu trong Java trực tuyến để giúp bạn bắt đầu. Tôi đã duy trì danh sách các thư viện hiện có cho 3D RoboCup trên SimSpark Wiki here.

Nếu bạn muốn sử dụng.Đối với giải đấu 3D, bạn có thể sử dụng số TinMan library mà tôi đã tạo.

10

Bạn có thể muốn xem AIIDE trong năm 2010, nơi họ sẽ lưu trữ Starcraft Broodwar AI competition. Bạn có thể tải xuống phần mềm, API và proxy để cho phép bạn kết nối AI trong nhà của bạn vào mô phỏng Broodwar.

Không giống như các nền tảng khác như 3D Robocup, công cụ Broodwar sẽ xử lý vật lý, và có thể sẽ cho phép bạn tập trung hầu hết thời gian vào các khía cạnh cấp cao hơn như lập kế hoạch đường dẫn, chiến lược, phân bổ nguồn lực. các dạng cơ bản của AI mà bạn có thể đặt ở dạng trình giữ chỗ trong khi bạn làm việc với cải tiến cụ thể của mình, ví dụ như AI cận chiến chẳng hạn.

+0

+1 BWAPI. Tôi hoàn toàn quên mất điều này. –

+0

+1 cuộc gọi đẹp, không biết làm thế nào tôi không nhớ điều đó. trên một mặt lưu ý: khi bạn nói "Không giống như các nền tảng khác như Robocup" bạn đang nói về giải đấu 3D kể từ khi giải đấu 2D là, như Drew Noakes nói, "trừu tượng hơn". –

+0

Có, tôi đang đề cập đến giải đấu 3D. Bạn nói đúng là giải đấu 2D trừu tượng hơn. Trong giải đấu 2D, các toán tử cơ bản là "di chuyển, gạch ngang, rẽ và đá". – Eric

1

Torcs là công cụ trò chơi đua xe cho phép bạn tạo trình điều khiển của riêng mình trong C++.

0

Trò chơi của giáo sư nhắc tôi rất nhiều trò chơi cũ trên máy Macintosh Assassin, đã lãng phí nhiều giờ sau giờ học của tôi trong ngày. Đó là một trò chơi theo lượt thú vị, nơi người chơi nhập các bước di chuyển của họ vào đầu mỗi lượt, và sau đó di chuyển của họ được thực hiện cùng một lúc. AI của game khá ngốc nghếch, và tôi luôn ước gì mình có thể muck xung quanh và cải thiện chúng, nhưng tôi chưa bao giờ tìm thấy một phiên bản nguồn mở của trò chơi.

4

Bạn có thể xem xét Open NERO ("(Tốt nhất là trong Java, nhưng tôi mở cho bất kỳ ngôn ngữ nào.)") Nhưng nó được viết bằng Python. Nếu không ai trong số những gợi ý Java hấp dẫn đối với bạn, hãy xem ở đây:

http://code.google.com/p/opennero/

Nó không "thiếu" AI mã, nó chứa nó. Có lẽ nhìn vào một sự cấy ghép AI trong Python sẽ cung cấp cho bạn một số nguồn cảm hứng cho các nỗ lực Java của bạn.

Chỉnh sửa: Để giải quyết nhận xét của vidstige - bạn có thể thử cách này: http://aichallenge.org/ - Lập trình kiến ​​để thu thập thức ăn và chống lại kẻ thù. Dường như có một thực thi Java ở đó.

+0

thực hiện điều này có thực sự trả lời câu hỏi không? Anh ấy đang tìm kiếm thứ gì đó mà bạn phải điền vào AI của bạn ... – vidstige

+0

@vidstige - điểm tốt - bài đăng gốc được chỉnh sửa để bao gồm một số thứ tập trung hơn vào câu hỏi. – robrambusch

+0

@vidstige: Nó cũng có các bài tập tốt cho luyện tập AI algo.Nó chứa các ví dụ từ cuốn sách AI rất nổi tiếng của Russell và sách giáo khoa của Norvig Artificial Intelligence: Một phương pháp tiếp cận hiện đại. – darshan

Các vấn đề liên quan