Servidor web com suporte a multiplayer LAN 100% offline para AoE 1, 2 e 3 DE
(github.com/luskaner)- Age LAN Server é um servidor web e launcher que permite usar o lobby multiplayer dos jogos da série Age of Empires sem conexão de internet com os servidores oficiais do jogo, com o objetivo de manter a função de lobby mesmo durante manutenção ou encerramento dos servidores oficiais
- Os jogos compatíveis são Age of Empires: Definitive Edition, Age of Empires II: Definitive Edition, Age of Empires III: Definitive Edition, Age of Empires IV: Anniversary Edition e Age of Mythology: Retold; no momento, AoM: RT é compatível apenas com a versão Steam
- Os recursos em comum incluem cenários, transferência de mapas dentro do lobby, restauração de partidas, data mods, chat no lobby e cross-play entre Steam e Xbox; dependendo do jogo, também há espectador, convite para lobby, compartilhamento de link, busca de jogadores, campanha cooperativa, revanche, canais, sussurros e grupos
- O servidor recebe as requisições de API do jogo e reimplementa a superfície mínima de API necessária para o funcionamento do lobby; os dados não são armazenados nem enviados pela internet
- Para jogar 100% offline, é necessário um launcher personalizado para contornar as restrições de internet e de conexão com Steam ou Xbox Live exigidas pelo jogo; recursos como matchmaking, conquistas, leaderboard, clãs e integração com amigos não foram implementados ou têm limitações
Objetivo e escopo do Age LAN Server
- Age LAN Server tinha anteriormente o nome AoE 2 DE LAN Server e é um servidor web com launcher que permite jogar no lobby multiplayer sem conexão de internet com os servidores do jogo
- Não é estritamente limitado apenas a LAN
- O objetivo é permitir usar os recursos multiplayer do jogo mesmo quando os servidores oficiais estiverem em manutenção ou forem encerrados definitivamente
- Para jogo totalmente offline, é necessário um launcher personalizado para contornar as restrições exclusivamente online impostas pelo jogo
- Dependendo da plataforma e da versão, aplicam-se restrições de internet e de conexão com Steam ou Xbox Live
- O projeto separado ageLANServerLauncherCompanion fornece download de Steam Emulator, além de arquivos e informações para jogo 100% offline
Jogos compatíveis
- Os jogos compatíveis são os seguintes
-
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 no momento é compatível apenas com a versão Steam
-
Recursos oferecidos e diferenças por jogo
- Os recursos em comum incluem os seguintes
-
Cenários
- transferência de mapas dentro do lobby
- restauração de partidas
- data mods
- chat no lobby
- cross-play entre Steam e Xbox
- AoE II: DE, AoE III: DE, AoE IV: AE e AoM: RT oferecem recursos adicionais
- recurso de espectador, incluindo CapturAge no AoE II: DE
- convite para lobby
- compartilhamento de link do lobby
- busca de jogadores
- AoE II: DE e AoE III: DE oferecem campanha cooperativa e revanche
- AoE II: DE oferece canais e sussurros
- AoE III: DE e AoE IV: AE oferecem grupos
- AoM: RT oferece sussurros e Arena of the Gods
-
Limitações e recursos não implementados
- As limitações gerais são as seguintes
- Entrar em um lobby por link só funciona quando o jogo já está em execução
- Assinaturas do modo online só funcionam ao usar o launcher oficial
- Não há integração com amigos do Xbox e da Steam
- Em AoE III: DE e AoE IV: AE, a lista de amigos mostra todos os usuários online como se fossem amigos
- Em AoM: RT, a lista de amigos também mostra todos os usuários online como se fossem amigos
- Arena of Gods de AoM: RT tem um funcionamento separado
- Recompensas não são obtidas
- Todas as bênçãos e raridades vêm desbloqueadas por padrão, inclusive itens indisponíveis nos servidores oficiais
- o favor acumulado é infinito
- no modo história, todas as missões vêm desbloqueadas por padrão
- no modo desafio, as vidas são infinitas, há acesso a todas as lendas e o nível padrão é o máximo, 99
- Os recursos não implementados são os seguintes
- Matchmaking não foi implementado devido ao número limitado de usuários e ao caráter temporário do servidor, sendo recomendado usar os servidores oficiais
- Conquistas devem ser processadas apenas pelos servidores oficiais, e atender às condições de conquista durante uma partida pode causar problemas
- Os leaderboards aparecem vazios
- Em clãs, todos os jogadores aparecem como fora de clãs, a busca de clãs aparece vazia e a criação sempre gera erro
- Bloquear jogadores no lobby parece funcionar, mas na prática não funciona
- Denunciar e bloquear jogadores parece funcionar, mas na prática não funciona
- A maioria dos itens não implementados não se aplica a Age of Empires: Definitive Edition
Como funciona
- O servidor é um servidor web simples que recebe requisições de API do jogo
- Ele reimplementa apenas a superfície mínima de API necessária para que os recursos de lobby funcionem
- Os dados não são armazenados nem enviados pela internet
- O launcher facilita jogar no lobby, ao mesmo tempo em que permite continuar usando o launcher oficial para partidas online
- Os recursos do launcher incluem o seguinte
- iniciar e parar o servidor automaticamente ou conectar-se a um servidor existente
- com exceção do AoE I, uso opcional de diretórios de metadados isolados para evitar possíveis problemas com o jogo oficial
- modificar o arquivo hosts para redirecionar as requisições de API do jogo para o servidor LAN
- fazer proxy de algumas requisições ao CDN para evitar a detecção do estado oficial do jogo
- fazer proxy de requisições para chat e exibição de nomes de usuário
- instalar certificado autoassinado para que o jogo possa se conectar ao servidor LAN
- com exceção de AoE I e AoE IV, adicionar o certificado ao armazenamento do jogo
- executar comandos personalizados para configuração e recuperação
- no Windows, fazer rebroadcast do battle server por interfaces de rede diferentes da interface de maior prioridade
- detectar e iniciar o jogo automaticamente
- Depois, o launcher reverte essas mudanças para que o launcher oficial possa se conectar aos servidores oficiais
Requisitos de sistema e condições do cliente
- Os ambientes com suporte estável para o servidor são os seguintes
- Windows 7 ou equivalente, com recomendação de Windows 10 ou superior
- Linux kernel 3.2
- macOS Monterey v12
- Dependendo do sistema operacional e da configuração, pode ser necessário privilégio de administrador ou permissão do firewall para escutar HTTPS na porta 443
- Os ambientes com suporte experimental para o servidor são BSD, Solaris e AIX
- O launcher e o Battle Server Manager são compatíveis com os seguintes ambientes
- ambientes que não sejam Windows S edition/mode
- Windows 7 x86-64, com recomendação de Windows 10 ou superior
- Windows 11 ARM
- Linux kernel 3.2 em x86-64 e ARM64
- Se o launcher precisar lidar com o arquivo hosts, certificados locais ou launcher de jogo personalizado elevado, será necessário elevar privilégios de administrador
- Os clientes usam a versão Steam ou Xbox de cada jogo
- A versão Xbox se aplica apenas a versões compatíveis do Windows
- AoM: RT exige a versão Steam
- É fortemente recomendado usar a versão mais recente ou uma versão ligeiramente anterior; versões antigas têm problemas conhecidos
Binários e verificação
- Binários do servidor e do launcher são fornecidos para alguns sistemas operacionais compatíveis na releases page
- Os arquivos disponibilizados são divididos em full, launcher, Battle Server Manager e server
- No Windows, o antivírus pode marcar um ou mais executáveis como vírus, o que é indicado como falso positivo
- O procedimento de verificação consiste em confirmar se os arquivos baixados são idênticos aos enviados pelo mantenedor
- verificar se a tag de release foi validada pela chave de assinatura do committer
- baixar
..._checksums.txte..._checksums.txt.sig - importar a release public key para o keyring
- verificar o arquivo de checksums com o arquivo de assinatura
- validar os arquivos baixados com a lista SHA-256 contida no arquivo de checksums
Fluxo de uso mais simples
- O launcher e o servidor funcionam sem instalação: basta baixar o arquivo compactado, extrair e executar
- O procedimento básico de uso é o seguinte
- baixar o arquivo full apropriado da release estável mais recente
- extrair para o local desejado
- no Windows, se necessário, adicionar os binários do launcher e do servidor à lista de exceções do antivírus
- no Windows, se necessário, desbloquear os arquivos
.exe - se não usar o launcher da Steam ou do Xbox, alterar
Client.ExecutableeClient.Pathemlauncher/resources/config.<game_title>.tomlpara o caminho do launcher do jogo e o diretório do jogo - para jogo 100% offline, são necessários o launcher personalizado e os itens fornecidos no repositório companion separado
- se usar AoE IV ou AoM e não tiver AoE II: DE instalado, definir o caminho de BattleServer.exe em
battle-server-manager/resources/config.<game>.toml - executar o script
launcher/start_<game_title>e aprovar a elevação de privilégios de administrador e a permissão do firewall, se necessário - repetir o mesmo processo em cada PC que jogará na LAN; o primeiro PC hospedará o servidor e os demais receberão instruções para descobrir e conectar automaticamente
- na seção Multiplayer do jogo, hospedar um novo lobby, sendo recomendado configurá-lo como lobby público
- em lobbies públicos, é possível entrar diretamente pelo navegador, buscar pelo nome ou enviar convite a amigos
- se o jogo permitir, é possível compartilhar o link de entrada do lobby, mas o ingresso automático só funciona quando o jogo já está aberto
Condições de uso e isenção
- O software é distribuído sob a AGPL
- Condições adicionais de uso se aplicam apenas à relação contratual entre usuários e provedores que receberam o pacote de download por este canal
- As condições adicionais não restringem os direitos garantidos pela AGPL de usar, estudar, modificar, redistribuir e acessar o código
- As condições de uso do pacote de download incluem o seguinte
- possuir licença válida e legal do jogo e dos DLCs necessários
- cumprir os termos de serviço do jogo e as condições aplicáveis
- finalidade estrita de uso pessoal
- uso em ambiente LAN enquanto os servidores oficiais do jogo estiverem disponíveis e operando
- em caso de manutenção, indisponibilidade temporária ou encerramento permanente dos servidores oficiais, a exigência de LAN deixa de valer
- Este software não é afiliado nem endossado pela publicadora ou pela desenvolvedora do jogo
1 comentários
Opiniões no Hacker News
Se você tem o gosto do Hacker News por AoE clássico, provavelmente também vai gostar de 0 A.D.
É gratuito e divertido, mas, se você se considera um mestre da estratégia, é um jogo que pode deixá-lo bem mais humilde
https://play0ad.com/
É ótimo que não só AoE, mas jogos em geral, sejam preservados para continuar executáveis no futuro
É uma pena quando recursos desaparecem só porque alguém desligou um servidor
Além de atualizações que aumentaram o número de civilizações para mais de 50, houve muitas melhorias visuais e melhorias gerais de jogabilidade e desempenho
É especialmente incrível ver novos desenvolvimentos para um jogo tão antigo vindos da comunidade open source
A empresa fechou e desligou os servidores, mas felizmente alguém criou uma implementação de servidor de matchmaking
A comunidade continua viva e crescendo, e o desenvolvimento do jogo seguiu adiante, levando-o a um nível muito além do original
Esse projeto é o Forged Alliance Forever
Se você oferece um serviço essencial para usar um produto, ótimo; mas, se encerrar esse serviço torna o produto inutilizável ou apenas parcialmente utilizável, deveria ser obrigatório abrir a implementação e a documentação
AoE2 foi lançado em 1999 com base em um motor de jogo de 1997, e na primavera de 2025 está previsto um novo grande DLC para a Definitive Edition
Sandy Petersen ficaria orgulhoso
Quando eu era criança, nos anos 2000, costumávamos jogar sessões de Aoe2 em LAN, e lembro que em cerca de uma a cada três partidas, depois de todos jogarem por 2 ou 3 horas, o jogo simplesmente caía
De certa forma, era até melhor. Ninguém precisava perder, e todos podiam acreditar que estavam ganhando
Gosto do Steam pela conveniência e agradeço o esforço de desenvolvimento do SteamOS, mas me preocupa a dependência
Projetos assim me devolvem mais posse sobre aquilo pelo qual paguei, e o luskaner é uma espécie de herói para mim
Nem mesmo o DRM do Steam é obrigatório; isso é inteiramente uma escolha do estúdio ou da distribuidora do jogo
Já há muitos jogos sem DRM no Steam, então basta fazer backup dos arquivos para executá-los sem o Steam
Fico curioso para saber como é possível anexar termos de uso a uma licença AGPL
Isso não seria uma “restrição adicional” que a licença diz que pode ser removida?
Excelente
Fico curioso se existe documentação pública da API do AoE3 usada para fazer isso, ou se tudo foi reengenheirado do zero
Já vi pessoas procurando esse tipo de documentação, mas nunca vi os documentos em si
Imagino que a resposta esteja em algum lugar do repositório, mas é algo além da minha compreensão, então fiquei curioso. O multiplayer do aoe2 DE depende em grande parte de P2P?
Presumo que os servidores regionais sejam usados apenas para matchmaking e que a lógica real do jogo rode nos clientes
Acho isso por causa da possibilidade de map hack e porque, quando uma pessoa fica com lag, todos ficam lentos, mas nos fóruns de AoE há muitas afirmações diferentes sempre que esse assunto aparece
Não acho provável que a Definitive Edition tenha mudado o design a ponto de sair do P2P, mas não sei a informação real
É por isso que map hacks são possíveis
Não é preciso nada como Paxos aqui. Se uma máquina se desvia, o jogo perde a sincronização e para, mas normalmente dá para recuperar a partir de um ponto salvo
Por exemplo, uma partida Brasil-China pode acontecer em um servidor da UE
Isso sugere que o servidor é usado como uma fonte central da verdade entre os clientes, com todos os dados do jogo passando por ele, embora os cálculos ainda pareçam ser feitos do lado do cliente
Porém, se os engasgos forem causados pelo desempenho da CPU de um jogador, isso afeta todos
Gostaria que AoE2 sobrevivesse tanto quanto o xadrez. É realmente um daqueles jogos “perfeitos”
Em Age of Empires 2, isso acontece hoje
A Definitive Edition parece receber mais investimento do que algumas das novas versões de AOE3 e 4
Se um jogo é divertido, acho que problemas de balanceamento ou coisas que parecem bugs mas viraram recursos podem ser preservados
Mas bugs de código de rede puramente nocivos são mais complicados
Sou muito grato à Id por ter acabado liberando o código-fonte. Espero muito que um dia o AoE2 também faça isso
A aleatoriedade, o fato de não ser por turnos e o multiplayer o tornam interessante até em comparação com o xadrez
Mas o xadrez tem regras 1000 vezes mais simples e imutáveis, e não exige APM alto para ser jogado competitivamente
Fiquei um pouco confuso sobre o papel do servidor web neste projeto
Ele é um componente de matchmaking ou de transmissão de partidas do multiplayer do AoE?
Este projeto parece lidar com o item 2. O item 1 infelizmente parece mais complexo e envolve fazer o jogo acreditar que o Steam está conectado