Istnieje bardzo interesujący artykuł na temat Gamasutry: Inteligentne błędy: jak włączyć głupotę do swojego kodu AI , Mick West.
W tym artykule opisano sztuczną inteligencję gry w bilard. Wdrażając taką sztuczną inteligencję, dość łatwo jest sprawić, by rzucała piłkę przy każdym strzale. Uproszczonym sposobem uczynienia AI mniej „inteligentnym” jest, jak sugerowano w innych odpowiedziach, dodanie losowego czynnika do obliczeń, co powoduje, że AI traci więcej.
Istnieją jednak dwie poważne wady takiego podejścia. Po pierwsze, jest to nieprzewidywalne. Dla gracza grającego w trybie „łatwym” niedopuszczalne jest, aby AI „miała szczęście”. Co się stanie, jeśli twój losowy czynnik sprawi, że AI wykona jeszcze lepszy strzał, uderzy w bardziej wartościową piłkę lub wykona kombinację? Nie wiesz, co się wydarzy, a szczęście nie powinno być opcją dla AI w łatwym trybie.
Inną wadą jest to, że gracz będzie próbował zidentyfikować wzór w zachowaniu AI. A przy prostym losowym czynniku nie ma wzorca. Ale to nie znaczy, że gracz nie zobaczy żadnego wzorca, wręcz przeciwnie. Gdy tylko AI się poszczęści, gracz zobaczy strategię w swoim zachowaniu. W artykule gracze narzekają na to, że AI gra strategię pozycji. Gdy precyzja kątowa jest przypadkowa .
Z mojego punktu widzenia, po przeczytaniu tego otwierającego oczy artykułu, niedoskonała sztuczna inteligencja nigdy nie powinna wykorzystywać randomizacji jako czynnika upraszczającego. Przeciwnie. Łatwiejsza sztuczna inteligencja powinna być mądrzejsza, ale starać się pomóc graczowi.
W artykule Przykład gry w pulę najlepszą opcją do wdrożenia sztucznej inteligencji w „łatwym trybie” było usunięcie wszystkich czynników losowych i dodanie strategii pozycjonowania. Sztuczna inteligencja próbowałaby uderzyć piłki, aby przygotować dla gracza łatwy i niesamowity strzał .
W ten sposób gracz pomyśli, że miał szczęście. I właśnie tego oczekujesz od gry, gdy grasz łatwo.
Kluczową koncepcją jest unikanie przekazywania NPC „doskonałej wiedzy”.
Jestem pewien, że podanych będzie mnóstwo innych przykładów, może mógłbyś opowiedzieć nam o swojej grze, a my możemy uzyskać bardziej szczegółowe :-)
źródło
Jednym z szybkich sposobów na uczynienie z AI idealnej do walki jest podejmowanie nieskutecznych decyzji poprzez dodawanie „szumu” do jej wejść lub wyjść. Przez hałas mam na myśli pewne czynniki losowe.
Oto mały przykład danych wyjściowych:
Oto kilka pomysłów na dane wejściowe:
Jedną oczywistą rzeczą, którą należy wziąć pod uwagę, jest szybkość AI. W większości gier AI mogą reagować DUŻO szybciej niż ludzie (szczególnie w walce) i wykonywać pozorną wielozadaniowość (bardzo widoczne w grach RTS). Musisz więc działać zgodnie z tym, utrzymując sztuczną inteligencję nieco powolną (być może adaptacyjną) i ograniczając liczbę rzeczy, które może zrobić w określonym przedziale czasu (tj. Jedną akcję co pół sekundy).
Mam nadzieję, że to pomoże i powodzenia!
źródło
Trudno jest udzielić bezpośrednio użytecznej odpowiedzi, nie wiedząc, co dokładnie próbujesz zrobić.
Mam dwie rzeczy do powiedzenia na ten temat, które mogą ci pomóc.
Po pierwsze (i to jest zdecydowanie najważniejsze), jeśli próbujesz sprawić, by wróg poczuł się bardziej interesujący i ludzki, wówczas twoja taktyka walki nie ma znaczenia. Sztuką, aby gracze „uwierzyli”, że wróg żyje, jest użycie animacji, dźwięków i drobnych szczegółów, które sugerują ludzkie zachowanie. Idealna sztuczna inteligencja może chodzić za rogiem, widzieć gracza i strzelać. Ludzka sztuczna inteligencja może chodzić za rogiem, widzieć gracza, mieć zaskoczony wyraz twarzy, krzyczeć z niepokojem i strzelać. Pierwszy wydaje się robotyczny. Drugi wydaje się ludzki. Obaj używają identycznej sztucznej inteligencji pod każdym względem, oprócz wstawiania animacji tuż przed strzelaniem (lub, aby zachować zachowanie taktyczne podczas strzelania).
Po drugie, unikaj losowania. Gracze nie doceniają tego tak bardzo, jak projektanci chcą myśleć, że to zrobią. Gracze nie widzą ”komputer wygenerował 1 na 100, a następnie 5, 3 i 4, więc współczynniki błędów dla ostatnich czterech strzałów wynosiły tylko 1%, 5%, 3% i 4%, i to jest dlaczego w tej rundzie zginąłeś w pół sekundy ”. Gracze widzą wrogów, którzy czasami bardzo tęsknią, a innym razem gwoździami bez wyraźnego powodu, co jest niezwykle frustrujące. Dobry projekt gry polega w dużej mierze na budowaniu wzorów, które potrafią ludzieobserwować, uczyć się i bić, a sukces gracza opierać na jego własnej ocenie, umiejętnościach i intuicji, a nie na tym, czy gracz miał szczęście. Chęć losowania wynika z doświadczenia z grami stołowymi i grami hazardowymi, które są niewiarygodnie różnymi mediami niż gry wideo (a to, co działa na jednym medium, często nie ma sensu na innym).
źródło
Pamiętam, że na naszym kursie AI na studiach był temat na temat uczynienia AI bardziej „ludzką” i mniej idealną. To było wiele lat temu, więc po prostu pamiętam kilka kul z mojego umysłu.
Oczywiście są to tylko ogólne porady, które należy zbadać i przetestować w każdym przypadku, i mogą sprawić, że twoja sztuczna inteligencja będzie wyglądać jeszcze bardziej sztucznie, niż zamierzano. Myślę jednak, że są dobrym punktem wyjścia.
źródło
Właśnie zobaczyłem to wyskakujące okienko i chciałem podzielić się pomysłem, który wykorzystałem w przeszłości.
Powiedzmy, że postać ma trzy ruchy i każdy jest punktowany, wyższy wynik to lepszy ruch. (Inne odpowiedzi mówią o dodawaniu hałasu do tworzenia tego zapisu).
Zsumuj sumę punktów (100)
Wyjmij statystykę inteligencji postaci z maksymalnej możliwej wartości tej statystyki (powiedzmy 60 na 100).
Wygeneruj losową liczbę między 0 (lub innym piętrem) a współczynnikiem inteligencji (0,6), pomnóż przez całkowitą liczbę punktów (100). W naszym przykładzie powiedzmy, że wynik to 45.
Teraz zaczynasz odejmować złe ruchy od tej wartości, aż osiągniesz zero. (Odejmij w kolejności.)
Po pierwsze, bierzemy pod uwagę zaklęcie Lodu, które uzyskało wynik 20. 45-20 = 25. Jest to powyżej zera, więc rzucamy zaklęcie Lodu.
Po drugie, spójrz na atak mieczem wartym 30 punktów. 25–30 = -5. Osiągnęliśmy próg, więc wybieramy Atak mieczem.
W tym systemie postać o niskiej inteligencji nie wybierze najlepszego ruchu. A postać o wysokiej inteligencji często wybiera najlepszy ruch. (W tym przykładzie postać o doskonałej inteligencji wybiera najlepszy ruch w 50% przypadków).
Dodanie mechanizmu podłogowego do liczby losowej zwiększy szansę na wybranie lepszych ruchów.
źródło