Tôi đang thiết kế một trò chơi chiến lược chiến đấu hạm đội không gian 3D-6DOF dựa trên mạng, phụ thuộc rất nhiều vào việc tùy biến tàu. Hãy để tôi giải thích trò chơi một chút, vì bạn cần biết một chút về nó để đặt câu hỏi.
Mục đích của tôi là khả năng tạo ra đội tàu của riêng bạn với hình dạng tùy chỉnh và các mô-đun kèm theo (cánh quạt, dầm máy kéo ...) sẽ mang lại lợi thế và bất lợi cho mỗi tàu, do đó bạn có rất nhiều phân phối đội tàu khác nhau. Ví dụ, con tàu dài có hai cánh quạt ở bên cạnh sẽ giúp con tàu quay xung quanh chiếc máy bay đó một cách dễ dàng, những con tàu lớn hơn sẽ di chuyển chậm trừ khi bạn đặt nhiều cánh quạt ở phía sau (do đó sẽ tiêu tốn nhiều điểm và năng lượng "xây dựng" hơn khi di chuyển, và nó sẽ chỉ di chuyển nhanh về hướng đó.) Tôi dự định cân bằng tất cả các trò chơi xung quanh tính năng này.
Trò chơi sẽ xoay quanh hai giai đoạn: mệnh lệnh và giai đoạn chiến đấu. Trong giai đoạn đặt hàng, bạn chỉ huy các tàu khác nhau. Khi tất cả người chơi kết thúc giai đoạn đặt hàng, giai đoạn chiến đấu bắt đầu và các lệnh tàu được giải quyết trong thời gian thực một thời gian, sau đó hành động tạm dừng và có một giai đoạn đặt hàng mới.
Vấn đề xảy ra khi tôi nghĩ về đầu vào của người chơi. Để di chuyển một con tàu, bạn cần bật hoặc tắt các cánh quạt khác nhau nếu bạn muốn điều khiển, di chuyển về phía trước, phanh, xoay tại chỗ ... Những cánh quạt này không phải làm việc với toàn bộ sức mạnh của chúng, để bạn có thể đạt được nhiều chuyển động hơn kết hợp với cánh quạt ít hơn.
Tôi nghĩ rằng cách tiếp cận này là một chút nhàm chán. Người chơi không muốn nghịch ngợm với động cơ hay bất cứ thứ gì, bạn chỉ muốn M CHUYỂN và GIẾT. Cách tôi dự định người chơi sẽ ra lệnh cho các tàu này là theo điểm đến và vòng quay , và sau đó AI sẽ tính toán công suất chân vịt chính xác để đạt được chuyển động và xoay đó. Lực đẩy không nhất thiết phải giống nhau trong toàn bộ tính toán lần lượt (sau khi đã có lệnh) nên sẽ rất tuyệt nếu các tàu phản ứng khi chúng di chuyển, điều chỉnh sức mạnh của cánh quạt theo nhu cầu của chúng một cách linh hoạt, nhưng có thể là quá khó để thực hiện và nó không thực sự cần thiết để trò chơi hoạt động.
Trong cả hai trường hợp, AI sẽ quyết định kích hoạt cánh quạt nào cho quỹ đạo tốt nhất (hoặc ít nhất là không tệ nhất) để đạt được?
Tôi mặc dù về một số cách tiếp cận:
- Học AI: Các loại tàu sẽ học về chuyển động của chúng bằng cách thử và sai, điều chỉnh hành vi của chúng với nhiều cách sử dụng hơn và cuối cùng trở nên "thông minh". Tôi không muốn tham gia RẤT NHIỀU vào mã hóa AI và tôi nghĩ nó có thể gây khó chịu cho người chơi (ngay cả khi bạn có thể để nó học mà không cần chơi.)
- Chuyển động dấu thời gian được tính toán trước: Khi tạo tàu, TẤT CẢ các chuyển động có thể được tính cho từng cấu hình cánh quạt và công suất trong một thời gian delta nhất định. Trí nhớ chuyên sâu, xấu xí, xấu.
- Các quỹ đạo được tính toán trước: Tương tự như trên nhưng không phải cho từng đồng bằng mà là toàn bộ quỹ đạo, sau đó sẽ được trang bị càng nhiều càng tốt. Yêu cầu cấu hình cánh quạt cố định cho toàn bộ giai đoạn chiến đấu và vẫn còn nhiều bộ nhớ, xấu và xấu.
- Buộc vũ phu liên tục: AI liên tục kiểm tra TẤT CẢ các cấu hình cánh quạt có thể trong toàn bộ giai đoạn chiến đấu, xác định trước một vài bước thời gian và quyết định xem cái nào là tốt nhất dựa trên đó. Con: những gì tốt bây giờ có thể không tốt về sau và nó quá nặng về CPU, xấu và xấu.
- Buộc vũ phu duy nhất: Tương tự như trên, nhưng chỉ buộc vũ phu khi bắt đầu mô phỏng, do đó, nó cần cấu hình cánh quạt không đổi trong toàn bộ giai đoạn chiến đấu.
- Kiểm tra góc liên tục: Đây không phải là một phương pháp di chuyển đầy đủ, nhưng có thể là một cách để loại bỏ các cấu hình cánh quạt "ngu ngốc". Với vectơ bình thường của chân vịt hiện tại và vectơ cuối cùng, bạn có thể tính gần đúng công suất cần thiết cho chân vịt dựa trên góc. Bạn phải làm điều này liên tục trong toàn bộ giai đoạn chiến đấu. Tôi đã tìm ra điều này gần đây vì vậy tôi đã không suy nghĩ quá nhiều. Một tiên nghiệm, nó có nhược điểm "những gì tốt bây giờ có thể không tốt sau này" và nó không quan tâm đến các cánh quạt khác có thể hoạt động cùng nhau để tạo ra một cấu hình đẩy tốt hơn.
Tôi thực sự bị mắc kẹt ở đây. Có ý kiến gì không?