Tôi đang cố gắng cải thiện khả năng tìm đường cho kẻ thù trong trò chơi của mình. Ngay bây giờ, về cơ bản, họ chỉ cần liên tục di chuyển về phía vị trí chính xác của người chơi bằng cách tính góc giữa họ và người chơi và di chuyển theo hướng đó. Tôi cũng có một thuật toán đổ xô để ngăn chặn kẻ thù xếp chồng lên nhau, vì vậy chúng sẽ tạo thành nhóm chứ không phải cắt qua nhau.
Tuy nhiên, bây giờ tôi đã thêm một bản đồ dựa trên gạch, tôi cần kẻ thù cũng có thể đi vòng qua chướng ngại vật và tường chẳng hạn. Ban đầu, tôi đã thử thêm một giá trị phân tách vào các ô "không thể đi được" để thuật toán đổ xô sẽ coi các bức tường và chướng ngại vật là các vật thể di chuyển ra xa. Tôi vẫn chưa biết liệu điều này có khả thi hay không bởi vì thử nghiệm ban đầu của tôi cho thấy kẻ thù đâm vào một "bức tường" vô hình, nơi không có gạch không thể đi được, nhưng vì một số lý do, họ đã đánh nó và bắt đầu lóe ra.
Tôi đã tự hỏi nếu nó có thể quá nặng về hiệu suất để tính toán đường dẫn đến người chơi bằng A * và sau đó sử dụng thuật toán đổ xô để ngăn ngừa vón cục. Ban đầu trò chơi của tôi sẽ là một game bắn súng dựa trên sóng, nhưng thay vào đó tôi đã quyết định biến nó thành cấp độ theo mạch của Hotline Miami, vì vậy có khả năng tôi sẽ có ít kẻ thù hơn, với đám đông thỉnh thoảng, và chỉ cần tạo ra họ mạnh mẽ hơn.
Đây có phải là một giải pháp khả thi? Tôi đang sử dụng Java với Slick2D làm công cụ trò chơi của mình. Hoặc có một giải pháp / thuật toán tốt hơn để giải quyết cả hai vấn đề này?