Super Mario War est un jeu de match à mort multijoueur de style Super Mario Bros. créé par des fans dans lequel les joueurs tentent de se battre dans une variété de modes de jeu. Vous pouvez jouer en équipe, concevoir vos propres niveaux, concevoir vos propres mondes et bien plus encore !
Lire cette page dans d'autres langues : 한국어
Le Mario War original a été créé par Samuele Poletto en 2002, dans lequel quatre personnages de Super Mario pouvaient se battre à différents niveaux en se sautant sur la tête. Il a été écrit en Pascal/Assembly et est sorti pour DOS. Les versions ultérieures incluaient également un éditeur de carte.
En 2004, Florian Hufsky , fondateur du forum 72dpiarmy a commencé à travailler sur une réécriture open source, qui est devenue Super Mario War . Cette version a introduit des personnages personnalisés, des modes de jeu supplémentaires et des mécanismes de carte, des objets et des bonus. Le contenu personnalisé des utilisateurs était stocké sur le site (aujourd'hui disparu) smwstuff.com
, avec des milliers de cartes et de skins disponibles. En raison de sa nature open source, le jeu a été porté sur presque tous les systèmes de bureau et de console.
Fin 2009, Florian décède. Le développement du jeu a ralenti et s'est finalement arrêté, SMW 1.8 beta 2 étant la dernière version officielle. Même si plusieurs tentatives ont été faites pour poursuivre ou relancer le développement, aucune ne semble avoir abouti sur le long terme. De plus, en raison de problèmes techniques, l'intégralité du site smwstuff.com
et tout son contenu ont également été perdus, avec des sauvegardes partielles des téléchargeurs disponibles sur le forum.
Il s'agit d'un fork sur lequel j'ai commencé à travailler vers 2014, dans le but initial de mettre en œuvre un support multijoueur en réseau qui fonctionnerait sur plusieurs plates-formes entre différents appareils. J'ai également voulu créer un site permettant de rassembler à nouveau le contenu dispersé du forum en un seul endroit. C'est devenu smwstuff.net
.
En ce qui concerne le jeu, il est malheureusement devenu très vite évident que la qualité et la structure du code source d'origine rendraient impossible un travail efficace : la plupart des fichiers sources étaient dans la catégorie "environ 10 000 lignes", avec plus de 1 000 fonctions LOC étant courantes, la plupart d'entre elles ils modifiaient des variables globales, et il y avait même un if-else
avec une centaine de branches.
Finalement, j'ai réussi à faire fonctionner le multijoueur en réseau, mais c'est loin d'être parfait. Dans de bonnes conditions, sur les réseaux locaux, cela peut fonctionner correctement, mais des bugs et des décalages subtils rendent généralement le jeu sur Internet loin d'être optimal. Une implémentation appropriée nécessiterait probablement une refonte de plusieurs parties essentielles du jeu et plusieurs centaines de correctifs de nettoyage/refactorisation supplémentaires pour rendre le code maintenable. Et, bien sûr, avec ce genre de projet, il est également possible que vous receviez le lendemain matin une lettre de cessation et d'abstention de n'importe quelle entreprise.
Pour moi, c'est à ce moment-là que j'ai arrêté de consacrer plus de temps à ce projet (2016). À long terme, une réécriture complète pourrait être plus rapide et plus efficace que de patcher le jeu original pendant des années. Quoi qu'il en soit, j'espère avoir laissé le projet dans un meilleur état qu'il ne l'était et qu'il sera utile aux futurs développeurs. Amusez-vous!
Les anciennes versions de Mario War et SMW peuvent être trouvées ici.
Super Mario War est un jeu multijoueur Super Mario. Le but est d'écraser autant d'autres Mario que possible pour gagner la partie. Il existe une gamme de modes de jeu différents dans le jeu, comme Capture-The-Flag, King of The Hill, Deathmatch, Team Deathmatch, Tournament Mode, Collect The Coins, Race et bien d'autres. Le jeu comprend également un éditeur de niveaux qui vous permet de créer vos propres cartes à partir de zéro, ou de recréer des sections de votre jeu Mario préféré, votre imagination est la limite ! Récemment inclus, un éditeur mondial, qui enchaîne un certain nombre de niveaux avec des conditions spécifiées pour créer une expérience de type SMB3 fusionnée avec un jeu de type tournoi. Le jeu est plus important encore un hommage à Nintendo et au jeu de fan original Mario War de Samuele Poletto.
Le jeu utilise des illustrations et des sons de jeux Nintendo. Nous espérons que ce fangame non commercial sera considéré comme un travail d'utilisation équitable. Nous voulions juste créer ce jeu pour montrer à quel point nous adorons les personnages et les jeux de Nintendo.
Vous pouvez utiliser des gestionnaires de packages pour obtenir ces dépendances :
apt-get install cmake libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev zlib1g-dev
yum install cmake SDL-devel SDL_image-devel SDL_mixer-devel zlib-devel
pacman -S cmake sdl sdl_image sdl_mixer zlib
pacman -S mingw-w64-x86_64-SDL mingw-w64-x86_64-SDL_image mingw-w64-x86_64-SDL_mixer mingw-w64-x86_64-zlib
Pour les autres systèmes, vous pouvez télécharger les fichiers de développement manuellement depuis :
Ce référentiel contient des sous-modules que vous pouvez utiliser si les dépendances ne sont pas disponibles pour votre système d'exploitation, sont obsolètes ou si vous ne souhaitez tout simplement pas les installer sur votre système. Pour utiliser les bibliothèques incluses, effectuez un clonage récursif :
git clone --recursive https://github.com/mmatyas/supermariowar.git
Alternativement, vous pouvez également initialiser les sous-modules manuellement :
git clone https://github.com/mmatyas/supermariowar.git
cd supermariowar
git submodule update --init
Si vous préférez utiliser les bibliothèques système, veuillez consulter la section Configuration de build pour désactiver cette fonctionnalité.
Créez un répertoire de construction et exécutez-y CMake pour configurer le projet. Ensuite, appelez simplement make
chaque fois que vous souhaitez construire. En bref:
mkdir build && cd build
cmake ..
make -j4 # -jN = build on N threads
./smw --datadir ../data
Les principales cibles de build pour make
sont :
Si vous préférez travailler dans un IDE (CodeBlocks, Eclipse, ...), vous pouvez également générer des fichiers de projet pour celui-ci à l'aide de CMake. Vous pouvez trouver plus d’informations dans Configuration de build.
Pour créer des packages installables, exécutez simplement make package
. Cela créera des archives TGZ, DEB et RPM.
Vous aurez probablement besoin de Xcode et de ses outils de ligne de commande ; vous pouvez installer SDL et CMake manuellement depuis son site, ou vous pouvez les obtenir avec Homebrew : brew install cmake sdl2 sdl2_image sdl2_mixer
. Suivez ensuite les instructions Linux pour créer SMW.
Si vous utilisez MinGW Shell/MSYS ou Cygwin, vous pouvez suivre le guide Linux. Vous pouvez également générer un fichier projet avec CMake pour divers IDE, tels que CodeBlocks, Eclipse ou Visual Studio.
Pour plus de détails, consultez le wiki : Créer sous Windows.
Vous pouvez créer SMW sur des appareils ARM, comme le Raspberry Pi, en suivant les instructions Linux. Si vous savez comment le faire, vous pouvez également effectuer une compilation croisée de la manière habituelle, soit en configurant une chaîne d'outils croisées, soit en émulant votre appareil. Pour plus de détails, consultez le wiki : Compilation croisée vers ARM.
La configuration de build contient déjà certains indicateurs du compilateur par défaut, mais comme il existe de nombreuses combinaisons possibles (hard float, Thumb, NEON, ...), vous souhaiterez peut-être utiliser des paramètres personnalisés. Dans ce cas, définissez les variables CFLAGS et CXXFLAGS et exécutez CMake avec l'option DISABLE_DEFAULT_CFLAGS
(voir Configuration de build).
Le port Android utilise un système de construction différent, vous pouvez trouver plus de détails ici.
SMW peut être construit pour être exécuté dans votre navigateur à l'aide d'Emscripten. Vous pouvez trouver les instructions de construction dans le wiki.
Vous devriez pouvoir porter SMW sur n'importe quel appareil sur lequel SDL (1.2 ou 2.0) fonctionne. Généralement, cela implique les étapes suivantes :
À FAIRE : développer cette section
Vous pouvez modifier la configuration de construction en définissant divers indicateurs CMake. Le moyen le plus simple de procéder consiste à exécuter cmake-gui ..
à partir du répertoire Build
. Vous pouvez également lire une brève description d'un élément en passant la souris sur son nom.
Alternativement, vous pouvez transmettre ces options directement à CMake sous la forme -DFLAGNAME=VALUE
(par exemple cmake .. -DUSE_SDL2_LIBS=1
).
Veuillez consulter la documentation dans le répertoire docs/.