Tôi hiện đang triển khai thuật toán Tìm đường hợp tác của David Silver cho một trò chơi 2D với chuyển động dựa trên lưới (tất cả tám hướng).
Vấn đề tôi gặp khó khăn trong đầu là Bảng đặt chỗ liên quan đến thời gian thực. Tôi đã thực hiện đầy đủ thuật toán trong thử nghiệm riêng của mình; tuy nhiên, việc triển khai của tôi là theo lượt mà mọi người đều di chuyển với cùng tốc độ.
Trò chơi tôi đang cố gắng tích hợp tính năng dẫn đường nhóm vào chuyển động thời gian thực với các đơn vị có tốc độ khác nhau.
Tôi đã tổng hợp một vài cân nhắc tôi cần tính đến và một số có thể giúp tôi thực hiện điều này:
- Kẻ thù không tìm kiếm nhân vật của người chơi
- Tuy nhiên, một số đơn vị địch sẽ đi lang thang
- Kẻ thù sẽ có tốc độ di chuyển khác nhau tùy thuộc vào loại kẻ thù
- Người chơi di chuyển hình đại diện bằng cách nhấp vào đích (điều này bắt đầu một cuộc đi bộ)
- Người chơi có thể bắt đầu chạy bằng cách nhấp đúp vào đích (điều này có thể xảy ra ở giữa các nút lưới)
- Người chơi có các đồng minh theo hình đại diện
- Các đồng minh sẽ chạy để theo kịp hình đại diện nếu ở quá xa và bắt đầu đi lại nếu đủ gần (điều này cũng có thể xảy ra ở giữa các nút lưới)
- Tốc độ không phải là bội số hoàn hảo của nhau
Với những người đang xem xét, giải pháp một phần hiện tại của tôi bao gồm:
- Do xem xét 1 và 2, kẻ thù sẽ chia sẻ các bảng đặt phòng vì tôi có thể khiến chúng di chuyển trên cùng một khoảng thời gian để thời gian của chúng khớp với nhau
- Do cân nhắc 3 và 8, các bảng đặt phòng của kẻ thù sẽ khác nhau bởi tốc độ di chuyển. Tôi đang nghĩ làm theo cách này bởi vì tôi không chắc chắn làm thế nào để sử dụng một bảng đặt chỗ cho tất cả chúng nếu tốc độ của chúng không phải là bội số hoàn hảo của nhau.
- Do các cân nhắc thay đổi tốc độ của 4, 5, 7 và 8, đường đi của người chơi và đồng minh sẽ được tính toán lại bất cứ khi nào họ bắt đầu đi bộ hoặc bắt đầu chạy vì điều đó sẽ ảnh hưởng đến việc điều phối đường đi.
- Vì các đường dẫn có thể được tính toán lại cho hình đại diện của người chơi khi đang di chuyển, tôi sẽ cần phải có hai bảng đặt chỗ dành riêng cho người chơi (một cho đi bộ, một cho chạy). Tôi cũng có thể cần phải có hai bảng đặt chỗ để các đồng minh chia sẻ (một để đi bộ, một để chạy).
- Do thực tế là các đường dẫn có thể được tính toán lại giữa các nút, tôi tin rằng tôi sẽ phải hạn chế thay đổi tốc độ chỉ xảy ra khi một đơn vị trực tiếp trên một nút thay vì có thể thay đổi tốc độ giữa các nút khi nó hoạt động. . Mặt khác, tôi tin rằng tôi sẽ phải tính thời gian cần thiết để đến nút tiếp theo và sau đó theo dõi nó trong bảng đặt phòng bằng cách nào đó.
Cuối cùng, đây là những điều tôi đang tự hỏi về:
- Tôi phải hoàn toàn không hiểu Bảng đặt phòng nếu việc điều phối các đơn vị là khó khăn này. Làm cách nào để xác định thời gian của một nút trong bản đồ Không-thời gian nếu không mất bao lâu để một đơn vị đi từ nút này sang nút khác?
- Chuyển động chéo sẽ là một vấn đề khi xác định thời gian của một nút trong bản đồ Không gian-Thời gian?
- Có cách nào dễ dàng hơn để xử lý việc thực hiện ngắn này khi thực hiện thuật toán tìm đường nhóm khác không?
- Nếu có một thuật toán tìm đường khác mà bạn đề xuất, tôi là tất cả, nhưng tại thời điểm phát triển này, rất có thể không có thời gian để thực hiện một cái gì đó mới trừ khi mã hóa nó cũng như tích hợp nó vào trò chơi sẽ mất ít thời gian hơn gây nhiễu thuật toán đã được mã hóa vào trò chơi.
Vui lòng đề xuất các cách thay đổi một chút cách kẻ thù, người chơi và đồng minh di chuyển nếu điều đó sẽ giúp thực hiện việc này dễ dàng hơn đáng kể. Tôi đánh giá cao bất kỳ sự giúp đỡ nào bạn cảm thấy muốn cung cấp. Cảm ơn vì đã dành thời gian cho tôi!