Menu

M1A2-SNAKE #6 – nietypowy generator poziomów?

23 kwietnia 2017 - Daj się poznać 2017, Projekty
M1A2-SNAKE #6 – nietypowy generator poziomów?

Bawiłem się kiedyś sztucznymi sieciami neuronowymi, możeby tak zaprząc je do generowania map kafelkowych?

To oczywiście tylko szkic/pomysł, póki co za wcześnie żeby coś konkretnego wdrażać – projekt gry raczkuje, nie jest nawet napisany moduł wczytywania poziomów, ale idea takiego nietypowego generatora już świta.

Po zarys wiedzy o sztucznych sieciach neuronowych odsyłam do Google, najogólniej mówiąc jest to próba komputerowej imitacji działania połączeń w ludzkim mózgu, dzięki czemu taka sieć radzi sobie z uogólnianiem problemów i dostosowuje się do nowych, niespotkanych wcześniej danych – bez żadnych algorytmów.

Cała zabawa polega na tym, żeby taką sieć odpowiednio przygotować i wytrenować. Chodzi o odpowiednią liczbę neuronów, wartość wag, funkcje wyzwalające, oraz o odpowiednią ilość danych treningowych. Jeśli chcemy żeby sieć była efektowna, potrzebujemy ich dużo. Bardzo dużo.

To właśnie jeden z potencjalnych problemów, jaki może przeszkadzać w stworzeniu takiego generatora opartego na SSN. Mój zamysł jest taki, aby sieć najpierw uczyła się z poziomów zbudowanych przeze mnie w edytorze, które na potrzeby zestawu danych odpowiednio opiszę – wystarczy jakiś seed w postaci jednego ciągu liczb czy znaków, a może kilka cyfr opisujących różne parametry, np. rodzaj podłoża, rodzaj przeszkód, biom itp. Na chwilę obecną obstaje bardziej przy rozwiązaniu z liczbowym seed’em.

Sieć po przemieleniu kilkudziesięciu zestawów danych z budową poziomów opisanych danym seed’em, powinna być teoretycznie gotowa do wygenerowania danych dla nowego, nieznanego wcześniej seed’u.
Byłoby to ciekawe doświadczenie – jak zróżnicowane i grywalne poziomy mogłaby taka sieć wygenerować. Wynik byłby też zależny od tego, jak dobre i grywalne poziomy „naukowe” stworzyłbym sam w edytorze, aczkolwiek powiększając zestaw naukowy o każdy poziom wygenerowany już przez sieć, można by dotrzeć do efektu, kiedy uczeń przerasta nauczyciela. Lub do kompletnej katastrofy, jeśli pierwsze generowane poziomy byłyby chaotyczne, to ciąg ten rósł by zapewne z tą tendencją w nieskończoność.

Pomysł wydaje mi się być dość wciągający, co najważniejsze – cholernie mnie to ciekawi. Jak taka sieć sprawdziłaby się jako level designer w prostej grze 2D? Spróbuję się przekonać.

Po maturach. 😀

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *