~vcs-imports/ember/trunk

819 by erik
2005-01-22 Erik Hjortsberg <erik@katastrof.nu>
1
Ember
2
3
 Introduction
4
5
This is the Ember client for the Worldforge project.
6
7
Ember is a fully functional 3d client for both Cyphesis 
8
and Indri servers. It's goal is to be used with all 
9
worlds created withing the Worldforge project.
10
11
 Quickstart
12
13
In the upper part of the window is the console. It has 
14
two modes, full or small. In small mode, which is the 
15
default, only the input strip is shown. I full mode the 
16
console occupies half of the screen. Use F12 to switch 
1244 by erik
2005-09-26 Erik Hjortsberg <erik@katastrof.nu>
17
console modes. The console is used for both talking in 
18
the world and executing commands. If you've used IRC 
19
before you'll find it quite similiar. All commands are 
20
prefixed by "/". Use the command "/list_commands" to get a 
21
list of all available commands. If you just enter text 
22
normally in the console, your character will say what 
23
you've entered in the world.
24
25
Use the server browser to connect to a server. Once 
26
connected, you'll have to create a new account. Enter 
27
an account name and a password and press "create". After 
28
you're logged in with an account, you'll have to create 
29
an avatar in the world. An account can have many 
30
avatars. Choose a name, a type, a sex and optionally a 
31
description.
819 by erik
2005-01-22 Erik Hjortsberg <erik@katastrof.nu>
32
33
 Moving around in the world
34
35
Once in the world you'll be presented to a third person 
1244 by erik
2005-09-26 Erik Hjortsberg <erik@katastrof.nu>
36
view of your avatar. The default mode is GUI mode. In 
37
GUI mode you can interact with the different GUI 
38
widgets and moving your mouse will move the cursor. 
819 by erik
2005-01-22 Erik Hjortsberg <erik@katastrof.nu>
39
Press the right mouse button to switch to movement 
40
mode. When in movement mode, the mouse is used to pan 
41
around the world. The avatar will change direction to 
42
face the camera. Use the keys w,a,s,d to move around 
43
the world. Pressing shift will make the avatar run.
44
45
When in gui mode, the gui behaves pretty much like a 
46
standard gui. Double click on window headers to make 
1244 by erik
2005-09-26 Erik Hjortsberg <erik@katastrof.nu>
47
them roll up and down. 
819 by erik
2005-01-22 Erik Hjortsberg <erik@katastrof.nu>
48
49
Click on an entity in the world (a tree, a NPC) to show 
50
the mouse picker menu. Most options here are pretty 
1244 by erik
2005-09-26 Erik Hjortsberg <erik@katastrof.nu>
51
self explanatory. If you have something wielded, like 
52
an axe or a shovel, you also get an option to use the 
53
wielded object with the picked entity.
819 by erik
2005-01-22 Erik Hjortsberg <erik@katastrof.nu>
54
55
 Talking to people
56
57
Use the console to talk to people in the world, just 
58
enter some text and press enter. (Note that all console 
59
commands are prefixed by "/", such as "/quit".) When 
60
someone else in the world says something, it will be 
61
shown through the use of a "talk bubble" to the left of 
62
the person. Some NPC have a series of suggested 
63
responses. These will be shown to the left of the NPC. 
64
You can let your avatar say one of these by clicking on them.
65
66
 Developing
67
68
The main design philosophy behind Ember is to as much 
69
as possible use 3d party libraries. We strive to remove 
70
as much uneccessary code from Ember as possible, if 
71
there's equivalent functionality to be found in an 
72
existing library. This prevents us from a 
73
Not-Invented-Here mindset and makes it easier to kill 
74
our darlings.
75
76
* It uses Ogre (http://www.ogre3d.org) to present the 
77
  world in full 3d. Ogre is very much hardwired into 
78
  the core of Ember. 
79
80
* SDL is used for input handling. This is not that hard 
81
  wired as Ogre, but since the goal of SDL is to 
82
  provide a platform agnostic library there's perhaps 
83
  no big reason to provide support for a different 
84
  input library. We will hade to do some research into 
85
  DirectInput though. 
86
87
* SigC++ is used for signals and events. This is also 
88
  very much hardwired into Ember.
89
90
Other notable libraries used: 
91
92
* CEGUI (http://www.cegui.org.uk) is used for the gui. 
93
  This can be removed from Ember, and another library 
94
  can be used. Note however that all current widgets 
95
  are made for CEGUI only, ie. we don't try to provide 
96
  a generic widget abstraction. It seems unlikely that 
97
  such a construct would work. For reference, see any 
98
  discussion on Java's AWT, Swing and SWT. 
99
100
* OpenAL (http://www.openal.org/) is used for the 
101
  sound. This should be loosely decoupled from Ember, 
102
  but much like SDL OpenAL is geared towards providing 
103
  platform agnostic sound support. Then again, FMOD 
104
  might be interesting. 
105
106
See the doc directory and 
107
http://www.worldforge.org/dev/eng/clients/ember/ for 
108
more information.