-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.tex
125 lines (100 loc) · 10.4 KB
/
main.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage{amssymb}
\usepackage{hyperref}
\input{revision}
\input{authors}
\title{Georenting}
\author{\gitAuthors}
\date{\revisiondate\\
\texttt{\gitTag-\revision}}
\begin{document}
\maketitle
\tableofcontents
\chapter{Einführung}
\section{Allgemeines}
Dieses Dokument beschreibt das Konzept hinter dem Reallife-Multiplayer-Online Spiel "Georenting". Es handelt sich bei Georenting um ein Smartphonespiel mit starkem Bezug zum lokalen Umfeld des Benutzers und seiner aktuellen Position. Er interagiert über eine Art soziales und wirtschaftliches Netzwerk mit anderen Benutzern in Echtzeit. Neben der Unterhaltung des Benutzers stehen bei diesem Projekt ebenfalls die Erforschung von Massenverhalten und einer durch die Entwickler konstruierten autonomen Spielökonomie. Die Analyse von Nutzerdaten soll ausdrücklich zu Forschungszwecken dienen und Daten nicht an Dritte weitergegeben werden (siehe auch Abschnitt Datenschutz).
\section{Grundlagen des Spiels}
Der Grundlegende Bestandteil des Spiels sind sogenannte Geofences (siehe auch Abschnitt Geofences).
\section{Über Uns}
\section{Über dieses Dokument}
\chapter{Aufbau und Regeln des Spieles}
\section{Grundlegender Aufbau}
\subsection{Geofences}
Die Geofences sind der zentrale Bestandteil des Spielkonzeptes. Ein Geofence besteht aus einem Koordinaten-Tupel (Latitude und Longitude) einem Radius, sowie einem Multiplikator. Geofences markieren somit eine kreisförmigen Fläche auf der Karte.
Ein Geofence stellt einen Bereich dar, den der User sich im Tausch gegen In-Game Währung im Spiel erkaufen kann. Betreten nun andere User diesen Geofence (also das festgelegte kreisförmige Gebit), zahlen die besuchenden User dem besitzenden User automatisch einen In-Game Geldbetrag.\\
Der Radius und die Miete sind abhängig von dem Upgrade-Stand des Geofences. Der Nutzer kann, wieder im Tausch gegen In-Game Währung, Upgrades für seine Geofences erwerben.\\
Es ist nicht möglich mehrere Geofences auf die selbe Stelle zu setzen. Ein Geofence soll sich analog zu einem Grundstück in der realen Welt Verhalten. Da es aber nicht möglich ist eine Fläche mit Kreisen fester Radien vollständig und disjunkt zu überdecken sind Überschneidungen von Geofences von bis zu XY Prozent der Flächen gestattet.\\
Geofences können nur auf beschränkte Zeit erworben werden. Nach dem Ablauf dieser Zeit wird der Geofence von der Karte entfernt und dem Benutzer wird der aktuelle Wert des Geofences gutgeschrieben. An der entsprechenden Stelle können dann neue Geofences platziert werden.
\subsection{Upgrades}
Upgrades ermöglichen es dem Benutzer einen bereits existierenden und sich im Besitz des Benutzers befindenden Geofence mit verschiedenen Möglichkeiten aufzurüsten um die Einnahmen durch diesen Geofence zu erhöhen. Hierzu wählt der Benutzer einen seiner Geofences aus und zahlt einen bestimmten Betrag, der sich aus dem Score berechnet. Dann wird ein entsprechendes Upgrade auf den Geofence angewendet. Upgrades steigern den aktuellen Wert eines Geofences.
\subsubsection{Multiplikator-Upgrade}
Jeder Geofence enthält wie bereits beschrieben einen Multiplikator. Dieser Multiplikator bestimmt den Preis, den ein anderer Benutzer zahlen muss, wenn er den Geofence eines Benutzers betritt. Höhere Multiplikatoren bedeuten hierbei einen höheren zu zahlenden Betrag. Die möglichen Multiplikatoren die ein Benutzer für seine Geofences auswählen kann, hängen von der Liga ab, in der er sich befindet.
\subsubsection{Radius-Upgrade}
Neben dem Multiplikator-Upgrade ist es außerdem möglich den Radius eines Geofences zu vergrößern. Der Prozess des Upgrades läuft dann ähnlich ab wie bei dem Multiplikator-Upgrade und die Fläche des upgegradedten Geofence vergrößert sich.
\subsection{Homezones}
Da die Position eines Benutzers kontinuierlich verfolgt wird, ergeben sich für den Benutzer problematische Situationen. So kann es theoretisch sein, dass er jedes mal wenn er etwa seinen Arbeitsplatz besucht den Geofence eines anderen Spielers betritt. Auch ein Wohnsitz des Benutzers ist natürlich von dieser Problematik betroffen. Um dieses Problem zu umgehen werden die sogenannten Homezones eingeführt. Sie ermöglichen dem Benutzer einen Punkt (Latitude und Longitude) als Homezone zu definieren und dadurch von Zahlungen die durch das Betreten von jeglichen Geofences, die den Punkt beinhalten befreit zu werden.
\subsection{Cashflow}
\subsubsection{Mögliche Cashflow Vorgänge}
Durch die Spielregeln ergeben sich diverse Möglichkeiten für Zahlungen innerhalb der Spielökonomie. Folgende Tabelle liefert eine Übersicht.
\begin{table}[h]
\centering
\begin{tabular}{l|p{8cm}|l}
\textbf{Aktion} & \textbf{Beschreibung} & \textbf{Richtung} \\
CreateUser & Ein neuer Benutzer wird erstellt - Generierung von X Geocoins als Startguthaben des Users. & Bank $\rightarrow$ Benutzer \\
\hline
DeleteUser & Ein Benutzer wird entfernt - die Bank erhält sein gesamtes Geld. & Benutzer $\rightarrow$ Bank \\
\hline
BuyGeofence & Ein Benutzer kauft einen neuen Geofence. & Benutzer $\rightarrow$ Bank \\
\hline
SellGeofence & Ein Benutzer verkauft einen Geofence aus seinem Besitz an die Bank. & Bank $\rightarrow$ Benutzer \\
\hline
TradeGeofence & Ein Benutzer verkauft einen Geofence an einen anderen Benutzer. & Benutzer $\rightarrow$ Benutzer \\
\hline
VisitGeofence & Ein Benutzer muss einem anderen User Geocoins zahlen, da er dessen Geofence besucht hat. & Benutzer $\rightarrow$ Benutzer \\
\hline
GeofenceRevenue & Ein Benutzer bekommt Zahlungen von einem Besucher seines Geofences. & Benutzer $\rightarrow$ Benutzer \\
\hline
GeofenceUpgrade & Ein Benutzer bezahlt das Upgrade eines seiner Geofences & Benutzer $\rightarrow$ Bank \\
\end{tabular}
\caption{Cashflow}
\label{tbl:beispieltabelle}
% Verweis im Text mittels \ref{tbl:beispieltabelle}
\end{table}
\subsection{Das Ligensystem}
Es ist offensichtlich, dass ein Neueinstiger einem Spieler, der das Spiel schon länger spielt in diversen Aspekten des Spiels unterlegen ist. So ist es möglich, dass der Neueinsteiger sein komplettes Startguthaben an Geocoins dadurch verliert, dass er in einen Geofence mit hohem Multiplikator gelaufen ist. Um dieses Problem zu umgehen soll eine Art Ligensystem eingeführt werden. Das Prinzip lässt sich folgendermaßen beschreiben: VisitGeofence wird nur ausgeführt, wenn sich der Besucher des Geofences in der selben oder einer höheren Liga befindet. Mit dem Fortschritt eines Spielers soll er ebenfalls in eine höhere Liga aufsteigen. Dies wird durch eine vom Level des Benutzers abhänge Ligenklassifikation ermöglicht.
\subsubsection{Level eines Benutzers}
\section{Interne Mechanismen}
\subsection{Scores}
Die Attraktivität eines Ortes für die Erstellung eines Geofences hängt vom täglichen Personenaufkommen und somit von der Position des Ortes ab. Beliebte Orte mit höheren Einnahmen durch höheres Personenaufkommen sollen für den Benutzer nicht so einfach zu erhalten sein wie andere Orte. Deswegen soll ein lokaler Score eingeführt werden, der abhängig vom Ort höhere Preise für die Erstellung oder Aufrüstung eines Geofences verursacht. Der Score wird aus den VisitGeofence-actions berechnet, die den besagten Ort betreffen.
\subsubsection{Geohashes}
Um Bereichen auf der Karte einen bestimmten Score zuzuordnen muss eine disjunkte Einteilung der Karte vorgenommen werden. Dies erfolgt über sogenannte Geohashes. Die Karte wird in eine vorher festgelegte Anzahl von rechteckigen Bereichen überdeckt. Sei $M$ die Menge dieser Bereiche. Dann ist \[ M = \{(a,b,c,d) | a,b,c,d \in [-180,180], (a,b,c,d) 'disjunktes' Rechteck\} \] Hierbei bezeichnen die Tupel $(a,b)$ und $(c,d)$ die Koordinaten der linken unteren und der rechten oberen Ecke eines rechteckigen Bereiches. Nun existiert die Abbildung \[ hash: M \rightarrow \mathbb{N}\] wobei die Zahlen aus dem Wertebereich in Hexadezimaldarstellung gespeichert werden.\\ Bemerkung: $hash$ ist injektiv. Für die Menge der Koordinaten auf der Karte ist \[(lat1,lon1) =_{pos} (lat2,lon2) :\Leftrightarrow\] \[ \exists (a,b,c,d) \in M: lat1, lat2 \ge a \land lat1,lat2 \le c \land lon1, lon2 \ge b \land lon1,lon2 \le d\] eine Äquivalenzrelation.
Wir können nun jede Koordinate kanonisch auf ihre Äquivalenzklasse abbilden. Diese bezeichnen wir mit $[a,b,c,d]$. Für jede Koordinate existiert also solch ein besagtes $(a,b,c,d)$, was wir mit $hash$ nach $\mathbb{N}$ abbilden können. Somit können wir jeder Koordinate einen Geohash zuordnen.
Die Präzision des Geohashalgorithmus (Fläche der (a,b,c,d)) wird auf Stufe 6 festgelegt. Siehe dazu auch: (https://github.com/danieldkim/geomodel).
\subsubsection{Berechnung des Scores}
Gegeben seien: ein Bereich $[a,b,c,d]$, die aktuelle Zeit $t_{now}$, die Zeit $t_{lv_{ [a,b,c,d]}}$ des letzten Besuches auf $[a,b,c,d]$ und \[t_{avg} = \frac{1}{\#M} * \sum_{[x1,y1,x2,y2] \in M} t_{now} - t_{lv_{ [x1,y1,x2,y2]}}\] Der neue Score von $[a,b,c,d]$ berechnet sich wie folgt:
\[score_{neu}[a,b,c,d] = max\{0, score_{alt}[a,b,c,d] + ln(\frac{t_{avg}}{t_{now}-t_{lv_{ [a,b,c,d]}}})\}\]
\subsection{Erstellung eines Geofences}
Bei der Erstellung eines Geofences G soll nun also aus dem Score des zugehörigen Bereiches der Preis berechnet werden. Ist der Score 0 (bisher keine Aktivität oder minimale Aktivität) so soll ein Geofence der ersten Ausbaustufe 100 GC kosten. Sei nun $S := score [a,b,c,d]$. Dann berechnet sich der Preis $P$ der ersten Ausbaustufe durch \[P = (S+1)^{\frac{1}{p}} * 100 GC\] für $G_{pos} \in [a,b,c,d]$. Hierbei ist p die sogenannte "Peda Bs magical Georenting-Konstante", welche im Verlauf des Projektes ermittelt werden soll.
\section{Die User}
\subsection{Neue User}
\subsection{Besitz von Geofences}
\subsection{Benutzerprofil}
\subsection{Standortdaten}
\section{Handel}
\section{Denkbare Erweiterungsmöglichkeiten}
\chapter{Umsetzung des Projektes}
\section{Resourcen}
\section{Implementierung}
\section{Vermarktung}
\chapter{Analyse der laufenden Instanz}
\section{Benutzerwachstum}
\section{Währung}
\section{Analyse der Scores}
\section{Spielstrategien}
\section{Unterhaltungsfaktor und "Suchtpotential"}
\section{Repräsentativität der Daten}
\chapter{Anhang}
\section{Anmerkungen}
\subsection{Datenschutz}
\end{document}