No description
Find a file
vyordan 3808ca0965 Replay: name replay folders after matchID instead of a per-machine index
Replay folders were named YYYY-MM-DD_NNNN, a per-machine sequence
counter. The same multiplayer match got a different folder name per
participant, and unrelated matches could share a name, making it hard
to correlate replays across players (rating aggregation, replay
sharing, bug reports) without parsing commands.txt first.

The engine already generates a matchID once per match, synced to all
participants before the match starts. Replay folders are now named
YYYY-MM-DD_<matchID>, so the same match produces the same folder name
everywhere.

The date comes from a new "startTime" attribute, set once by the host
(StartTime.js, alongside MatchID.js) and synced like matchID, instead
of each machine reading its own local clock. createDateIndexSubdirectory
is untouched (still used by OOS logs and serialization tests); a new
createReplaySubdirectory is added for replays only, following the same
collision-handling pattern (incrementing suffix) as the existing
function. This also means resuming a match (network rejoin, or a
singleplayer game reloaded via StartSavedGame, both of which reuse the
same matchID) saves an additional replay instead of overwriting the
original.

Fixes #8922
2026-08-14 06:57:33 -06:00
.gitea Update code owners 2026-05-04 18:47:53 +02:00
binaries Replay: name replay folders after matchID instead of a per-machine index 2026-08-14 06:57:33 -06:00
build Make cxxtest optional 2026-06-08 20:59:45 +02:00
docs Fix trailing whitespace and add pre-commit hook 2025-06-15 20:08:48 +02:00
libraries Update LICENSE files for cpp-httplib 2026-02-15 19:47:30 +01:00
source Replay: name replay folders after matchID instead of a per-machine index 2026-08-14 06:57:33 -06:00
.editorconfig Update the pre-commit hooks 2025-08-22 13:04:38 +02:00
.gitattributes Move maps XML files out of LFS 2025-06-11 10:33:57 +02:00
.gitignore Update gitignore to add rules.json 2026-03-11 19:24:17 +01:00
.groovylintrc.json Add a Jenkinsfile linter 2025-05-08 19:50:21 +02:00
.lfsconfig Update lfsconfig comment 2025-06-29 08:31:50 +02:00
.markdownlint.yaml Add a markdownlint pre-commit hook 2024-08-27 10:06:31 +02:00
.pre-commit-config.yaml Use @stylistic/brace-style for eslint 2026-01-12 21:33:52 +01:00
.shellcheckrc Add util.sh shell library 2025-03-30 18:05:56 +02:00
.yamllint.yaml Add yamllint to pre-commit 2024-09-08 13:08:11 +02:00
eslint.config.mjs Set indent value for switch statement 2026-02-16 14:19:19 +01:00
LICENSE.md Update LICENSE files for cpp-httplib 2026-02-15 19:47:30 +01:00
license_dbghelp.txt Convert license_dbghelp.txt to UTF-8 2024-08-31 17:04:05 +02:00
license_gpl-2.0.txt Initial attempt at describing licensing details 2009-06-20 17:45:51 +00:00
license_lgpl-2.1.txt Fix trailing whitespace and add pre-commit hook 2025-06-15 20:08:48 +02:00
license_mit.txt Adds globalscripts/BicubicInterpolation.js, the corresponding license_mit.txt and points to it for other files with the same license in LICENSE.txt - reviewed by Philip and Itms. Uses that to fix an interpolation issue in gaia.js and also fixes a "fail by one" there - reviewed by elexis. Fixes #4174 2016-09-06 21:49:57 +00:00
package.json Use @stylistic/brace-style for eslint 2026-01-12 21:33:52 +01:00
README.md Add more badges to the UI. 2025-03-22 14:11:24 +01:00
ruff.toml Update the pre-commit hooks 2025-05-26 17:19:03 +02:00

0 A.D. Introductory Information

FreeBSD Build Status Linux Build Status macOS Build Status Windows Build Status

Game References Checks Status Pre-commit Checks Status

Bi-Weekly Bundles Status Technical Docs Status Nightly Build Status

0 A.D. (pronounced "zero ey-dee") is a free, open-source, cross-platform real-time strategy game of ancient warfare.

This is currently an incomplete, under-development version of the game. We're always interested in getting more people involved, to help bring the game towards completion and to share the interesting experience of developing a project of this scope.

There are several ways to contact us and find more information:

Running precompiled binaries on Windows

A precompiled, ready-to-play development version of the game is available from a checkout of the nightly-build SVN repository. If you are using the git repository, you have to follow the steps below.

In a checkout of the nightly-build SVN repository, open the "binaries\system" folder.

  • To launch the game: Run pyrogenesis.exe
  • To launch the map editor: Run Atlas.bat or "pyrogenesis.exe -editor"

Compiling the game from source code

The instructions for compiling the game on Windows, Linux and OS X are at BuildInstructions.

Reporting problems

Bugs should be reported on Gitea. For information on reporting problems and finding logs, see ReportingErrors.

Contributing Code

If you want to help out programming for the game, have a look at GettingStartedProgrammers or contact us on #0ad-dev on irc.quakenet.org

Contributing Artwork

If you want to make artwork for the game, have a look at For Artists or visit the forums.

Translating

You can help translating the game at https://www.transifex.com/projects/p/0ad for more information, see Localization