diff --git a/report.lyx b/report.lyx index 2359d28..e38a6af 100644 --- a/report.lyx +++ b/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