Tôi đã đọc khá nhiều để đưa ra lựa chọn sau: giải pháp tìm đường nào nên thực hiện trong một trò chơi nơi thế giới thủ tục được tạo ra, có kích thước thực sự lớn?
Đây là cách tôi thấy các giải pháp chính và ưu / nhược điểm của chúng:
1) tìm đường dẫn dựa trên lưới - đây là tùy chọn duy nhất không yêu cầu bất kỳ quá trình tiền xử lý nào, rất phù hợp. Tuy nhiên, khi thế giới mở rộng, bộ nhớ được sử dụng tăng theo cấp số nhân lên đến mức điên rồ. Điều này có thể được xử lý theo các đường dẫn xử lý, các giải pháp máng như thuật toán Block A * hoặc Subgoal A *. Tuy nhiên, việc sử dụng bộ nhớ là vấn đề khó phá vỡ;
2) navmesh - điều này sẽ rất đáng yêu, do độ chính xác, tính toán đường dẫn nhanh và sử dụng bộ nhớ thấp. Tuy nhiên, nó có thể mất một thời gian tiền xử lý tục tĩu.
3) biểu đồ khả năng hiển thị - tùy chọn này cũng cần thời gian tiền xử lý cao, mặc dù có thể giảm bớt bằng cách sử dụng các thuật toán tiền xử lý nhanh. Sau đó, tính toán đường dẫn nói chung cũng nhanh. Nhưng việc sử dụng bộ nhớ có thể còn điên rồ hơn cả dựa trên lưới tùy thuộc vào cấu hình của thế giới thủ tục.
Vì vậy, điều gì sẽ là cách tiếp cận tốt nhất (những người khác không có trong danh sách này cũng được hoan nghênh) cho tình huống như vậy? Có kỹ thuật hoặc thủ thuật nào có thể được sử dụng để xử lý các thế giới giống như vô hạn về thủ tục không?
Đề xuất, ý tưởng và tài liệu tham khảo đều được chào đón.
BIÊN TẬP:
Chỉ cần cung cấp thêm chi tiết, người ta sẽ thấy ứng dụng mà tôi đang nói đến như một cấp độ văn phòng rất lớn, nơi các phòng được tạo ra sản phẩm. Thuật toán hoạt động như sau. Đầu tiên, các phòng được đặt. Tiếp theo, bức tường. Sau đó là các cánh cửa và sau đó là đồ đạc / chướng ngại vật đi trong mỗi phòng. Vì vậy, môi trường có thể trở nên rất lớn và có rất nhiều đối tượng, vì các phòng mới được tạo ra khi người chơi tiếp cận ranh giới của khu vực đã được tạo. Nó có nghĩa là sẽ không có khu vực mở lớn mà không có chướng ngại vật.