Skip to content

v1.15.0-rc.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Jul 21:00
· 31 commits to main since this release
Immutable release. Only release title and notes can be modified.
v1.15.0-rc.1
39709ab

What's Changed

Full MacOS support

Warning

macOS support is still considered experimental. Please report any issues you encounter.

MacOS is now fully supported even including support for the new native Steam AoE II: DE port. Thus, full, battle-server-manager and launcher archives are provided just like the rest of operating systems.

Notes

  • AoE II: DE port does not include the BattleServer so:
    • You are unable to create/join lobbies as 'Use Local LAN Server' you must use the 'Default' or configured Online-like Battle Server.
    • You will need to get the standalone windows executable from a Windows installation and configure the battle-server-manager to its path along having installed wine program to run it.
  • Launcher/Battle Server Manager: need in some moments to run an emergent terminal windows which the default Terminal app does not support, thus you will need to have installed one of the following:
    • Alacritty (recommended).
    • Kitty
    • Ghostty
    • Wezterm
    • Rio
    • Linux based X11 terminals: xterm, uxterm, urxvt and st.

General

  • 🐧Enhancement: added more modern terminal applications to use (see at the top, just like macOS).
  • 🐛 Fix: Properly load environment variables after configuration files.
  • 🐛 Fix: Properly handle when a PID lock file does not exist when searching for it.
  • 🐛 Fix: Don't show error when closing another program and itself removes the PID lock file.
  • 🐛 Fix: Not adding usage KeyUsageCertSign to the generated CA files.
  • 🍎🐧🐛 Fix: Do not use setSid if process is just being waited on.
  • 🍎🐧🐛 Fix: Properly quote arguments in when running subprograms.
  • 🐧🐛 Fix: Remove terminal apps that did not support the '-e' to run commands.

Server

  • Enhancement: added old leaderboards.json so old age2 game versions can work (as old as it was supported at the start of the project, ~2024Q2). The user must still manually place them as explained in the folder's README file.
  • Enhancement: Support new native macOS Steam AoE II: DE game domain arthurlive-api.worldsedgelink.com.
  • Enhancement: Add IgnoreIfExisting parameter to genCert binary.
  • 🐛 Fix: fix adv/update not returning proper data for aoe1/aoe2/aoe3/aom
  • 🐛 Fix: IPv4 auto in battleserver returning WAN IP as necessary.

Launcher

  • 🔝🐛/Enhancement: Now, if required, config-admin-agent is started at the beginning of the program and ensures by flushing the DNS and Certs cache that all is up-to-date.
  • Enhancement: Print more information when failing to connect to a server.
  • Enhancement: Print more information when failing to add or remove a certificate.
  • Enhancement: Config.Certificate.CanTrustInPc now defaults to 'auto', which is resolved to 'user' in macOS and 'local' otherwise (as it was before).
  • 🍎🐧🔝Enhancement: Added support for Client.Executable as 'steam_crossover' (Steam installed on Crossover).
  • 🍎🐧🔝Enhancement: Added support for Client.Executable as 'steam_wine' (Steam installed on Wine).
  • 🍎🐧Enhancement: Added Client.Isolation.Path so the user can specify the path to the game user data, enabling custom path and isolation at the same time.
  • 🐛 Fix: properly detect when starting a custom launcher if it fails.
  • 🍎🐧🐛 Fix: when adding hosts comment out mappings to the hostname that can cause the system being to unable to host a LAN lobby.
  • 🍎🐧🐛 Fix: Not getting the correctly data path for AoE IV: AE on wine-based systems.
  • 🐧🐛 Fix: properly detect when xdg-open fails to open the Steam URI.
  • 🚧 Update: Moved Client.IsolateMetadata and Client.IsolateProfiles parameters to own Client.Isolation section and renamed as Client.Isolation.Metadata and Client.Isolation.Profiles respectively.

Battle Server Manager

  • Enhancement: Pass publicPort argument to BattleServer.exe (same as BsPort).
  • Enhancement: Removed SSL config section. Now CertsPath is defined which it is either 'auto' or a path to the certificate folder containing the appropriate .pem files per game.
  • 🍎🐧Enhancement: When starting the BattleServer.exe wait 20s extra seconds as they might need to boot wine.
  • 🐛 Fix: not properly generating the ports depending on which were already set.
  • 🍎🐧🐛 Fix: wine fixes when starting BattleServer.exe.

Other

  • Enhancement: added dockerfile and compose for battle-server-manager.
  • 🚧 Update: release_public.key
  • 🐛 Fix: fixed Server dockerfile.
Developer changes
  • 🔝Enhancement: Added mocks for game launcher, the game itself and BattleServer.exe to easy develop and test (specially on non-Windows systems).
  • Enhancement: All binaries now use the standard system for arguments and config.
  • Enhancement: Added config-helper module as means to interop for getting profile/game info on non-Windows systems via wine.
  • Enhancement: battle-server-broadcast module now has ValidData(data []byte, length int) bool method and exports Header, GuidLength, PortSize and MinimumSize.
  • 🐛 Fix: cache missing in some debug tasks.
  • 🚧 Update: Go from 1.26.3 to 1.26.5.
  • 🚧 Update: Dependencies (program and CI).
  • 🚧 Update: Removed cobra dependency left-over from launcher.

What's coming in the future?

See this.

Sponsors/Donations

  • @codabrink (GitHub monthly sponsor).
  • B. Stack (one-time donation)
  • Skoop (one-time donation)
  • Ghoulette (one-time donation)

There are multiples ways to help: starring the repo, spreading the word, contributing to the repository, making an issue report, sponsoring me monthly or a one-time donation!

See Github differences in v1.14.0...v1.15.0-rc.1

Files

The following assets are directly compiled and listed next to the release notes:

  • Full:
    • Windows:
      • 10 on x86-64: ..._full_v1.15.0_win10_x86-64.zip
      • 7 on x86-64: ..._full_v1.15.0_win7_x86-64.zip
      • 11 on ARM: ..._full_v1.15.0_win11_arm64.zip
    • Linux:
      • x86-64: ..._full_v1.15.0_linux_x86-64.tar.gz
      • ARM64: ..._full_v1.15.0_linux_arm64.tar.gz
    • macOS: ..._full_v1.15.0_mac.tar.gz
  • Launcher:
    • Windows:
      • 10 on x86-64: ..._launcher_v1.15.0_win10_x86-64.zip
      • 7 on x86-64: ..._launcher_v1.15.0_win7_x86-64.zip
      • 11 on ARM: ..._launcher_v1.15.0_win11_arm64.zip
    • Linux:
      • x86-64: ..._launcher_v1.15.0_linux_x86-64.tar.gz
      • ARM64: ..._launcher_v1.15.0_linux_arm64.tar.gz
    • macOS: ..._launcher_v1.15.0_mac.tar.gz
  • Battle Server Manager:
    • Windows:
      • 10 on x86-64: ..._battle-server-manager_v1.15.0_win10_x86-64.zip
      • 7 on x86-64: ..._battle-server-manager_v1.15.0_win7_x86-64.zip
      • 11 on ARM: ..._battle-server-manager_v1.15.0_win11_arm64.zip
    • Linux:
      • x86-64: ..._battle-server-manager_v1.15.0_linux_x86-64.tar.gz
      • ARM64: ..._battle-server-manager_v1.15.0_linux_arm64.tar.gz
    • macOS: ..._battle-server-manager_v1.15.0_mac.tar.gz
  • Server:
    • Windows:
      • 10 (IoT), Server (IoT) 2025 on ARM64: ..._server_v1.15.0_win10_arm64.zip
      • 10 (IoT), (Storage) Server 2016, Server IoT 2019 on x86-64: ..._server_v1.15.0_win10_x86-64.zip
      • 7, Server 2008 R2, Home Server 2011, Embedded 7 on x86-64: ..._server_v1.15.0_win7_x86-64.zip
      • 10 (IoT) on x86-32: ..._server_v1.15.0_win10_x86-32.zip
      • 7, Embedded 7, Thin PC on x86-32: ..._server_v1.15.0_win7_x86-32.zip
    • Linux:
      • ARM64: ..._server_v1.15.0_linux_arm64.tar.gz
      • ARM32:
        • ARMv5 (armel): ..._server_v1.15.0_linux_arm-5.tar.gz
        • ARMv6 (sometimes called armhf): ..._server_v1.15.0_linux_arm-6.tar.gz
      • x86-64: ..._server_v1.15.0_linux_x86-64.tar.gz
      • x86-32: ..._server_v1.15.0_linux_x86-32.tar.gz
    • macOS: ..._server_v1.15.0_mac.tar.gz

Note: If you are using Antivirus it may flag one or more executables as virus, this is a false positive.

Verification

The verification process ensures that the files you download are the same as the ones that were uploaded by the
maintainer.

  1. Download the ageLANLanServer_v1.15.0_checksums.txt and ageLANLanServer_v1.15.0_checksums.txt.sig files.
  2. Import the release public key and import it to your keyring if you haven't already.
  3. Verify the ageLANServer_v1.15.0_checksums.txt file with the ageLANLanServer_v1.15.0_checksums.txt.sig file.
  4. Verify the SHA-256 checksum list inside ageLANServer_v1.15.0_checksums.txt with the downloaded archives.

Simplest way to use it

  1. Download the proper full asset.
  2. Uncompress it somewhere.
  3. Windows Optional: You may need to add the launcher/server binaries to the exception list of your Antivirus.
  4. Windows Optional: Unblock the .exe files as explained here
  5. If not using the Steam or Xbox launcher, edit the launcher/resources/config.<game_title>.toml file with a text editor (like Notepad) and modify the Client.Executable section to point to the game launcher path. In this case, you also need to modify Client.Path to point to the game's directory. You will need to use a custom launcher (plus what my other repo provides) for 100% offline play.
  6. If you are using a custom launcher or native AoE II: DE on mac (or you are using AoE IV/AoM and don't have AoE II: DE installed) edit the battle-server-manager/resources/config.athens.toml file and point Executable.Path to the game's "BattleServer.exe" (or specifically AoE II: DE one for AoM) executable (it's portable), for example, 'S:\SteamLibrary\steamapps\common\AoE2DE\BattleServer\BattleServer.exe'.
  7. Execute launcher/start_<game_title> script: you will be asked for admin elevation and confirmation of other dialogs as needed, you will also need to allow the connections via the Microsoft Defender Firewall or any other.
  8. Repeat the above steps for every PC (except the point 6) you want to play in LAN with by running the launcher, the first PC to launch it will host the "server" and the rest will auto-discover and be prompted to connnect to it.
  9. In the game, just host a new lobby via the Multiplayer section. Setting it to public visibility is recommended.
  10. If the lobby is Public, they can join directly in the browser or you can Invite friends by searching them by name and sending an invite as needed. If the game allows, you can share the link to join the lobby automatically (only works if already in-game).

Help

Look for the Troubleshooting if you have any issues (or QA for any doubt), create an issue or look for other related issues.