Đây có thể là một câu hỏi tầm thường, nhưng tôi gặp khó khăn trong việc hiểu điều này. Rất đánh giá cao sự giúp đỡ của bạn.
Trong phát triển trò chơi bằng cách sử dụng thiết kế hướng đối tượng, tôi muốn hiểu làm thế nào các tác nhân AI truy cập thông tin họ cần từ thế giới trò chơi để thực hiện hành động của họ.
Như chúng ta đã biết, trong các trò chơi, các nhân viên AI rất cần phải 'nhận thức môi trường của họ' và hành động theo những gì đang xảy ra xung quanh họ. Ví dụ, một đặc vụ có thể được lập trình để đuổi theo người chơi nếu anh ta / cô ta đủ gần, tránh chướng ngại vật trong khi di chuyển (sử dụng hành vi điều khiển Tránh chướng ngại vật), v.v.
Vấn đề của tôi là tôi không chắc làm thế nào để làm điều đó. Làm thế nào một tác nhân AI có thể truy cập thông tin cần thiết về thế giới trò chơi?
Một cách tiếp cận có thể là các đặc vụ chỉ cần yêu cầu thông tin họ cần trực tiếp từ thế giới trò chơi.
Có một lớp gọi là GameWorld. Nó xử lý logic trò chơi quan trọng (vòng lặp trò chơi, phát hiện va chạm, v.v.) và cũng chứa các tham chiếu đến tất cả các thực thể trong trò chơi.
Tôi có thể biến lớp này thành Singleton. Khi một tác nhân cần thông tin từ thế giới trò chơi, họ chỉ cần lấy nó trực tiếp từ phiên bản GameWorld.
Ví dụ, một tác nhân có thể được lập trình cho Seek
người chơi khi anh ta / cô ta ở gần. Để làm được điều này, đặc vụ phải có được vị trí của người chơi. Vì vậy, nó chỉ có thể yêu cầu nó trực tiếp : GameWorld.instance().getPlayerPosition()
.
Một tác nhân cũng có thể lấy danh sách tất cả các thực thể trong trò chơi và phân tích nó theo nhu cầu của nó (để tìm ra những thực thể nào ở gần hoặc bất cứ thứ gì khác): GameWorld.instance().getEntityList()
Đây là cách tiếp cận đơn giản nhất: các đại lý liên hệ trực tiếp với lớp GameWorld và nhận thông tin họ cần. Tuy nhiên, đây là cách tiếp cận duy nhất tôi biết. Có cái nào tốt hơn không?
Làm thế nào một nhà phát triển trò chơi có kinh nghiệm sẽ thiết kế này? Là "có được một danh sách của tất cả các thực thể và tìm kiếm bất cứ điều gì bạn cần" ngây thơ? Có những cách tiếp cận và cơ chế nào để cho phép các tác nhân AI truy cập thông tin họ cần để thực hiện hành động của mình?