318 lines
8.4 KiB
TeX
318 lines
8.4 KiB
TeX
%===============================================================================
|
|
% 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<handout:0>
|
|
% {
|
|
% \frametitle{Outline}
|
|
% \tableofcontents[currentsection,hideallsubsections]
|
|
% }
|
|
%}
|
|
|
|
%\AtBeginSubsection[]
|
|
%{
|
|
% \frame<handout:0>
|
|
% {
|
|
% \frametitle{Outline}
|
|
% \tableofcontents[sectionstyle=show/hide,subsectionstyle=show/shaded/hide,subsubsectionstyle=hide]
|
|
% }
|
|
%}
|
|
|
|
\AtBeginSubsubsection[]
|
|
{
|
|
\frame<handout:0>
|
|
{
|
|
\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}
|
|
\begin{frame}{Track length evaluation}
|
|
\begin{columns}
|
|
\column{0.49\linewidth}
|
|
\image{\textwidth}{oeb-raw}{Raw track lengths}{img:oeb-raw}
|
|
\column{0.49\linewidth}
|
|
\image{\textwidth}{oeb-simplified}{Simplified track lengths}{img:oeb-simpe}
|
|
\end{columns}
|
|
\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:evalplan}
|
|
\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 & <desc><event message="leaveObject"geoid="9"/></desc>\\
|
|
unclosed tag & <desc><event </desc>\\
|
|
missing attribute name & <trkpt lat="48.3689110.897709">\\
|
|
invalid attribute values & <trkpt lat="UNKNOWN" lon="UNKNOWN">\\
|
|
\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!}
|
|
\vspace{2cm}
|
|
\pic{.9\textwidth}{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}
|