Moved purpose to background, and rewrote purpose
This commit is contained in:
parent
62f3f6eda1
commit
b4edb8ebda
1 changed files with 171 additions and 47 deletions
218
report.lyx
218
report.lyx
|
@ -379,12 +379,30 @@ The game industry is a quickly growing industry where the need for new technique
|
|||
s is large.
|
||||
One specific section where the development has stalled is the game server
|
||||
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
|
||||
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.
|
||||
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
|
||||
solutions to similar problems.
|
||||
In the telecom industry solutins to similar problems have been found.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
|
@ -405,24 +423,30 @@ the nine nines
|
|||
industry would not have been accepted in the telecoms industry.
|
||||
This level of instability should not be accepted in the game server industry
|
||||
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
|
||||
|
||||
\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.
|
||||
Reliable game servers are one improvement that will create a good image
|
||||
of a company.
|
||||
In general the downtime of game servers are much higher than the downtime
|
||||
of telecom system.
|
||||
The structure of the system is similar and it should be possible to reuse
|
||||
solutions from the telecom system to improve game servers.
|
||||
The structure of the system is similar in many ways and it should be possible
|
||||
to reuse solutions from the telecom system to improve game servers.
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
In the current state game servers is coded for each game that needs it,
|
||||
in many cases this seems like a bad solution.
|
||||
Developers that want to make a network game need to understand network
|
||||
programming.
|
||||
In the current state game servers are developed on a per-game basis, in
|
||||
many cases this seems like a bad solution.
|
||||
Developers of network game need to understand network programming.
|
||||
A way to change this is a generic game server which give the game developers
|
||||
a server which they implement their game towards.
|
||||
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.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Section
|
||||
Purpose
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
\begin_inset Note Note
|
||||
status open
|
||||
|
||||
\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
|
||||
Some factors key to the development of GGS have been isolated.
|
||||
Many of these come from the telecom sector.
|
||||
The factors are
|
||||
\emph on
|
||||
scalable
|
||||
scalability, fault tolerance
|
||||
\emph default
|
||||
and
|
||||
\emph on
|
||||
fault tolerant
|
||||
\emph default
|
||||
server, while still allowing the server to be as
|
||||
and being
|
||||
\emph on
|
||||
generic
|
||||
\emph default
|
||||
as possible.
|
||||
These three italicised terms need some explanation.
|
||||
.
|
||||
These terms are defined below.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
Scalability in computer science is a large topic and is commonly divided
|
||||
into sub-fields, two of which are
|
||||
Scalability (see
|
||||
\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
|
||||
structural scalability
|
||||
\emph default
|
||||
|
@ -494,7 +502,14 @@ key "Bondi:2000:CSI:350391.350432"
|
|||
\end_layout
|
||||
|
||||
\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
|
||||
dependability
|
||||
\emph default
|
||||
|
@ -519,8 +534,15 @@ key "Gartner:1999:FFD:311531.311532"
|
|||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
A generic game server has to be able to run different client-server network
|
||||
games regardless of the platform the clients are running on.
|
||||
A generic (see
|
||||
\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.
|
||||
A very rough separation of games is real time games and turn based games.
|
||||
\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.
|
||||
\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
|
||||
Challenges
|
||||
\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_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
|
||||
|
||||
\begin_layout Section
|
||||
Fault Tolerance
|
||||
\begin_inset CommandInset label
|
||||
LatexCommand label
|
||||
name "sec:Fault-Tolerance"
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
|
@ -1039,7 +1149,14 @@ Performance penalties
|
|||
\end_layout
|
||||
|
||||
\begin_layout Section
|
||||
Availability
|
||||
Availability
|
||||
\begin_inset CommandInset label
|
||||
LatexCommand label
|
||||
name "sec:Availability"
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
|
@ -1087,7 +1204,14 @@ messages
|
|||
\end_layout
|
||||
|
||||
\begin_layout Section
|
||||
Scalability
|
||||
Scalability
|
||||
\begin_inset CommandInset label
|
||||
LatexCommand label
|
||||
name "sec:Scalability"
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue