ZagrAI ze mną

Prawdopodobnie każdy gracz znalazł się choć raz w sytuacji, kiedy sztuczna inteligencja (AI) zachowała się tak nieracjonalnie, że sprawiła wrażenie bardziej sztucznej niż inteligentnej.


Prawdopodobnie każdy gracz znalazł się choć raz w sytuacji, kiedy sztuczna inteligencja (AI) zachowała się tak nieracjonalnie, że sprawiła wrażenie bardziej sztucznej niż inteligentnej.

Chochliki w grze strategicznej wstrzymują decydujący atak zbrojnej formacji. Przeciwnik w czarodziejski sposób pojawia się dokładnie w tych miejscach, w których może pokrzyżować twoje plany, chociaż nie powinien mieć o nich zielonego pojęcia. Strzelcy przeciwnika trafiają osobę, która na-gle pojawiła się w ciemnym kącie pokoju i której nie mogą zobaczyć. Takie doświadczenia psują radość z gry, podobnie jak niechlujna grafika i nierealistyczne ruchy. Jednak jest między nimi różnica: zarówno fizyka ruchu, jak i grafika w ciągu dziesięcioleci zastosowań docze-kały się wydajnej sprzętowej akceleracji, podczas gdy sztuczna inteligencja dalej pozostaje tajemnicą dla większości graczy. Wyjaśnimy więc, jak ona działa i dlaczego jedne gry mogą być znacznie lepsze od innych.

Sztuczna inteligencja w grach jest słaba

W "Age of Empires" analiza terenowa wyróżnia poszczególne strefy oddziaływania. Zaznaczone obszary wokół kopalni złota informują AI o dobrych miejscach do składowania zapasów.

W "Age of Empires" analiza terenowa wyróżnia poszczególne strefy oddziaływania. Zaznaczone obszary wokół kopalni złota informują AI o dobrych miejscach do składowania zapasów.

Można przypuszczać, że pierwszym logicznym krokiem pracy nad tworzeniem gry AI jest zwrócenie się po radę do naukowców, aby dowiedzieć się, kiedy i jakie zachowania człowieka mogą być odwzorowane przez maszynę. W akademickiej teorii sztucznej inteligencji rozróżnia się dwie szerokie dziedziny zwane mocną i słabą AI. Zwolennicy pierwszej wierzą, że można odwzorować zachowania ludzkiego umysłu, wystarczy tylko je dokładnie zgłębić i dysponować wystarczająco szybkim komputerem. Głosiciele tej teorii podają nawet datę, kiedy sztuczna inteligencja przewyższy ludzką. Ray Kurzweil, pionier prac nad rozpoznawaniem tekstu i mowy, przewiduje, że ten moment nadejdzie już w latach 20. XXI wieku. Zwolennicy drugiej teorii nie są tak optymistyczni. Według nich nie będzie możliwe całkowite zrekonstruowanie ludzkiej inteligencji, a jedynie uzyskanie kilku fragmentarycznych, pożytecznych rezultatów.

Sztuczna inteligencja używana w grach pasuje do drugiej kategorii. Nie próbuje stworzyć modelu ludzkiej istoty, bo nie jest w stanie. Zamiast tego używa skomplikowanych matematycznych algorytmów, któ-re nie mają naśladować sposobu myślenia człowieka na temat dowolnego problemu, ale ściśle ograniczać się do rozrywki i wyzwań stawia-nych przed uczestnikiem w świecie gry. W zasadzie sztuczna inteli-gencja w grach powinna pracować z pełną mocą przez cały czas, ale często realizm i złożoność są poświęcane na rzecz uproszczenia systemu i zmniejszenia zapotrzebowania na moc obliczeniową.

Gry wymagają specjalnej AI

Komputerowi przeciwnicy gracza (w fachowym żargonie zwani Non-Player Characters (NPC)), teoretycznie mogliby zachowywać się jak autentyczne osoby ze zredukowanym do tematu gry zasięgiem zainteresowań. Niestety, nie ma jeszcze mocy obliczeniowej ani algorytmów zdolnych zrealizować tę ideę. NPC muszą po prostu rozwiązywać specyficzne problemy z grupy tych, które mogą spotkać.

Jednym z najważniejszych problemów AI w grach jest znajdowanie ścieżki ruszającym się postaciom. Powinny one unikać napotykanych przeszkód nieruchomych oraz zmieniających położenie w czasie akcji. Jednocześnie nie mogą tracić z oczu celu nadrzędnego - wyobraźmy sobie grę strategiczną (RTS), w której armia sterowana przez komputer zmienia kierunek marszu na przeciwny, napotkawszy na nieznaczące utrudnienie. Albo kiedy ruch postaci zostaje zablokowany z niezrozumiałych powodów gdzieś poza scenerią gry. To wypadki, do których dobra AI nie powinna dopuszczać.

W ciągu ostatnich lat metody znajdowania ścieżki w grach udało się nieco ulepszyć. Na przykład, w oryginalnej grze "Warcraft" jednostki traktowały każdą z przeszkód indywidualnie, obchodząc ją dopóty, dopóki nie było możliwe odzyskanie oryginalnego kierunku ruchu. Oczywiście taki algorytm był bardzo nieekonomiczny i raczej nie przypominał sposobu zachowania się inteligentnej osoby. W późniejszych grach, takich jak "Age of Empires II", zastosowano bardziej całościową metodę, w której wyszukiwanie optymalnej drogi uwzględniało nie tylko jedną, ale jednocześnie całą grupę przeszkód. Ten problem jest znany w matematyce pod nazwą algorytmu komiwojażera (travelling salesman), w którym istnieje kilka typowych rozwiązań. Najprostszym z nich jest przeszukiwanie wszerz (Breadth-First Search, BFS): rozpoczyna się od jednego węzła, przechodzi do jego sąsiadów, stąd do sąsiadów tamtych sąsiadów i tak dalej, aż do znalezienia poszukiwanej trajektorii w stronę zamierzonego celu. Takie błądzenie można zmodyfikować przez dodanie zasady holistycznej, która kierując się ogólnymi przesłankami, będzie faworyzować niektóre węzły kosztem innych. Najprostsza wersja takiej poprawki nosi nazwę algoryt-mu zachłannego (Best-First Serach). Większość współczesnych silników gier posługuje się jednym z jego wariantów. Przykładową zasadą całościową może być odległość między węzłem a celem. Zmieni ona kolejność poszukiwania optymal-nej ścieżki - w takim wypadku badanie trajektorii rozpocznie się od najkrótszej drogi.

Kolejna komplikacja algorytmu zachłannego jest znana pod nazwą A*. To właśnie ten wariant należy do najpopularniejszych. Od standardowej wersji różni się tym, że oprócz dystansu do celu, bierze pod uwagę także już przebytą odległość. Zatem w A* do oceny przyszłych kierunków ruchu używa się dwóch odcinków, dzięki czemu algorytm z dużym prawdopodobieństwem wśród możliwych trajektorii znajdzie tę najkrótszą. Algorytm zachłanny w oryginalnym wariancie daje tylko bardziej bezpośrednie wskazówki, niemniej jednak w wielu wypadkach obie metody - prosta i bardziej skomplikowana - proponują te same rozwiązania.

Zarówno algorytm zachłanny, jak i A* nie są pozbawione wad. Kiedy trajektoria musi zboczyć z bezpośredniej drogi do celu, np. żeby ominąć przeszkodę, obie metody przynoszą więcej szkody niż pożytku. Wtedy bardziej efektywne pozostają algorytmy, które w ogóle nie klasyfikują kierunku ruchu według odległości, a zwyczajnie przeszukują obszar punkt po punkcie, począwszy od najbliższych. Jeśli to nie doprowadzi do celu, poszerzają obszar o kolejnych sąsiadów itd. Niestety, takie szukanie też ma swoje mankamenty, które widać w starszych grach RTS. Na przykład w "Warcrafcie" komputer często wybiera drogę naokoło długich przeszkód, takich jak rzeki, zamiast poprowadzić wojsko do najbliższego mostu. Jednym słowem, na A* wcale się nie skończył rozwój algorytmów poszukiwania ścieżki, stosowanych we współczesnych grach. Kolejnym z chętnie stosowanych rozwiązań jest algorytm Dijkstry (zbyt skomplikowany, by go tutaj szczegółowo omawiać). Ciekawym doświadczeniem byłoby uruchomienie algorytmów dwukierunkowo, od punktu startu do końca i odwrotnie. Okazałoby się, że wbrew intuicji, znalezione trajektorie w kierunku tam i z powrotem niekoniecznie się pokrywają.