Archive for ‘Gry’

Luty 20, 2013

System Rekomendacji Gier Planszowych

- autor: tsissput

Cel projektu:

Celem projektu było stworzenie systemu będącego w stanie polecać gry planszowe na podstawie wybranej gry planszowej lub preferencji mechanik sterujących grami planszowymi.

Realizacja projektu:

W celu ustalenia jakie gry można polecić, w zależności od wybranego przez użytkownika tytułu, należało stworzyć graf podobieństw pomiędzy grami planszowymi. Do ustalenia podobieństwa pomiędzy nimi zostały wykorzystane ich mechaniki. Wyróżnia się ponad 40 różnych mechanik sterujących grami planszowymi, każda gra wykorzystuje dowolną liczbę tych mechanik w swoim działaniu. Fakt ten został wykorzystany do ustalania podobieństwa między poszczególnymi tytułami- dla każdej pary gier planszowych sprawdzana jest liczba mechanik, z których oba tytuły korzystają oraz liczba różnych mechanik, które te gry wykorzystują. Iloraz tych dwóch wartości daje nam miarę podobieństwa jednej gry planszowej do drugiej. Wartości tej miary stanowią krawędzie w grafie podobieństw pomiędzy grami planszowymi. Ponieważ miara ta jest wartością symetryczną, krawędzie w grafie są nieskierowane. Aby zniwelować dużą ilość krawędzi, szczególnie wychodzących od wierzchołków reprezentujących gry z dużą ilością wykorzystanych mechanik, zastosowano próg odcięcia na poziomie 0,3. Gdy użytkownik szuka gry podobnej do wymienionego tytułu, system zwraca wszystkie wierzchołki, które posiadają krawędź prowadzącą do wierzchołka reprezentującego wybraną grę. Wszystkie tytuły są wyświetlane wg miary podobieństwa w kolejności malejącej wraz z najważniejszymi informacjami o danych tytułach. System udostępnia także alternatywną metodę rekomendacji gier. Pozwala on na wybranie kilku mechanik gier planszowych, po czym dodawany jest tymczasowy wierzchołek grafu i tworzone są krawędzie wychodzące z niego zgodnie z zasadami wymienionymi powyżej. Następnie zwracane są wszystkie tytuły które zostały połączone krawędzią z tymczasowym wierzchołkiem. Po dokonaniu rekomendacji tymczasowy wierzchołek zostaje usunięty z grafu.

Wykorzystane technologie:

– Java
– Play Framework
– Twitter bootstrap

Wizualizacja sieci oraz działania systemu:

Graf podobieństw gier planszowychstronaGłówna wynikigry

Kody źródłowe:

http://sirius.cs.put.poznan.pl/~inf89752/iswd/tsiss.zip

 

Autorzy:

Jakub Jaróżek
Dawid Neumann

Luty 19, 2013

Semantic WoW

- autor: tsissput

Cel projektu

Celem projektu było stworzenie i wizualizacja grafu powiązań pomiędzy graczami World of Warcraft – jednej z najpopularniejszych gier MMORPG w sieci. Niezbędne dane pobrano korzystając z WoW API do bazy danych, przetworzono i uzyskano graf w formacie Netdraw VNA. Wizualizacji dokonano z użyciem programu Gephi.

Zastosowane technologie

Informacje z WoW API pobrano z użyciem aplikacji konsolowej napisanej w języku Java. Dane przechowywano w bazie MongoDB, zaś przetwarzanie odbywało się przy pomocy wspomnianej aplikacji oraz skryptów JavaScript. Dalszych operacji na grafie oraz wizualizacji dokonano w programie Gephi.

Zaimplementowana aplikacja

Jak wspomniano aplikacja jest konsolowa, umożliwia następujące operacje:

  • wczytanie pliku z nazwami gildii,
  • pobieranie nie ściągniętych gildii (na podstawie wczytanej listy nazw),
  • pobieranie nie ściągniętych postaci (na podstawie listy nazw członków gildii),
  • oba powyższe,
  • usunięcie zawartości bazy danych,
  • wygenerowanie pliku z grafem na podstawie pobranych danych przetworzonych za pomocą skryptów JS.

cmd

Architektura aplikacji

Ze względu na sposób udostępniania danych przez WoW Api, aplikacja wymaga nazw gildii, których ma dotyczyć analiza (względnie nazw wszystkich gildii na serwerze). Informację tę uzyzkano z serwisu WoW Progress i wczytywano z plików.
arch

Model ORM

Do mapowania obiektowo relacyjnego wykrorzystano bibliotekę Morphia współpracującą ze biblioteką Java sterowników bazy MongoDB.
orm

Uzyskane dane

Pobrano informację o graczach serwera Arathor-EU należących do gildii uzyskanych z WoW Progress. Dane pobierano na przestrzeni 5 dni w pierwszej połowie stycznia 2013. Po zapisie do bazy danych jej rozmiar wynosił ponad 35GB.

Pobrano informacje o 302 gildiach oraz 38 629 postaciach. Ze względu na rozmiary danych i przyjęty sposób analizy połączeń zdecydowano się przetworzyć jedynie postaci z 5 najlepszych (pod względem liczby punktów osiągnięć):

  • Alliance of Destiny
  • Maligned
  • Velvet Glove
  • Retired
  • Blacksail Pirates

Do tych gildii należy 1760 postaci powiązanych łącznie z 650 kontami graczy.

Graf uzyskany na podstawie top 5 gildii

Postaci są opisane takimi atrybutami jak: średni poziom przedmiotów, klasa, rasa, płeć, poziom postaci, oraz informacją czy jest to główna postać gracza. Wiele postaci gracza udało się identyfikować na podstawie identycznej listy osiągnięć zdobywanych w tym samym momencie. Za główną uznawano tę o najwyższym poziomie w danej gildii (tak więc gracz mógł mieć więcej niż jedną główną postać). Krawędź przechowuje również informację o tym, czy łączy dwie główne postaci, oraz o minimalnej rozbieżności czasowej w zdobyciu osiągnięcia przez obie postaci.

Jako że WoW API nie udostępnia bezpośrednio informacji o tym jak gracze dobierają się w drużyny, dwie postaci połączono krawędzie jeżeli zdobyli osiągnięcie w podobnym czasie (założono, że zdobywali go wspólnie), lub są w tej samej drużynie pvp. Wagą krawędzi ustanowiono liczbę osiągnięć, które zostały zdobyte w podobnym (w odstępie pięciu minut) czasie.

W rezultacie otrzymano:

  • 48792 Krawędzi
  • 36859 krawędzi między głównymi postaciami
  • 153 krawędzie pvp

W pierwszym pliku  krawędzie poprowadzono jedynie pomiędzy głównymi postaciami, oraz pomiędzy wszystkimi postaciami danego gracza. W drugim  umieszczono wszystkie krawędzie.

Wizualizacja

Poniższe rysunki przedstawiają grafy, w którym krawędzie poprowadzono jedynie między głównymi postaciami. Pierwsze dwie ilustrują wspólne zdobywanie osiągnięć, podczas gdy w trzecim zawarto informacje o grze arenowej. Na dwóch początkowych obrazkach pozostawiono jedynie krawędzie między postaciami, które przynajmniej jedno osiągnięcie zdobyły w tym samym momencie, i to tylko te, których waga przekraczała 40. Wielkość wierzchołka odpowiada jego wartości pagerank, zaś kolor wskazuje przynależność do gildii (na pierwszym), poziom posiadanego ekwipunku (na drugim).

guilds_circle_2guilds_circlepvp