Skip to content
This repository has been archived by the owner on Dec 3, 2023. It is now read-only.

Latest commit

 

History

History
85 lines (62 loc) · 3.21 KB

README.md

File metadata and controls

85 lines (62 loc) · 3.21 KB

DEPRECATED

This code has been moved to the Worldforge repository.

Eris, the WorldForge client entity library

Join us on Gitter! Appveyor build status Travis build Status Github build status

Eris is a client library for the WorldForge system. It's meant to be used by any client which wishes to easily interact with a Worldforge server.

It handles the client-side implementation of the meta-server protocol, and querying game servers; out-of-game (OOG) operations (via the Lobby and Rooms), and most importantly, in-game (IG) operations such as entity creation, movement and attribute updates.

Installation

If you intend to build this as a prerequisite for the Ember client or the Cyphesis server we strongly suggest that you use the Hammer tool to compile it. This is script provided by the Worldforge project which will download and install all of the required libraries and components used by Worldforge.

Alternatively you can use Conan to install all dependencies.

conan remote add worldforge https://artifactory.ogenvik.org/artifactory/api/conan/conan
conan install tools/conan --build missing
cmake --preset conan-release
cmake --build --preset conan-release

Otherwise the library can most easily be built through the following commands.

mkdir build && cd build
cmake ..
make -j all install

Tests

The test suite can be built and run using the check target. For example:

make check

or

cmake --build --preset conan-release --target check

API documentation

If Doxygen is available API documentation can be generated using the dox target. For example:

make dox

or

cmake --build --preset conan-release --target dox

Usage

Eris provides a generic 'Entity' class, which you are free to sub-class and provide to the system (by registering a factory); thus you are free to create different classes to handle characters, walls, vehicles, etc as your client dictates. An alternative approach is to create peer classes, and connect them to Eris via callbacks. Eris makes extensive use of libSigC++, which must be correctly installed and functioning on your system.

How to help

If you're interested in helping out with development you should check out these resources: