Неофициальный римейк с открытым исходным кодом Warcraft II: приливы тьмы
Этот проект с открытым исходным кодом не связан, не связан, не одобрен или каким -либо образом официально связан с Blizzard Entertainment, Inc. или любой из ее дочерних компаний или ее филиалов. Официальный сайт Blizzard Entertainment можно найти по адресу http://www.blizzard.com.
Этот проект является совершенно независимым и некоммерческим предприятием. Он не предназначен для продаж или прибыли, и никакая денежная прибыль не получена от его работы. Этот проект предназначен только для образовательных и информационных целей .
Важно отметить, что для использования этого проекта с открытым исходным кодом требуется оригинальная версия Warcraft 2 . Этот проект/репозиторий не предоставляет никаких игровых активов от Warcraft 2.
Warcraft II: Приливы тьмы были выпущены в Европе в 1996 году. Как маленький ребенок, я сразу же влюбился в эту игру. Я потратил сотни наших, играя в него, у меня были бесконечные сетевые сражения со своей семьей и друзьями. Поскольку Warcraft II оказал на меня сильное влияние, и я все еще влюблен в эту игру, я решил создать War2.5, который является неофициальным римейком с открытым исходным кодом Warcraft II. У него есть следующие цели:
Я начал работать над этим в 2021 году в качестве единого разработчика в свободное время. Теперь, в январе 2024 года, я понял, что требуется дополнительная поддержка, и следующий логический шаг - выпустить текущую государственную публику в GitHub.
См. Раздел , как построить
См. Раздел , как запустить
Играйте в свою любимую карту в любом сезоне. Нажмите W, S, A, D, чтобы переключить сезон на лету без перезарядки/перезагрузки. Минимап можно увидеть в правом верхнем углу.




C ++ - это язык программирования, с которым я начал изучать программирование. Я хотел создать проект с открытым исходным кодом, который использует объектно-ориентированное программирование (ООП) в современном C ++. Таким образом, используются классы, наследование, полиморфизм и дальнейшие концепции. Моя цель состояла в том, чтобы написать код, который является поддерживаемым и гибким при использовании современных функций C ++, таких как функции C ++ 17 и C ++ 20. Вы знаете Warcraft II и как программист, вы ожидаете, что объекты типа «маг»? Затем просто посмотрите на Mage.h и Mage.cpp. Заинтересованы в том, как крестьяне добывают золото? Просто откройте CompositeStatemining.h и посмотрите.
Текущая игра разработана с использованием подхода RTS Lockstep. Это означает, что все соответствующие действия, такие как производство единицы или движения, приводят к событиям, которые выполняются в начале нового GameFrame (= Tick). Это особенно важно при рассмотрении до сих пор пропущенное многопользовательское код. Текущий код далеко не совершенен, но я думаю, что он позволяет вам вносить свой вклад. Вы вклад высоко приветствуется!
См. Раздел , как построить
Как написано, я работал три года в своем редком Freetime, совершенно одиноком в этом проекте. Тем не менее, этот проект имеет довольно продвинутое состояние разработки. War2.5, по крайней мере, немного играбель! Многие игровые механики уже реализованы. Тем не менее, несколько основных компонентов все еще отсутствуют, такие как правильная анимация и управление временем/кадром, сеть, ИИ ... лишь некоторые из вещей, которые работают:
См. Раздел , как запустить
Эта работа определенно была бы невозможна без
О, хорошо, много чего не хватает, так и может быть оптимизировано. Есть маленькие вещи, с которых вы могли бы начать, например, при двойном щелчке по единице все видимые единицы того же типа должны быть выбраны. И есть большие вещи, которые вы могли бы внести, например, оптимизацию пути пути. Еще несколько примеров:
Как видите, есть много мест, с которых можно начать. Вы вклад высоко приветствуется!
Режим отладки позволяет, например, осматривать плитки:

Исследование частично работает:

Здания имеют производственные очереди :

Выберите и командуйте столько единиц, сколько вам нравится:

Переход с использованием ASTAR :


Воспроизвести оригинальную игровую музыку (или добавить собственные звуковые файлы):

Используйте браузер PUD , чтобы загрузить любую карту, которую вы хотите:


Строительство Linux было сделано на Ubuntu. Примечание: War2.5 может быть создан и запускаться на Ubuntu также внутри 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 -j4СДЕЛАННЫЙ
К сожалению, мы не можем просто сделать Sudo Apt-Get установить все необходимые LIBS при использовании Windows. Следовательно, мы должны получить следующие сторонние библиотеки самостоятельно. Однако мы не строим их; Мы просто используем предоставленные релизы.
Чтобы сделать вещи еще более простыми, полностью функциональный набор LIBS уже включен в 3 -й штат/Win. Это означает, что следующие шаги не требуются, если вы не хотите перейти на другую версию LIB.
War2tools не имеет предварительно скомпилированного выпуска. Таким образом, мы должны скомпилировать эту либерацию самостоятельно:
Измените Windows SRC/3RDPARTY/WIN/PATHS на пути, соответствующие правильным номерам версий LIB.
Готово , компилирование и связывание должно работать.
Скопируйте DLL из их соответствующих папок LIB в папку сборки
Этот репозиторий не содержит никаких активов Warcraft 2. Следовательно, для запуска War2.5 для извлечения данных требуется издание Warcraft 2 Battle.net. Ваша папка компакт -дисков должна выглядеть так:

В качестве первого шага мы должны извлечь активы (звуки, графика и т. Д.) из компакт -диска. Эта работа определенно была бы невозможна без импортера Wargus и сценариев для Warcraft II, которые используются для первоначального извлечения активов из вашей первоначальной копии Warcraft 2.
wartool.exe your_warcraft2_cd_folder extracted_data
Вот и все, начните War2.5!