Nếu theo địa hình có thể phá hủy, bạn có nghĩa là những thay đổi lớn đối với môi trường đa cấp khổng lồ, điều này sẽ khó khăn như địa ngục, đặc biệt là đối với các đơn vị đi bộ. Sẽ là khôn ngoan khi phân chia các đơn vị bay và đi bộ ngay từ đầu, vì vậy chúng sẽ có các biểu đồ riêng biệt.
Tôi không thể nói rằng tôi biết một giải pháp dứt khoát cho các đơn vị đi bộ. Tùy thuộc vào số lượng tác nhân, thay đổi địa hình tiềm năng và độ phân giải nút khối, bạn có thể hoặc không muốn sử dụng D *. Về bản chất, D * là một lực lượng vũ phu A *. Giống như Nick gợi ý, vũ phu buộc chỉ đi trước một bước có thể dẫn đến rất nhiều "ngõ cụt", vì nếu không có toàn bộ đường dẫn, bạn sẽ không thể biết ngay nút tiếp theo có đúng hay không. Ngoài ra, bạn sẽ phải suy nghĩ về bộ đệm đường dẫn và vô hiệu hóa một phần của nó, vì vậy bạn không cần phải vũ trang liên tục trên cơ sở mỗi tác nhân. Nhìn chung, nó sẽ không dễ dàng và có thể trở nên quá nặng CPU.
Thay vào đó, sử dụng A *, trường hợp đơn giản nhất là hạn chế phá hủy địa hình của bạn ở mức tối thiểu và tránh xa việc tìm đường phân cấp, như "A" thô "và một số hình thức tránh cục bộ. Tôi đoán đó không phải là một lựa chọn, vì vậy bạn có thể cố gắng chuyển đổi mặt đất và tường của khối lập phương thành lưới điều hướng và sau đó thay đổi từng phần. Tất nhiên, tính toán Navmesh không nhanh, nhưng có một căn phòng để tối ưu hóa khác nhau để tránh tính toán lại hoàn toàn lưới đã nói khi thay đổi địa hình. Ý tưởng chung là thực hiện cập nhật lưới cục bộ, do đó, chỉ các khu vực bị ảnh hưởng của lưới điều hướng sẽ được thay đổi khi phá hủy địa hình. Nó có thể được thực hiện bằng cách sử dụng sự thích ứng của việc xây dựng sơ đồ Voronoi, nhưng nó không phải là "khu vực được giải quyết". Sẽ không dễ dàng gì, vì bạn sẽ phải tăng tốc tính toán lại hải quân,
Đồ thị cho các đơn vị không khí là đơn giản hơn nhiều. Về cơ bản, bạn sẽ phải tìm tất cả "không gian trên không" và chuyển đổi nó thành biểu đồ. Vì hang động của bạn rất năng động, sự lựa chọn rõ ràng nhất là dựa vào biểu đồ này trên octree của khối lập phương. Sử dụng centroid lá octree (điểm ở giữa khối lá) làm cơ sở để tính toán các nút và lọc ra tất cả các centroid ở các vị trí rõ ràng không hợp lệ. Kiểm tra trọng tâm kết quả để loại bỏ tất cả những gì không thể tiếp cận từ hàng xóm của họ. Điều này sẽ rất nhanh, vì vậy mối quan tâm chính của bạn vẫn nằm trong khả năng tìm đường.