スーパー マリオ ウォーは、ファンが作成したマルチプレイヤー スーパー マリオ ブラザーズ スタイルのデスマッチ ゲームで、プレイヤーはさまざまなゲームプレイ モードで互いに打ち負かそうとします。チームでプレイしたり、独自のレベルを設計したり、独自の世界を設計したりすることができます。
このページを他の言語で読む: 한국어
オリジナルのマリオ ウォーは 2002 年にSamuele Polettoによって作成され、4 人のスーパー マリオ キャラクターがお互いの頭の上に飛び乗ってさまざまなレベルで戦うことができました。これは Pascal/Assembly で書かれ、DOS 用にリリースされました。後のバージョンにはマップ エディターも含まれていました。
2004 年、 72dpiarmyフォーラムの創設者であるFlorian Hufsky は、スーパー マリオ ウォーとなるオープンソースの書き換えに取り組み始めました。このバージョンでは、カスタム キャラクター、追加のゲームプレイ モード、マップの仕組み、アイテム、パワーアップが導入されました。カスタム ユーザー コンテンツは (現在は廃止されている) smwstuff.com
サイトに保存されており、数千のマップとスキンが利用可能でした。オープンソースの性質により、このゲームはほぼすべてのデスクトップおよびコンソール システムに移植されています。
2009 年末にフロリアンは亡くなりました。ゲームの開発は減速し、最終的には停止し、SMW 1.8 beta 2 が最後の正式リリースとなりました。開発を継続または再開する試みはいくつかありましたが、どれも長期的には成功していないようです。さらに、技術的な問題により、 smwstuff.com
サイト全体とそのすべてのコンテンツも失われており、フォーラムで入手可能なアップローダーからの部分的なバックアップも失われています。
これは 2014 年頃に取り組み始めたフォークで、当初の目標は、異なるデバイス間でクロスプラットフォームで動作するネットワーク マルチプレイヤー サポートを実装することでした。また、フォーラムに散在していたコンテンツをもう一度一か所にまとめたサイトも作りたいと考えていました。これはsmwstuff.net
になりました。
ゲームに関しては、残念ながら、元のソース コードの品質と構造によって効果的な作業が不可能になることがすぐに明らかになりました。ほとんどのソース ファイルは「約 10000 行」のカテゴリにあり、1000 以上の LOC 関数が一般的で、ほとんどのそれらはグローバル変数を変更しており、100 の分岐を持つif-else
さえありました。
最終的にはネットワーク マルチプレイヤーを機能させることができましたが、完璧には程遠いです。条件が良ければ、ローカル ネットワークでは正常に動作する可能性がありますが、通常、微妙なバグや遅延により、インターネット上のゲームプレイは最適とは程遠いものになります。適切な実装には、ゲームのいくつかのコア部分の再設計と、コードを保守可能にするためにさらに数百のクリーンアップ/リファクタリング パッチが必要になる可能性があります。そしてもちろん、この種のプロジェクトでは、翌朝、どの会社からでも中止の通知が届く可能性もあります。
私にとって、これがこのプロジェクト(2016 年)にこれ以上時間を費やすのをやめたポイントでした。長期的には、元のゲームに何年もパッチを適用するよりも、完全に書き直す方が早くて効果的になる可能性があります。いずれにせよ、プロジェクトを以前よりも良い状態で残すことができ、将来の開発者にとって役立つことを願っています。楽しむ!
マリオ ウォーと SMW の古いリリースはここにあります。
スーパーマリオウォーはスーパーマリオのマルチプレイヤーゲームです。目標は、できるだけ多くの他のマリオを踏みつけてゲームに勝つことです。ゲームには、Capture-The-Flag、King of The Hill、Deathmatch、Team Deathmatch、トーナメント モード、Collect The Coins、レースなど、さまざまなゲームプレイ モードがあります。このゲームにはレベル エディターも含まれており、独自のマップを最初から作成したり、お気に入りのマリオ ゲームのセクションを再作成したりできます。想像力は限界です。最近追加されたワールド エディターは、指定された条件で多数のレベルをつなぎ合わせ、トーナメントのようなプレイと融合した SMB3 のようなエクスペリエンスを作成します。このゲームは、任天堂と、Samuele Poletto によるオリジナルのファンゲーム ゲーム、マリオ ウォーへのオマージュであることがより重要です。
このゲームには任天堂のゲームのアートワークとサウンドが使用されています。私たちは、この非営利ファンゲームがフェアユース作品として認定されることを願っています。私たちは任天堂のキャラクターとゲームをどれほど愛しているかを示すためにこのゲームを作成したかっただけです。
パッケージ マネージャーを使用して、これらの依存関係を取得できます。
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
他のシステムの場合は、次の場所から開発ファイルを手動でダウンロードできます。
このリポジトリには、依存関係が OS で利用できない場合、古い場合、または単にシステムにインストールしたくない場合に使用できるサブモジュールがいくつか含まれています。含まれているライブラリを使用するには、再帰的なクローン作成を実行します。
git clone --recursive https://github.com/mmatyas/supermariowar.git
あるいは、サブモジュールを手動で初期化することもできます。
git clone https://github.com/mmatyas/supermariowar.git
cd supermariowar
git submodule update --init
システム ライブラリを使用したい場合は、この機能を無効にするためのビルド構成セクションを参照してください。
ビルド ディレクトリを作成し、そこで CMake を実行してプロジェクトを構成します。その後、ビルドするたびにmake
呼び出すだけです。要するに:
mkdir build && cd build
cmake ..
make -j4 # -jN = build on N threads
./smw --datadir ../data
make
の主なビルド ターゲットは次のとおりです。
IDE (CodeBlocks、Eclipse など) 内で作業したい場合は、CMake を使用してそのプロジェクト ファイルを生成することもできます。詳細については、「ビルド構成」を参照してください。
インストール可能なパッケージを作成するには、単にmake package
実行します。これにより、TGZ、DEB、および RPM アーカイブが作成されます。
おそらく Xcode とそのコマンド ライン ツールが必要になります。 SDL と CMake はそのサイトから手動でインストールすることも、Homebrew で入手することもできます: brew install cmake sdl2 sdl2_image sdl2_mixer
。次に、Linux の指示に従って SMW をビルドします。
MinGW Shell/MSYS または Cygwin を使用している場合は、Linux ガイドに従うことができます。 CMake を使用して、CodeBlocks、Eclipse、Visual Studio などのさまざまな IDE 用のプロジェクト ファイルを生成することもできます。
詳細については、Wiki: Windows での構築を参照してください。
Linux の手順に従って、Raspberry Pi などの ARM デバイス上に SMW を構築できます。その方法を知っている場合は、クロス ツールチェーンをセットアップするかデバイスをエミュレートすることにより、通常の方法でクロスコンパイルすることもできます。詳細については、Wiki「ARM へのクロスコンパイル」を参照してください。
ビルド構成には、デフォルトのコンパイラ フラグがすでにいくつか含まれていますが、考えられる組み合わせ (ハード フロート、Thumb、NEON など) が多数あるため、カスタム パラメータを使用することもできます。この場合、CFLAGS 変数と CXXFLAGS 変数を定義し、 DISABLE_DEFAULT_CFLAGS
オプションを指定して CMake を実行します (「ビルド構成」を参照)。
Android ポートでは別のビルド システムが使用されています。詳細については、こちらをご覧ください。
SMW は、Emscripten を使用してブラウザで実行するように構築できます。ビルド手順は wiki で見つけることができます。
SMW は、SDL (1.2 または 2.0) が動作する任意のデバイスに移植できるはずです。通常、これには次の手順が含まれます。
TODO: このセクションを展開します
さまざまな CMake フラグを設定することで、ビルド構成を変更できます。これを行う最も簡単な方法は、 Build
ディレクトリからcmake-gui ..
を実行することです。要素の名前の上にマウスを置くと、要素の短い説明を読むこともできます。
あるいは、これらのオプションを-DFLAGNAME=VALUE
として CMake に直接渡すこともできます (例: cmake .. -DUSE_SDL2_LIBS=1
)。
docs/ ディレクトリ内のドキュメントを参照してください。