Neural Network NPC AI

Narzędzie jest w trakcie rozwoju.

Neural Network NPC AI to narzędzie, które pozwala tchnąć świadomość w bohaterów niezależnych gier komputerowych. Zaawansowane algorytmy podejmowania decyzji oparte o sieci neuronowe sprawiają, iż NPC potrafi samodzielnie zareagować na zdarzenia których jest świadkiem lub dotyczą bezpośrednio niego. Samodzielnie wybierze pracę, do której jest najlepiej przystosowany, ucieknie gdy zostanie zaatakowany lub stanie do walki, gdy uzna że ma szanse wygrać!

WYBIERANIE NAJLEPSZYCH AKCJI

Mechanizm jest całkowicie uniwersalny i to od gry w której NNNA jest implementowany, zależy rodzaj reakcji. To proste!

  Każda możliwa akcja poddawana jest testowi na podstawie czterech parametrów:

 ➢ Nastawienie – określa czy NPC lubi robić daną akcje. Może na przykład kochać łowienie ryb, ale nienawidzić wycinki drzew, co tym samym przekłada się na przykład na wysokość zarobków czy jakość wykonywanej pracy.

 ➢ Sumienie – określa czy czynność jest zgodna z sumieniem postaci. NPC może nie chcieć wykonywać danej rzeczy, bo jest to wbrew jego przekonaniom, na przykład okradanie innych czy wyciąganie haraczy.

 ➢ Ważność – istotny parametr określający priorytet wykonania czynności. Może być tak, że w danej chwili ucieczka z płonącego miasta jest ważniejsza niż uprawianie grządki.

 ➢ Umiejętności – kolejny bardzo istotny parametr. NPC zdaje sobie sprawę ze swoich własnych słabości i mocnych stron. Wie na przykład, że próba uprawiania kowalstwa bez odpowiednich umiejętności skończy się fiaskiem.

Do rąk dewelopera zostaje dostarczona biblioteka, która zawiera funkcje decyzyjne. Ich użycie jest banalnie proste. Na przykład wywołanie funkcji:

double TestAction(double attitude, double conscience, double actionImportance, double skill);

Da wynik ujemny lub dodatni. Wystarczy przetestować aktualnie możliwe akcje do wykonania, posortować po wyniku testu i wybrać ten z największym wynikiem!

SAMO UCZENIE

Choć to od twórcy zależy określenie opisanych powyżej parametrów wejściowych sieci neuronowej, tak warunki każdej gry są inne. W jednym świecie parametr umiejętności może być kluczowy do przetrwania, ale w drugim nie mieć znaczenia. Sieć neuronowa musi nauczyć się jak ma interpretować zaistniałe sytuacje i w jaki sposób reagować. Specjalnie na tą okazję został przygotowany moduł nauki online, który bada poczynanie bohaterów niezależnych, eksperymentuje z wagami czy miesza doświadczenia najlepszych osobników, próbując w ten sposób stworzyć idealną sieć neuronową do zadanych warunków.

Używając biblioteki dostarczonej w NNNA, można utworzyć moduł nauki, któremu zadaje się sieci neuronowa (NPC), które mają zostać poddane nauce. Następnie poprzez określenie sposobu punktowania poczynań bohaterów niezależnych można dążyć przez kolejne epoki badania aż do momentu uzyskania satysfakcjonujących reakcji. Biblioteka sama zajmuje się odpowiednim mieszaniem silnych osobników czy eliminacją tych słabych, niepotrafiących się przystosować.

PRZYKŁADOWA GRA RPG

W celu testowania Neural Network NPC AI, utworzyliśmy własne środowisko eksperymentalne, które można nazwać również prostą grą RPG. Zaimplementowaliśmy w niej wszystkie najważniejsze mechanizmy, które obowiązkowe są w tym gatunku gier. Mamy statystyki, kilka czynności typu rybołówstwo czy kowalstwo, oraz możliwość walki pomiędzy postaciami. Zaimplementowany został również szereg narzędziu umożliwiający debugowanie mechanizmów. W momencie ukończenia NNNA, środowisko to będzie również służyło jako przykład implementacji naszego rozwiązania.

Aktualnie istnieje możliwość pobrania dema przykładowego RPG, aczkolwiek ma on jedynie cele poglądowe i pozbawiony jest mechanizmów sieci neuronowych.

DO POBRANIA

 ➢ Demo EXE – Grywalne demo przykładowego RPG, służącego jako środowisko testowe dla NNNA