Merge branch 'master' of github.com:jeena/GGS-report
This commit is contained in:
commit
3742e1d5b5
2 changed files with 26 additions and 8002 deletions
57
report.lyx
57
report.lyx
|
@ -3219,8 +3219,7 @@ Erlang is not a very popular language for game development, therefore the
|
|||
interface to different virtual machines which would run the game code.
|
||||
This way a game developer can write the game in his favorite language while
|
||||
the server part still is written in Erlang and can benefit from all the
|
||||
advantages of the Erlang language.
|
||||
In this section, a few potential languages are given.
|
||||
advantages the Erlang language provides.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Subsection
|
||||
|
@ -3229,20 +3228,21 @@ JavaScript
|
|||
|
||||
\begin_layout Standard
|
||||
JavaScript is a prime GDL candidate for the GGS.
|
||||
The language is very flexible, a general knowledge of the language is present
|
||||
in the computer science community, furthermore there are virtual machines
|
||||
readily available for JavaScript.
|
||||
The language is very flexible, and a large base of developers within the
|
||||
web community is using this language on the client side within the browser
|
||||
and therefore are used to it.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
JavaScript has gained a lot of popularity lately, it is used in large projects
|
||||
such as
|
||||
JavaScript, as a interpreted script language, has gained a lot of popularity
|
||||
in other fields of computer science lately.
|
||||
It is used as a server side language in large projects such as
|
||||
\emph on
|
||||
Riak
|
||||
\emph default
|
||||
|
||||
\begin_inset Foot
|
||||
status open
|
||||
status collapsed
|
||||
|
||||
\begin_layout Plain Layout
|
||||
\begin_inset Flex URL
|
||||
|
@ -3260,7 +3260,7 @@ http://wiki.basho.com/An-Introduction-to-Riak.html
|
|||
|
||||
\end_inset
|
||||
|
||||
,
|
||||
or
|
||||
\emph on
|
||||
CouchDB
|
||||
\emph default
|
||||
|
@ -3315,22 +3315,17 @@ https://github.com/languages/
|
|||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
Since the GGS is intended to be connected to several different GDL VMs the
|
||||
choice for the first language implemented for the GGS prototype seems not
|
||||
only to depend on the technical features of the GDL chosen, in this case
|
||||
JavaScript.
|
||||
A different, albeit still important non technical feature of JavaScript
|
||||
is the familiarity with the language of the members of the GGS development
|
||||
team.
|
||||
Apart from that there are virtual machines with bindings to Erlang readily
|
||||
available for JavaScript which are provided by organisations like Mozilla
|
||||
and companies like Google.
|
||||
In the end this choice was more or less arbitrary since the GGS is intended
|
||||
to be able to run several different GDL VMs, and one had to be the first.
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
The popularity of JavaScript in the programming community, in combination
|
||||
with the availability of several different JavaScript virtual machines
|
||||
was an important influence in choosing JavaScript as the main control language
|
||||
for our GGS prototype.
|
||||
\begin_inset ERT
|
||||
status collapsed
|
||||
status open
|
||||
|
||||
\begin_layout Plain Layout
|
||||
|
||||
|
@ -5019,7 +5014,7 @@ The VM itself makes it possible for the game developer to program in the
|
|||
Since the game VM keeps track of the correct table, the game developer
|
||||
does not need to take this into consideration when programming a game.
|
||||
If a method within the game sends data to a player, the data is delivered
|
||||
to the player in the correct running game.
|
||||
to the player in the correct game.
|
||||
The same game token is used to store the game state in the database.
|
||||
Therefore, no game states can be mixed up.
|
||||
\end_layout
|
||||
|
@ -5038,7 +5033,7 @@ reference "sec:Communication-with-the-GDL-VM"
|
|||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
The code which is run in the VM is uploaded to the GGS prior to each game.
|
||||
The code which is run in the VM is uploaded to the GGS before each game.
|
||||
Allowing the clients to upload code allows clients to run any game.
|
||||
\end_layout
|
||||
|
||||
|
@ -5062,7 +5057,7 @@ Game data from all games on the GGS is stored in the database backend of
|
|||
In the GGS prototype the database module is using a database management
|
||||
system called Mnesia.
|
||||
Mnesia ships with the standard Erlang distribution and is a key-value store
|
||||
type database.
|
||||
type of database.
|
||||
Mnesia is designed to handle the stress of telecoms systems, therefore
|
||||
it has some features specifically tailored for telecoms which are not commonly
|
||||
found in other databases.
|
||||
|
@ -5093,9 +5088,9 @@ key "667766"
|
|||
|
||||
\begin_layout Standard
|
||||
The features of Mnesia originally intended for telecoms prove very useful
|
||||
for the purposes of the GGS as well.
|
||||
The fault tolerance and speed of Mnesia are very valuable tools, the fast
|
||||
key/value lookups permit many lookups per second from the database.
|
||||
for the GGS as well.
|
||||
The fault tolerance and speed of Mnesia are valuable tools, the fast key/value
|
||||
lookups permit many lookups per second from the database.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
|
@ -5156,9 +5151,9 @@ Localstorage
|
|||
\noun default
|
||||
.
|
||||
To store a value within the database, not only is the table token and the
|
||||
name of the namespace required, but a unique key so that the value can
|
||||
name of the namespace required, but an unique key so that the value can
|
||||
be successfully retrieved or modified later.
|
||||
The key is fully decidable by the game developer.
|
||||
The key is decidable by the game developer.
|
||||
|
||||
\end_layout
|
||||
|
||||
|
@ -5167,8 +5162,8 @@ The interface of the database module is an implementation of the upcoming
|
|||
W3C Web Storage specification.
|
||||
Web Storage is intended for use in web browsers, providing a persistent
|
||||
storage on the local machine for web applications.
|
||||
The storage can be used to communicate in between browser windows (which
|
||||
is difficult when using cookies), and to store larger chunks of data
|
||||
The storage can be used to communicate among browser windows (which is
|
||||
difficult when using cookies), and to store larger chunks of data
|
||||
\begin_inset CommandInset citation
|
||||
LatexCommand citet
|
||||
key "webstorage:website"
|
||||
|
|
7971
report.lyx.orig
7971
report.lyx.orig
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue