Ember
1 Introduction
This is the Ember client for the Worldforge project.
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.
2 Quickstart
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.
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 “create”. 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.
2.1 Moving around in the world
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 “GUI mode”, in which mouse movements will
move the cursor instead of the camera, and you can interact with
the gui.
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.
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.
2.1.1 Talking to people
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 “talk bubble” 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.
3 Developing
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.
• It uses Ogre (http://www.ogre3d.org) to present the world in
full 3d. Ogre is very much hardwired into the core of Ember.
• 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.
• SigC++ is used for signals and events. This is also very much
hardwired into Ember.
Other notable libraries used:
• 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.
• 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.
See the doc directory and
http://www.worldforge.org/dev/eng/clients/ember/ for more
information.
4 Third party libraries
This project uses the Ogre3d library licensed under the LGPL. It
can be obtained from http://www.ogre3d.org
This project uses the CEGUI library licensed under the LGPL. It
can be obtained from http://www.cegui.org.uk
This project uses the OpenAL library licensed under the LGPL. It
can be obtained from http://www.openal.org/
This project uses libraries from the Worldforge project, licensed
under the GPL. These can be obtained from
http://www.worldforge.org/