added some text about the GGS protocol in theory

This commit is contained in:
Jeena Paradies 2011-05-10 15:12:00 +02:00
parent a384fa93ce
commit 88d8369fa8

View file

@ -2290,29 +2290,6 @@ textbf{HTTP}}{Hyper Text Transport Protocol, a network protocol commonly
\end_inset
\end_layout
\begin_layout Subsection
HTTP
\end_layout
\begin_layout Standard
Since HTTP is so widely used on the Internet today in web servers, it is
available on most Internet connected devices.
This means that if HTTP is used in the GGS, firewalls will not pose problems,
which is a great benefit.
However, due to the intended usage of HTTP in web servers, the protocol
was designed to be stateless and client-initiated.
In order to maintain a state during a game session using HTTP, some sort
of token would have to be passed between client and server at all times,
much like how a web server works.
These facts combined makes HTTP unsuitable for our purposes, since the
GGS requires a state to be maintained throughout a session, and also needs
to push data from the server to clients without the clients requesting
data.
It should also be mentioned that HTTP uses the TCP protocol for transport,
and what is said about TCP also applies to HTTP.
\end_layout
\begin_layout Subsection
@ -2375,31 +2352,54 @@ Same here it is simply not true for a generic server to chose one or the
\end_layout
\begin_layout Subsection
The GGS protocol
HTTP
\end_layout
\begin_layout Standard
\begin_inset Note Note
status open
Since HTTP is so widely used on the Internet today in web servers, it is
available on most Internet connected devices.
This means that if HTTP is used in the GGS, firewalls will not pose problems,
which is a great benefit.
However, due to the intended usage of HTTP in web servers, the protocol
was designed to be stateless and client-initiated.
In order to maintain a state during a game session using HTTP, some sort
of token would have to be passed between client and server at all times,
much like how a web server works.
These facts combined makes HTTP unsuitable for our purposes, since the
GGS requires a state to be maintained throughout a session, and also needs
to push data from the server to clients without the clients requesting
data.
It should also be mentioned that HTTP uses the TCP protocol for transport,
and what is said about TCP also applies to HTTP.
\end_layout
\begin_layout Plain Layout
Refer to
\begin_layout Subsection
The GGS Protocol
\end_layout
\begin_layout Standard
HTTP was designed to be a stateless protocoll which by adding some overhead
is able to remove the need of a permanent connection and a state for each
client.
The GGS however already has a permanent connection to each client because
it needs to push information to the clients.
Therefore is able to use the state to minimize the overhead in the communicatio
n between server and client.
Because of that it has been decided to invent a new protocol which human
readable like HTTP but customized for this special use.
The GGS protocol is described in more detail in section
\begin_inset CommandInset ref
LatexCommand ref
reference "sub:The-structure-of"
\end_inset
.
\end_layout
\end_inset
\end_layout
\begin_layout Section
Generic
Generic Structure of the GGS
\begin_inset CommandInset label
LatexCommand label
name "sec:Generic"
@ -2414,8 +2414,8 @@ The GGS is a game server.
It was made with a desire to be suitable for any kind of game.
Any game with a client-server behavior should be perfectly suited for GGS.
A game should not only be able to vary in terms of genre, graphics, gameplay
etc, but also in the way the game is implemented.
Such as different programming languages.
etc, but also in the way the game is implemented such as different programming
languages.
The GGS should be OS independent and run on Windows, OSX and Linux.
The GGS can be run as a listen server on the players computer and host
games locally.
@ -2425,17 +2425,11 @@ The GGS is a game server.
\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
Another aspect was the desire to let a client to load up the source code
to the game it would like to play on the GGS.
This way every client could connect to the server and install the game
through a API without the need of installation through the server provider
or maintainer.
\end_layout
\begin_layout Section