Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 3107626acabd5cc55aa015ebc3676a72 > files > 5

eris-1.3.19-3.fc15.i686.rpm

This file describes the significant changes in Eris 1.4 from 1.2

The major goals of the 1.4 release are Atlas-C++ 0.6 support, renaming various
classes so their names better match the equivalent Atlas objects, re-designing
poorly-performing areas of the code, and addressing some long standing bugs.

At present, only unstable development releases of the 1.4 series, labelled
1.3.x, are available. Their API is still subject to change, and the code
contains bugs.  Feedback on any issues, or suggestions for API improvements
would be much appreciated.

The following classes have been renamed, and their behaviour evolved:

- Player has now become Account, and has slightly more control over Account
  related tasks. Crucially, the Lobby is now strictly optional, and need only
  be created if a client wishes to support out-of-game chat.
  
- World has been renamed to View. This is designed to reflect the fact it is
  merely a subset of the total server world that is currently visible to the
  client. Also, some View functions were moved to Avatar which is now the
  primary in-game object.
  
Related to these changes, the ground-work has been done to support multiple
Connections, Avatars and Views. The possible configurations for this have not
yet been fully explored, but obvious cases are multiple Avatars sharing a
single View and Connection, and a single Avatar bound to multiple Views (i.e
aggregating a distributed world). As a result, all of the static Instance()
methods are gone.

Motion prediction support has been added: by called View::update() once per
frame, Eris will calculate a predicted position for each Entity with a
velocity. The prediction is currently simplistic, but can be improved based on
feedback. Note that motion-predicted entities do NOT emit the 'Moved' signal
every time their predicted position changes, since this would be wasteful.
Instead they emit a 'Moving' signal when they start and end motion-prediction;
clients should maintain their own list of moving entities and synchronise the
predicted position with their display system once per frame.

The Entity class has been re-factored, with more consistent support for
sub-classing.  Also, actions, sounds and imaginary operations are now handled
directly by Eris. This enables to client to respond more expressively to server
events, for example triggering single-shot animations in response to actions.

The meta-server code has been overhauled and now works reliably. It should not
hang or block regardless of what remote servers do. Similarly, disconnecting
and reconnecting to a server should be much improved. Bug reports about
remaining problems in these areas, especially on different platforms, would be
appreciated.

Internally, the Dispatcher system has been replaced with fixed-function Router
classes. This greatly simplifies the code, and together with Atlas-C++ 0.6
should alleviate the pervasive and redundant data-copying which made previous
versions perform poorly.

Al Riddoch has added support for SigC++ 2.0 (SigC++ 1.2 is still supported), to
enable compatibility with other projects which uses the newer version, notably
Gtkmm 2.4