#LyX 1.5.6 created this file. For more info see http://www.lyx.org/
\lyxformat 276
\begin_document
\begin_header
\textclass docbook
\language swedish
\inputencoding auto
\font_roman default
\font_sans default
\font_typewriter default
\font_default_family default
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
\paperfontsize default
\spacing single
\papersize default
\use_geometry false
\use_amsmath 1
\use_esint 0
\cite_engine basic
\use_bibtopic false
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\defskip medskip
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\author "" 
\end_header

\begin_body

\begin_layout Title
Ember
\end_layout

\begin_layout Section
Introduction
\end_layout

\begin_layout Standard
This is the Ember client for the Worldforge project.
\end_layout

\begin_layout Standard
Ember is a fully functional 3d client for both Cyphesis and Indri servers.
 It's goal is to be used with all worlds created withing the Worldforge
 project.
\end_layout

\begin_layout Section
Quickstart
\end_layout

\begin_layout Standard
The first thing you'll see when you log in is the server browser, which
 shows you all of the available servers.
 If the list is empty you might be behind a firewall which blocks the needed
 traffic.
\end_layout

\begin_layout Standard
Use the server browser to connect to a server.
 Once connected, you'll have to create a new account.
 Enter an account name and a password and press 
\begin_inset Quotes eld
\end_inset

create
\begin_inset Quotes erd
\end_inset

.
 After you're logged in with an account, you'll have to create an avatar
 in the world.
 An account can have many avatars.
 Choose a name, a type, a sex and optionally a description.
\end_layout

\begin_layout Subsection
Moving around in the world
\end_layout

\begin_layout Standard
Once in the world you'll be presented to a third person view of your avatar.
 By moving the mouse you can pan around, and the keys wasd will make your
 character move.
 If you click the right mouse button you'll switch to 
\begin_inset Quotes eld
\end_inset

GUI mode
\begin_inset Quotes erd
\end_inset

, in which mouse movements will move the cursor instead of the camera, and
 you can interact with the gui.
\end_layout

\begin_layout Standard
When in gui mode, the gui behaves pretty much like a standard gui.
 Double click on window headers to make them roll up and down.
 
\end_layout

\begin_layout Standard
Click on an entity in the world (a tree, a NPC) to show the mouse picker
 menu.
 Most options here are pretty self explanatory.
 If you have something wielded, like an axe or a shovel, you also get an
 option to use the wielded object with the picked entity.
\end_layout

\begin_layout Subsubsection
Talking to people
\end_layout

\begin_layout Standard
Down to the left you have a widget which allows you to interact with the
 world.
 If you want to say something, just enter it here and press enter.
 When someone else in the world says something, it will be shown through
 the use of a 
\begin_inset Quotes eld
\end_inset

talk bubble
\begin_inset Quotes erd
\end_inset

 to the left of the person.
 Some NPC have a series of suggested responses.
 These will be shown to the left of the NPC.
 You can let your avatar say one of these by clicking on them.
\end_layout

\begin_layout Section
Developing
\end_layout

\begin_layout Standard
The main design philosophy behind Ember is to as much as possible use 3d
 party libraries.
 We strive to remove as much uneccessary code from Ember as possible, if
 there's equivalent functionality to be found in an existing library.
 This prevents us from a Not-Invented-Here mindset and makes it easier to
 kill our darlings.
\end_layout

\begin_layout Itemize
It uses Ogre (http://www.ogre3d.org) to present the world in full 3d.
 Ogre is very much hardwired into the core of Ember.
 
\end_layout

\begin_layout Itemize
SDL is used for input handling.
 This is not that hard wired as Ogre, but since the goal of SDL is to provide
 a platform agnostic library there's perhaps no big reason to provide support
 for a different input library.
 We will hade to do some research into DirectInput though.
 
\end_layout

\begin_layout Itemize
SigC++ is used for signals and events.
 This is also very much hardwired into Ember.
\end_layout

\begin_layout Standard
Other notable libraries used: 
\end_layout

\begin_layout Itemize
CEGUI (http://www.cegui.org.uk) is used for the gui.
 This can be removed from Ember, and another library can be used.
 Note however that all current widgets are made for CEGUI only, ie.
 we don't try to provide a generic widget abstraction.
 It seems unlikely that such a construct would work.
 For reference, see any discussion on Java's AWT, Swing and SWT.
 
\end_layout

\begin_layout Itemize
OpenAL (http://www.openal.org/) is used for the sound.
 This should be loosely decoupled from Ember, but much like SDL OpenAL is
 geared towards providing platform agnostic sound support.
 Then again, FMOD might be interesting.
 
\end_layout

\begin_layout Standard
See the doc directory and http://www.worldforge.org/dev/eng/clients/ember/
 for more information.
\end_layout

\begin_layout Section
Third party libraries
\end_layout

\begin_layout Standard
This project uses the Ogre3d library licensed under the LGPL.
 It can be obtained from http://www.ogre3d.org
\end_layout

\begin_layout Standard
This project uses the CEGUI library licensed under the LGPL.
 It can be obtained from http://www.cegui.org.uk
\end_layout

\begin_layout Standard
This project uses the OpenAL library licensed under the LGPL.
 It can be obtained from http://www.openal.org/
\end_layout

\begin_layout Standard
This project uses libraries from the Worldforge project, licensed under
 the GPL.
 These can be obtained from http://www.worldforge.org/
\end_layout

\end_body
\end_document
