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.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).
 
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 
See the source files in test/ for examples.
- 
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