Warcraft II:Tides of Darknessの非公式のオープンソースのリメイク
このオープンソースプロジェクトは、Blizzard Entertainment、Inc。、またはその子会社または関連会社に関連する、関連付けられ、承認されている、または何らかの形で公式に関連しているものではありません。 Blizzard Entertainmentの公式Webサイトは、http://www.blizzard.comにあります。
このプロジェクトは、完全に独立しており、非営利的な取り組みです。それは販売や利益を意図したものではなく、その運用から金銭的利益は導き出されません。このプロジェクトは、教育的および情報的な目的のみを目的としています。
このオープンソースプロジェクトを使用するには、 Warcraft 2のオリジナルバージョンが必要であることに注意することが重要です。このプロジェクト/リポジトリは、Warcraft 2からゲーム資産を提供していません。
Warcraft II:Tides of Darknessは1996年にヨーロッパでリリースされました。小さな子供として、私はすぐにこのゲームに恋をしました。私は何百もの私たちのプレイをしていました、私は家族や友人との無限のネットワークバトルを持っていました。 Warcraft IIは私に大きな影響を与えており、私はまだこのゲームに恋をしているので、War2.5を作成することにしました。次の目標があります。
私は2021年に自由な時期に単一の開発者としてこれに取り組み始めました。現在、2024年1月に、追加のサポートが必要であり、次の論理的なステップはGitHubで現在の開発状態の公開をリリースすることであることに気付きました。
構築方法のセクションを参照してください
実行方法を参照してください
どんな季節でもお気に入りの地図を再生します。 W、S、A、Dを押して、リロード/再起動せずに季節を飛行中に切り替えます。ミニマップは右上で見ることができます。




C ++は、プログラミングを学習し始めたプログラミング言語です。最新のC ++でオブジェクト指向プログラミング(OOP)を使用するオープンソースプロジェクトを作成したかったのです。したがって、クラス、相続、多型、およびさらなる概念が使用されます。私の目標は、C ++ 17やC ++ 20の機能など、最新のC ++を使用しながら、保守可能で柔軟なコードを作成することでした。あなたはWarcraft IIを知っています、そしてプログラマとして、あなたはタイプ「Mage」のオブジェクトを期待していますか?次に、mage.hとmage.cppを調べてください。農民が金をどのように採掘するかに興味がありますか? compositestatemining.hを開いて、見てください。
現在のゲームは、RTSロックステップアプローチを使用して設計されています。これは、ユニットの生産や動きなどのすべての関連するアクションにより、新しいゲームフレーム(=ティック)の開始時に実行されるイベントが発生することを意味します。これは、これまでのところマルチプレイヤーコードが欠落していることを検討する場合に特に重要です。現在のコードは完璧とはほど遠いものですが、貢献できると思います。あなたの貢献は非常に歓迎されています!
構築方法のセクションを参照してください
書いたように、私はこのプロジェクトで完全に一人で、私の珍しいフリータイムで3年間働いていました。それにもかかわらず、このプロジェクトには非常に高度な開発状態があります。 War2.5は少なくとも少しプレイ可能です!多くのゲームメカニクスがすでに実装されています。ただし、適切なアニメーションと時間/フレーム管理、ネットワーク、AIなど、いくつかの主要なコンポーネントがまだ欠落しています。
実行方法を参照してください
この作業は間違いなく不可能だったでしょう
まあ、多くのことが欠けている、バギーまたは最適化されるかもしれません。たとえば、同じタイプの目に見えるユニットをすべて選択する必要がある場合、最初に始めることができる小さなものがあります。そして、たとえば、パスファンディングを最適化することができる大きなことがあります。いくつかの例:
ご覧のとおり、最初にたくさんの場所があります。あなたの貢献は非常に歓迎されています!
デバッグモードでは、タイルの検査を可能にします。

探索は部分的に機能しています:

建物には生産キューがあります:

あなたが好きなだけ多くのユニットを選択してコマンドします:

Astarを使用したパスファインディング:


オリジナルのゲームミュージックを再生します(または独自のサウンドファイルを追加):

PUDブラウザを使用して、必要なマップをロードします。


Linux上の建物はUbuntuで行われました。注: War2.5は、VirtualBox内でもUbuntuで構築および実行できます。
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終わり
残念ながら、Windowsを使用するときに必要なすべてのLIBをsudo apt-getインストールするだけではありません。したがって、次のサードパーティライブラリを自分で取得する必要があります。しかし、私たちはそれらを構築しません。提供されたリリースを使用するだけです。
物事をさらにシンプルにするために、完全に機能的なLIBSセットがすでにサードパーティ/Winに含まれています。これは、別のLIBバージョンに変更したくない限り、次の手順が必要ないことを意味します。
War2toolsには、事前にコンパイルされたリリースがありません。したがって、私たちはこのlibを自分でコンパイルする必要があります。
Windows SRC/3RDPARTY/WIN/PATHSを正しいLIBバージョン番号に対応するパスに変更します。
完了、コンパイルとリンクは機能するはずです。
それぞれのlibフォルダーからdllsをビルドフォルダーにコピーします
このリポジトリには、Warcraft 2の資産は含まれていません。したがって、war2.5を実行するには、データ抽出にはwarcraft 2 battle.netエディションが必要です。あなたのCDフォルダーは次のようになります:

最初のステップとして、CDから資産(サウンド、グラフィックなど)を抽出する必要があります。この作業は、元のWarcraft 2コピーから最初に資産を抽出するために使用されるWargus輸入業者とWarcraft IIのスクリプトがなければ、間違いなく不可能です。
wartool.exe your_warcraft2_cd_folder extracted_data
それだけです、War2.5を始めてください!