Tworzenie gier na urządzenia mobilne

Podobne dokumenty
MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

Matematyka dyskretna

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Modelowanie wieloskalowe. Automaty Komórkowe - podstawy

Matematyczne Podstawy Informatyki

Digraf. 13 maja 2017

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Algorytmiczna teoria grafów

Matematyczne Podstawy Informatyki

Minimalne drzewa rozpinające

Matematyczne Podstawy Informatyki

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

Graf. Definicja marca / 1

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

a) 7 b) 19 c) 21 d) 34

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Suma dwóch grafów. Zespolenie dwóch grafów

G. Wybrane elementy teorii grafów

Pole wielokąta. Wejście. Wyjście. Przykład

Ogólne wiadomości o grafach

Algorytmiczna teoria grafów

Algorytmy i struktury danych

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Metody Programowania

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Znajdowanie wyjścia z labiryntu

Algorytmika Problemów Trudnych

Indukowane Reguły Decyzyjne I. Wykład 3

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

1 Automaty niedeterministyczne

Programowanie dynamiczne i algorytmy zachłanne

Sortowanie topologiczne skierowanych grafów acyklicznych

Opracowanie prof. J. Domsta 1

Podstawy Sztucznej Inteligencji (PSZT)

Grafy dla każdego. dr Krzysztof Bryś. Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska.

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

5c. Sieci i przepływy

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Marek Miszczyński KBO UŁ. Wybrane elementy teorii grafów 1

Elementy teorii grafów Elementy teorii grafów

Tworzenie gier na urządzenia mobilne

Programowanie sieciowe. Tadeusz Trzaskalik

TEORETYCZNE PODSTAWY INFORMATYKI

Spacery losowe generowanie realizacji procesu losowego

Kolorowanie wierzchołków

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

ĆWICZENIE 1: Przeszukiwanie grafów cz. 1 strategie ślepe

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Teoria obliczeń i złożoność obliczeniowa

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Algorytmy genetyczne

Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

3. MINIMAX. Rysunek 1: Drzewo obrazujące przebieg gry.

Podstawowe własności grafów. Wykład 3. Własności grafów

Elementy modelowania matematycznego

. Podstawy Programowania 2. Grafy i ich reprezentacje. Arkadiusz Chrobot. 9 czerwca 2016

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Algorytmy ewolucyjne (3)

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation)

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda

Matematyka dyskretna - 7.Drzewa

6. Wstępne pojęcia teorii grafów

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Algorytmy z powracaniem

Systemy uczące się Lab 4

MODELE SIECIOWE 1. Drzewo rozpinające 2. Najkrótsza droga 3. Zagadnienie maksymalnego przepływu źródłem ujściem

Przecięcia odcinków. Wykład /07

Podręcznik. Model czy teoria

Metody przeszukiwania

(4) x (y z) = (x y) (x z), x (y z) = (x y) (x z), (3) x (x y) = x, x (x y) = x, (2) x 0 = x, x 1 = x

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

Teoria gier. prof. UŚ dr hab. Mariusz Boryczka. Wykład 4 - Gry o sumie zero. Instytut Informatyki Uniwersytetu Śląskiego

Modelowanie systemów biomedycznych

Wykład 4. Droga i cykl Eulera i Hamiltona

Układy dynamiczne Chaos deterministyczny

MODELOWANIE RZECZYWISTOŚCI

Modelowanie wieloskalowe. Automaty Komórkowe - podstawy

Rozwiązywanie problemów metodą przeszukiwania

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?

TEORIA GRAFÓW I SIECI

Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Lista 4. Kamil Matuszewski 22 marca 2016

Planowanie drogi robota, algorytm A*

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Sieć (graf skierowany)

Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH

Transkrypt:

Katedra Inżynierii Wiedzy Wykład 11

O czym dzisiaj? labirynty, dużo labiryntów; automaty komórkowe; algorytmy do budowy labiryntów; algorytmy do szukania wyjścia z labiryntów; Blueprints i drzewa zachowań w Unreal Engine 4.

Rysunek: Prosty labirynt 2D źródło: http://www.nanotec7.com

Rysunek: Labirynt a graf źródło: http://eduinf.waw.pl

Rysunek: Przykłady grafów: a graf skierowany ; b graf nieskierowany Graf prosty G składa się z niepustego zbioru skończonego V (G), którego elementy określane są jako wierzchołki (lub węzły), i skończonego zbioru E(G) nieuporządkowanych par elementów ze zbioru V (G) nazywanych krawędziami.

Definicje Krawędź incydentna jest krawędzią grafu nieskierowanego. Stopień wierzchołka w grafie nieskierowanym to liczba incydentnych z nim krawędzi. Trasą w danym grafie G nazywamy skończony ciąg krawędzi postaci < v 0, v 1,..., v k >, gdzie każde dwie kolejna krawędzie są sąsiednie albo identyczne. Wierzchołek v 0 wierzchołek początkowy; v k wierzchołek końcowy. Długością trasy nazywamy liczbę krawędzi na trasie. Ścieżka długości k, z wierzchołka u do wierzchołka u w grafie G = (V, E) jest ciągiem wierzchołków < v 0, v 1,..., v k > takich, że u = v 0, u = v k. Droga to ścieżka, w której wierzchołek początkowy i końcowy są równe v 0 = v k. Ścieżka zamknięta zawierająca co najmniej jedną krawędź nazywana jest cyklem. Cykl nazywany jest prostym, jeśli dodatkowo v 1, v 2,..., v k są różne. Pętla jest cyklem o długości 1. Dwie ścieżki tworzą ten sam cykl, jeśli istnieje liczba całkowita j, taka, że v i = v (i+j)mod k, dla i = 0, 1,..., k 1. Graf spójny to graf, w którym każda para wierzchołków połączona jest drogą.

Minimalne drzewo rozpinające minimalne drzewo rozpinające a problem komiwojażera; przy liczbie wierzchołków równej n mamy n 1 krawędzi łączących te wierzchołki; minimalne drzewo rozpinające uwzględnia wagi ustalone na poszczególnych krawędziach; każde rozgałęzienie w labiryncie może być traktowane jako wierzchołek w grafie; przy założeniu, że wagi są generowane losowo na podstawie drzewa możemy wygenerować ścieżkę przejścia w labiryncie, a następnie dodać dodatkowe elementy (dodatkowe ściany); zakładając, że dla całego labiryntu możemy wyznaczyć zbiór wszystkich wierzechołków: wystarczy przy pomocy dowolnego algorymu wyznaczyć minimalne drzewo rozpinające i rozpocząć przejście od wierzchołka najbliżej punktu startu.

Algorytm Kruskala 1 posortuj wszystkie krawędzie; 2 wybierz krawędź o minimalnej wadze; 3 jeżeli po dodaniu krawędzi nie ma cyklu w grafie uwzględnij tę krawędź do częściowego rozwiązania; w przeciwnym wypadku usuń krawędź; 4 powrót do kroku drugiego tak długo, jak liczba krawędzi w drzewie jest mniejsza od V 1, gdzie V to liczba wierzchołków. Generowanie labiryntu ustal rozmiar labiryntu oraz zbiór zawierający wszystkie krawędzie, czyli połączenia pomiędzy dwoma sąsiadującymi kratkami w mapie labiryntu; wybierając losowo dwa takie zbiory usuwamy łączącą je ścianę czyli zmniejszamy zbiór początkowy o jeden; powtarzając wcześniejszy krok usuwamy ściany tak długo, aż zostanie nam tylko jeden zbiór czyli nas algorytm.

Rysunek: Przemieszczanie przeciwnika w labiryncie Creeper world

Rysunek: Przemieszczanie przeciwnika w labiryncie; źródło: youtube.com

Rysunek: Algorytm optymalizacji stadnej cząsteczek poruszanie się

Automaty komórkowe (Cellular automata) dyskretny model składający się z siatki o określonej wielkości; liczba wymiarów może być dowolna (najpopularniejsze to 2D); każdy element siatki zwany dalej komórką posiada listę sąsiadów; w czasie t = 0 początkowe stany komórek są ustalone; w każdym kolejnym odczycie t = i, i > 0 wszystkie komórki aktualizowane są zgodnie z pewną określoną regułą; Ciekawostka: algorytm ten opracował wspólnie z von Neumannem Stanisław Ulam. Do czego może się przydać? budowa labiryntu; symulowanie działania społeczności postaci niezależnych w grze (wrócimy do tego przy okazji Blueprints w Unreal Engine).

Rysunek: Reguły dla prostego automatu komórkowego Źródło: http://mathworld.wolfram.com

Rysunek: Prosty automat komórkowy Źródło: https://plato.stanford.edu

Rysunek: Wejściowy rozkład pomieszczeń Źródło: http://https://gamedevelopment.tutsplus.com

Reguły w automacie komórkowym jeżeli komórka ma mniej niż dwóch żywych sąsiadów ginie; jeżeli komórka ma więcej niż trzech żywych sąsiadów ginie; jeżeli komórka ma dwóch lub trzech żywych sąsiadów - żyje dalej; jeżeli martwa komórka ma dokładnie trzech żyjących sąsiadów zaczyna żyć. Rysunek: Wyjściowy rozkład pomieszczeń Źródło: http://https://gamedevelopment.tutsplus.com

Game of Life John Conway, 1970r - opracowanie założeń gry; reguły gry podobne jak w przypadku automatów komórkowych; struktury: stałe (stabilne nie zmieniają się bez względu na czas); oscylatory (zmieniające się okresowo); niestałe (zmieniają się nie powracając do stanu pierwotnego); mechanizm symulowania działania społeczności w strategii może bazować właśnie na grze w życie.

Rysunek: Gra w życie przykład Źródło: http://https://gamedevelopment.tutsplus.com

Unreal Engine Blueprints obiekty z interfejsem na bazie węzłów; upraszczając: wizualne dodatki skryptowe; elementy rozgrywki tworzone są poprzez łączenie wydarzeń, funkcji i zmiennych każdy poziom ma swój własny blueprint możliwość odwoływania się i manipulowania aktorami na scenie. System skryptowania wizualnego blueprint ustalanie zasad gry i mechaniki; przygotowanie różnych wariantów modeli i materiałów; modyfikacja postaci; prototypowanie nowej perspektywy kamery; zmiana sterowania gracza;

Rysunek: Przykład blueprints Unreal Engine 4

Automaty komórkowe a drzewa zachowań narzędzie do tworzenia sztucznej inteligencji w Unreal Engine; na wierzchołku drzewa jest zachowanie macierzyste, które ma pod sobą uporządkowany zbiór zachowań; schemat ten jest oparty na relacji rodzic-dziecko; blackboard przechowywanie danych i zmiennych do celów decyzyjnych; z jednego blackboard może korzystać jeden obiekt, lub cała grupa.

Idea drzewa zachowań AI dwie drużyny (każda po 10 botów); jedna drużyna używa losowych wag, a druga parametry określone na początku (agresywna gra, podanie, strzał); każde zachowanie (które było zdefiniowane) ma wagę w przedziale 0 : 1 ; mecz trwa x sekund; po każdym meczu podliczamy punkty i aktualizujemy wagi prosty mechanizm uczenia się.

Rysunek: Przykład drzewa zachowań Unreal Engine 4

Ukrywanie się jeżeli nie widzimy przeciwnika, to już znajdujemy się w miejscu ukrycia; jeśli przeciwnik jest widoczny, to uruchamiamy zadanie EQS FindHidingSpot; wyznaczanie najlepszego miejsca ukrycia (czyli o określonych parametrach); modyfikacja zmiennej Destination i zadanie MoveTo, w którym wskazana jest zmienna Destination.

Rysunek: Przykład drzewa zachowań Ukryj się

Leczenie zapytanie sprecyzowane pod szukanie apteczki; zadanie FindMedicPack; wyszukiwany jest punkt najbliżej apteczki; MoveTo i przejście w kierunku, gdzie znajduje się apteczka.

Rysunek: Przykład drzewa zachowań Unreal Engine 4

Atak pierwsza gałąź FindPointNearEnemy ustala pozycję oddania strzału do przeciwnika; w ograniczonym czasie wykonywane jest zadanie MoveTo; ShootEnemy, czyli strzał w kierunku przeciwnika. Atak druga gałąź wyznaczenie punktu w bazie przeciwnika, do którego idziemy (!!! przeciwnik dokładnie wie, gdzie na mapie znajduje się baza/gracz, coś do zebrania): nieważne gdzie jest gracz przeciwnik nas znajdzie; nieważne, że power up jeszcze się nie pojawił przeciwnik dokładnie wie, za ile to nastąpi. przemieszczenie się do pola, w którym możliwe jest przejęcie bazy gracza.

Rysunek: Przykład drzewa zachowań Unreal Engine 4

Obrona FindFriendSpot pozwala ustalić, czy przyjaciel / członek drużyny jest widoczny; przemieszczenie się w jego pobliże zadaniem MoveTo; obrona drużyny, gdzie więcej botów znajduje się w jednym miejscu.

Rysunek: Przykład drzewa zachowań Unreal Engine 4

Rysunek: Przykład drzewa zachowań Unreal Engine 4

Elementy sztucznej inteligencji każda z akcji ma wagi; wagi reprezentują chęć bota do wykonania danej akcji; bot z dużą wartością ataku będzie agresywny; bot z dużą wartością obrony będzie bronił bazy i poruszał się w grupie; wagi pozostają niezmienione, jeżeli drużyna wygrała; losujemy nowe wagi po przegranej rozgrywce; statystyki rozgrywek mogą nam powiedzieć, jak dobrze działa dana strategia (możliwość modyfikacji dwóch skutecznych strategii), ale: celność bota ma charakter losowy w kodzie programu zawsze możemy założyć, że strzał w naszą stronę to headshot.

Dziękuję za uwagę