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