O AI, czyli o Sztucznej Inteligencji, cz. 2

Wiemy już jakie są funkcje AI, czas teraz przyjrzeć się AI z bliska i zastanowić się „dlaczego AI w grach ssie?”.

Może gdzieś tam są AI oparte na ewoluujących sieciach neuronowych czy czymś takim, ale sztuczna inteligencja w grach to tylko nieco bardziej skomplikowany, ale zwyczajny algorytm.

Bez wchodzenia zbytnio w szczegóły, typowe AI składa się z:

  1. Algorytmów warunkowych (nieliniowych), będących sercem AI. Komputer po prostu wylicza „najlepsze” posunięcia.
  2. Skryptów, czyli instrukcji dla danej sytuacji lub danego scenariusza. Twórca gry, w optymistycznej wersji, łata w ten sposób braki jakie powstałyby przy stosowaniu wyłącznie niedopracowanych algorytmów nieliniowych. Można w ten sposób np. wskazać odgórnie najlepszą dla danej mapy strategię dla AI. W wersji pesymistycznej skrypty stanowią niemal całe AI.
  3. Losowości (generatory liczb pseudolosowych) potrzebnej, by AI potrafiło zachować się nieprzewidywalnie i inaczej za każdym razem. Czasem też chodzi o to, żeby gracz-AI popełniał błędy (np. komputerowy trener szachowy).

Jedną z przyczyn kiepskiego poziomu AI jest plan wydawniczy. Żeby napisać dobre AI potrzebna jest cała reszta gry. Gra jednak powstaje stopniowo, co jakiś czas dodawane są nowe elementy. Prawie każdy nowy element zmienia sposób w jaki należy grać w grę i powoduje to, że trzeba zmieniać AI. Gdy gra jest w wersja beta, czyli zawiera wszystkie elementy, wtedy teoretycznie powinno się grę testować. Ale wydawca często stwierdza, że mu się to nie opłaca, skoro gra wygląda na skończoną, a każdy dzień testowania opóźnia otrzymanie spodziewanych zysków. Czasem nie ma więc czasu nie tylko na zrobienie jako takiego AI, ale nawet na wyłapanie większych bugów czy braków w balansie. Można sobie tylko wyobrazić jak szef projektu mówi: „Spokojnie. Te baranie głowy, które od tylu lat kupują nasze gry w ciemno, nie zauważą dennego AI, pod warunkiem, że damy komputerowemu graczowi większe bonusy. Resztę załatwią skrypty, przecież nie bez powodu każda nasza kolejna gra jest bardziej liniowa.”.

AI sprawdza się praktycznie zawsze lepiej w obronie niż w ataku.

Obrona to czynność polegająca na prostych odruchach. Jako obronę rozumiem tu działania blokujące, mające za cel utrzymanie się przez pewien czas na określonych pozycjach, bez aspiracji na całkowite pokonanie przeciwnika, chyba że takiego kierowanego przez AI. Już samo „czytanie terenu” i znajdowanie dogodnych miejsc pod obronę to dla komputera równie trudne zadanie jak choćby odczytanie napisów CAPTCHA. Jeśli mapa nie jest generowana losowo, tylko dana odgórnie, to pół biedy, bo można po prostu wskazać AI stanowiska obronne (oskryptowanie). Ale by obrona była skuteczna, należy reagować na posunięcia przeciwnika i tu jest pole do popisu dla algorytmów nieliniowych.

Atak wymaga tego samego co obrona i dodatkowo kreatywności, planowania długoterminowego, odpowiedniego manewrowania i stosowania zmyłek (oczywiście mowa tu jest o ataku, który może przynieść powodzenie przy wyrównanych zasobach). We wszystkich tych rzeczach sztuczne inteligencje są o lata świetlne za człowiekiem. Najczęściej atak AI polega na atakowaniu zbyt małą (bardzo często) lub zbyt wielką (rzadko, ale jest to błąd gdy gra uwzględnia potrzebę zaopatrzenia wojsk lub gdy doprowadza to do zostawienia niebronionej bazy) liczby wojsk i wysłaniu ich najkrótszą drogą w stronę przeciwnika.

AI jest praktycznie zawsze lepsze w taktyce niż w strategii. Strategia to plan wojny i ruchy armii, taktyka to bitwy i sposób w jaki poszczególne korpusy wykonują swoje zadania.

Strategia wymaga, podobnie jak atak, umiejętności, w których komputer jest kiepski, czyli kreatywności, planowania długoterminowego, dostrzeżenia i wykorzystania szans jakie dają umiejscowienie geograficzne i charakterystyczne cechy posiadanych zasobów, domyślania się co kombinuje przeciwnik przy dostępie do niewielkiej ilości dostępnych informacji (mgła wojny). AI w grach wojennych ma najczęściej zaskryptowaną jedną lub dwie (defensywną i ofensywną) strategie uniwersalne z ewentualnymi modyfikacjami zależnymi od danego scenariusza, mapy itd.

Algorytmy taktyczne są łatwiejsza do zaprogramowania, ponieważ walka toczy się na ograniczonej przestrzeni i dotyczy stosunkowo niewielkich sił, możliwe jest obliczenie skuteczności poszczególnych posunięć. Zazwyczaj nie trzeba brać pod uwagę posiłków, walczy się tym co się ma w danej chwili, znane są również, przynajmniej częściowo) siły przeciwnika, ponieważ mgła wojny przy odległościach taktycznych nie występuje lub jest ograniczona.

Najbardziej skrajnym przykładem na skupianie się przez AI na szczegółach (taktyka) i nieumiejętność objęcia całości sytuacji (strategia) są kiepskie AI, które każdą jednostką sterują jakby była ona jedyną jednostką, bez żadnej współpracy z innymi jednostkami. Możliwe jest wtedy nawet wywabianie pojedynczych jednostek AI i niszczenie ich zmasowanym atakiem. Przykłady odwrotne chyba nie istnieją.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s