O sztucznej inteligencji w grach, jej rozwoju i największych wyzwaniach. Wywiad z Rafałem Tylem

geek.justjoin.it 1 rok temu

Można powiedzieć, ze w ostatnich miesiącach temat sztucznej inteligencji zawładnął branżą IT. Podobnie wygląda to również w środowsku gamedevu który, choć z AI ma wiele wspólnego już od dawna, również ma do czynienia z niezwykle intensywnym rozwojem sztucznej inteligencji oraz wynikającymi z tego faktu sporymi zmianami. Postanowiliśmy nieco rozjaśnić te kwestie w rozmowie z Rafałem Tylem, CEO/CTO QED Games.

Zacznijmy od podstaw — jak działa sztuczna inteligencja w grach?

Działanie sztucznej inteligencji w grach uzależnione jest od gatunku gry i od tego, jakie mamy wymagania względem zachowań naszych postaci niezależnych. Dla przykładu, w popularnych strzelankach, twórca gry ma jasną wizję i jasny scenariusz, jak powinno wyglądać całe doświadczenie od początku do końca. Przeważnie postaci niezależne są sterowane czymś bardzo prostym, tzn mają predefiniowane zachowania i w danym momencie zawsze zachowają się w podobny sposób. Co prawda określamy to mianem AI w grach, ale bardziej są to skrypty, aniżeli sztuczna inteligencja.

Są natomiast gry, które wymagają bardzo zaawansowanej sztucznej inteligencji, na przykład gry taktyczne, w których postacie sterowane przez komputer mają tysiące możliwych akcji i niezliczoną liczbę możliwych sekwencji akcji do wykonania. Na przykład, w grze taktycznej z siatką prostokątną znajduje się wiele pól na planszy, możemy zatem wykonać ruch na każde z tych pól, a z każdego pola możemy wykonać akcję, a następnie kolejną. Do tego mamy kilka jednostek, którymi możemy poruszać w różnej kolejności — jak widać, złożoność problemów decyzyjnych rośnie bardzo szybko.

Dlatego w takich grach potrzebne są techniki bardziej inteligentne, które są w stanie spojrzeć na całą pulę dostępnych zachowań i wybrać najbardziej stosowne w danym kontekście. Stosuje się tutaj najróżniejsze algorytmy, szczególnie pozwalające modelować proces decyzyjny krzywymi matematycznymi. Mamy także planery, czyli techniki automatycznie układające sekwencje w zależności od późniejszych konsekwencji. Gama technik używanych w grach jest bardzo szeroka, od tych super prostych, gdzie dosłownie krok po kroku jest powiedziane, co postać ma zrobić, po bardzo złożone.

Sztuczna inteligencja zrewolucjonizowała świat gier. Jakie były początki AI w grach?

Sztuczna inteligencja w grach to wszystkie algorytmy, które pomagają podejmować decyzje postaci niezależnych. Początki AI w grach sięgają lat 70-tych XX wieku, czyli od czasu pojawienia się pierwszych popularnych gier komputerowych. Początki oczywiście były bardzo skromne, jak chociażby gra Pong, w której jeden gracz miał jedną paletkę, a drugi drugą i było proste odbijanie piłeczek. Ale pomimo prostoty już tutaj był proces decyzyjny. Nasza paletka musiała spojrzeć na stan gry, zobaczyć, gdzie jest piłeczka, jak gwałtownie leci i w odpowiedzi na to odpowiednio się przesunąć. To były bardzo proste algorytmy podejmujące proste decyzje, ale już sklasyfikowane jako sztuczna inteligencja w grach, tylko o odpowiednio małej złożoności.

Przełomem sztucznej inteligencji w grach były lata 90-te, kiedy twórcy gier zaczęli używać sformalizowanych technik — np. maszyn stanów, czyli automatów skończonych. Są to diagramy, które mówią postaciom, co w danej sekwencji mają robić. Dla przykładu — gdy zobaczysz przeciwnika, będąc w stanie oczekiwania, przechodzisz do pościgu, a po dojściu do niego przechodzisz w stan walki. Kiedy przeciwnik oddali się, to możesz wrócić do stanu oczekiwania. Ponieważ pisanie tych wszystkich zachowań w monolitycznym kodzie jest trudne do zarządzania, deweloperzy zaczęli używać formalnych struktur — maszyn stanów. Z biegiem czasu im bardziej rosła złożoność zachowań postaci w grach pojawiła się potrzeba hierarchizacji.

I tutaj stan oczekiwania może składać się na przykład z rozglądania się i dodatkowo chodzenia po pokoju. Są to dwa niezależne moduły, które zawierają wewnętrzną logikę. Zatem mamy stan nadrzędny — zachowanie nadrzędne — oczekiwanie i w ramach stanu nadrzędnego możemy mieć też sub rutynę. Im bardziej rosła złożoność postaci, tym więcej poziomów zagnieżdżenia się hierarchii stanów. Stało się to niezarządzalne i trudne w utrzymaniu, szczególnie wtedy, gdy coś nie działało dobrze. Śledzenie działań AI stało się bardzo trudne dla deweloperów. Zatem potrzeba hierarchizacji spowodowała kolejny przełom, który kompletnie zmienił powszechnie używane dotąd techniki. Tym przełomem było użycie drzew behawioralnych.

Drzewa behawioralne jest to uogólnienie hierarchicznej maszyny stanów poprzez organizowanie zachowań w drzewiasty sposób. To pokazało, iż podejście do AI idzie w kierunku hierarchizacji. Zatem mamy zachowanie nadrzędne, które może składać się z iluś zachowań podrzędnych. W drzewach behawioralnych wprowadzone są dwa podstawowe pojęcia — sekwencja zachowań oraz selektor zachowań. Sekwencja wykonuje poszczególne zachowania po kolei i jeżeli któreś się nie uda, zgłasza niepowodzenie. Natomiast selektor próbuje wykonywać zachowania do czasu, aż pierwsze z nich zakończy się sukcesem.

Idź do oryginalnego materiału