Serveur web avec prise en charge du multijoueur LAN 100 % hors ligne pour AoE 1, 2, 3 DE
(github.com/luskaner)- Age LAN Server est un serveur web et un lanceur qui permettent d’utiliser les lobbies multijoueur des jeux de la série Age of Empires sans connexion Internet aux serveurs officiels, avec pour objectif de maintenir les fonctions de lobby même lors de maintenances ou après l’arrêt des serveurs officiels
- Les jeux pris en charge sont Age of Empires: Definitive Edition, Age of Empires II: Definitive Edition, Age of Empires III: Definitive Edition, Age of Empires IV: Anniversary Edition et Age of Mythology: Retold ; AoM: RT n’est actuellement pris en charge qu’en version Steam
- Les fonctionnalités communes incluent les scénarios, le transfert de cartes dans le lobby, la reprise de partie, les data mods, le chat de lobby et le cross-play Steam·Xbox ; selon le jeu, s’ajoutent l’observation, les invitations de lobby, le partage de liens, la recherche de joueurs, la campagne coopérative, le rematch, les canaux, les messages privés et les groupes
- Le serveur reçoit les requêtes API du jeu et réimplémente la surface API minimale nécessaire au fonctionnement du lobby ; aucune donnée n’est stockée ni transmise sur Internet
- Pour jouer 100 % hors ligne, un lanceur personnalisé est nécessaire afin de contourner les restrictions imposant Internet et une connexion Steam ou Xbox Live ; le matchmaking, les succès, les classements, les clans et l’intégration des amis ne sont pas implémentés ou restent limités
Objectif et périmètre de prise en charge d’Age LAN Server
- Age LAN Server, anciennement nommé AoE 2 DE LAN Server, est un serveur web et un lanceur permettant d’utiliser des lobbies multijoueur sans connexion Internet aux serveurs du jeu
- Il n’est pas strictement limité à un usage LAN
- Son objectif est de permettre l’utilisation des fonctions multijoueur du jeu même lorsque les serveurs officiels sont en maintenance ou définitivement arrêtés
- Un lanceur personnalisé est nécessaire pour un jeu totalement hors ligne afin de contourner les restrictions en ligne imposées par le jeu
- Selon la plateforme et la version, des restrictions peuvent s’appliquer sur Internet et la connexion à Steam ou Xbox Live
- Un projet séparé, ageLANServerLauncherCompanion, fournit le téléchargement d’un émulateur Steam ainsi que les fichiers et informations nécessaires au jeu 100 % hors ligne
Jeux pris en charge
- Les jeux pris en charge sont les suivants
-
Age of Empires: Definitive Edition
-
Age of Empires II: Definitive Edition
-
Age of Empires III: Definitive Edition
-
Age of Empires IV: Anniversary Edition
- Age of Mythology: Retold
- Age of Mythology: Retold n’est actuellement pris en charge qu’en version Steam
-
Fonctionnalités proposées et différences selon les jeux
- Les fonctionnalités communes incluent les éléments suivants
-
Scénarios
- transfert de cartes dans le lobby
- reprise de partie
- data mods
- chat de lobby
- cross-play Steam et Xbox
- AoE II: DE, AoE III: DE, AoE IV: AE et AoM: RT prennent en charge des fonctionnalités supplémentaires
- mode spectateur, y compris CapturAge pour AoE II: DE
- invitations de lobby
- partage de liens de lobby
- recherche de joueurs
- AoE II: DE et AoE III: DE prennent en charge la campagne coopérative et le rematch
- AoE II: DE prend en charge les canaux et les messages privés
- AoE III: DE et AoE IV: AE prennent en charge les groupes
- AoM: RT prend en charge les messages privés et Arena of the Gods
-
Limites et fonctionnalités non implémentées
- Les limitations générales sont les suivantes
- La fonction permettant de rejoindre un lobby de jeu via un lien ne fonctionne que si le jeu est déjà lancé
- L’abonnement au mode en ligne ne fonctionne qu’avec le lanceur officiel
- Il n’y a pas d’intégration des amis Xbox et Steam
- Dans AoE III: DE et AoE IV: AE, la liste d’amis affiche tous les utilisateurs en ligne comme s’ils étaient des amis
- Dans AoM: RT également, la liste d’amis affiche tous les utilisateurs en ligne comme s’ils étaient des amis
- Arena of Gods dans AoM: RT a un fonctionnement distinct
- aucune récompense n’est obtenue
- toutes les bénédictions et raretés sont débloquées par défaut, y compris des éléments indisponibles sur les serveurs officiels
- la réserve de favor est infinie
- dans le mode histoire, toutes les missions sont débloquées par défaut
- dans le mode défi, les vies sont infinies, toutes les légendes sont accessibles et le niveau par défaut est fixé au maximum, 99
- Les fonctionnalités non implémentées sont les suivantes
- le matchmaking n’est pas implémenté en raison du nombre limité d’utilisateurs et du caractère temporaire du serveur, et il est recommandé d’utiliser les serveurs officiels
- les succès doivent être gérés uniquement par les serveurs officiels, et remplir les conditions d’un succès pendant une partie peut poser problème
- les classements apparaissent vides
- pour les clans, tous les joueurs sont traités comme hors clan, la recherche de clans apparaît vide et la création renvoie toujours une erreur
- dans le lobby, le blocage d’un joueur semble fonctionner mais ne fonctionne pas réellement
- le signalement et le blocage de joueurs semblent fonctionner mais ne fonctionnent pas réellement
- La plupart des éléments non implémentés ne s’appliquent pas à Age of Empires: Definitive Edition
Fonctionnement
- Le serveur est un simple serveur web qui reçoit les requêtes API du jeu
- Il ne réimplémente que la surface API minimale nécessaire au fonctionnement des fonctions de lobby
- Les données ne sont pas stockées et ne sont pas transmises sur Internet
- Le lanceur facilite le jeu en lobby tout en permettant de continuer à utiliser le lanceur officiel pour le jeu en ligne
- Les fonctions du lanceur incluent les suivantes
- démarrage et arrêt automatiques du serveur, ou connexion à un serveur existant
- utilisation optionnelle d’un répertoire de métadonnées isolé pour éviter d’éventuels problèmes avec le jeu officiel, sauf pour AoE I
- modification du fichier hosts pour rediriger les requêtes API du jeu vers le serveur LAN
- proxy de certaines requêtes CDN pour éviter la détection de l’état officiel du jeu
- proxy de requêtes pour le chat et l’affichage des noms d’utilisateur
- installation d’un certificat auto-signé pour permettre au jeu de se connecter au serveur LAN
- sauf pour AoE I et AoE IV, ajout du certificat au magasin du jeu
- exécution de commandes personnalisées pour la configuration et la restauration
- sous Windows, rediffusion du battle server sur des interfaces réseau autres que celle ayant la priorité la plus élevée
- détection et lancement automatiques du jeu
- Le lanceur annule ensuite les modifications afin que le lanceur officiel puisse à nouveau se connecter aux serveurs officiels
Configuration système requise et conditions côté client
- Les environnements officiellement pris en charge pour le serveur sont les suivants
- Windows 7 ou équivalent, Windows 10 ou version ultérieure recommandés
- Linux kernel 3.2
- macOS Monterey v12
- Selon le système d’exploitation et la configuration, des droits administrateur ou une autorisation du pare-feu peuvent être nécessaires pour écouter en HTTPS sur le port 443
- Les environnements pris en charge à titre expérimental pour le serveur sont les familles BSD, Solaris et AIX
- Le lanceur et Battle Server Manager prennent en charge les environnements suivants
- un environnement Windows qui n’est pas en édition/mode S
- Windows 7 x86-64, Windows 10 ou version ultérieure recommandés
- Windows 11 ARM
- Linux kernel 3.2 en x86-64 et ARM64
- Une élévation des droits administrateur est nécessaire si le lanceur doit gérer le fichier hosts, les certificats locaux et un lanceur de jeu personnalisé exécuté avec privilèges élevés
- Les clients utilisent la version Steam ou Xbox de chaque jeu
- La version Xbox ne concerne que les versions compatibles de Windows
- AoM: RT nécessite la version Steam
- Il est fortement recommandé d’utiliser la version la plus récente ou une version légèrement antérieure ; des problèmes connus existent avec les anciennes versions
Binaires et vérification
- Les binaires du serveur et du lanceur sont fournis pour certains systèmes d’exploitation pris en charge sur la page des releases
- Les archives fournies sont réparties entre les variantes full, launcher, Battle Server Manager et server
- Sous Windows, un antivirus peut signaler un ou plusieurs exécutables comme virus ; cela est présenté comme un faux positif
- La procédure de vérification consiste à confirmer que les fichiers téléchargés sont identiques à ceux mis en ligne par le mainteneur
- vérifier que le tag de release a été validé avec la clé de signature du committeur
- télécharger
..._checksums.txtet..._checksums.txt.sig - importer la clé publique de release dans le trousseau
- vérifier le fichier de checksums à l’aide du fichier de signature
- vérifier l’archive téléchargée à l’aide de la liste SHA-256 du fichier de checksums
Flux d’utilisation le plus simple
- Le lanceur et le serveur fonctionnent sans installation : il suffit de télécharger l’archive, de l’extraire et de l’exécuter
- La procédure d’utilisation de base est la suivante
- télécharger l’archive full appropriée depuis la dernière release stable
- l’extraire à l’emplacement souhaité
- sous Windows, ajouter si nécessaire les binaires du lanceur et du serveur à la liste des exceptions de l’antivirus
- sous Windows, débloquer si nécessaire les fichiers
.exe - si vous n’utilisez pas le lanceur Steam ou Xbox, modifier
Client.ExecutableetClient.Pathdanslauncher/resources/config.<game_title>.tomlavec le chemin du lanceur du jeu et le répertoire du jeu - pour un jeu 100 % hors ligne, un lanceur personnalisé et les éléments fournis par le companion repo séparé sont nécessaires
- si vous utilisez AoE IV ou AoM et qu’AoE II: DE n’est pas installé, indiquer le chemin de BattleServer.exe dans
battle-server-manager/resources/config.<game>.toml - exécuter le script
launcher/start_<game_title>et approuver l’élévation des privilèges administrateur ainsi que les autorisations du pare-feu si nécessaire - répéter le même processus sur chaque PC du LAN avec lequel vous souhaitez jouer, le premier PC hébergeant le serveur et les autres recevant automatiquement des instructions après détection
- dans la section Multiplayer du jeu, héberger un nouveau lobby, de préférence en lobby public
- les lobbies publics peuvent être rejoints directement depuis le navigateur ou après recherche par nom, puis une invitation à des amis peut être envoyée
- si le jeu l’autorise, il est possible de partager un lien d’invitation au lobby, mais la participation automatique ne fonctionne que si le jeu est déjà ouvert
Conditions d’utilisation et clause de non-responsabilité
- Le logiciel est distribué sous AGPL
- Des conditions d’utilisation supplémentaires ne s’appliquent qu’à la relation contractuelle entre les utilisateurs ayant reçu le package de téléchargement par ce canal et le fournisseur
- Ces conditions supplémentaires ne limitent pas les droits garantis par l’AGPL d’utiliser, étudier, modifier, redistribuer et accéder au code
- Les conditions d’utilisation du package téléchargé incluent les points suivants
- posséder une licence valide et légale pour le jeu concerné ainsi que les DLC nécessaires
- respecter les conditions d’utilisation du service du jeu et les conditions applicables
- un usage strictement personnel
- une utilisation en environnement LAN tant que les serveurs officiels du jeu sont disponibles et opérationnels
- si les serveurs officiels sont en maintenance, temporairement indisponibles ou définitivement arrêtés, l’exigence LAN devient caduque
- Ce logiciel n’est ni affilié aux éditeurs ou développeurs du jeu, ni approuvé par eux
1 commentaires
Avis sur Hacker News
Si vous avez le profil Hacker News qui aime les AoE classiques, 0 A.D. pourrait aussi vous plaire
C’est gratuit et amusant, mais si vous vous considérez comme un maître de la stratégie, le jeu risque de vous rendre assez humble
https://play0ad.com/
C’est formidable de voir non seulement AoE, mais les jeux en général, être préservés pour pouvoir encore tourner à l’avenir
C’est dommage que des fonctionnalités disparaissent simplement parce que quelqu’un a éteint un serveur
En plus des mises à jour qui ont porté le nombre de civilisations à plus de 50, il y a eu beaucoup d’améliorations visuelles ainsi que des améliorations globales du gameplay et des performances
C’est vraiment impressionnant de voir, surtout dans la communauté open source, de nouveaux développements se poursuivre sur un jeu aussi ancien
L’entreprise a fermé et a coupé les serveurs, mais heureusement quelqu’un a créé une implémentation du serveur de matchmaking
Aujourd’hui encore, la communauté est vivante et en croissance, et le développement du jeu continue de le pousser bien au-delà de l’original
Ce projet s’appelle Forged Alliance Forever
Fournir un service nécessaire à l’utilisation d’un produit, très bien, mais si vous abandonnez ce service au point de rendre le produit inutilisable ou seulement partiellement utilisable, vous devriez être obligé de publier l’implémentation et la documentation
AoE2 est sorti en 1999 sur un moteur de jeu de 1997, et un nouveau gros DLC pour la Definitive Edition est prévu au printemps 2025
Sandy Petersen aurait de quoi être fier
Dans les années 2000, quand j’étais enfant, on faisait des sessions d’Aoe2 en LAN, et je me souviens qu’environ une partie sur trois plantait tout simplement après que tout le monde avait joué 2 ou 3 heures
D’une certaine façon, c’était mieux. Personne n’avait besoin de perdre, et tout le monde pouvait croire qu’il était en train de gagner
J’aime Steam pour son côté pratique, et j’apprécie aussi les efforts autour de SteamOS, mais l’enfermement m’inquiète
Ce genre de projet me redonne davantage la propriété de ce que j’ai acheté, et luskaner est une sorte de héros pour moi
Même le DRM de Steam n’est pas obligatoire ; c’est entièrement le choix du studio ou de l’éditeur
Il y a déjà beaucoup de jeux sans DRM sur Steam, que l’on peut lancer sans Steam à condition d’en sauvegarder les fichiers
Je me demande comment on peut ajouter des conditions d’utilisation à une licence AGPL
Est-ce que cela ne relève pas des « restrictions supplémentaires » que la licence dit pouvoir supprimer ?
Excellent
Je me demande s’il existe une documentation publique de l’API AoE3 utilisée pour créer ça, ou si tout a été rétro-ingénieré à partir de zéro
J’ai vu des gens chercher ce genre de documentation, mais jamais la documentation elle-même
La réponse se trouve sans doute quelque part dans le dépôt, mais comme ça dépasse ma compréhension, je me pose la question : le multijoueur d’aoe2 DE repose-t-il surtout sur du P2P ?
Je suppose que les serveurs régionaux ne servent qu’au matchmaking et que la logique de jeu réelle tourne côté client
C’est ce que me font penser la possibilité de maphack et le fait que si une personne lag, tout le monde ralentit, mais sur les forums AoE, les avis divergent chaque fois que le sujet revient
Je doute que la Definitive Edition ait suffisamment modifié la conception pour sortir du P2P, mais je n’ai pas d’informations concrètes
C’est ce qui rend les maphacks possibles
Pas besoin de quelque chose comme Paxos ici. Si une machine dévie, la partie se désynchronise et s’arrête, mais on peut généralement reprendre depuis un point de sauvegarde
Par exemple, un match Brésil-Chine peut se jouer sur un serveur européen
Cela donne l’impression que le serveur sert de source centrale de vérité entre les clients, et que toutes les données de jeu passent par lui, même si les calculs restent effectués côté client
En revanche, si ça saccade à cause du CPU d’un joueur, tout le monde est affecté
J’aimerais que AoE2 survive aussi longtemps que les échecs. C’est vraiment l’un de ces jeux « parfaits »
Dans Age of Empires 2 aujourd’hui, c’est ce qui se passe
La Definitive Edition donne l’impression de recevoir plus d’investissement que certaines nouvelles versions d’AOE3 et 4
Si un jeu est amusant, je pense qu’on peut conserver aussi les problèmes d’équilibrage ou les éléments qui ressemblent à des bugs mais sont devenus des fonctionnalités
En revanche, les bugs de code réseau purement nuisibles, c’est plus délicat
Je suis vraiment reconnaissant qu’Id ait fini par publier le code source. J’espère sincèrement qu’AoE2 suivra un jour
Le hasard, le fait qu’il ne soit pas au tour par tour et le multijoueur le rendent intéressant même en comparaison avec les échecs
Mais les règles des échecs sont 1000 fois plus simples, ne changent pas, et jouer en compétition ne nécessite pas non plus un APM élevé
Le rôle de serveur web de ce projet me laisse un peu perplexe
Est-ce un composant du matchmaking ou de la diffusion des parties multijoueur d’AoE ?
Ce projet semble traiter le point 2. Le point 1 paraît malheureusement plus complexe, avec un mécanisme qui fait croire que Steam est connecté