Minor fixes to documentation.
authorsaiam
Tue, 09 Dec 2008 02:15:00 +0000
changeset 347 94fbc2bd6641
parent 346 366557e98104
child 348 3ebcccc7ee44
Minor fixes to documentation.
doc/kishna.tex
--- a/doc/kishna.tex	Tue Dec 09 02:04:57 2008 +0000
+++ b/doc/kishna.tex	Tue Dec 09 02:15:00 2008 +0000
@@ -96,55 +96,77 @@
 \end{center}
 
 \subsection{Running the game}
-To simple start a local singleplayer game, just run `kg` without any arguments.
+To simple start a local singleplayer game, just run \verb|kg| without any arguments.
 
-To start a network server on the default port, run `kg --server` (`kg -s`). You may optionally also specify the
-`--graphics` argument to have the server passively draw the graphics.
+To start a network server on the default port, run \verb|kg --server|
+(\verb|kg -s|). You may optionally also specify the \verb|--graphics|
+argument to have the server passively draw the graphics.
 
-To start a network client, connecting to a server running on the default port, run
-`kg --client=ADDRESS` (`kg -c ADDRESS`).
+To start a network client, connecting to a server running on the
+default port, run \verb|kg --client=ADDRESS| (\verb|kg -c <address>|).
 
-To use a non-default port, simply specify `--port=PORT` (`-p <port>`) on both client and server.
+To use a non-default port, simply specify \verb|--port=PORT|
+(\verb|-p <port>|) on both client and server.
 
 \subsection{Configuration}
-All global game constants are defined in `src/Config.hh`, and may be experimented with. Weapon parameters are defined
-in `src/Weapons.cc`.
+All global game constants are defined in \textit{src/Config.hh}, and may be
+experimented with. Weapon parameters are defined in \textit{src/Weapons.cc}.
 
 \section{Program architecture}
-Execution starts in Application, which parses the command-line arguments, and then invokes methods in Engine. Engine
-creates the GameState, and then Graphics, SinglePlayer, NetworkServer or NetworkClient objects.
-
-GameState contains PhysicsWorld, which inherits from Terrain and contains a list of PhysicsObjects.
+Execution starts in Application, which parses the command-line
+arguments, and then invokes methods in Engine. Engine creates the
+GameState, and then Graphics, SinglePlayer, NetworkServer or
+NetworkClient objects.
 
-GameState then contains Player objects and Projectile objects, both of which inherit from PhysicsObject.
+GameState contains PhysicsWorld, which inherits from Terrain and
+contains a list of PhysicsObjects.
 
-Player objects have a list of Weapon objects, and can use these to create Projectiles. Every Player also has a Rope
-object, which is in itself a separate PhysicsObject, and is either folded away, being thrown, or attached to the
-terrain.
+GameState then contains Player objects and Projectile objects, both of
+which inherit from PhysicsObject.
+
+Player objects have a list of Weapon objects, and can use these to
+create Projectiles. Every Player also has a Rope object, which is in
+itself a separate PhysicsObject, and is either folded away, being
+thrown, or attached to the terrain.
 
 The network code is a bit more complicated, with several layers.
 
-NetworkAddress and NetworkSocket are ClanLib's Socket/IPAddress types. NetworkPackets provide a mechanism to read/write values from/to a byte buffer, and NetworkBuffer is used for buffering socket I/O.
-
-NetworkUDP is an UDP socket. NetworkTCPServer is a listen() socket, which spawns NetworkTCPTransports when clients connect. NetworkTCPClient is itself a NetworkTCPTransport with a connect()'d socket.
-
-NetworkSession can have a NetworkTCPServer socket, and both client and server NetworkUDP sockets. Connected clients are
-represented as NetworkNodes.
+NetworkAddress and NetworkSocket are ClanLib's Socket/IPAddress
+types. NetworkPackets provide a mechanism to read/write values from/to
+a byte buffer, and NetworkBuffer is used for buffering socket I/O.
 
-NetworkObjectControllers can be attached to a NetworkSession on a specific NetworkChannelID, and they then manage
-instances of NetworkObjects, which have NetworkObjectIDs that can be sent across the network. NetworkObjects can be
-used to send messages with a specific NetworkMessageID.
-
-NetworkServer then has a NetworkSession and NetworkObject\_ServerController, and then creates NetworkServerPlayer and
-NetworkServerProjectile objects (that are NetworkObject\_Server's).
+NetworkUDP is an UDP socket. NetworkTCPServer is a listen() socket,
+which spawns NetworkTCPTransports when clients
+connect. NetworkTCPClient is itself a NetworkTCPTransport with a
+connect()'d socket.
 
-NetworkClient then has a NetworkSession and a specialized NetworkClientController (NetworkObject\_ClientController) that
-creates NetworkClientLocalPlayer/NetworkClientRemotePlayer/NetworkClientProjectile objects when they are received from
-the server.
+NetworkSession can have a NetworkTCPServer socket, and both client and
+server NetworkUDP sockets. Connected clients are represented as
+NetworkNodes.
 
-Graphics has an Input object, which contains InputHandler objects for various classes of input, such as PlayerInput (which affects the GameState's LocalPlayer), and GuiInput (which just modifies what the GUI looks like on the client side).
+NetworkObjectControllers can be attached to a NetworkSession on a
+specific NetworkChannelID, and they then manage instances of
+NetworkObjects, which have NetworkObjectIDs that can be sent across
+the network. NetworkObjects can be used to send messages with a
+specific NetworkMessageID.
 
-TODO: Replace the above with some nice diagram, and make the text more brief
+NetworkServer then has a NetworkSession and
+NetworkObject\_ServerController, and then creates NetworkServerPlayer
+and NetworkServerProjectile objects (that are
+NetworkObject\_Server's).
+
+NetworkClient then has a NetworkSession and a specialized
+NetworkClientController (NetworkObject\_ClientController) that creates
+NetworkClientLocalPlayer/NetworkClientRemotePlayer/NetworkClientProjectile
+objects when they are received from the server.
+
+Graphics has an Input object, which contains InputHandler objects for
+various classes of input, such as PlayerInput (which affects the
+GameState's LocalPlayer), and GuiInput (which just modifies what the
+GUI looks like on the client side).
+
+TODO: Replace the above with some nice diagram, and make the text more
+brief
 
 \section{Data structures and algorithms}