#ii #age #extract #empire #utility #edition #parser

aoe-djin

Djin is a utility crate to extract Age of Empire II Definitive edition game data

6 releases

0.3.2 Jul 25, 2021
0.3.1 Jul 25, 2021
0.2.1 Jul 25, 2021
0.1.0 Jul 24, 2021

#8 in #edition

Custom license

4MB
1K SLoC

Djin

CI GitHub tag (latest by date) Conventional Commits License

⚠️ Work in progress

Djin is a work in progress replacement for genie-rs.

It currently support Age of Empire II Definitive Edition only but we plan to support other version of the game when the main features will be stabilised.

The main difference with genie-rs is the fact that we use a fork of the protocol crate handle game files serialization and deserialization. This allow us to write almost zero parsing logic.

Age of Empires II © Microsoft Corporation. djin was created under Microsoft's "Game Content Usage Rules" using assets from Age of Empires II, and it is not endorsed by or affiliated with Microsoft.

Example

You can run this example with cargo run --example datfile :

fn main() {
    let datfile = DatFile::from_file("tests/game_assets/empires2_x2_p1.dat").expect("Error reading dat file");
    
    datfile.civilizations.civilizations.iter()
        .for_each(|civ| println!("{}", civ.name))
}

Dependencies

~5–6.5MB
~129K SLoC