Added glossary
This commit is contained in:
parent
46f5fed5f6
commit
e63263eccc
1 changed files with 649 additions and 14 deletions
663
report.lyx
663
report.lyx
|
@ -87,6 +87,10 @@
|
||||||
\floatstyle{ruled}
|
\floatstyle{ruled}
|
||||||
\newfloat{code}{thp}{lop}
|
\newfloat{code}{thp}{lop}
|
||||||
\floatname{code}{Code}
|
\floatname{code}{Code}
|
||||||
|
|
||||||
|
\usepackage{nomencl}
|
||||||
|
\makenomenclature
|
||||||
|
\renewcommand{\nomname}{Glossary}
|
||||||
\end_preamble
|
\end_preamble
|
||||||
\use_default_options true
|
\use_default_options true
|
||||||
\maintain_unincluded_children false
|
\maintain_unincluded_children false
|
||||||
|
@ -349,6 +353,34 @@ Zork,
|
||||||
or
|
or
|
||||||
\emph on
|
\emph on
|
||||||
Pacman.
|
Pacman.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Zork}{A textual computer game developed by students at MIT}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Pacman}{An early graphical computer game developed by Namco}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{NetHack}{An early computer game developed by the NetHack team,
|
||||||
|
arguably the oldest computer game still in development}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -406,8 +438,22 @@ Due to the increasing importance of computer gaming, more focus should be
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
The reliable generic game server, hereafter known as GGS, is a computer
|
The reliable generic game server, hereafter known as GGS
|
||||||
program designed to
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{GGS}{Generic Game Server, a software for reliably hosting network
|
||||||
|
games.
|
||||||
|
The subject of this thesis.}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
, is a computer program designed to
|
||||||
\emph on
|
\emph on
|
||||||
host
|
host
|
||||||
\emph default
|
\emph default
|
||||||
|
@ -455,6 +501,68 @@ Counter-Strike
|
||||||
The difference between the GGS and the servers for these games is that
|
The difference between the GGS and the servers for these games is that
|
||||||
the servers for Doom, Quake, and the others listed, were designed with
|
the servers for Doom, Quake, and the others listed, were designed with
|
||||||
these specific games in mind.
|
these specific games in mind.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Quake}{A first person shooter series developed by ID software.
|
||||||
|
The series consists of four games.}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Doom}{A first person shooter series developed by ID software.
|
||||||
|
The series consists of three games.}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{World of Warcraft}{A MMORPG game developed by Blizzard.
|
||||||
|
The world's most popular MMORPG by subscriber count.}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Counter-Strike}{A multiplayer first person shooter game, popular
|
||||||
|
in E-Sports.}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Framework}{A supporting structure, the GGS is a framework for
|
||||||
|
developing network games}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{First-person shooter}{A game in which centers around gun combat
|
||||||
|
from the first person perspective.}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{MMORPG}{Massively multiplayer online role playing game.
|
||||||
|
An online game with several thousand participants.}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -486,6 +594,28 @@ reliable
|
||||||
and software failiures gracefully.
|
and software failiures gracefully.
|
||||||
In the event of a component breaking within the GGS, the error is handled
|
In the event of a component breaking within the GGS, the error is handled
|
||||||
by fault recovery processes, thereby creating a more reliable system.
|
by fault recovery processes, thereby creating a more reliable system.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Hardware failiure}{A failiure in hardware (hard drive, memory,
|
||||||
|
processor, etc) which causes a system to stop functioning}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Software failiure}{A failiure in software (the GGS, the operating
|
||||||
|
system, etc) which causes a system to stop functioning}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Section
|
\begin_layout Section
|
||||||
|
@ -521,6 +651,37 @@ Citation needed
|
||||||
Users will notice this in low uptime and many crashes.
|
Users will notice this in low uptime and many crashes.
|
||||||
This is a problem that has existed and been resolved in other industries.
|
This is a problem that has existed and been resolved in other industries.
|
||||||
In the telecom industry solutins to similar problems have been found.
|
In the telecom industry solutins to similar problems have been found.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{The nine nines}{A common goal for availability in the telecom
|
||||||
|
business.
|
||||||
|
A system with nine nines of availability is available 99.999999999% of the
|
||||||
|
time}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Downtime}{The amount of time a system is unavailable and does
|
||||||
|
not function}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Uptime}{The amount of time a system is available and functions}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -536,7 +697,17 @@ the nine nines
|
||||||
\begin_inset Formula $15ms$
|
\begin_inset Formula $15ms$
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
downtime in a year.
|
downtime in a year
|
||||||
|
\begin_inset Note Note
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
Citation needed
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
.
|
||||||
The level of instability and bad fault tolerance seen in the game server
|
The level of instability and bad fault tolerance seen in the game server
|
||||||
industry would not have been accepted in the telecoms industry.
|
industry would not have been accepted in the telecoms industry.
|
||||||
This level of instability should not be accepted in the game server industry
|
This level of instability should not be accepted in the game server industry
|
||||||
|
@ -710,6 +881,65 @@ TUXEDO
|
||||||
\emph default
|
\emph default
|
||||||
application server, which can be used to run applications written in COBOL,
|
application server, which can be used to run applications written in COBOL,
|
||||||
C++ and other languages.
|
C++ and other languages.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{SQL}{Structured Query Language, a computer language common
|
||||||
|
in querying certain databases}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{JavaScript}{A programming language originally developed by
|
||||||
|
Netscape, common in web programming}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{COBOL}{Programming language}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{C++}{Programming language}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Java}{Programming language}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{AXD301}{Telephone switch developed by Ericsson}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Erlang}{A concurrent programming language, often used for telecom
|
||||||
|
applications.
|
||||||
|
The main language of the GGS}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -856,6 +1086,27 @@ game development language
|
||||||
\emph default
|
\emph default
|
||||||
(hereafter GDL for brevity) is used.
|
(hereafter GDL for brevity) is used.
|
||||||
|
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{GDL}{Game Development Language, the language used to program
|
||||||
|
games in the GGS}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{VM}{Virtual Machine}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -929,6 +1180,26 @@ The implementation of the GGS protocol, together with storage possibilities,
|
||||||
the project.
|
the project.
|
||||||
To get a functional prototype some limits must be set on the types games
|
To get a functional prototype some limits must be set on the types games
|
||||||
that can be played on the prototype.
|
that can be played on the prototype.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{UDP}{User Datagram Protocol, a connectionless networking protocol}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{TCP}{Transmission Control Protocol, a streaming network protocol}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -950,6 +1221,19 @@ reference "sec:Choice-of-network"
|
||||||
Another limitation necessary to set on the system is the possibility to
|
Another limitation necessary to set on the system is the possibility to
|
||||||
have huge game worlds due to the implementation of the scaling mechanism
|
have huge game worlds due to the implementation of the scaling mechanism
|
||||||
in the prototype.
|
in the prototype.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Latency}{A measure of delay, often measured in milliseconds}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -1031,6 +1315,19 @@ A prototype was developed early on in the project in order to carry out
|
||||||
Using this prototype, the system was divided into modules.
|
Using this prototype, the system was divided into modules.
|
||||||
A demand specification was created, using this specification, the modules
|
A demand specification was created, using this specification, the modules
|
||||||
were easily identifiable.
|
were easily identifiable.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Module}{A part of a larger system}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -1752,10 +2049,6 @@ A very simple example of the flow through the GGS system when a game played.
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Standard
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Section
|
\begin_layout Section
|
||||||
|
@ -1935,6 +2228,20 @@ There are three main ways in which computer communication over the Internet
|
||||||
Application layer protocols such as HTTP on the other hand needs a transport
|
Application layer protocols such as HTTP on the other hand needs a transport
|
||||||
layer protocol in order to work.
|
layer protocol in order to work.
|
||||||
|
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{HTTP}{Hyper Text Transport Protocol, a network protocol commonly
|
||||||
|
used to deliver web pages}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
|
@ -2176,6 +2483,20 @@ messages
|
||||||
\emph default
|
\emph default
|
||||||
instead of shared memory.
|
instead of shared memory.
|
||||||
We will discuss each of them later on.
|
We will discuss each of them later on.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Supervisor}{A process monitoring and hadning crashes in other
|
||||||
|
processes}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Section
|
\begin_layout Section
|
||||||
|
@ -2240,6 +2561,19 @@ The need for load balancing varies between different kind of systems.
|
||||||
works on.
|
works on.
|
||||||
A static structure where the number of servers are predefined or a dynamic
|
A static structure where the number of servers are predefined or a dynamic
|
||||||
structure where the number varies.
|
structure where the number varies.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Amazon EC2}{A cloud computation service}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -2321,6 +2655,19 @@ name "sub:UUID"
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{UUID}{Universally Unique Identifier}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -2528,6 +2875,28 @@ The obvious solution to this problem is to ensure mutual exclusion by using
|
||||||
A different approach is to give each node the ability to generate Universally
|
A different approach is to give each node the ability to generate Universally
|
||||||
Unique Identifiers (UUID), where the state of one machine does not interfere
|
Unique Identifiers (UUID), where the state of one machine does not interfere
|
||||||
with the state of another.
|
with the state of another.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{MAC Address}{Media Access Control address, used to identify
|
||||||
|
network cards}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{SHA-1}{Cryptigraphic hash function, designed by the National
|
||||||
|
Security Agency (NSA)}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -2614,6 +2983,21 @@ reference "alg:A-simple-generator"
|
||||||
|
|
||||||
, even when mutual system-wide exclusion is implemented.
|
, even when mutual system-wide exclusion is implemented.
|
||||||
This is exactly the problem UUID:s solve.
|
This is exactly the problem UUID:s solve.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Network split}{Separation of two networks, occurs when two
|
||||||
|
networks can not communicate, commonly because of a hardware or software
|
||||||
|
failiure}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -2717,6 +3101,20 @@ We only support languages running in a sandboxed environment.
|
||||||
relational database.
|
relational database.
|
||||||
A game is not allowed to venture outside this namespace, and can because
|
A game is not allowed to venture outside this namespace, and can because
|
||||||
of this not modify the persistent data of other games.
|
of this not modify the persistent data of other games.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Sandbox}{A protected environment in which computer software
|
||||||
|
can be run safely}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
|
@ -2830,6 +3228,54 @@ https://github.com/languages/
|
||||||
with the availability of several different JavaScript virtual machines
|
with the availability of several different JavaScript virtual machines
|
||||||
was an important influence in choosing JavaScript as the main control language
|
was an important influence in choosing JavaScript as the main control language
|
||||||
for our GGS prototype.
|
for our GGS prototype.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{CouchDB}{Database server}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Riak}{Database server}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{GitHub.com}{Social coding website}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{ActionScript}{Programming language}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Lua}{Programming language}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{.NET}{Software platform}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
|
@ -2987,6 +3433,28 @@ key "McKusick:2004:DIF:1014910"
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
.
|
.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{LWP}{Light Weight Process}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Context switch}{The act of switching from one context, commonly
|
||||||
|
a process, to another.
|
||||||
|
Used by operating systems to achieve multi tasking}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -3159,6 +3627,20 @@ Erlang was designed by Ericsson, beginning in 1986, for the purpose of creating
|
||||||
concurrent applications and improving telecom software.
|
concurrent applications and improving telecom software.
|
||||||
Features essential for the telecom instustry to achieve high availability
|
Features essential for the telecom instustry to achieve high availability
|
||||||
in telecom switches were added to the language.
|
in telecom switches were added to the language.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Mutex}{A construct for achieving mutial exclusion, used to
|
||||||
|
avoid simultaneous access to shared resources in computer systems}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -3290,6 +3772,26 @@ reference "sec:Game-Development-Language"
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
.
|
.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{OTP}{Open Telecom Platform, a software suite for Erlang}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Behaviour}{A design pattern in OTP}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -3381,6 +3883,20 @@ application
|
||||||
the GGS can be started in a way uniform to most erlang software, providing
|
the GGS can be started in a way uniform to most erlang software, providing
|
||||||
familiarity for other Erlang users, and eases the incorporation of the
|
familiarity for other Erlang users, and eases the incorporation of the
|
||||||
GGS in other applications.
|
GGS in other applications.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Application}{A way of packaging Erlang software in a uniform
|
||||||
|
way}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -3445,6 +3961,20 @@ localstorage
|
||||||
Unique id:s called gametokens are generated for hosted games so that they
|
Unique id:s called gametokens are generated for hosted games so that they
|
||||||
are not mixed up.
|
are not mixed up.
|
||||||
|
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{WebStorage}{A new standard for letting websites store data
|
||||||
|
on visitors' computers}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -3560,6 +4090,27 @@ Am I right here?
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{SRP}{Single Responsibility Principle}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Object Oriented Programming}{A programming paradigm focusing
|
||||||
|
on objects}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
|
@ -4137,7 +4688,7 @@ After a crash in a table process, the entire table must be rebuilt and the
|
||||||
Data kept in the actual game is not automatically corrupted by the crash
|
Data kept in the actual game is not automatically corrupted by the crash
|
||||||
in a table, however the table must be re-associated with the game VM is
|
in a table, however the table must be re-associated with the game VM is
|
||||||
was associated with prior to the crash of the table.
|
was associated with prior to the crash of the table.
|
||||||
The table process maps well into the setting of the real-world chess clib
|
The table process maps well into the setting of the real-world chess club
|
||||||
scenario previously discussed.
|
scenario previously discussed.
|
||||||
A table works in the same way in a real world setting as in the GGS setting.
|
A table works in the same way in a real world setting as in the GGS setting.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -4147,7 +4698,7 @@ The game virtual machine module
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
This module holds the game logic of a game and is responsible for the vm
|
This module holds the game logic of a game and is responsible for the VM
|
||||||
associated with each game.
|
associated with each game.
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -4175,7 +4726,7 @@ The VM itself makes it possible for the game developer to program in the
|
||||||
doesn't need to take this into consideration when programming a game.
|
doesn't need to take this into consideration when programming a game.
|
||||||
If a method within the game sends data to a player, it will be delivered
|
If a method within the game sends data to a player, it will be delivered
|
||||||
to the player in the correct running game.
|
to the player in the correct running game.
|
||||||
The same game token is used to store the game state in the db.
|
The same game token is used to store the game state in the database.
|
||||||
Therefore, no game states will be mixed up either.
|
Therefore, no game states will be mixed up either.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
@ -4203,6 +4754,19 @@ Game data from all games on the GGS are stored here.
|
||||||
This makes it possible to continue a game just before the failure without
|
This makes it possible to continue a game just before the failure without
|
||||||
having to start the game from the beginning.
|
having to start the game from the beginning.
|
||||||
|
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Mnesia}{Database server used in the GGS}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -4261,6 +4825,29 @@ key "ieee_90"
|
||||||
.
|
.
|
||||||
There are some tools for creating reliable applications built in to Erlang.
|
There are some tools for creating reliable applications built in to Erlang.
|
||||||
|
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{Reliability}{The ability of a system or component to perform
|
||||||
|
its required functions under stated conditions for a specified period of
|
||||||
|
time}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{IEEE}{Institute of Electrical and Electronics Engineers, read
|
||||||
|
"I-triple-E"}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Itemize
|
\begin_layout Itemize
|
||||||
|
@ -4933,6 +5520,26 @@ There were two possible solutions to the problem.
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
To get the functionality needed we decided to implement this in erlang_js.
|
To get the functionality needed we decided to implement this in erlang_js.
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{V8}{JavaScript engine developed by Google}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{SpiderMonkey}{JavaScript engine developed by Mozilla}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
|
@ -5220,6 +5827,19 @@ Currently Mnesia is used for game data storage.
|
||||||
ETS provides fast access to the RAM and thus Mnesia could be used less
|
ETS provides fast access to the RAM and thus Mnesia could be used less
|
||||||
frequently.
|
frequently.
|
||||||
|
|
||||||
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
nomenclature{ETS}{Erlang Term Storage}
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
|
@ -5283,12 +5903,27 @@ To start the GGS isn't self explanatory.
|
||||||
Conclusion
|
Conclusion
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Chapter*
|
\begin_layout Standard
|
||||||
Glossary
|
\begin_inset ERT
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
addcontentsline{toc}{section}{Glossary}
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Plain Layout
|
||||||
Here we could add some important words and their definitions..
|
|
||||||
|
|
||||||
|
\backslash
|
||||||
|
printnomenclature
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue