Moved purpose to background, and rewrote purpose

This commit is contained in:
Jonatan Pålsson 2011-04-26 19:12:21 +02:00
parent 62f3f6eda1
commit b4edb8ebda

View file

@ -379,12 +379,30 @@ The game industry is a quickly growing industry where the need for new technique
s is large. s is large.
One specific section where the development has stalled is the game server One specific section where the development has stalled is the game server
section. section.
\begin_inset Note Note
status open
\begin_layout Plain Layout
Citation needed
\end_layout
\end_inset
The existing game servers are functional but they lack good fault tolerance The existing game servers are functional but they lack good fault tolerance
and the ability to scale well. and the ability to scale well
\begin_inset Note Note
status open
\begin_layout Plain Layout
Citation needed
\end_layout
\end_inset
.
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.
One good example is the telecom industry which have managed to develop In the telecom industry solutins to similar problems have been found.
solutions to similar problems.
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
@ -405,24 +423,30 @@ the nine nines
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
either. either.
An unavailabvle phone system could potentially have life threatening consequenc
es, leaving the public unable to contant emergency services.
The same can not be said about an unavailable game server.
The statement that game servers are less important than phone systems is
not a reason not to draw wisdom from what the telecoms have already learnt.
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
The main reason to develop reliable servers are monetary, it is important Moving back to the gaming industry.
The main reason to develop reliable servers are monetary, it is important
for game companies to expand its customer base. for game companies to expand its customer base.
Reliable game servers are one improvement that will create a good image Reliable game servers are one improvement that will create a good image
of a company. of a company.
In general the downtime of game servers are much higher than the downtime In general the downtime of game servers are much higher than the downtime
of telecom system. of telecom system.
The structure of the system is similar and it should be possible to reuse The structure of the system is similar in many ways and it should be possible
solutions from the telecom system to improve game servers. to reuse solutions from the telecom system to improve game servers.
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
In the current state game servers is coded for each game that needs it, In the current state game servers are developed on a per-game basis, in
in many cases this seems like a bad solution. many cases this seems like a bad solution.
Developers that want to make a network game need to understand network Developers of network game need to understand network programming.
programming.
A way to change this is a generic game server which give the game developers A way to change this is a generic game server which give the game developers
a server which they implement their game towards. a server which they implement their game towards.
This approach would not only make it easier to develop network games, it This approach would not only make it easier to develop network games, it
@ -430,47 +454,31 @@ In the current state game servers is coded for each game that needs it,
using the same server. using the same server.
\end_layout \end_layout
\begin_layout Section
Purpose
\end_layout
\begin_layout Standard \begin_layout Standard
\begin_inset Note Note Some factors key to the development of GGS have been isolated.
status open Many of these come from the telecom sector.
The factors are
\begin_layout Plain Layout
The purpose of the GGS project.
What is the purpose of creating a fault tolerant server, why is it generic,
and what good does it do to have a scalable system? In the background,
we should give the motivations behind creating this software, but here
we should outline why the software is needed.
\end_layout
\end_inset
\end_layout
\begin_layout Standard
The purpose of the GGS project is to create a
\emph on \emph on
scalable scalability, fault tolerance
\emph default \emph default
and and being
\emph on
fault tolerant
\emph default
server, while still allowing the server to be as
\emph on \emph on
generic generic
\emph default \emph default
as possible. .
These three italicised terms need some explanation. These terms are defined below.
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
Scalability in computer science is a large topic and is commonly divided Scalability (see
into sub-fields, two of which are \begin_inset CommandInset ref
LatexCommand ref
reference "sec:Scalability"
\end_inset
) in computer science is a large topic and is commonly divided into sub-fields,
two of which are
\emph on \emph on
structural scalability structural scalability
\emph default \emph default
@ -494,7 +502,14 @@ key "Bondi:2000:CSI:350391.350432"
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
Fault tolerance is used to raise the level of Fault tolerance (see
\begin_inset CommandInset ref
LatexCommand ref
reference "sec:Fault-Tolerance"
\end_inset
) is used to raise the level of
\emph on \emph on
dependability dependability
\emph default \emph default
@ -519,8 +534,15 @@ key "Gartner:1999:FFD:311531.311532"
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
A generic game server has to be able to run different client-server network A generic (see
games regardless of the platform the clients are running on. \begin_inset CommandInset ref
LatexCommand ref
reference "sec:Generic"
\end_inset
) game server has to be able to run different client-server network games
regardless of the platform the clients are running on.
It runs network games of different type. It runs network games of different type.
A very rough separation of games is real time games and turn based games. A very rough separation of games is real time games and turn based games.
\end_layout \end_layout
@ -576,6 +598,62 @@ One of the purposes of this thesis is to investigate how we can make a game
layer, data store and game specific features. layer, data store and game specific features.
\end_layout \end_layout
\begin_layout Section
Purpose
\end_layout
\begin_layout Standard
\begin_inset Note Note
status collapsed
\begin_layout Plain Layout
The purpose of the GGS project.
What is the purpose of creating a fault tolerant server, why is it generic,
and what good does it do to have a scalable system? In the background,
we should give the motivations behind creating this software, but here
we should outline why the software is needed.
This section should be shortened, and the bulk of the text should be moved
to theory or background.
\end_layout
\end_inset
\end_layout
\begin_layout Standard
The purpose of creating a generic and fault tolerant game server is to provide
a good framework for the development of many different types of games.
Allowing the system to scale up and down is a powerful way to maximize
the usage of physical resources.
By scaling up to new machines when load increases, and scaling down from
machines when load decreases costs and energy consumption can be optimized.
\end_layout
\begin_layout Standard
Fault tolerance is important for the GGS in order to create a reliable service.
The purpose of a reliable game server is to provide a consistant service
to people using the server.
Going back to the telecom example, the purpose of creating a reliable telecom
system is to allow calls, possibly emergency calls, at any time.
Should the telecom network be unavailable at any time, emergency services
may become unavailable, furthermore the consumer image of the telecom system
degrades.
\end_layout
\begin_layout Standard
Returning to the game industry, emergency services will not be contacted
using a game server, however an unavailable server will degrade the consumer
image of the system.
Consider an online casino company.
The online casino company's servers must be available at all times to allow
customers to play.
If the servers are unavailable, customers can not play, and the company
loses money.
In this scenario, an unavailable server can be compared to a closed real-world
casino.
\end_layout
\begin_layout Section \begin_layout Section
Challenges Challenges
\end_layout \end_layout
@ -980,10 +1058,42 @@ Same here it is simply not true for a generic server to chose one or the
\end_inset \end_inset
\end_layout
\begin_layout Section
Generic
\begin_inset CommandInset label
LatexCommand label
name "sec:Generic"
\end_inset
\end_layout
\begin_layout Standard
\begin_inset Note Note
status open
\begin_layout Plain Layout
Bad name of the chapter, but here we should give the theory of how the server
is generic
\end_layout
\end_inset
\end_layout \end_layout
\begin_layout Section \begin_layout Section
Fault Tolerance Fault Tolerance
\begin_inset CommandInset label
LatexCommand label
name "sec:Fault-Tolerance"
\end_inset
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
@ -1039,7 +1149,14 @@ Performance penalties
\end_layout \end_layout
\begin_layout Section \begin_layout Section
Availability Availability
\begin_inset CommandInset label
LatexCommand label
name "sec:Availability"
\end_inset
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
@ -1087,7 +1204,14 @@ messages
\end_layout \end_layout
\begin_layout Section \begin_layout Section
Scalability Scalability
\begin_inset CommandInset label
LatexCommand label
name "sec:Scalability"
\end_inset
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard