A universal extension platform for STAR WARS Episode I Racer oriented toward speedrunning.
Annodue adds new features, quality of life adjustments and cosmetic changes, as well as a plugin system for user-made extensions.
See MANUAL for a complete feature summary and configuration instructions.
See CHANGELOG for a complete version history.
Annodue is in active development and not yet greenlit for submissions to Speedrun.com at the time of writing. For current information on how this can be used for speedrunning, please contact the speedrun moderators via the Racer discord server or speedrun.com.
- Download
annodue-<version>.zip
from the latest Release. - Extract
dinput.dll
and theannodue
folder into the game directory. - (Optional) If you normally need to run a specific
dinput.dll
to prevent the game from crashing, place it in theannodue
folder.
- Generate the release files with the following command in a terminal in the project directory. You must have
zig 0.11.0
installed.
zig build release -Dver="0.1.5" -Dminver="0.1.2" -Drop="<release_output_path>"
- Find
annodue-0.1.5.zip
in<release_output_path>/0.1.5/
and extract it to the game directory.
The source code can be found on github: annodue
The main component of Annodue is written in Zig, and requires Zig 0.11.0
to build.
Open a terminal in the project directory and run the following:
zig build <options>
The build process can be customized with the following options.
Option | Note |
---|---|
dinput |
Build only dinput.dll. |
plugins |
Build only the plugin DLLs. |
hashfile |
Build the plugin DLLs and generate their hashes, without building the main DLL. |
release |
Build entire project and package for release. Currently requires -Dver and -Dminver , and using -Ddbp and -Doptimize is also recommended. Output can be found under ./release . |
-Dver=<version> |
Release version. See Semantic Version for format. |
-Dminver=<version> |
Minimum version for auto-update compatibility. See Semantic Version for format. |
-Drop=<path> |
Output base path of release build; files will be placed in <path>/<ver> . Required for release . |
-Ddev |
Build with developer options. Skips applying the core plugin hash check to the main DLL, etc. |
-Dcopypath=<path> |
Path to the game directory, for hot-reloading DLLs during development. Only available when using -Ddev . |
-Doptimize=<build_mode> |
Build mode; see Zig documentation for options. Currently requires Debug to NOT be set to enable network updating, due to a standard library bug. |
See the output of zig build -h
for further build options.
Disclaimer: As the project is in early stages, I would prefer to focus my energy on development, and user plugin development is not supported until the codebase stabilizes. That said, I would be more than happy to discuss the project on the Racer discord server and take feedback and suggestions. For the time being, the following is aimed at those I have discussed contributing with personally.
This project follows the classic git-flow branching model. It is assumed you know the basics of git.
- Fork this repository on GitHub
- Clone your fork
git clone https://github.com/USERNAME/annodue
- Move into the new
annodue
directory
cd annodue
- Configure upstream
git remote add upstream https://github.com/everalert/annodue
git fetch upstream
- Features are based on the
develop
branch. Begin there and ensure it's up-to-date.
git checkout develop
git pull --rebase upstream develop
- Create a feature branch, typically following the pattern
ft/<feature_name>
.
git checkout -b ft/supremo-featrino
- Do yo thang baby.
- Once you're done, push the branch to your fork.
git push origin ft/supremo-featrino
- Submit a pull request from your feature branch to the
develop
branch ineveralert/annodue
. - Party. Woo!
- Don't forget to do step 1 again if you want to work on another feature.
- If you would like to merge to or from the
develop
branch for whatever reason, default to using the--no-ff
flag. But it would totally make both our lives easier if you just stuck to feature branches man.
This project is under the MIT License. The portions of the project this does not apply to have their own license notifications.