changed purpose and delimitations
This commit is contained in:
parent
02c5079a06
commit
333635c95f
1 changed files with 108 additions and 134 deletions
242
report.lyx
242
report.lyx
|
@ -192,7 +192,7 @@ pagenumbering{roman}
|
||||||
|
|
||||||
|
|
||||||
\backslash
|
\backslash
|
||||||
setcounter{page}{5}
|
setcounter{page}{3}
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
\begin_layout Plain Layout
|
||||||
|
@ -361,134 +361,62 @@ key "Gartner:1999:FFD:311531.311532"
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsection
|
|
||||||
Generic
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
A generic game server has to be able to run different client-server network
|
A generic game server has to be able to run different client-server network
|
||||||
games regardless of the platform the clients are running on.
|
games regardless of the platform the clients are running on.
|
||||||
It should be able to run network games of different type, a very rough
|
It runs network games of different type.
|
||||||
separation would be in
|
A very rough separation of games is real time games and turn based games.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
The server behaves in a way similar to an application server, but is designed
|
||||||
|
to help running games.
|
||||||
|
An application server provides processing ability and time, therefore it
|
||||||
|
is different from a file- or print-server, which only serves resources
|
||||||
|
to the clients.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
The most common type of application servers are web servers, where you run
|
||||||
|
a web application within the server.
|
||||||
|
The application server provides an environment and interfaces to the outer
|
||||||
|
world, in which applications run.
|
||||||
|
Hooks and helpers are provided to use the resources of the server.
|
||||||
|
Some examples for web application servers are the
|
||||||
\emph on
|
\emph on
|
||||||
real time games
|
Glassfish
|
||||||
|
\emph default
|
||||||
|
server which allows running applications written in Java or the
|
||||||
|
\emph on
|
||||||
|
Google App Engine
|
||||||
\emph default
|
\emph default
|
||||||
and turn based games.
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Subsubsection
|
|
||||||
Application server targeted on games
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Standard
|
|
||||||
The server is something like a application server designed to help to run
|
|
||||||
games.
|
|
||||||
A application server is different from a file or print server, which only
|
|
||||||
serves resources to the clients, it serves processing ability and time.
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Standard
|
|
||||||
The most common type of application servers are webservers where you run
|
|
||||||
a web-application within the server.
|
|
||||||
The application-server handles all the network-/inter process-stuff and
|
|
||||||
offers hooks and helpers for your application to use the resources, some
|
|
||||||
examples for such web-application-servers are the Glassfish-Server which
|
|
||||||
allows you to run applications written in Java, or the Google App Engine
|
|
||||||
where you can run applications written in Python or some language which
|
where you can run applications written in Python or some language which
|
||||||
runs in the Java Virtual Machine.
|
runs in the
|
||||||
|
\emph on
|
||||||
|
Java Virtual Machine
|
||||||
|
\emph default
|
||||||
|
.
|
||||||
|
An example of an application server not powering web applications, but
|
||||||
|
instead regular business logic, is Oracle’s
|
||||||
|
\emph on
|
||||||
|
TUXEDO
|
||||||
|
\emph default
|
||||||
|
application server, which can be used to run applications written in COBOL,
|
||||||
|
C++ and others.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
But you can find specialized application servers within the industry where
|
A database server can also be seen as an application server.
|
||||||
one central server serves processing power for different independent robotic-cl
|
Scripts, for example SQL queries or JavaScript, are sent to the server,
|
||||||
ients.
|
which runs them and returns the evaluated data to the clients.
|
||||||
Or in Academia where one mainframe is used as a cerver for different clients
|
|
||||||
to run different applications which are doing havy calculations and return
|
|
||||||
the result to the clients.
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Standard
|
|
||||||
You could too think of a database server as a application server.
|
|
||||||
You send it different
|
|
||||||
\begin_inset Quotes eld
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
scripts
|
|
||||||
\begin_inset Quotes erd
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
, e.g.
|
|
||||||
bis SQL queries or JavaScript, the server runs them and returns the evaluated
|
|
||||||
data to the clients.
|
|
||||||
It is perhaps not the best example but just so you see how different applicatio
|
|
||||||
n servers can be.
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
One of the purposes of this thesis is to investigate how we can make a game
|
One of the purposes of this thesis is to investigate how we can make a game
|
||||||
server as generic, that is so that you are not limited to just one game,
|
server as generic as possible.
|
||||||
as possible.
|
Some important helpers are discussed, such as abstraction of the network
|
||||||
Some important helpers which are needed in network games and therefore
|
layer, data store and game specific features.
|
||||||
should be offered by a generic game server are for example the abstraction
|
|
||||||
of the network layer, a data store, and others, which will be discussed
|
|
||||||
more in detail later in the thesis.
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Subsubsection
|
|
||||||
Different types of games
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Standard
|
|
||||||
In real time games all players are playing at the same time simultanously
|
|
||||||
together.
|
|
||||||
Latency is a big problem here, a typical round trip time for such games
|
|
||||||
is one of 50 to 150 ms and everything above 200 ms is reported to be intolerabl
|
|
||||||
e
|
|
||||||
\begin_inset CommandInset citation
|
|
||||||
LatexCommand citet
|
|
||||||
key "Farber:2002:NGT:566500.566508"
|
|
||||||
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
.
|
|
||||||
Examples for such games are most of the first person shoters with multiplayer
|
|
||||||
ability like Counter Strike, Call Of Duty and
|
|
||||||
\emph on
|
|
||||||
MMORPG's
|
|
||||||
\emph default
|
|
||||||
(Massively multiplayer online role-playing game) like World Of Warcraft,
|
|
||||||
Starcraft, Ultima Online, etc.
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Standard
|
|
||||||
In turn based games each player has to wait for her turn.
|
|
||||||
Latency is not a problem because even if a round trip takes a bigger amount
|
|
||||||
of time, the gameplay does not require fast interactions between the players
|
|
||||||
and it will not be noticed.
|
|
||||||
Examples are board and card games like chess, poker or Carcassonne played
|
|
||||||
online, as well as multiplayer games like
|
|
||||||
\begin_inset Quotes erd
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
Hattrick - The online football manager game
|
|
||||||
\begin_inset Quotes erd
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
or the
|
|
||||||
\begin_inset Quotes eld
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
Wheel of Fortune
|
|
||||||
\begin_inset Quotes erd
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
.
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Standard
|
|
||||||
Both game types have varying difficulties and needs when it comes to implementin
|
|
||||||
g them, a Generic Game Server should address all of them and help the developer
|
|
||||||
to acomplish his goal.
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Section
|
\begin_layout Section
|
||||||
|
@ -531,6 +459,19 @@ How easy it is to send messages to the virtual machine of the GDL from GGS
|
||||||
How easy it is to send messages from the GDL VM to GGS
|
How easy it is to send messages from the GDL VM to GGS
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Itemize
|
||||||
|
\begin_inset Note Note
|
||||||
|
status open
|
||||||
|
|
||||||
|
\begin_layout Plain Layout
|
||||||
|
Add more like threads, events, etc.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Internally, the GDL VM needs to interface with GGS to make use of the helpers
|
Internally, the GDL VM needs to interface with GGS to make use of the helpers
|
||||||
and tools that GGS provides.
|
and tools that GGS provides.
|
||||||
|
@ -580,27 +521,60 @@ The UDP protocol will not be implemented, only TCP, the main reason behind
|
||||||
not be supported by the GGS prototype.
|
not be supported by the GGS prototype.
|
||||||
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.
|
have huge game worlds.
|
||||||
Due to the limited capability of threading in many GDL VM:s, GGS will not
|
|
||||||
support
|
|
||||||
\emph on
|
|
||||||
massively multiplayer online role playing games
|
|
||||||
\emph default
|
|
||||||
(MMORPG) games such as
|
|
||||||
\emph on
|
|
||||||
World of Warcraft
|
|
||||||
\emph default
|
|
||||||
or
|
|
||||||
\emph on
|
|
||||||
EVE Online
|
|
||||||
\emph default
|
|
||||||
as it is not possible to implement and test something that complex within
|
|
||||||
the projects timetable.
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
The GGS is only a small prototype and tests will be performed on simple
|
In real time games all players are playing together at the same time.
|
||||||
games like pong or chess, thus there are no need to implement more advanced
|
Latency is a huge problem in real time games, a typical round trip time
|
||||||
features in the system.
|
for such games is one of 50 to 150 ms and everything above 200 ms is reported
|
||||||
|
to be intolerable
|
||||||
|
\begin_inset CommandInset citation
|
||||||
|
LatexCommand citet
|
||||||
|
key "Farber:2002:NGT:566500.566508"
|
||||||
|
|
||||||
|
\end_inset
|
||||||
|
|
||||||
|
.
|
||||||
|
Latency sensitive games include most of the first person shooters with
|
||||||
|
multiplayer ability, for example
|
||||||
|
\emph on
|
||||||
|
Counter Strike
|
||||||
|
\emph default
|
||||||
|
or massively multiplayer online role playing games (MMORPG:s), for example
|
||||||
|
|
||||||
|
\emph on
|
||||||
|
World of Warcraft
|
||||||
|
\emph default
|
||||||
|
.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
In turn based games each player has to wait for her turn.
|
||||||
|
Latency is not a problem since the gameplay does not require fast interactions
|
||||||
|
between the players, long round trip times will not be noticed.
|
||||||
|
Examples of turn based games include board and card games, as well as multiplay
|
||||||
|
er games like
|
||||||
|
\emph on
|
||||||
|
Jeopardy
|
||||||
|
\emph default
|
||||||
|
.
|
||||||
|
Both game types have varying difficulties and needs when it comes to implementi
|
||||||
|
ng them, a Generic Game Server should address all of them and help the developer
|
||||||
|
to accomplish his goal.
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
Due to the limited capability of threading in many GDL VM:s, the GGS prototype
|
||||||
|
will not support MMORPG:s as it is not possible to implement and test something
|
||||||
|
that complex within the projects timetable.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
The implementation of the GGS described in this thesis is only a small prototype
|
||||||
|
and tests will be performed on simple games like pong or chess, thus there
|
||||||
|
are no need to implement more advanced features in the system.
|
||||||
It is important to note that these limitations only apply for the prototype
|
It is important to note that these limitations only apply for the prototype
|
||||||
of the project, and that further developments to GGS could be to implement
|
of the project, and that further developments to GGS could be to implement
|
||||||
these features.
|
these features.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue