《超級瑪利歐戰爭》是一款由粉絲製作的多人《超級瑪利歐兄弟》風格的死亡競賽遊戲,玩家嘗試在各種遊戲模式中互相擊敗。您可以團隊合作、設計自己的關卡、設計自己的世界等等!
閱讀此頁面的其他語言版本:한국어
最初的《瑪利歐戰爭》是由Samuele Poletto於 2002 年創作的,其中四個超級瑪利歐角色可以透過跳到對方的頭上來進行不同等級的戰鬥。它是用 Pascal/Assembly 編寫的,並針對 DOS 發布。後來的版本還包括地圖編輯器。
2004 年, 72dpiarmy論壇的創始人Florian Hufsky開始進行開源重寫,後來成為《超級瑪利歐戰爭》。該版本引入了自訂角色、額外的遊戲模式和地圖機制、物品和道具。自訂使用者內容儲存在(現已不存在的) smwstuff.com
網站上,其中包含數千張地圖和皮膚。由於其開源性質,該遊戲已被移植到幾乎所有桌面和控制台系統。
2009年底,弗洛里安去世。遊戲的開發速度減慢並最終停止,SMW 1.8 beta 2 是最後一個正式版本。儘管已經多次嘗試繼續或重新啟動開發,但從長遠來看,似乎沒有一個成功。此外,由於技術問題,整個smwstuff.com
網站及其所有內容也遺失了,論壇上的上傳者提供了部分備份。
這是我在 2014 年左右開始開發的一個分支,最初的目標是實現可以在不同設備之間跨平台運行的網路多人遊戲支援。我還想做一個網站,將論壇中分散的內容再次收集到一個地方。這變成了smwstuff.net
。
至於遊戲,不幸的是,我們很快就發現原始原始碼的品質和結構將導致有效的工作變得不可能:大多數原始檔案都屬於「大約10000 行」類別,其中1000 多個LOC 函數很常見,其中大多數他們修改全域變量,甚至還有一個有一百個分支的if-else
。
最終我成功地使網路多人遊戲正常運行,但它還遠非完美。在良好的條件下,它在本地網路上可能運作良好,但微妙的錯誤和延遲通常會使網路上的遊戲玩法遠非最佳。正確的實作可能需要重新設計遊戲的幾個核心部分以及另外數百個清理/重構補丁以使程式碼可維護。當然,對於此類項目,第二天早上您也有可能收到任何公司的停止函。
對我來說,從那時起我就不再在這個專案上投入更多時間了(2016 年)。從長遠來看,完全重寫可能比多年來修補原始遊戲更快、更有效。無論哪種方式,我希望我已經讓專案處於比以前更好的狀態,並且它將對未來的開發人員有用。玩得開心!
可以在此處找到《馬裡奧戰爭》和《SMW》的舊版本。
《超級瑪利歐戰爭》是一款超級瑪利歐多人遊戲。我們的目標是踩踏盡可能多的其他馬裡奧來贏得比賽。遊戲中有一系列不同的遊戲模式,如奪旗、山丘之王、死亡競賽、團隊死亡競賽、錦標賽模式、收集金幣、競賽等等。遊戲還包括一個關卡編輯器,可讓您從頭開始創建自己的地圖,或重新創建您最喜歡的馬裡奧遊戲中的部分,您的想像是極限!最近新增了一個世界編輯器,它可以將一系列具有指定條件的關卡串聯起來,以創建類似 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
對於其他系統,您可以從以下位置手動下載開發檔案:
此儲存庫包含一些子模組,如果依賴項不適用於您的作業系統、過時或您只是不想將它們安裝在系統上,您可以使用這些子模組。若要使用包含的庫,請進行遞迴複製:
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 為各種 IDE(例如 CodeBlocks、Eclipse 或 Visual Studio)產生專案檔。
有關更多詳細信息,請參閱 wiki:Building on Windows。
您可以按照 Linux 說明在 ARM 裝置(例如 Raspberry Pi)上建置 SMW。如果您知道如何做到這一點,您還可以透過通常的方式進行交叉編譯,透過設定交叉工具鏈或模擬您的裝置。有關更多詳細信息,請參閱 wiki:交叉編譯到 ARM。
建置配置已包含一些預設編譯器標誌,但由於有許多可能的組合(硬浮點、Thumb、NEON,...),您可能需要使用自訂參數。在這種情況下,定義 CFLAGS 和 CXXFLAGS 變量,並使用DISABLE_DEFAULT_CFLAGS
選項來執行 CMake(請參閱建置配置)。
Android 連接埠使用不同的建置系統,您可以在此處找到更多詳細資訊。
可以使用 Emscripten 建立 SMW 以在瀏覽器中運行。您可以在 wiki 中找到建置說明。
您應該能夠將 SMW 移植到任何支援 SDL(1.2 或 2.0)的裝置。一般來說,這涉及以下步驟:
TODO:展開此部分
您可以透過設定各種 CMake 標誌來變更建置配置。最簡單的方法是從Build
目錄執行cmake-gui ..
。您也可以將滑鼠懸停在元素名稱上來閱讀元素的簡短描述。
或者,您可以將這些選項作為-DFLAGNAME=VALUE
直接傳遞給 CMake(例如cmake .. -DUSE_SDL2_LIBS=1
)。
請參閱 docs/ 目錄中的文件。