Super Mario War เป็นเกม Deathmatch สไตล์ Super Mario Bros. ที่เล่นได้หลายคนซึ่งสร้างโดยแฟน ๆ โดยผู้เล่นพยายามเอาชนะกันเองในโหมดการเล่นที่หลากหลาย คุณสามารถเล่นเป็นทีม ออกแบบด่านของคุณเอง ออกแบบโลกของคุณเอง และอื่นๆ อีกมากมาย!
อ่านหน้านี้ในภาษาอื่น: เกาหลี
Mario War ดั้งเดิมถูกสร้างขึ้นโดย Samuele Poletto ในปี 2545 โดยตัวละคร Super Mario สี่ตัวสามารถต่อสู้ในระดับต่างๆ ได้โดยการกระโดดบนหัวของกันและกัน เขียนด้วยภาษา Pascal/Assembly และเผยแพร่สำหรับ DOS เวอร์ชันต่อมายังมีตัวแก้ไขแผนที่ด้วย
ในปี 2004 Florian Hufsky ผู้ก่อตั้งฟอรัม 72dpiarmy เริ่มทำงานเกี่ยวกับการเขียนโอเพ่นซอร์สใหม่ ซึ่งต่อมาได้กลายเป็น Super Mario War เวอร์ชันนี้นำเสนอตัวละครที่กำหนดเอง โหมดการเล่นเพิ่มเติม และกลไกแผนที่ ไอเท็ม และการเพิ่มพลัง เนื้อหาผู้ใช้แบบกำหนดเองถูกจัดเก็บไว้ในไซต์ smwstuff.com (ซึ่งปัจจุบันเลิกใช้แล้ว) พร้อมด้วยแผนที่และสกินนับพันรายการ เนื่องจากลักษณะของโอเพ่นซอร์ส เกมดังกล่าวจึงถูกย้ายไปยังเดสก์ท็อปและระบบคอนโซลทุกเครื่อง
เมื่อปลายปี 2552 ฟลอเรียนเสียชีวิต การพัฒนาเกมช้าลงและหยุดลงในที่สุด โดย SMW 1.8 เบต้า 2 เป็นรุ่นล่าสุดอย่างเป็นทางการ แม้ว่าจะมีความพยายามหลายครั้งในการดำเนินการต่อหรือเริ่มการพัฒนาใหม่อีกครั้ง แต่ดูเหมือนว่าจะไม่มีความพยายามใดที่จะประสบความสำเร็จในระยะยาว นอกจากนี้ เนื่องจากปัญหาด้านเทคนิค เว็บไซต์ smwstuff.com ทั้งหมดและเนื้อหาทั้งหมดจึงสูญหายไป โดยมีการสำรองข้อมูลบางส่วนจากผู้อัปโหลดที่มีอยู่ในฟอรัม
นี่เป็นทางแยกที่ฉันเริ่มทำงานประมาณปี 2014 โดยมีเป้าหมายเริ่มแรกในการใช้งานการสนับสนุนผู้เล่นหลายคนบนเครือข่ายที่จะทำงานข้ามแพลตฟอร์มระหว่างอุปกรณ์ต่างๆ ฉันยังอยากจะสร้างเว็บไซต์สำหรับรวบรวมเนื้อหาที่กระจัดกระจายจากฟอรั่มมาไว้ในที่เดียวอีกครั้ง นี่กลายเป็น smwstuff.net
สำหรับเกม น่าเสียดายที่เป็นที่ชัดเจนว่าคุณภาพและโครงสร้างของซอร์สโค้ดต้นฉบับจะทำให้การทำงานที่มีประสิทธิภาพเป็นไปไม่ได้: ไฟล์ต้นฉบับส่วนใหญ่อยู่ในหมวดหมู่ "ประมาณ 10,000 บรรทัด" โดยมีฟังก์ชัน LOC มากกว่า 1,000 รายการซึ่งเป็นเรื่องปกติ ส่วนใหญ่ พวกเขาแก้ไขตัวแปรส่วนกลาง และยังมี if-else ที่มีสาขาเป็นร้อยสาขา
ในที่สุดฉันก็สามารถทำให้ผู้เล่นหลายคนบนเครือข่ายทำงานได้ แต่มันก็ยังห่างไกลจากความสมบูรณ์แบบ ด้วยเงื่อนไขที่ดี มันอาจทำงานได้ดีบนเครือข่ายท้องถิ่น แต่ข้อบกพร่องและความล่าช้าเล็กน้อยมักจะทำให้การเล่นเกมผ่านอินเทอร์เน็ตยังห่างไกลจากความเหมาะสม การใช้งานที่เหมาะสมอาจต้องมีการออกแบบส่วนหลักหลายส่วนของเกมใหม่ และแพตช์ล้างข้อมูล/ปรับโครงสร้างใหม่อีกหลายร้อยรายการเพื่อให้สามารถบำรุงรักษาโค้ดได้ และด้วยโครงการประเภทนี้ แน่นอนว่า ยังมีโอกาสที่เช้าวันรุ่งขึ้นคุณจะได้รับจดหมายยุติและเลิกจ้างจากบริษัทใดก็ตาม
สำหรับฉัน นี่คือจุดที่ฉันได้หยุดทุ่มเทเวลาให้กับโปรเจ็กต์นี้มากขึ้น (2016) ในระยะยาว การเขียนใหม่ทั้งหมดอาจเร็วกว่าและมีประสิทธิภาพมากกว่าการแพตช์เกมต้นฉบับเป็นเวลาหลายปี ไม่ว่าจะด้วยวิธีใดก็ตาม ฉันหวังว่าฉันจะออกจากโปรเจ็กต์ไปในสถานะที่ดีขึ้นกว่าที่เคยเป็นมา และมันจะเป็นประโยชน์สำหรับนักพัฒนาในอนาคต มีความสุข!
สามารถดูเวอร์ชันเก่าของ Mario War และ SMW ได้ที่นี่
Super Mario War เป็นเกมที่มีผู้เล่นหลายคนใน Super Mario เป้าหมายคือการกระทืบมาริโอตัวอื่นให้ได้มากที่สุดเพื่อชนะเกมนี้ มีโหมดการเล่นที่หลากหลายในเกม เช่น Capture-The-Flag, King of The Hill, Deathmatch, Team Deathmatch, Tournament Mode, Collect The Coins, Race และอื่นๆ อีกมากมาย เกมดังกล่าวยังมีตัวแก้ไขระดับที่ให้คุณสร้างแผนที่ของคุณเองตั้งแต่เริ่มต้น หรือสร้างส่วนใหม่จากเกมมาริโอที่คุณชื่นชอบ จินตนาการของคุณมีขีดจำกัด! รวมล่าสุดคือตัวแก้ไขโลกซึ่งรวบรวมระดับต่างๆ พร้อมเงื่อนไขที่กำหนดเพื่อสร้างประสบการณ์ที่เหมือน SMB3 ผสานเข้ากับทัวร์นาเมนต์เช่นการเล่น เกมนี้มีความสำคัญมากกว่านั้นเพื่อเป็นเครื่องบรรณาการให้กับ Nintendo และเกมแฟนเกมดั้งเดิม Mario War โดย Samuele Poletto
เกมดังกล่าวใช้อาร์ตเวิร์กและเสียงจากเกม Nintendo เราหวังว่าแฟนเกมที่ไม่ใช่เชิงพาณิชย์นี้จะมีคุณสมบัติเป็นการใช้งานโดยชอบธรรม เราแค่อยากสร้างเกมนี้ขึ้นมาเพื่อแสดงให้เห็นว่าเราชื่นชอบตัวละครและเกมของ Nintendo มากแค่ไหน
คุณสามารถใช้ตัวจัดการแพ็คเกจเพื่อรับการขึ้นต่อกันเหล่านี้:
apt-get install cmake libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev zlib1g-devyum install cmake SDL-devel SDL_image-devel SDL_mixer-devel zlib-develpacman -S cmake sdl sdl_image sdl_mixer zlibpacman -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หากคุณต้องการใช้ไลบรารีระบบ โปรดดูส่วนการกำหนดค่า Build สำหรับการปิดใช้งานคุณลักษณะนี้
สร้างไดเร็กทอรี build และรัน CMake ที่นั่นเพื่อกำหนดค่าโปรเจ็กต์ จากนั้นเพียงโทรหา make ทุกครั้งที่คุณต้องการสร้าง ในระยะสั้น:
mkdir build && cd build
cmake ..
make -j4 # -jN = build on N threads
./smw --datadir ../data เป้าหมายบิลด์หลักสำหรับ make คือ:
หากคุณต้องการทำงานภายใน IDE (CodeBlocks, Eclipse, ...) คุณสามารถสร้างไฟล์โปรเจ็กต์สำหรับมันโดยใช้ CMake ได้ คุณสามารถค้นหาข้อมูลเพิ่มเติมได้ในการกำหนดค่า Build
หากต้องการสร้างแพ็คเกจที่สามารถติดตั้งได้ ให้รัน 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
สำหรับรายละเอียดเพิ่มเติม โปรดดูที่วิกิ: การสร้างบน Windows
คุณสามารถสร้าง SMW บนอุปกรณ์ ARM เช่น Raspberry Pi โดยทำตามคำแนะนำของ Linux หากคุณรู้วิธีการทำ คุณยังสามารถคอมไพล์ข้ามวิธีปกติได้ ไม่ว่าจะโดยการตั้งค่า cross toolchain หรือจำลองอุปกรณ์ของคุณ สำหรับรายละเอียดเพิ่มเติม โปรดดูที่วิกิ: การคอมไพล์ข้ามไปยัง ARM
การกำหนดค่า build มีแฟล็กคอมไพเลอร์เริ่มต้นอยู่แล้ว แต่เนื่องจากมีการผสมผสานที่เป็นไปได้หลายอย่าง (hard float, Thumb, NEON, ...) คุณอาจต้องการใช้พารามิเตอร์ที่กำหนดเอง ในกรณีนี้ ให้กำหนด CFLAGS และ CXXFLAGS vars และรัน CMake ด้วยตัวเลือก DISABLE_DEFAULT_CFLAGS (ดูการกำหนดค่า Build)
พอร์ต Android ใช้ระบบบิลด์อื่น คุณสามารถดูรายละเอียดเพิ่มเติมได้ที่นี่
SMW สามารถสร้างให้ทำงานในเบราว์เซอร์ของคุณโดยใช้ Emscripten คุณสามารถดูคำแนะนำในการสร้างได้ในวิกิ
คุณควรจะสามารถพอร์ต SMW ไปยังอุปกรณ์ใดๆ ที่ SDL (1.2 หรือ 2.0) ทำงานได้ โดยทั่วไปจะเกี่ยวข้องกับขั้นตอนต่อไปนี้:
สิ่งที่ต้องทำ: ขยายส่วนนี้
คุณสามารถเปลี่ยนการกำหนดค่าบิลด์ได้โดยการตั้งค่าแฟล็ก CMake ต่างๆ วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการรัน cmake-gui .. จากไดเร็กทอรี Build คุณสามารถอ่านคำอธิบายสั้นๆ ขององค์ประกอบได้โดยการวางเมาส์เหนือชื่อองค์ประกอบด้วย
หรือคุณสามารถส่งตัวเลือกเหล่านี้โดยตรงไปยัง CMake เป็น -DFLAGNAME=VALUE (เช่น cmake .. -DUSE_SDL2_LIBS=1 )
โปรดดูเอกสารประกอบในไดเรกทอรี docs/