Um remake de código aberto de Warcraft II: marés de escuridão
Este projeto de código aberto não é afiliado, associado, endossado por ou de qualquer maneira oficialmente conectada à Blizzard Entertainment, Inc., ou a qualquer uma de suas subsidiárias ou afiliadas. O site oficial da Blizzard Entertainment pode ser encontrado em http://www.blizzard.com.
Este projeto é um empreendimento completamente independente e não comercial. Não se destina a vendas ou lucro, e nenhum ganho monetário é derivado de sua operação. Este projeto destina -se apenas a fins educacionais e informativos .
É importante observar que, para usar este projeto de código aberto, é necessária uma versão original do Warcraft 2 . Este projeto/repositório não fornece ativos de jogo da Warcraft 2.
Warcraft II: Tides of Darkness foi lançado na Europa em 1996. Quando criança, eu imediatamente me apaixonei por este jogo. Passei centenas de nossa jogando, tive inúmeras batalhas em rede com minha família e amigos. Como o Warcraft II teve uma forte influência sobre mim e ainda estou apaixonada por este jogo, decidi criar War2.5, que é um remake de código aberto de Warcraft II. Tem os seguintes objetivos:
Comecei a trabalhar nisso em 2021 como um único desenvolvedor durante o meu tempo livre. Agora, em janeiro de 2024, percebi que é necessário suporte adicional e a próxima etapa lógica é lançar o atual público do estado de desenvolvimento no GitHub.
Veja a seção como construir
Veja a seção como correr
Jogue seu mapa favorito em qualquer estação. Pressione W, S, A, D para alternar a temporada em tempo real sem recarregar/reiniciar. Minimap pode ser visto no canto superior direito.




C ++ é a linguagem de programação com quem comecei a aprender programação. Eu queria criar um projeto de código aberto que use a programação orientada a objetos (OOP) no C ++ moderno. Assim, são usadas classes, herança, polimorfismo e conceitos adicionais. Meu objetivo era escrever um código que seja sustentável e flexível enquanto usava os recursos modernos de C ++, como C ++ 17 e C ++ 20. Você conhece Warcraft II e, como programador, espera objetos do tipo "mago"? Em seguida, basta olhar para o mago.h e mage.cpp. Interessado em como os camponeses são de ouro? Basta abrir compositestatemining.h e dê uma olhada.
O jogo atual foi projetado usando a abordagem RTS Lockstep. Isso significa que todas as ações relevantes, como produção ou movimentos unitárias, resultam em eventos que são executados no início de um novo jogo (= tick). Isso é especialmente importante ao considerar o código multiplayer até agora que falta. O código atual está longe de ser perfeito, mas acho que permite que você contribua. Sua contribuição é muito bem -vinda!
Veja a seção como construir
Como escrito, trabalhei por três anos no meu raro freeetime, completamente sozinho neste projeto. No entanto, este projeto tem um estado de desenvolvimento bastante avançado. War2.5 é pelo menos um pouco jogável! Muitas mecânicas de jogo já foram implementadas. No entanto, vários componentes importantes ainda estão faltando, como animação adequada e gerenciamento de tempo/quadro, rede, IA ... apenas algumas das coisas que funcionam:
Veja a seção como correr
Este trabalho definitivamente não teria sido possível sem
Bem, muitas coisas estão faltando, buggy ou podem ser otimizadas. Há pequenas coisas com as quais você pode começar, por exemplo, ao clicar duas vezes em uma unidade, todas as unidades visíveis do mesmo tipo devem ser selecionadas. E há grandes coisas que você pode contribuir, por exemplo, otimizando o encontro de caminho. Mais alguns exemplos:
Como você pode ver, há muitos lugares para começar. Sua contribuição é muito bem -vinda!
O modo de depuração permite, por exemplo, inspecionar ladrilhos:

A exploração está funcionando parcialmente:

Os edifícios têm filas de produção :

Selecione e comande quantas unidades quiser:

Pathfinging usando ASTAR :


Jogue a música de jogo original (ou adicione arquivos de som próprios):

Use o navegador PUD para carregar qualquer mapa que desejar:


O edifício no Linux foi feito no Ubuntu. NOTA: O War2.5 pode ser construído e executado no Ubuntu também dentro do VirtualBox.
sudo apt install libsdl2-image-2.0-0 libsdl2-image-dev libsdl2-mixer-2.0-0 libsdl2-mixer-dev libsdl2-ttf-2.0-0 libsdl2-ttf-dev git cmake git clone https://github.com/war2/war2tools.git
cd war2tools
mkdir build
cd build
cmake ..
make
sudo make installgit clone https://github.com/glfw/glfw.git
cd glfw
mkdir build
cd build
cmake ..
make
sudo make installgit clone https://github.com/hsbgit/war25.git
cd war25/src/build
cmake ..
make -j4FEITO
Infelizmente, não podemos simplesmente fazer a instalação do sudo apt-get todas as libs necessárias ao usar o Windows. Portanto, temos que obter as seguintes bibliotecas de terceiros por conta própria. No entanto, não os construímos; Simplesmente usamos os lançamentos fornecidos.
Para tornar as coisas ainda mais simples, um conjunto totalmente funcional de LIBs já está incluído no 3rdParty/Win. Isso significa que as etapas a seguir não são necessárias, a menos que você queira alterar para outra versão Lib.
War2Tools não tem lançamento pré-compilado. Assim, temos que compilar este Lib por conta própria:
Altere o Windows SRC/3RDPARTY/WIN/PAIS para os caminhos correspondentes aos números de versão Lib corretos.
Feito , compilar e vincular devem funcionar.
Copie DLLs de suas respectivas pastas Lib para a pasta Build
Este repositório não contém nenhum ativo da Warcraft 2. Portanto, para executar War2.5, é necessária uma edição Warcraft 2 Battle.net para extração de dados. Sua pasta CD deve ficar assim:

Como primeira etapa, temos que extrair os ativos (sons, gráficos etc.) do CD. Este trabalho definitivamente não seria possível sem o Wargus Importador e os scripts do Warcraft II, que são usados para extrair inicialmente ativos da sua cópia original do Warcraft 2.
wartool.exe your_warcraft2_cd_folder extracted_data
É isso, Start War2.5!