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.
-
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.)
- 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.
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/
-
A C11 compiler or, at least, a C99 compiler that supports anonymous unions and
_Static_assert
(clang >= 3.1
is 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).
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
configure
script:./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
See the source files in test/
for examples.
-
Update version in
configure.ac
-
Update exported symbols in
src/libdogma.sym
-
Update
version-info
inMakefile.am
(doc) -
make distclean && ./bootstrap && ./configure && make check
-
Update CHANGELOG
-
Commit, tag, push
-
make dist