To może być trochę banalne pytanie, ale mam problem ze zrozumieniem tego. Byłbym bardzo wdzięczny za twoją pomoc.
Podczas tworzenia gier z wykorzystaniem projektowania obiektowego chcę zrozumieć, w jaki sposób agenci AI uzyskują dostęp do informacji, których potrzebują ze świata gry, aby wykonywać swoje działania.
Jak wszyscy wiemy, w grach bardzo często agenci AI muszą „postrzegać swoje otoczenie” i działać zgodnie z tym, co się wokół nich dzieje. Na przykład agent może zostać zaprogramowany do ścigania gracza, jeśli zbliży się wystarczająco, uniknie przeszkód podczas ruchu (używając zachowania kierowniczego unikania przeszkód) itp.
Mój problem polega na tym, że nie jestem pewien, jak to zrobić. W jaki sposób agent AI może uzyskać dostęp do potrzebnych informacji na temat świata gry?
Jednym z możliwych podejść jest to, że agenci po prostu proszą o potrzebne informacje bezpośrednio ze świata gry.
Istnieje klasa o nazwie GameWorld. Obsługuje ważną logikę gry (pętla gry, wykrywanie kolizji itp.), A także zawiera odniesienia do wszystkich bytów w grze.
Mógłbym uczynić tę klasę Singletonem. Gdy agent potrzebuje informacji ze świata gry, po prostu pobiera je bezpośrednio z instancji GameWorld.
Na przykład agent może zostać zaprogramowany dla Seek
gracza, gdy jest on / ona blisko. W tym celu agent musi uzyskać pozycję gracza. Więc może po prostu poprosić go bezpośrednio: GameWorld.instance().getPlayerPosition()
.
Agent może również pobrać listę wszystkich bytów w grze i przeanalizować ją pod kątem swoich potrzeb (aby dowiedzieć się, które byty są w pobliżu lub cokolwiek innego): GameWorld.instance().getEntityList()
Jest to najprostsze podejście: agenci kontaktują się bezpośrednio z klasą GameWorld i uzyskują potrzebne informacje. Jest to jednak jedyne znane mi podejście. czy jest lepszy?
Jak zaprojektowałby to doświadczony twórca gier? Czy podejście „zdobądź listę wszystkich bytów i szukaj wszystkiego, czego potrzebujesz” jest naiwne? Jakie są podejścia i mechanizmy umożliwiające agentom AI dostęp do informacji potrzebnych do wykonywania ich działań?