Stworzenie zaawansowanego systemu walki w grze cRPG opartego na podobieństwie symboli rysowanych przez gracza z wykorzystaniem sieci neuronowych
Opis Projektu
Ten projekt był moją pracą inżynierską. Jego celem było zademonstrowanie możliwości stworzenia nieszablonowego rozwiązania za pomocą projektu programistycznego. Stąd powstał projekt o zdecydowanie zbyt długiej nazwie: ”Stworzenie zaawansowanego systemu walki w grze cRPG opartego na podobieństwie symboli rysowanych przez gracza z wykorzystaniem sieci neuronowych„. Dopiero później po otrzymaniu tytułu magistra, powstała publikacja naukowa o tej samej nazwie, w której połączono wyniki mojej pracy inżynierskiej i magisterskiej. Poniżej znajduje się streszczenie mojej pracy inżynierskiej oraz krótki opis funkcjonalności aplikacji.
Streszczenie: Temat niniejszej pracy to „Stworzenie zaawansowanego systemu walki w grze cRPG w oparciu o podobieństwo rysowanych przez gracza symboli z wykorzystaniem sieci neuronowych". Uczenie maszynowe jest jedną z gałęzi sztucznej inteligencji, która polega na wykorzystaniu algorytmów wyszukujących korelacje i wzorce w zbiorach danych i na ich podstawie dokonywać najwłaściwszych wyborów. Celem pracy jest stworzenie zaawansowanego systemu walki do gry akcji opartego na rozpoznawaniu narysowanych odręcznie symboli z wykorzystaniem tej technologii. Głównym założeniem pracy, jest sprawienie, by implementowane rozwiązanie było łatwe do wdrążenia w dowolnym projekcie. Praca została wykonana w silniku Unity i posiada testową aplikację, ale może zostać dodana do dowolnego rozwiązania za pomocą paczki. Model sieci neuronowej, która zajmuje się predykcją na narysowanych symbolach, został stworzony przy użyciu ML.NET Model Builder. W trakcie przeprowadzania analiz porównano istniejące rozwiązania oraz publikacje naukowe i na ich podstawie wybrano najlepiej pasujące solucje do tego projektu. Ten system wyróżnia się od reszty swoim nietypowym połączeniem dynamicznej walki z rysowaniem symboli. W projekcie skupiono się na tym by rzucanie zaklęć, co jest nieodłączną częścią tworzonego systemu, dawało graczowi dużo możliwości tworzenia reakcji łańcuchowych między czarami.
Funkcjonalności
Działanie aplikacji: W dowolnym momencie gracz może się zatrzymać i, przytrzymując przycisk Alt, rozpocząć rysowanie dowolnej liczby za pomocą myszy. Po zwolnieniu przycisku uruchomi się zewnętrzny proces, który wykorzystując wytrenowany model sieci neuronowej, dokona klasyfikacji narysowanego symbolu. Jeśli symbol został poprawnie odwzorowany, przygotowane zostanie zaklęcie, które zostanie rzucone po kliknięciu lewym przyciskiem myszy. Przygotowana scena służy do testowania działania zaklęć. Możliwe jest wywoływanie zaklęć na botach za pomocą klawiszy 0-9.