SFTtech / SFTtech/openage

Document .dat specification

Open
#1,286 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: assets documentation good first issue nice new thing ☺
Dominant language
Python
Stars
14.4k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

Required skills: Reading code

Difficulty: Easy

The Age of Empires .dat format is AoE's messy way of storing game data and unit stats. There is currently no official specification made available which makes writing and testing parsers very difficult. The format also changes with every game or expansion (and even some DE2 updates). It is not a great situation overall.

We should therefore create an unofficial specification of the several .dat file version that are floating around with added descriptions and comments if available. Our converter code already includes descriptions for some of the entries. More information about the differences between the versions can be found in the genieutils repository.

The specification document could be created as a table that looks roughly like this:

Entry name Data type Description
hp int16 Hit points
line_of_sight float Line of sight

Extra: If we want to go further, we could also add a nice HTML doc generated from the markdown. The agescx format doc is a good example for how this could look.

Further Reading

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the converter code and the linked openage datfile reader, then compare version differences in the genieutils repository. The specification should document the relevant .dat versions in tables with entry names, data types, and descriptions; an HTML document is optional.

Written by the indexing model from the issue text.

Assessment

Domain
documentation, game-dev
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.