Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
Signed-off-by: David Fernández Aldana <luskaner@users.noreply.github.com>
  • Loading branch information
luskaner authored Oct 4, 2024
1 parent d2ff202 commit b88f79f
Showing 1 changed file with 45 additions and 66 deletions.
111 changes: 45 additions & 66 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,47 +4,48 @@ AoE2:DE LAN Server is a web server that allows you to play multiplayer **LAN** g
connection **to the game server** paving the way to how the original AoE2 worked plus many features new to HD and DE
versions.

**You will still need a way to bypass the *online-only* restriction that is imposed by the game to being connected to
**You will still need a *custom launcher* to bypass the *online-only* restriction that is imposed by the game to being connected to
the internet and Steam or Xbox Live, depending on the platform and version, to fully play offline.**

*See more details in [Questions and Answers (QA)](https://github.com/luskaner/aoe2DELanServer/wiki/Questions-and-Answers-(QA))*
*See more details in [Questions and Answers (QA)](https://github.com/luskaner/aoe2DELanServer/wiki/Questions-and-Answers-(QA))*.

## Features

- Co-Op Campaigns.
- Scenarios (including transferring the map):
- Event Scenarios*.
- Event Scenarios (will change depending on the server version and might require a update).
- Custom Scenarios.
- ... all other game modes available by creating a lobby **only with server as "Use Local Lan Server"**.
- Rematch.
- Restore game.
- Data mods.
- Invite player to lobby (including via link but only if game is already running).
- Invite player to lobby.
- Share lobby link (joining it only works if the game is already running).
- Player Search.
- Chatting (both in the lobby and in-game).
- Crossplay (cross-platform) Steam & Xbox (PC-only).

*\*Will change depending on the server version and might require an update.*
- Chatting.
- Crossplay Steam & Xbox.

## Unsupported features

- Not compatible with Battle Server P2P (LAN):
- Quick Play.
- Ranked.
- Spectate Games.
<details>
<summary>List of unsupported features</summary>

- Spectate games: Not compatible with Battle Server, would require a re-implementation.
- Not possible as it would require internet and some access to the user profile:
- Steam & Xbox Friends.
- Not implemented:
- Achievements: only the official server should be able to. Meeting the requirements of an achievement during a
match might cause issues (see https://github.com/luskaner/aoe2DELanServer/issues/36#issuecomment-2337161881) until
the game is restarted.
match might cause issues (see [QA](https://github.com/luskaner/aoe2DELanServer/wiki/Questions-and-Answers-(QA)) for more details).
- Changing player profile icon: the default will always be used.
- Leaderboards: will appear empty.
- Player stats: will appear empty.
- Clans: all players are without clans. Browsing clan will appear empty and creating one will always result in
error.
- Lobby ban player: will appear like it works but doesn't.
- Report player: will appear like it works but doesn't.
- Quick Play: no matchmaking is implemented, use official servers for this mode.
- Ranked: no matchmaking is implemented, use official servers for this mode.

</details>

## System Requirements

Expand All @@ -60,13 +61,16 @@ the internet and Steam or Xbox Live, depending on the platform and version, to f
Admin rights or firewall permission to listen to port 443 for https will likely be required (once or repeatedly)
depending on the operating system.

#### Buildable (Experimental)

<details>
<summary>Buildable (Experimental)</summary>

- BSD-based (OpenBSD, DragonFly BSD, FreeBSD and NetBSD).
- Solaris-based (Solaris and Illumos).
- AIX.

Note: For the full list see [minimum requirements for Go](https://go.dev/wiki/MinimumRequirements) 1.22.

</details>

### Launcher

Expand All @@ -82,17 +86,17 @@ admin rights elevation.**

### Client

- Age of Empires 2 Definitive Edition - Steam or Microsoft Store (only Windows).
- Age of Empires 2 Definitive Edition - Steam or Microsoft Store (Xbox) (only Windows).
- Up-to-date version of the game.

## Binaries

See the [releases page](https://github.com/luskaner/aoe2DELanServer/releases) for server and launcher binaries for a
subset of
supported operating systems.

The following archives are provided:

<details>
<summary>Provided archives</summary>
* Full:
* Windows:
* **10 (or higher) x86-64 (64 bits)**: aoe2DELanServer_full_*A.B.C*_win_x86-64.zip
Expand Down Expand Up @@ -121,6 +125,8 @@ The following archives are provided:
* Kernel 2.6.23 or higher with **x86-64**: aoe2DELanServer_server_*A.B.C*_linux_x86-64.tar.gz
* Kernel 2.6.23 or higher with **x86-32**: aoe2DELanServer_server_*A.B.C*_linux_x86-32.tar.gz
* macOS - Catalina (v10.15) or higher: aoe2DELanServer_server_*A.B.C*_mac.tar.gz

</details>

*Note: If you are using Antivirus it may flag one or more executables as virus, this is
a **false positive***.
Expand All @@ -130,12 +136,16 @@ a **false positive***.
The verification process ensures that the files you download are the same as the ones that were uploaded by the
maintainer.

1. Check the release tag is verified with the committer's signature key (*as all commits
must be*).
2. Download the ```..._checksums.txt``` and ```..._checksums.txt.sig``` files.
3. Import the [release public key](release_public.key) and import it to your keyring if you haven't already.
4. Verify the ```..._checksums.txt``` file with the ```..._checksums.txt.sig``` file.
5. Verify the SHA-256 checksum list inside ```..._checksums.txt``` with the downloaded archives.
<details>
<summary>Verification steps</summary>

1. Check the release tag is verified with the committer's signature key (*as all commits must be*).
2. Download the ```..._checksums.txt``` and ```..._checksums.txt.sig``` files.
3. Import the [release public key](release_public.key) and import it to your keyring if you haven't already.
4. Verify the ```..._checksums.txt``` file with the ```..._checksums.txt.sig``` file.
5. Verify the SHA-256 checksum list inside ```..._checksums.txt``` with the downloaded archives.

</details>

Exceptions on tag/commit signature:

Expand Down Expand Up @@ -165,8 +175,9 @@ is stored or sent to any other server.

The launcher allows to easily play the game in LAN mode while allowing the official launcher to be used for online play.

It can do the following setup steps for you:

<details>
<summary>Features</summary>

- Automatically start/stop the server or connect to an existing one automatically.
- (Optional) Use an isolated metadata and profile directories to avoid potential issues with the official game.
- (Optional) Modify the hosts file to
Expand All @@ -176,6 +187,7 @@ It can do the following setup steps for you:
- Automatically find and start the game.

Afterwards, it reverses any changes to allow the official launcher to connect to the official servers.
</details>

*Note: See the [launcher README](launcher/README.md) for more details.*

Expand All @@ -184,7 +196,7 @@ Afterwards, it reverses any changes to allow the official launcher to connect to
1. **Download** the proper *full* asset from the latest
stable release from https://github.com/luskaner/aoe2DELanServer/releases.
2. **Uncompress** it somewhere.
3. If not using the Steam or Microsoft Store launcher, **edit the [launcher/config.ini](launcher/resources/config.ini)
3. If not using the Steam or Microsoft Store (Xbox) launcher, **edit the [launcher/config.ini](launcher/resources/config.ini)
file**
and modify
the `Client.Executable` section to point to the game launcher path.
Expand All @@ -202,49 +214,16 @@ Afterwards, it reverses any changes to allow the official launcher to connect to
and sending an invite as needed. You can share the link to join the lobby automatically (only works if already
in-game).

## Local development

Copy `go.work.example` to `go.work`

### System requirements

- [Go 1.22](https://go.dev/dl/).
- [Git](https://git-scm.com/downloads).
- [Task](https://taskfile.dev/installation/).
- [GoReleaser](https://goreleaser.com/).

### Debug

It is recommended to use an IDE such as [GoLand](https://www.jetbrains.com/go/) (free for academia)
or [Visual Studio Code](https://code.visualstudio.com/) (free) with
the [Go extension](https://marketplace.visualstudio.com/items?itemName=golang.go).

Depending on the module you want to debug, you will need to run the corresponding task **before**:

- server: ```task debug-prepare-server```
- genCert: ```task debug:prepare-server-genCert```
- launcher: ```task debug:prepare-launcher```
- config: ```task build-config-admin-agent```
- config-admin-agent: ```task build-config-admin```
- agent: ```task build-config-all```

### Build

Run ```task build```.

### Release
## Development

1. Install [gpg2](https://docs.releng.linuxfoundation.org/en/latest/gpg.html) if needed.
2. Create a new sign-only GPG key pair (*RSA 4096-bit*) with a passphrase.
3. Copy .env.example to .env and set ```GPG_FINGERPRINT``` to the fingerprint of the key.
4. Finally run ```task release```
See [DEVELOPMENT.md](DEVELOPMENT.md) to see how to develop and release builds.

## Terms of Use

You and all the clients connecting to your server are only authorized to use this software if:

- Owning a **legal license** of Age of Empires 2 Definitive Edition (and all relevant DLC's).
- Not using this software to cheat/hack and, in general, respect all the game terms of service.
- Comply with all the game terms of service.
- Use this software for personal use.
- Use this software in a LAN environment.

Expand Down

0 comments on commit b88f79f

Please sign in to comment.