Programowanie

Sztuczna inteligencja sterowana potrzebami

Większość z podejść do tworzenia inteligentnych przeciwników w grach komputerowych, choć wykorzystuje wiele z technik sztucznej inteligencji, wymaga oprogramowania zachowania przeciwnika w różnorakich sytuacjach. Przykładowo boty w grach typu FPP (First Person Perspective) programowane są by inteligentnie omijały wystrzelone w ich kierunku rakiety, czy też przewidywały pozycję gracza na kilka sekund do przodu, by mądrze dobrać broń i z niej skorzystać.

Jakiś czas temu pojawiła się jednak koncepcja sztucznej inteligencji sterowanej potrzebami, która próbuje ominąć dostosowanie zachowań przeciwników do różnych sytuacji wprowadzając ogólny szablon zachowania. To właśnie podejście zostanie pokrótce opisane w niniejszym artykule.

Wprowadzenie

Artykuł ten opiera się na pracy Björn Bergström'a ([1]), który przedstawił podejście zaproponowane przez Hansjoerg Malthaner'a dotyczące sztucznej inteligencji postaci w grach komputerowych. Podejście to oparte jest na behawioryzmie, który bada reakcje organizmów na zadane bodźce. Może się to wydawać niewystarczające, gdyż nie każda reakcja musi być zależna od zadanych bodźców, lecz jak twierdzi Björn Bergström, metoda ta powinna być w pełni wystarczająca dla potrzeb sztucznej inteligencji przeciwnika w grze komputerowej.

1. Główne założenia

Zachowanie postaci w grze komputerowej powinno być oparte na 3 głównych krokach:

  • Obserwuj i oceń środowisko, w którym się znajdujesz.
  • Wybierz najbardziej niezbędną potrzebę, bazując na ocenie środowiska oraz własnych potrzeb.
  • Wykonaj niezbędne działania, aby zrealizować potrzebę.

Kroki te zostaną opisane w dalszej części pracy.

2. Obserwacja i ocena środowiska

Postać w grze komputerowej, aby ocenić środowisko, w którym się znajduje, powinna wziąć pod uwagę wszystkie obiekty oraz postacie, które są w zasięgu jej wzroku. Dla każdego z obiektów i postaci powinna przypisać współczynnik strachu, nienawiści lub przyjaźni.

Do obliczeń tych wartości przydatne są następujące parametry:

- postrzegana siła postaci - na jak silną dana postać wygląda. Wartość ta powinna być obliczana na podstawie tężyzny i siły fizycznej postaci, nie zaś przedmiotów, które posiada

- postrzegalne niebezpieczeństwo postaci - na jak niebezpieczną dana postać wygląda. Wartość ta powinna być obliczana na podstawie jakości przedmiotów, które posiada (broni, zbroi itp.)

Wartość strachu lub przyjaźni bazuje na powyżej wymienionych parametrach oraz na odległości od postaci. Dla przyjaciół rozpatrujemy wartość przyjaźni, dla wrogów zaś - wartość strachu. Wartości te mogą być traktowane wspólnie jako jeden współczynnik, gdy np. dla wartości przyjaźni rozpatrywać będziemy wartości dodatnie, dla wrogów - wartości ujemne. Współczynnik ten może odnosić się także do przedmiotów (przykładowo skarb - wartość dodatnia).

Wartość nienawiści odzwierciedla wielkość tego uczucia do danej postaci. Jest to współczynnik różny od współczynnika strachu, wykorzystywany przykładowo do określenia, których postaci, dany przeciwnik bardziej nienawidzi (gdyż są przykładowo innej rasy).

Kolejnym krokiem jest obliczenie środka ciężkości powyższych współczynników.

.........
.1..x..2.
.........
.........
.........
....A....
Tab. 1. Przykład obliczania środka ciężkości współczynników
źródło: [1]

Powyżej załączono przykład obliczeń środka ciężkości dla współczynnika nienawiści. Poprzez A oznaczono postać obliczającą współczynnik, poprzez 1 oraz 2 oznaczono przeciwników o identycznych współczynnikach nienawiści, poprzez x oznaczono wynikowy środek ciężkości dla współczynnika nienawiści. Jak widać obliczenia nie są złożone, a co za tym idzie nie są czasochłonne.

3. Wybór najważniejszej potrzeby

Postać korzystająca z inteligencji sterowanej potrzebami powinna mieć przypisane pewne akcje, które może wykonywać, przykładowo: poruszanie się, atak, czy otworzenie drzwi. Przed wyborem kolejnej akcji do wykonania, dla każdej z akcji obliczana jest waga mówiąca o tym, jak konieczna jest dana akcja w danym momencie. Wykonywana jest ta akcja, która posiada największą wagę.

Dla każdej z akcji metoda obliczająca jej wagę musi być oddzielnie zaimplementowana. Przykładowo waga akcji otwierania drzwi w danym momencie może być zależna od różnych czynników. Zależności te muszą być zaimplementowane najlepiej w taki sposób, aby wyliczanie wagi dla akcji otwierania drzwi nie wpływało w znacznym stopniu na sposób wyliczania wagi dla innych akcji, np. ataku.

Samo wykonanie akcji odpowiedzialnej za spełnienie danej potrzeby nie powinno stanowić problemu i zapewne ograniczy się do wywołania jednej metody.

4. Dalsze urozmaicenia

Istnieje wiele sposobów na wprowadzanie dodatkowych elementów do rozgrywki. Różnym postaciom w grze można przypisywać różne formy obliczeń współczynników strachu, przyjaźni i nienawiści. Manipulując odpowiednio współczynnikiem przyjaźni można sprawić, że postacie bedą poruszały się w grupach i bały od nich odłączyć. Także różnorakie cechy fizyczne będą mieć wpływ na całą rozgrywkę, przykładowo odległość oraz kąt widzenia może być różna dla różnych potworów w grze, co również wpłynie na ich inteligencję i postrzeganie otoczenia.

Jeśli dla potwora strach opada szybciej wraz z odległością niż nienawiść, potwór taki będzie podążał za bohaterem, lecz bał się zbliżyć do niego, być może poczeka na współtowarzyszy. Bez problemu można rozwiązać problem postaci atakujących z dystansu, dla których ustalając współczynnik strachu bardzo wysoki dla krótkich odległości i niski dla większych, uzyska się efekt, że postacie te będą uciekać od bohatera i atakować z dystansu, gdy opadnie już strach.

5. Metoda idealna?

Czy więc sztuczna inteligencja sterowana potrzebami jest rozwiązaniem znacznie lepszym od pozostałych? Choć sama koncepcja wydaje się bardzo ciekawa i daje ogromne możliwości, istnieją głosy krytyki mówiące, że rozwiązanie to jest niewystarczające.

Postać atakująca dwa potwory, których środek ciężkości nienawiści znajduje się pomiędzy nimi, będzie musiała zdecydować się na pewną taktykę po dojściu do tego punktu, a funkcjonalność ta będzie musiała być manualnie zaimplementowana. Z drugiej strony, wyobraźmy sobie bota w grze FPP, który omija rakietę, gdyż jest to obiekt, przed którym czuje ogromny strach, który np. chowa się za ścianą nie mając już amunicji, gdyż uważa to za najbezpieczniejsze posunięcie.

Rozwiązanie to jest na pewno bardzo ciekawe i warte zainteresowania twórców gier komputerowych. Choć może okazać się niewystarczające do implementacji całej sztucznej inteligencji przeciwnika komputerowego, będzie z pewnością bardzo przydatne przy jego tworzeniu i może rzeczywiście uprościć wiele aspektów i zrealizować zarazem sporo pomysłów, które wymagałyby ręcznej implementacji.

Bot odczuwający strach lub nienawiść będzie bardziej przypominał człowieka, a co za tym idzie, dobrze sprawdzi się jako przeciwnik gracza komputerowego, należy bowiem pamiętać, że przeciwnik idealny to przeciwnik zachowujący się jak człowiek, nie zaś bot, który za każdym razem trafia w gracza i z którym gra to żadna przyjemność.

Bibliografia:
  • [1] http://home.swipnet.se/dungeondweller/development/dev00055.htm
  • [2] Joseph Swing "A better monster AI"

Dodał: Marcin​Apostoluk
Dział: Programowanie, Komentarze

 

Statystyki:
Aktualności: 248
Artykułów: 118
Książek: 774
Narzędzi: 6
Kursów: 7

Aktualności IT:
aktualności IT, rss

Książki:
literatura informatyczna

# MAGAZYNY
# ARTYKUŁY
Najnowsze:
Content - słów kilka
Webmastering, 2007-02-09, odsłon: 5191
Dlaczego niektóre strony cieszą się sporą popularnością? Co sprawia, że są coraz chętniej odwiedzane? Dlaczego niektóre strony nie potrafią przekroczyć  [...]
Jak projektować strony?
Webmastering, 2007-02-08, odsłon: 6835
Jak powinna wyglądać witryna?
Webmastering, 2007-02-08, odsłon: 6344
PHP. Redirect 301 Moved Permanently
PHP i bazy danych, 2007-02-04, odsłon: 8855
PHP. Losujemy przy pomocy funkcji rand()
PHP i bazy danych, 2007-02-04, odsłon: 8321
Mysia krytyka
Hardware, 2006-11-26, odsłon: 7334
 
Najczęściej czytane:
Instalacja programów
2006-08-18, odsłon: 61056
- Linux
Jak wejść do BIOS-u?
2006-08-31, odsłon: 50494
- Bios
Instalacja Windows 98 (se)
2005-12-01, odsłon: 48729
- Windows
Jak złamać hasło BIOS-u?
2006-08-30, odsłon: 47756
- Bios
Spis opcji - Award BIOS
2005-12-03, odsłon: 40700
- Bios
 
Najrzadziej czytane:
Mozilla Firefox
2005-11-14, odsłon: 2814
- Internet
SPAM
2005-11-14, odsłon: 2815
- Internet
Co z naszymi Piratami?
2005-11-16, odsłon: 2816
- Internet
Wprowadzenie do Microsoft Solutions Framework cz. I
2006-07-24, odsłon: 2816
- Programowanie
Wprowadzenie do Microsoft Solutions Framework cz. II
2006-07-24, odsłon: 2816
- Programowanie
Programowanie:
Polecamy lekturę:

Java. Ćwiczenia praktyczne. Wydanie II
      Tutaj jesteś: » Portal komputerowy » Programowanie » Artykuły » Sztuczna inteligencja sterowana potrzebami «
» Aktualności IT :: Artykuły :: ECDL :: Forum :: Książki :: Ebooki :: Kursy :: Narzędzia «                  
      Jest czwartek, 8 stycznia 2009
Informacje, nowinki IT :: Biuletyn informacyjny :: Kontakt :: O nas :: Reklama