libdogma
libdogma copied to clipboard
An ad hoc fitting engine for the EVE Online multiplayer game.
libdogma
libdogma is an ad hoc fitting engine for the EVE Online multiplayer game.
Reverse-engineered to be a bottom-up implementation of the real dogma engine (probably), with slight alterations to make it suitable for use in fitting simulation tools.
See the Github releases for ready-to-build tarballs.
Features
-
Excellent accuracy (thanks to using the same expressions as the EVE client)
-
Fast and low memory footprint (thanks to Judy arrays)
-
Stable, heavily tested code base
-
Customizable skill levels
-
Customizable chance-based effects (booster side effects)
-
Computes attributes of characters, skills, implants, ships, drones, modules and charges
-
Supports projected effects (with fine-grained per module target selection)
-
Supports fleet/gang bonuses
-
Supports effect beacons (wormhole feature effects, etc.)
Missing features / Known issues
- Leadership skills are not checked when applying gang bonuses. You could have a squad with 50 people in it, or a fleet with 15 wings of 42 squads each, bonuses will be applied anyway. (Same goes if you have a character with no skills as fleet commander.) Whether this is a bug or a feature, you decide.
Credits
libdogma is released under the GNU Affero General Public License,
version 3 (or later). You can see the full license text in the
COPYING file.
For the full list of libdogma contributors, see the CREDITS file.
libdogma uses Judy, a library released under the GNU Lesser General Public License, version 2.1 (or later). http://judy.sourceforge.net/
Contact
Compiling libdogma
Dependencies
-
A C11 compiler or, at least, a C99 compiler that supports anonymous unions and
_Static_assert(clang >= 3.1is good); -
Judy arrays;
-
A JSON cache dump of the game client (only if you are building from git, you can get one with Phobos);
-
The GNU Autotools suite (only if you are building from git).
Compiling recipe
If you are compiling from a tarball, you can directly jump to the
./configure step.
-
Generate the static data from the JSON dump:
./tools/bootstrap_from_json <path_to_JSON_dump> -
If you are bulding from git, generate the
configurescript:./bootstrap -
Generate the
Makefile(you can omit the debug flags or theCC=if you want to usegcc):CC=clang ./configure --enable-debug -
Compile the library:
make -
Optionally, run the test suite:
make check -
Optionally, install the package:
make install
Examples
See the source files in test/ for examples.
Release checklist
-
Update version in
configure.ac -
Update exported symbols in
src/libdogma.sym -
Update
version-infoinMakefile.am(doc) -
make distclean && ./bootstrap && ./configure && make check -
Update CHANGELOG
-
Commit, tag, push
-
make dist