Có rất nhiều cách bạn có thể làm điều này; Tôi sẽ đề xuất các lựa chọn rõ ràng cho tôi về các lựa chọn của tôi, nhưng có rất nhiều biến thể có thể được thiết kế. Tuyên bố miễn trừ trách nhiệm: Tôi chưa thực sự thực hiện bất cứ điều gì như thế này.
Đầu tiên, bạn cần một cấu trúc dữ liệu bao trùm thế giới của bạn. Nếu bạn đang thực hiện chuyển động NPC trong không gian 3D, thì có lẽ bạn sẽ có hoặc cuối cùng sẽ cần một cấu trúc như vậy cho các mục đích tìm đường - giả sử, lưới điều hướng. Vì vậy, giả sử chúng ta có thể thêm một trường cho mùi hương vào đó.
Vì vậy, những gì chúng ta đặt trong lĩnh vực đó? Tôi đề xuất một danh sách các hồ sơ ( mùi hương , sức mạnh , thời gian ). Danh sách này được giữ ở hoặc dưới một độ dài tối đa và được sắp xếp theo độ mạnh - vì vậy mùi hương yếu sẽ bị loại bỏ. Các mùi hương có thể là một trong hai cái gì đó xác định rõ ràng cho từng đối tượng hoặc chủ thể loại, hoặc nó chỉ đơn giản có thể là loại thực thể - tùy thuộc vào những gì bạn muốn để có thể theo dõi rõ ràng. Thời gian là dấu thời gian khi bản ghi mùi này được cập nhật lần cuối.
Khi một thực thể đi qua một khu vực (ví dụ như một tam giác nhất định của lưới điều hướng), đã đến lúc cập nhật danh sách mùi hương. Đầu tiên, giảm tất cả các điểm mạnh theo lượng thời gian trôi qua theo giá trị thời gian so với thời gian hiện tại - phân rã theo cấp số nhân có lẽ là một lựa chọn hợp lý ở đây. Sau đó thêm mùi hương của thực thể hiện tại vào danh sách, có lẽ với độ mạnh phụ thuộc vào loại thực thể. Sau đó, nếu danh sách chỉ quá dài, loại bỏ sức mạnh thấp nhất.
Để có kết quả theo dõi, hãy tìm mùi hương trong danh sách cho vị trí hiện tại, sau đó làm tương tự cho tất cả các hàng xóm của nó và đi theo hướng mùi hương mạnh nhất (đó không phải là hướng mà người theo dõi vừa xuất phát).
Đối với chủ nghĩa hiện thực thêm:
Khuếch tán: định kỳ chuyển một phần mùi hương ở mỗi vị trí sang các vùng lân cận. Điều này gây nhầm lẫn những con đường mòn, nhưng cũng có nghĩa là những thứ đứng yên có thể được đánh hơi ra (tìm thức ăn, xác chết, v.v.). (Thậm chí đó là một loại AI được công nhận dựa trên các hành động hoàn toàn dựa trên loại thông tin này - cảnh quan cung cấp thông tin về cách đi để có được một tài nguyên cụ thể, v.v. Tôi quên tên của nó.) tính toán khuếch tán khắp nơi.
Mùi hương mạnh nên ngăn chặn việc phát hiện mùi hương yếu; chia sức mạnh của mùi hương tìm kiếm cho sức mạnh của mùi hương mạnh nhất và thất bại nếu nó quá nhỏ. Điều này có thể cho phép cố tình nhầm lẫn dấu vết mùi hương của một người.