* كتبه 'Francesco Borzi المعروف أيضاً باسم Shin *
لماذا لا يزال هناك الكثير من الاخطاء في السيرفرات الخاصة لWoW, علي الرغم من أنها موجودة منذ سنوات عديدة؟
لا تقلق, هذه ليست محاضرة حقوق الطبع والنشر المعتادة عن شركة Blizzard. أريد فقط أن أشرح لماذا أكره معظم السيرفرات الخاصة لWorld of Warcraft
لقد كنت مبهورا بمحاكاة WoW منذ أن كان عمري 14 عاما. أتذكر أنه في المرة الأولي التي انضممت فيها إلى أحد هذه "العوالم الخاصة"، كان هناك الكثير من الأخطاء، ولكن كان بإمكانك اللعب مجانًا على الأقل. كما تعلم, لم أكن املك الا القليل من المال في ذلك الوقت, لذا لما يكن لدي أي بديل.
في سن ال15 بدأت أتساءل كيف تعمل الخوادم الخاصة بالفعل وكيف يمكن أن توجد, خاصة من منظور تقني. هل سرق أحدهم الكود من Blizzard ربما؟ لم يكن لدي أي فكرة - كنت صغيرا جدا وعديم الخبرة في ذلك الوقت! على الرغم من ذلك، بدأت في العبث، وبمساعدة صديق قديم لي (Fabio), تمكنت أخيرًا من تثبيت سيرفر WoW على جهاز الكمبيوتر الخاص بي.
في ذلك الوقت لم أكن أتخيل مقدار السعادة التي كنت سأحصل عليها وكم الأشياء التي كنت سأتعلمها بفضل هذا العالم السحري.
قد يبدو الأمر غريبًا، لكن هذا العالم لا يزال يسحرني الآن، وأنا بالغ، لدرجة أنني خصصت رسالة ماجستير كاملة في علوم الحاسب الآلي لهذا الموضوع.
لكن مع ذلك: أنا أكره معظم السيرفرات الخاصة وأريد حقاً أن أشرح السبب.
لكي أجعلك تفهم وجهة نظري، فأنا بحاجة إلى التوقف عند نقطة تقنية صغيرة حول إجراءات عمل WoW، والتي سأحاول وضعها في كلمات بسيطة.
على مستوى البرمجيات، هناك برنامجان يمكن اعتبارهما الفاعلين الرئيسيين في هذه اللعبة:
-
تطبيق الClient: وهو برنامج "World of Warcraft" الفعلي الذي يثبته كل لاعب على جهاز الكمبيوتر الخاص به من أجل الوصول إلى اللعبة
-
**تطبيق السيرفر **: وهو البرنامج الذي يعمل على أجهزة السيرفر.
العملية بسيطة للغاية: جميع الClients (اللاعبين) يتصلون بسيرفر من أجل التفاعل مع بعضهم البعض. يعرف الClient عنوان السيرفر، لأنه مخزّن في ملف "realmlist.wtf" الشهير (لهذا السبب عليك تعديل هذا الملف من أجل التبديل إلى سيرفر آخر).
عند اللعب على خوادم خاصة، فإن المبدأ هو نفسه تمامًا. يكمن الاختلاف في البرنامج الذي تستخدمه.
Client: يمكن للجميع الوصول إلى الClient الخاص ب World of Warcraft الأصلي. يمكنك الحصول عليه بسهولة عن طريق شرائه أو تنزيله عبر الإنترنت. هذا البرنامج هو بالضبط البرنامج الذي ستستخدمه للعب على السيرفر الرسمي. من الواضح أن السيرفرات الخاصة المختلفة لديها إصدارات مختلفة، لكنها تشير دائمًا إلى الClient الأصلي. تحتاج فقط إلى إجراء تغيير بسيط على ملف "realmlist.wtf"، واستبدال عنوان السيرفر الرسمي بعنوان السيرفر خاص. هذا كل شيء.
السيرفر: هذا مختلف تمامًا. لا أحد خارج Blizzard لديه حق الوصول إلى البرنامج الأصلي الذي يدير سيرفرات World of Warcraft الرسمية. لذا فإن هذه التطبيقات مختلفة تمامًا عن التطبيقات الأصلية.
كل البرامج التي تعمل على السيرفرات الخاصة تم إنشاؤها من خلال تقنية "الهندسة العكسية"، والتي تعني بكلمات بسيطة "أحاول كتابة برنامج يحاكي سلوك برنامج آخر، دون النظر إلى الكود الأصلي".
السؤال الآن هو: من قام بتنفيذ هذا البرنامج ومتى حدث ذلك؟
المواد المحمية بحقوق الطبع والنشر بالكامل (الصور، الأصوات، النماذج ثلاثية الأبعاد، الشعارات، إلخ...) موجودة داخل الClient الخاص باللعبة. يحتوي تطبيق السيرفر على أرقام ونصوص فقط. لذلك، فهو قانوني تمامًا إذا كنت تستخدمه لأغراض تعليمية.
من الذي ينشئ تطبيقات البرامج التي تدير السيرفرات الخاصة لWoW (التي يُطلق عليها عادةً "المحاكيات"؟) وكيف يفعلون ذلك؟
لا تحتاج إلى أن تكون خبيرًا لفهم أن كتابة تطبيق سيرفر للعبة MMORPG ذات نطاق كبير مثل World of Warcraft ليس بالأمر السهل بالتأكيد.
Blizzard شركة كبيرة تضم آلاف الموظفين. من المؤكد أن كتابة برنامج "يحاكي" تشغيل تطبيق السيرفر الخاص بهم ليس بالأمر الهيّن أو الممكن لشخص واحد (أو مجموعة صغيرة من المبرمجين).
والأمر لا يتعلق فقط بالتعقيد. لنفكر في مهام تافهة جدًا ولكنها متكررة، مثل إضافة كل الNPCs في العالم، بما في ذلك كل عنصر من غنائمهم مع نسبة الحظ الخاصة به، إلخ. مهمة رائعة في الأساس. ناهيك عن كل المهام المعقدة جدًا التي تتطلب ساعات من الدراسة والاختبار، مثل آليات الSpell وآليات الBoss، إلخ.
وباختصار .... لا يمكن حتى لأفضل مبرمج في العالم أن يقوم بكل هذا العمل بمفرده.
ومع ذلك هناك سيرفرات خاصة، والبرامج التي تجعلها تعمل. وبعض السيرفرات الخاصة قادرة الآن على تقديم جودة لعبة ليست بعيدة عن الجودة الأصلية (أشير هنا بشكل أساسي إلى الexpansions القديمة).
كيف يمكن ذلك؟
إذا كان لديك تفاحة ولديّ تفاحة وتبادلنا هذه التفاحات، فسيظل لدى كل منا تفاحة واحدة. ولكن إذا كانت لديك فكرة ولديّ فكرة وتبادلنا هذه الأفكار، فسيكون لدى كل منا فكرتين. (George Bernard Shaw)
فقط لتبسيط الأمر: البرنامج المفتوح المصدر هو برنامج تكون أكواده البرمجية متاحة للعامة.
في سياق السيرفرات الخاصة، يلعب البرنامج المفتوح المصدر دورًا أساسيًا.
قد يتذكر بعض اللاعبين القدامى أن جودة اللعبة على السيرفرات الخاصة كانت سيئة للغاية. لم يكن هناك شيء يعمل تقريبًا.
على سبيل المثال، إذا كنت Rogue وكنت متخفي فيمكن استهدافك من قبل أي شخص كتب /target Yourname
. خمن أي class قمت باختياره لشخصيتي الأولى ...
كانت الثورة الحقيقية هي MaNGOS، وهو مشروع مفتوح المصدر تم إنشاؤه في عام 2005، وكان الغرض منه توفير تطبيق سيرفر للعبة World of Warcraft. كان الخبر الرائع في MaNGOS، بالإضافة إلى قوته أنه كتطبيق مفتوح المصدر، كانت أكواده البرمجية متاحة للعامة تمامًا، ويمكن لأي مستخدم من جميع أنحاء العالم دراستها وتقديم مساهمته الخاصة (سواء من حيث إضافة أو إصلاح آليات اللعبة، أو من حيث الإبلاغ عن الأخطاء).
وبهذه الطريقة فقط، وبفضل مساهمة العديد من المتطوعين من جنسيات مختلفة، أصبح من الممكن تطوير تطبيق سيرفر قادر على محاكاة لعبة World of Warcraft بجودة لعب أعلى.
في عام 2009، وُلد مشروع مهم آخر TrinityCore، بالاعتماد على نظام MaNGOS.
حتى الآن، تعمل الغالبية العظمى من السيرفرات الخاصة على التطبيقات المستندة إلى MaNGOS/TrinityCore.
على مر السنين، وُلدت مشاريع مختلفة، وكانت تستند إلى كود MaNGOS/TrinityCore، والتي تختلف بشكل أساسي وفقًا لإصدار WoW المدعوم. على سبيل المثال AzerothCore لـ 3.3.5، OregonCore لـ 2.4.3، SkyFire لـ 5.4.8، CMaNGOS لـ Classic/TBC/WOTLK، وغيرها الكثير ... كلها تعتمد على MaNGOS و/أو TrinityCore.
لذا فإن السيرفرات الخاصة لم تصل إلى هذه الجودة إلا بفضل العديد من المساهمين الذين قاموا بتنفيذ المزيد والمزيد من مميزات اللعبة على مر السنين (من 2005 إلى يومنا هذا).
يمكن لأي مستخدم كمبيوتر متمرس اليوم تثبيت سيرفر WoW بسهولة، بدون أن يكون مبرمجًا.
لنفترض أن لدى كل من أليس وبوب سيرفر خاص لكل منهما، ولنفترض أنهما يستخدمان نفس الإصدار من اللعبة. يريد كل من أليس وبوب إصدار محتوى جديد للاعبيهما، والذي تم إغلاقه حتى الآن لأن الBosses "أ" و"ب" و"ج" و"د" بهم أخطاء كثيرة.
- أليس مطورة جيدة جدًا ويمكنها إصلاح كلا "أ" و "ب"
- لا يزال بوب مبتدئًا ويقوم فقط بإصلاح ''C"
تعمل أليس وبوب معًا ويتبادلان الإصلاحات الخاصة بهما. ونتيجة لذلك، سيكون لدى كلا سيرفراتهم Bosses تم إصلاحها بشكل مثالي "أ" و"ب" و"ج".
بالإضافة إلى ذلك، سيتعاون أليس وبوب من أجل العمل على "D" أيضًا.
أليس وبوب خصمان ولذلك يخوضان حرباً ضد بعضهما البعض. في سيرفر أليس، لا يعمل سوى الBoss "أ" و"ب". بينما في سيرفر بوب يعمل فقط "C". ينتقل بعض اللاعبين من سيرفر بوب إلى سيرفر أليس. يغلق سيرفر بوب بعد فترة من الوقت. بعض لاعبي سيرفر أليس يتوقفون عن اللعب لأنهم سئموا من القيام بـ "أ" و"ب" فقط لأن "ج" و"د" لا يعملان.
ونتيجة لذلك، أصبح اللاعبون على كلا السيرفرين أقل سعادة مما كانوا عليه في السيناريو السابق. حققت أليس أموالاً من تبرعات اللاعبين أكثر مما حققه بوب.
في الواقع، يتم إصدار كود MaNGOS/TrinityCore (والمشاريع المشتقة منها) بموجب رخصة GNU GPL.
وبكلمات بسيطة، تنص هذه الرخصة على ما يلي: استخدم الكود لفعل ما تريد، دون دفع أي شيء، طالما أن أي تعديل على الكود الأصلي يتم إصداره أيضًا بموجب نفس الرخصة. بشكل أساسي، يتطلب ترخيص هذه المشاريع من الذين يستخدمونها أن ينشروا أي تغييرات تطرأ عليها للعامة.
بالطبع، معظم السيرفرات الخاصة تستخدم هذه الرخصة كـ ورقة مرحاض. وبخلاف ذلك، لا ينبغي أن يكون هناك سيرفر خاص "أفضل إصلاحاً" من غيره.
فيما يلي قائمة بالأكاذيب التي يستمر مديرو العديد من خوادم WoW الخاصة في ترديدها على لاعبيهم:
أخبار كاذبة. لا يهم عدد التغييرات "التي أجريتها". ومع ذلك، لقد بدأت بمشروع قائم على MaNGOS.
ربما تكون قد أجريت بعض التحسينات، ولكن معظم الكود لا يزال يخص MaNGOS/TrinityCore.
ربما تكون جيدًا حقًا وأعدت كتابة معظم الكود على مر السنين. ومع ذلك، فقد بدأت من MaNGOS. بدونها، لم تكن لتتمكن في اليوم الأول من تشغيل ميزة تسجيل الدخول.
في معظم الحالات، لم يقم أي منهم بإصلاح أي شيء بالفعل. لقد قاموا فقط بتحميل الإصلاحات التي تأتي من مجتمع المصادر المفتوحة وطبّقوها على السيرفرات الخاصة بهم. ومع ذلك يأخذون كل الفضل.
بعض السيرفرات الخاصة تقوم بالفعل بإصلاح الأشياء من تلقاء نفسها. وغالبًا ما يكون لديهم فرق تطوير مخصصة يتم الدفع لها من الأموال التي تأتي من تبرعات اللاعبين.
لا يشارك معظمهم هذه الإصلاحات مع مجتمع التطوير.
حسنًا، يطلب منك المجتمع الذي قدم (مجانًا) البرنامج الذي تستخدمه لتشغيل السيرفر الخاص بك (مجانًا) أن تشاركه معهم، لكنك لا تزال تحتفظ به بشكل خاص. لذا أكرهك على أي حال.
حسنًا أيها البطل. حاول أن تفكر في هذا: إذا كان جميع المطورين يفعلون مثلك، فلن تكون أنت ولا السيرفر الخاص بك موجودًا.
لماذا؟ ببساطة لأنه لن يكون هناك أي من MaNGOS (ولا TrinityCore، ولا AzerothCore، إلخ...). هذه المشاريع موجودة بفضل المطورين الذين شاركوا أكوادهم البرمجية على عكسك.
إذا أبقى جميع المطورين أكوادهم سرية، فلن يكون لدينا محاكي WoW لائق ولن تتمكن من فتح السيرفر الخاص بك، لأنه لن يكون هناك أي برنامج متاح.
لا يوجد شيء "ليسرقوه". لا يمكنهم "سرقة" هذا الكود لأنه لا "ينتمي" إليك. لا، ولا حتى لو كنت قد كتبته بالفعل.
إن فلسفة المصدر المفتوح واضحة: يمكنك استخدام هذا الكود مجانًا، بشرط أن يكون أي تعديل عليه يجب أن يكون علنيًا.
ألا توافقني الرأي؟ حسنًا. إذن لا تستخدم أي كود مفتوح المصدر واكتب محاكي WoW الخاص بك من الصفر.
أتفهم تمامًا أن هذه القصة بأكملها حول الأخلاقيات والتراخيص لا تهم كثيرًا بالنسبة للاعبين العاديين في World of Warcraft. يرغب اللاعبون فقط في اللعب على سيرفر مستقر وثابت، ولا يهتمون كثيرًا ما إذا كان هذا السيرفر يتعاون مع المصدر المفتوح أم لا.
ولكن... حاول للحظة أن ترى الأمر من منظور آخر.
لا يهتم مطورو المشاريع مفتوحة المصدر (MaNGOS و TrinityCore و AzerothCore وغيرها...) بشكل أساسي بما تفعله السيرفرات الخاصة. بالطبع، كمطور، يزعجك كمطور أن ترى بعض مسؤولي السيرفرات العشوائية يأخذون الفضل مقابل عملك، ولكن في النهاية لا يغير ذلك من حياتك. العديد من مطوري البرامج مفتوحة المصدر يفعلون ذلك فقط من أجل المتعة والأغراض التعليمية.
في الواقع، إذا تعاونت جميع السيرفرات الخاصة مع المصادر المفتوحة، فإن حياة اللاعبين ستتغير تماماً! كما تعلم، في هذه الحالة، سيوفر كل سيرفر في هذه الحالة تجربة لعب أفضل بكثير لأي توسع. يمكن تطبيق مثال أليس وبوب المذكور من قبل على هذه الحالة أيضًا.
ومع ذلك، فإن الواقع هو أن هناك العديد من السيرفرات الخاصة في جميع أنحاء العالم، كل واحد منهم يعمل دائمًا على نفس الأشياء، ويتسابقون للقيام بها بشكل أسرع وأفضل. إذا تعاونوا مع بعضهم البعض بدلاً من ذلك، فإنهم سيتجنبون القيام بأعمال غير ضرورية وسيكون لديهم المزيد من الوقت والقوى العاملة. لذلك سيتمكنون بالتأكيد من تحقيق المزيد من الإنجازات.
ملاحظة: جودة (والمنافسة بين) السيرفرات الخاصة لا يجب أن تكون (فقط) حول الإصلاح، ولكن أيضًا حول عوامل أخرى مثل مهارات مديريها في إدارتها. تلعب جودة المجتمع أيضًا دورًا أساسيًا، تمامًا كما يحدث في خوادم Blizzard (التي تتساوى جميعها من منظور تقني).
إذا تم إغلاق سيرفر خاص، ولم يقم مطوروه بمشاركة عملهم، فسيضيع هذا العمل إلى الأبد.
الشيء الأكثر إثارة للاهتمام هو أن جميع المشاريع القائمة على MaNGOS علنية تمامًا، لذلك من الممكن التحقق بدقة من المساهمين فيها.
ونتيجةً لذلك، فإن جميع قوائم المساهمين في هذه المشاريع علنية تمامًا ويمكن لأي شخص التحقق من الذي أصلح ماذا بالفعل.
على سبيل المثال:
- القائمة الرسمية للمساهمين في https://github.com/cmangos/mangos-wotlk/blob/master/AUTHORS.md :MaNGOS
- القائمة الرسمية للمساهمين في https://github.com/TrinityCore/TrinityCore/blob/3.3.5/AUTHORS :TrinityCore
- القائمة الرسمية للمساهمين في https://github.com/AzerothCore/azerothcore-wotlk/graphs/contributors :AzerothCore
ملاحظة: يمكنك العثور على كاتب هذه المقالة في كل هذه القوائم
يحتوي أي مشروع مفتوح المصدر (مستضاف بشكل عام على GitHub) على قائمة بالمنشورات التي أنجزها مختلف المطورين. لكل منشور، يوجد كل من المؤلف والتاريخ.
من السهل جدًا التحقق من هذه المعلومات، فقط افتح official repository لأي محاكي. ابحث في جوجل على سبيل المثال عن "TrinityCore github" أو "AzerothCore github" وألقِ نظرة فقط.
سترى من فعل ماذا فعل ماذا. سترى جميع أسطر الكود ومؤلفيها وتعليقات المطورين الآخرين وما إلى ذلك. سترى كل شيء. لا مزيد من الأكاذيب!
##ماذا يمكنني أن أفعل كلاعب؟
نصيحتي هي أن تلعب/تدعم السيرفرات الخاصة التي تتعاون مع المصادر المفتوحة، على الرغم من نوع التوسعة والمحاكي الذي تستخدمه.
أو، على الأقل، تجنب تلك السيرفرات التي تبيع أعمال الآخرين على أنها أعمالهم الخاصة، وتزيل الفضل من المؤلفين الأصليين.
جديد: في عام 2021 تم إطلاق المشروع الجديد ChromieCraft، الذي يتميز بخادم مفتوح المصدر بالكامل وتقدمي.
شكر خاص ل Laura Bartiromo