Super Mario War هي لعبة قتال الموت متعددة اللاعبين من صنع المعجبين بأسلوب Super Mario Bros. حيث يحاول اللاعبون التغلب على بعضهم البعض في مجموعة متنوعة من أوضاع اللعب. يمكنك اللعب ضمن فرق، وتصميم مستوياتك الخاصة، وتصميم عوالمك الخاصة، وغير ذلك الكثير!
اقرأ هذه الصفحة باللغات الأخرى: 한국어
تم إنشاء حرب ماريو الأصلية بواسطة سامويل بوليتو في عام 2002، حيث يمكن لأربعة شخصيات من سوبر ماريو القتال على مستويات مختلفة من خلال القفز على رؤوس بعضهم البعض. تمت كتابته بلغة Pascal/Assembly، وتم إصداره لـ DOS. تضمنت الإصدارات اللاحقة أيضًا محرر خرائط.
في عام 2004، بدأ فلوريان هوفسكي ، مؤسس منتدى 72dpiarmy، العمل على إعادة كتابة مفتوحة المصدر، والتي أصبحت حرب سوبر ماريو . قدم هذا الإصدار شخصيات مخصصة وأوضاع لعب إضافية وميكانيكا الخرائط والعناصر وتعزيزات الطاقة. تم تخزين محتويات المستخدم المخصصة على موقع smwstuff.com
(الذي لم يعد موجودًا الآن)، مع توفر آلاف الخرائط والأسطح. نظرًا لطبيعتها مفتوحة المصدر، فقد تم نقل اللعبة إلى كل أنظمة سطح المكتب ووحدات التحكم تقريبًا.
وفي نهاية عام 2009، توفي فلوريان. تباطأ تطوير اللعبة وتوقف في النهاية، وكان SMW 1.8 beta 2 هو الإصدار الرسمي الأخير. وفي حين كانت هناك عدة محاولات لمواصلة التطوير أو إعادة تشغيله، يبدو أن أياً منها لم ينجح على المدى الطويل. بالإضافة إلى ذلك، نظرًا لمشكلات فنية، تم أيضًا فقدان موقع smwstuff.com
بالكامل وجميع محتوياته، مع توفر نسخ احتياطية جزئية من القائمين بالتحميل في المنتدى.
هذا هو الشوكة التي بدأت العمل عليها في عام 2014 تقريبًا، بهدف أولي هو تنفيذ دعم الشبكة المتعددة اللاعبين والذي من شأنه أن يعمل عبر الأنظمة الأساسية بين الأجهزة المختلفة. لقد أردت أيضًا إنشاء موقع لجمع المحتوى المتفرق من المنتدى في مكان واحد مرة أخرى. أصبح هذا smwstuff.net
.
أما بالنسبة للعبة، فقد أصبح من الواضح قريبًا جدًا أن جودة وبنية كود المصدر الأصلي ستجعل العمل الفعال مستحيلًا: كانت معظم ملفات المصدر في فئة "حوالي 10000 سطر"، مع وجود أكثر من 1000 وظيفة LOC شائعة، ومعظمها يقومون بتعديل المتغيرات العالمية، وكان هناك أيضًا if-else
بمائة فرع.
لقد تمكنت أخيرًا من جعل الشبكة متعددة اللاعبين تعمل، لكنها بعيدة عن الكمال. في ظل الظروف الجيدة، قد تعمل بشكل جيد على الشبكات المحلية، ولكن الأخطاء الدقيقة والتأخير عادةً ما يجعل اللعب عبر الإنترنت بعيدًا عن المستوى الأمثل. من المحتمل أن يتطلب التنفيذ الصحيح إعادة تصميم العديد من الأجزاء الأساسية للعبة وعدة مئات أخرى من تصحيحات التنظيف/إعادة البناء لجعل الكود قابلاً للصيانة. ومع هذا النوع من المشاريع بالطبع، هناك أيضًا احتمال أن تتلقى في صباح اليوم التالي خطابًا بالتوقف والكف من أي شركة.
بالنسبة لي، كانت هذه هي النقطة التي توقفت فيها عن تخصيص المزيد من الوقت لهذا المشروع (2016). على المدى الطويل، قد تكون إعادة الكتابة الكاملة أسرع وأكثر فعالية من تصحيح اللعبة الأصلية لسنوات. وفي كلتا الحالتين، آمل أن أكون قد تركت المشروع في حالة أفضل مما كان عليه، وأن يكون مفيدًا للمطورين المستقبليين. استمتع!
يمكن العثور على الإصدارات القديمة لـMario War وSMW هنا.
Super Mario War هي لعبة سوبر ماريو متعددة اللاعبين. الهدف هو دوس أكبر عدد ممكن من ماريوز للفوز باللعبة. هناك مجموعة من أوضاع اللعب المختلفة في اللعبة، مثل Capture-The-Flag وKing of The Hill وDeathmatch وTeam Deathmatch وTournament Mode وCollect The Coins وRace وغيرها الكثير. تتضمن اللعبة أيضًا محرر مستوى يتيح لك إنشاء خرائطك الخاصة من الصفر، أو إعادة إنشاء أقسام من لعبة ماريو المفضلة لديك، خيالك هو الحد الأقصى! تم تضمين محرر عالمي مؤخرًا، والذي يربط مجموعة من المستويات بشروط محددة لإنشاء تجربة تشبه SMB3 مدمجة مع اللعب مثل البطولة. والأهم من ذلك أن اللعبة هي بمثابة تكريم لشركة Nintendo ولعبة fangame الأصلية Mario War بواسطة Samuele Poletto.
تستخدم اللعبة أعمالًا فنية وأصواتًا من ألعاب Nintendo. نأمل أن تكون لعبة المعجبين غير التجارية هذه مؤهلة للاستخدام العادل. أردنا فقط إنشاء هذه اللعبة لإظهار مدى حبنا لشخصيات وألعاب Nintendo.
يمكنك استخدام مديري الحزم للحصول على هذه التبعيات:
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 لمختلف بيئات التطوير، مثل CodeBlocks أو Eclipse أو Visual Studio.
لمزيد من التفاصيل، راجع الويكي: البناء على Windows.
يمكنك إنشاء SMW على أجهزة ARM، مثل Raspberry Pi، باتباع تعليمات Linux. إذا كنت تعرف كيفية القيام بذلك، فيمكنك أيضًا الترجمة التبادلية بالطريقة المعتادة، إما عن طريق إعداد سلسلة أدوات مشتركة أو محاكاة جهازك. لمزيد من التفاصيل، راجع الويكي: التحويل البرمجي المتقاطع إلى ARM.
يحتوي تكوين البناء على بعض إشارات المترجم الافتراضية بالفعل، ولكن نظرًا لوجود العديد من المجموعات الممكنة (hard float، Thumb، NEON، ...)، فقد ترغب في استخدام معلمات مخصصة. في هذه الحالة، حدد متغيرات CFLAGS وCXXFLAGS، وقم بتشغيل CMake باستخدام خيار DISABLE_DEFAULT_CFLAGS
(راجع تكوين التكوين).
يستخدم منفذ Android نظام بناء مختلف، ويمكنك العثور على مزيد من التفاصيل هنا.
يمكن إنشاء SMW ليتم تشغيله في متصفحك باستخدام Emscripten. يمكنك العثور على تعليمات البناء في الويكي.
يجب أن تكون قادرًا على توصيل SMW إلى أي جهاز يعمل عليه SDL (إما 1.2 أو 2.0). بشكل عام، يتضمن ذلك الخطوات التالية:
TODO: قم بتوسيع هذا القسم
يمكنك تغيير تكوين البنية عن طريق تعيين إشارات CMake المختلفة. إن أبسط طريقة للقيام بذلك هي عن طريق تشغيل cmake-gui ..
من دليل Build
. يمكنك قراءة وصف قصير لعنصر ما عن طريق تحريك الماوس على اسمه أيضًا.
وبدلاً من ذلك، يمكنك تمرير هذه الخيارات مباشرةً إلى CMake كـ -DFLAGNAME=VALUE
(على سبيل المثال. cmake .. -DUSE_SDL2_LIBS=1
).
يرجى الاطلاع على الوثائق في الدليل / docs.