%=============================================================================== % Zweck: KTR-Präsentation-Vorlage % Erstellt: 15.04.2013 % Update: 04.07.2016 % Autor: M.G. %=============================================================================== %\newcommand*{\footcite}[1]{\footnote{\autocite{#1}}} \newcommand\ratio{169} \documentclass[10pt,aspectratio=\ratio, %draft, %handout, compress ]{beamer} \newcommand\meta{../meta} \input{\meta/config/commands} \newcommand{\backupbegin}{ \newcounter{finalframe} \setcounter{finalframe}{\value{framenumber}} } \newcommand{\backupend}{ \setcounter{framenumber}{\value{finalframe}} } \def\signed #1{{\leavevmode\unskip\nobreak\hfil\penalty50\hskip2em \hbox{}\nobreak\hfil(#1)% \parfillskip=0pt \finalhyphendemerits=0 \endgraf}} \newsavebox\mybox \newenvironment{aquote}[1] {\savebox\mybox{#1}\begin{fancyquotes}} {\signed{\usebox\mybox}\end{fancyquotes}} \input{\meta/config/hyphenation} \setbeamertemplate{caption}[numbered] %\numberwithin{figure}{section} %\bibliographystyle{plain} \bibliography{../ThesTeX/content/literature.bib} \begin{document} %=============================================================================== % Zum Kompilieren latexmk ausführen. % Konfiguration in texmaker: Options -> Configure Texmaker -> Quick Build -> Select Latexmk + ViewPD % Entsprechende Informationen in den config/metainfo verändern % Zur Auswahl der Sprache im folgenden Befehl % ngerman für deutsch eintragen, english für Englisch. %=============================================================================== \selectlanguage{english} \ifnum\ratio<169 \frame{\titlepage} \else \frame[plain]{\titlepage} \fi %\AtBeginSection[] %{ % \frame % { % \frametitle{Outline} % \tableofcontents[currentsection,hideallsubsections] % } %} %\AtBeginSubsection[] %{ % \frame % { % \frametitle{Outline} % \tableofcontents[sectionstyle=show/hide,subsectionstyle=show/shaded/hide,subsubsectionstyle=hide] % } %} \AtBeginSubsubsection[] { \frame { \frametitle{Outline} \tableofcontents[sectionstyle=show/hide,subsectionstyle=show/shaded/hide,subsubsectionstyle=show/shaded/hide] } } \newcommand<>{\highlighton}[1]{% \alt#2{\structure{#1}}{{#1}} } \newcommand{\icon}[1]{\pgfimage[height=1em]{#1}} \section*{} \phantomsection \begin{frame}{Content} \tableofcontents[hideallsubsections] \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% Content starts here %%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{A Framework for the Analysis of Spatial Game Data} \begin{frame}{A Framework for the Analysis of Spatial Game Data} \framesubtitle{Goal definition} \begin{columns} \column{0.49\linewidth} Geogames: Intersection of GIS and gaming technology\footnotemark \begin{itemize} \item Game actions tied to real-world spatial places ('Break the magic circle') \item Locomotion as essential game part \item Trade-offs between board and race style games\footnotemark \item Foster recognition of environment \item Focus through game related tasks \end{itemize} \column{.49\linewidth} Scope of the analysis framework \begin{itemize} \item Framework for analysis \item Two target groups: \begin{itemize} \item Expert users/researchers \item Staging/designing staff \end{itemize} \item Integration of external data (questionnaire results) \item Adaptable for multiple games \end{itemize} \end{columns} \addtocounter{footnote}{-1} \footcitetext{Ahlqvist2018}\stepcounter{footnote} \footcitetext{1705427} \end{frame} \begin{frame}{Framework components} Prerequisites: Game log \begin{itemize} \item Creation \item Storage \end{itemize} New components \begin{itemize} \item Per-game importer (Web client, File loader, …) \item Analyzer modules (number crunching) \item Output \& Visualization (CSV, [Geo]JSON, KML, Graphs, …) \item Interface (Configuration) \item Cross-game comparisons \end{itemize} \end{frame} \section{Modular map-reduce architecture} \begin{frame}{Architecture} Log processing turn-key solutions \begin{itemize} \item fast update cycles \item low spatial resolution \item query languages as entry barrier \end{itemize} Custom stack solution \begin{itemize} \item Based on map-reduce \item Map: Analysis \begin{itemize} \item Iterate Log entries \item Feed log entry through analyzer queue \begin{itemize} \item Augment entries \item Filter entries \item Sequential order \end{itemize} \end{itemize} \item Reduce: Collect summaries from analyzers \begin{itemize} \item Rendering \item Post-processing, Comparison, … \end{itemize} \end{itemize} \end{frame} \begin{frame}{Log processing scheme} \image{\textwidth}{../../ThesTeX/images/map-reduce.pdf}{Data flows}{img:flow} \end{frame} %%%%%%%%%%%%%%%%%55 % PRESENTATION 2 %%%%%%%%%%%%%%%%%%%% \section{Microservice oriented implementation} \subsection{Service Composition} \begin{frame}{Microservice Composition} \framesubtitle{Dockerize everything!} \begin{columns} \column{0.45\linewidth} \begin{itemize} \item Analysis framework: Celery \item User interface: Flask \item Result server: Nginx \item Connection Flask - Celery: Redis \item Public frontend: Traefik (external) \item Orchestration: Docker-Compose \end{itemize} \column{0.525\linewidth} \image{\textwidth}{../../ThesTeX/images/architecture}{Service structure}{img:microservices} \end{columns} \end{frame} \subsection{Results} \begin{frame}{ActivityMapper} \image{.7\textwidth}{track-fi}{Combined screen activity and spatial progress}{img:trackfi} \end{frame} \section{Evaluation} \subsection{Setup} \begin{frame}{Evaluation} %\begin{itemize} % \item Analyse other geogames % \item Describe effort % \item ? % \item Profit %\end{itemize} \image{\textwidth}{eval}{Evaluation setup}{img:eval} \end{frame} \begin{frame}{Evaluation} Clients \begin{longtable}[H]{ccp{0.6\textwidth}} Geogame & Log files & Notes \\ \hline BioDiv2Go & $\approx430$ & SQLite database with JSON log entries, references to game config; import base case\\ GeoTicTacToe & $\approx13$ & CSV with pipes; no temporal data; events + tracks\\ \caption{Geogame client log data} \label{tab:logscli} \end{longtable} Servers \begin{longtable}[H]{ccp{0.6\textwidth}} Geogame & Log files & Notes \\ \hline GeoTicTacToe & $\approx2$ & intermediate log format\\ GeoTTT & $\approx130$ & fragmented structure: incomplete or splitted?\\ Neocartographer & $\approx400$ & Partly broken GPX: missing description information; one GPX file per player\\ MissingLink & $\approx6$ & Partly broken GPX: missing spatial information; one GPX file per player\\ Equilibrium & $\approx40$ & GPX with missing end tag\\ \caption{Geogame servers log data} \label{tab:logssrv} \end{longtable} \end{frame} \subsection{Results} \begin{frame}{Integration of Neocartographer} Challenges \begin{itemize} \item Corrupted XML files \item No game server with API for log retrieval \end{itemize} \begin{longtable}[H]{rl} Geogame & Log files \\ \hline missing attribute space & \\ unclosed tag & \\ missing attribute name & \\ invalid attribute values & \\ \caption{Neocartographer GPX log error types} \label{tab:xml} \end{longtable} Solutions \begin{itemize} \item Recovery parser \& custom cleanup (new dependency: lxml) \item Additional log server (Nginx with JSON autoindex) \end{itemize} \end{frame} \begin{frame}{Evaluation results} \image{\textwidth}{eval-changes}{Code changes necessary for the integration of another game}{img:eval} \end{frame} \section{Demotime} \begin{frame}{It's time for...} \huge{...a demo!} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% References %%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section*{} \begin{frame}[allowframebreaks]{References} \def\newblock{\hskip .11em plus .33em minus .07em} \scriptsize \setbeamertemplate{bibliography item}[text] \printbibliography \normalsize \end{frame} \appendix \backupbegin \end{document}