Super Mario War adalah game deathmatch gaya Super Mario Bros. multipemain buatan penggemar yang pemainnya mencoba untuk mengalahkan satu sama lain dalam berbagai mode permainan. Anda dapat bermain dalam tim, merancang level Anda sendiri, merancang dunia Anda sendiri, dan banyak lagi!
Baca halaman ini dalam bahasa lain: 한국어
Mario War asli diciptakan oleh Samuele Poletto pada tahun 2002, di mana empat karakter Super Mario dapat bertarung di berbagai level dengan saling melompati kepala. Itu ditulis dalam Pascal/Assembly, dan dirilis untuk DOS. Versi selanjutnya juga menyertakan editor peta.
Pada tahun 2004, Florian Hufsky , pendiri forum 72dpiarmy mulai mengerjakan penulisan ulang sumber terbuka, yang menjadi Perang Super Mario . Versi ini memperkenalkan karakter khusus, mode gameplay tambahan dan mekanisme peta, item, dan powerup. Konten pengguna khusus disimpan di situs smwstuff.com
(yang sekarang sudah tidak berfungsi), dengan ribuan peta dan skin tersedia. Karena sifatnya yang open-source, game ini telah di-porting ke hampir semua sistem desktop dan konsol.
Di penghujung tahun 2009, Florian meninggal dunia. Perkembangan game melambat dan akhirnya terhenti, dengan SMW 1.8 beta 2 menjadi rilis resmi terakhir. Meskipun terdapat beberapa upaya untuk melanjutkan atau memulai kembali pembangunan, tampaknya tidak ada satupun yang berhasil dalam jangka panjang. Selain itu, karena masalah teknis, seluruh situs smwstuff.com
dan seluruh kontennya juga telah hilang, dengan sebagian cadangan dari pengunggah tersedia di forum.
Ini adalah fork yang mulai saya kerjakan sekitar tahun 2014, dengan tujuan awal mengimplementasikan dukungan multipemain jaringan yang dapat berfungsi lintas platform antar perangkat yang berbeda. Saya juga ingin sekali lagi membuat situs untuk mengumpulkan konten yang tersebar dari forum di satu tempat. Ini menjadi smwstuff.net
.
Sedangkan untuk gamenya, sayangnya segera menjadi jelas bahwa kualitas dan struktur kode sumber asli akan membuat pekerjaan efektif menjadi tidak mungkin: sebagian besar file sumber berada dalam kategori "sekitar 10.000 baris", dengan 1000+ fungsi LOC yang umum, sebagian besar mereka memodifikasi variabel global, dan bahkan ada if-else
dengan ratusan cabang.
Akhirnya saya berhasil membuat jaringan multipemain berfungsi, namun masih jauh dari sempurna. Dengan kondisi yang baik, di jaringan lokal mungkin berfungsi dengan baik, namun bug dan lag yang tidak kentara biasanya membuat gameplay melalui internet jauh dari maksimal. Implementasi yang tepat mungkin memerlukan desain ulang beberapa bagian inti game dan beberapa ratus patch pembersihan/pemfaktoran ulang lainnya agar kode dapat dikelola. Dan, dengan proyek semacam ini tentunya, ada kemungkinan keesokan paginya Anda mendapat surat penghentian dari perusahaan mana pun.
Bagi saya, ini adalah titik di mana saya berhenti meluangkan lebih banyak waktu untuk proyek ini (2016). Dalam jangka panjang, penulisan ulang yang lengkap mungkin lebih cepat dan efektif daripada menambal game aslinya selama bertahun-tahun. Apa pun yang terjadi, saya harap saya meninggalkan proyek ini dalam keadaan yang lebih baik daripada sebelumnya, dan itu akan berguna bagi pengembang di masa depan. Selamat bersenang-senang!
Rilisan lama untuk Mario War dan SMW dapat ditemukan di sini.
Perang Super Mario adalah permainan multipemain Super Mario. Tujuannya adalah menginjak Mario lain sebanyak mungkin untuk memenangkan permainan. Ada berbagai mode gameplay yang berbeda dalam game ini, seperti Capture-The-Flag, King of The Hill, Deathmatch, Team Deathmatch, Tournament Mode, Collect The Coins, Race, dan masih banyak lagi. Game ini juga dilengkapi editor level yang memungkinkan Anda membuat peta sendiri dari awal, atau membuat ulang bagian dari game Mario favorit Anda, imajinasi Anda adalah batasnya! Yang baru-baru ini disertakan adalah editor dunia, yang merangkai sekumpulan level dengan kondisi tertentu untuk menciptakan pengalaman seperti SMB3 yang digabungkan dengan permainan seperti turnamen. Game ini, yang lebih penting lagi, merupakan penghormatan kepada Nintendo dan game fangame asli Mario War oleh Samuele Poletto.
Game ini menggunakan karya seni dan suara dari game Nintendo. Kami berharap fangame nonkomersial ini memenuhi syarat sebagai karya penggunaan wajar. Kami hanya ingin membuat game ini untuk menunjukkan betapa kami mengagumi karakter dan game Nintendo.
Anda dapat menggunakan manajer paket untuk mendapatkan dependensi berikut:
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
Untuk sistem lain, Anda dapat mengunduh file pengembangan secara manual dari:
Repositori ini berisi beberapa submodul yang dapat Anda gunakan jika dependensinya tidak tersedia untuk OS Anda, sudah usang, atau Anda tidak ingin menginstalnya di sistem Anda. Untuk menggunakan perpustakaan yang disertakan, lakukan kloning rekursif:
git clone --recursive https://github.com/mmatyas/supermariowar.git
Alternatifnya, Anda juga dapat menginisialisasi submodul secara manual:
git clone https://github.com/mmatyas/supermariowar.git
cd supermariowar
git submodule update --init
Jika Anda lebih suka menggunakan perpustakaan sistem, silakan lihat bagian Konfigurasi build untuk menonaktifkan fitur ini.
Buat direktori build dan jalankan CMake di sana untuk mengonfigurasi proyek. Kemudian cukup panggil make
setiap kali Anda ingin membangun. Pendeknya:
mkdir build && cd build
cmake ..
make -j4 # -jN = build on N threads
./smw --datadir ../data
Target pembangunan utama untuk make
adalah:
Jika Anda lebih suka bekerja dalam IDE (CodeBlocks, Eclipse, ...), Anda juga dapat membuat file proyek untuk IDE tersebut menggunakan CMake. Anda dapat menemukan informasi lebih lanjut di Konfigurasi build.
Untuk membuat paket yang dapat diinstal, cukup jalankan make package
. Ini akan membuat arsip TGZ, DEB dan RPM.
Anda mungkin memerlukan Xcode dan alat baris perintahnya; Anda dapat menginstal SDL dan CMake secara manual dari situsnya, atau Anda bisa mendapatkannya dengan Homebrew: brew install cmake sdl2 sdl2_image sdl2_mixer
. Kemudian ikuti instruksi Linux untuk membangun SMW.
Jika Anda menggunakan MinGW Shell/MSYS atau Cygwin, Anda dapat mengikuti panduan Linux. Anda juga dapat membuat file proyek dengan CMake untuk berbagai IDE, seperti CodeBlocks, Eclipse, atau Visual Studio.
Untuk lebih jelasnya, lihat wiki: Membangun di Windows.
Anda dapat membangun SMW di perangkat ARM, seperti Raspberry Pi, dengan mengikuti instruksi Linux. Jika Anda tahu cara melakukannya, Anda juga dapat melakukan kompilasi silang dengan cara biasa, baik dengan menyiapkan rantai alat lintas atau meniru perangkat Anda. Untuk lebih jelasnya, lihat wiki: Kompilasi silang ke ARM.
Konfigurasi build sudah berisi beberapa flag compiler default, tetapi karena ada banyak kemungkinan kombinasi (hard float, Thumb, NEON, ...), Anda mungkin ingin menggunakan parameter khusus. Dalam hal ini, tentukan var CFLAGS dan CXXFLAGS, dan jalankan CMake dengan opsi DISABLE_DEFAULT_CFLAGS
(lihat Konfigurasi build).
Port Android menggunakan sistem build yang berbeda, Anda dapat menemukan detail selengkapnya di sini.
SMW dapat dibuat untuk dijalankan di browser Anda menggunakan Emscripten. Anda dapat menemukan petunjuk pembuatannya di wiki.
Anda harus dapat mem-porting SMW ke perangkat apa pun yang menggunakan SDL (baik 1.2 atau 2.0). Umumnya, ini melibatkan langkah-langkah berikut:
TODO: perluas bagian ini
Anda dapat mengubah konfigurasi build dengan mengatur berbagai tanda CMake. Cara termudah untuk melakukannya adalah dengan menjalankan cmake-gui ..
dari direktori Build
. Anda juga dapat membaca deskripsi singkat suatu elemen dengan mengarahkan mouse ke namanya.
Alternatifnya, Anda dapat meneruskan opsi ini langsung ke CMake sebagai -DFLAGNAME=VALUE
(mis. cmake .. -DUSE_SDL2_LIBS=1
).
Silakan lihat dokumentasi di direktori docs/.