Un remake open source inofficial de Warcraft II: Tides de l'obscurité
Ce projet open source n'est pas affilié, associé, approuvé par ou en aucune façon officiellement lié à Blizzard Entertainment, Inc., ou à l'une de ses filiales ou à ses sociétés affiliées. Le site officiel de Blizzard Entertainment se trouve sur http://www.blizzard.com.
Ce projet est une entreprise complètement indépendante et non commerciale. Il n'est pas destiné aux ventes ou aux bénéfices, et aucun gain monétaire n'est dérivé de son fonctionnement. Ce projet est destiné à des fins éducatives et informationnelles uniquement.
Il est important de noter que pour utiliser ce projet open source, une version originale de Warcraft 2 est requise . Ce projet / référentiel ne fournit aucun actif de jeu de Warcraft 2.
Warcraft II: Tides of Darkness est sorti en Europe en 1996. En petit enfant, je suis immédiatement tombé amoureux de ce jeu. J'ai passé des centaines de nôtres à jouer, j'avais des batailles de réseau sans fin avec ma famille et mes amis. Étant donné que Warcraft II a eu une forte influence sur moi et que je suis toujours amoureuse de ce jeu, j'ai décidé de créer War2.5, qui est un remake open source inofficial de Warcraft II. Il a les objectifs suivants:
J'ai commencé à y travailler en 2021 en tant que développeur unique pendant mon temps libre. Maintenant, en janvier 2024, j'ai réalisé qu'un support supplémentaire est requis et la prochaine étape logique consiste à publier le public actuel de l'État de développement sur GitHub.
Voir la section comment construire
Voir la section comment courir
Jouez votre carte préférée dans n'importe quelle saison. Appuyez sur W, S, A, D pour changer la saison à la volée sans recharger / redémarrer. Minimap peut être vu en haut à droite.




C ++ est le langage de programmation avec lequel j'ai commencé à apprendre la programmation. Je voulais créer un projet open source qui utilise la programmation orientée objet (OOP) dans C ++ moderne. Ainsi, les classes, l'héritage, le polymorphisme et d'autres concepts sont utilisés. Mon objectif était d'écrire du code qui est maintenable et flexible tout en utilisant C ++ moderne tel que les fonctionnalités C ++ 17 et C ++ 20. Vous connaissez Warcraft II et en tant que programmeur, vous vous attendez à des objets de type "mage"? Ensuite, regardez simplement sur mage.h et mage.cpp. Intéressé par la façon dont les paysans exploitent l'or? Ouvrez simplement ComposeStateMing.h et jetez un œil.
Le jeu actuel est conçu en utilisant l'approche RTS Lockstep. Cela signifie que toutes les actions pertinentes telles que la production ou les mouvements unitaires entraînent des événements qui sont exécutés au début d'un nouveau jeu de jeu (= tick). Ceci est particulièrement important lorsque l'on considère que le code multijoueur manquant jusqu'à présent. Le code actuel est loin d'être parfait, mais je pense qu'il vous permet de contribuer. Votre contribution est très bien accueillie!
Voir la section comment construire
Comme écrit, j'ai travaillé pendant trois ans dans mon rare Freetime, complètement seul sur ce projet. Néanmoins, ce projet a un état de développement assez avancé. War2.5 est au moins un peu jouable! De nombreuses mécanismes de jeu ont déjà été mis en œuvre. Cependant, plusieurs composants majeurs sont toujours manquants, tels que l'animation et la gestion du temps / du cadre, le réseau, l'IA ... juste quelques-unes des choses qui fonctionnent:
Voir la section comment courir
Ce travail n'aurait certainement pas été possible sans
Eh bien, beaucoup de choses sont manquantes, buggy ou peuvent être optimisées. Il y a de petites choses avec lesquelles vous pourriez commencer, par exemple, lorsque le double clic d'une unité, toutes les unités visibles du même type doivent être sélectionnées. Et il y a de grandes choses que vous pourriez contribuer, par exemple, l'optimisation de la finition de chemin. Quelques autres exemples:
Comme vous pouvez le voir, il existe de nombreux endroits pour commencer. Votre contribution est très bien accueillie!
Le mode de débogage permet, par exemple, inspecter les carreaux:

L'exploration fonctionne partiellement:

Les bâtiments ont des files d'attente de production :

Sélectionnez et commandez autant d'unités que vous le souhaitez:

Pathfinding en utilisant ASTAR :


Jouez à la musique de jeu originale (ou ajoutez ses propres fichiers sonores):

Utilisez le navigateur PUD pour charger toute carte que vous souhaitez:


S'appuyant sur Linux a été réalisé sur Ubuntu. Remarque: War2.5 peut être construit et exécuté sur Ubuntu également à l'intérieur de 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 -j4FAIT
Malheureusement, nous ne pouvons pas simplement faire sudo apt-get installer toutes les LIB nécessaires lors de l'utilisation de Windows. Par conséquent, nous devons obtenir les bibliothèques tierces suivantes par nous-mêmes. Cependant, nous ne les construisons pas; Nous utilisons simplement les versions fournies.
Pour rendre les choses encore plus simples, un ensemble de LIB entièrement fonctionnel est déjà inclus dans 3rdParty / Win. Cela signifie que les étapes suivantes ne sont pas requises, sauf si vous souhaitez passer à une autre version Lib.
War2Tools n'a pas de libération pré-compilée. Ainsi, nous devons compiler cette lib par nous-mêmes:
Modifiez les Windows SRC / 3RDPARTY / WIN / PATHS en chemins correspondant aux numéros de version LIB corrects.
Fait , la compilation et la liaison doivent fonctionner.
Copiez les DLL de leurs dossiers Lib respectifs au dossier de construction
Ce référentiel ne contient aucun actif Warcraft 2. Par conséquent, pour exécuter War2.5, une édition Warcraft 2 Battle.net est requise pour l'extraction des données. Votre dossier CD devrait ressembler à ceci:

Dans une première étape, nous devons extraire les actifs (sons, graphiques, etc.) du CD. Ce travail ne serait certainement pas possible sans Wargus Importer et les scripts pour Warcraft II qui sont utilisés pour extraire initialement des actifs de votre copie Warcraft 2 d'origine.
wartool.exe your_warcraft2_cd_folder extracted_data
C'est ça, commencez War2.5!