يبدو أن فلسفة Web3 تتناسب تمامًا مع صناعة الألعاب واتجاه اللعب في السنوات الأخيرة. لبعض الوقت، وُعدنا بإحداث تغيير جديد في شكل تجربة فريدة من نوعها: الألعاب عبر السلسلة. تعمل ميزات مثل اللامركزية على تحويل توازن القوى بعيدًا عن القائمين على صناعة الألعاب وتتجه أكثر نحو الكيانات الإبداعية، وتكسر قابلية التركيب جدران الحدائق المغلقة منذ فترة طويلة، والملكية الحقيقية للاعبين. لكن هذه المُثُل القوية تظل في مرتبة متأخرة لأننا لم نراها على أرض الواقع بعد. MUD هي أول محاولة شجاعة لإنشاء إطار كامل للألعاب عبر السلسلة والتي يمكن أن تشعل الجيل القادم من الألعاب.
دروس من صناعة الألعاب التقليدية
حول الابتكار و البدء من الصفر هناك الكثير مما يمكن قوله عن البدء في بناء كل شيء وإنشاء مخلوقات جديدة تمامًا، ولكن فيما يتعلق بالألعاب، هناك عقود من الدروس المستفادة في أنماط التصميم وإنشاء مجالات هندسية جديدة تستحق أن تؤخذ على محمل الجد، وتجاهلها يعادل محاولة إنشاء ألعاب AAA بتقنية Atari.
عند النظر إلى المراحل الأولى من تطوير اللعبة، يمكننا أن نرى أوجه تشابه واضحة مع الألعاب الموجودة على السلسلة:الكثير من المواهب ومستويات عالية من الإلهام المشاريع، لكنها افتقرت إلى التنسيق والإطار الواضح.
في الأيام الأولى لألعاب الفيديو، قبل ولادة محركات الألعاب، تم إنشاء المعتقدات وأنماط التصميم. هناك القليل من القواسم المشتركة بين ألعاب الفيديو المختلفة،إلى الحد الذي قد تحتوي فيه الألعاب المشابهة على قواعد برمجية مختلفة تمامًا. لكن كل شيء تغيرمع ظهور محركات الألعاب.
من الصعب التمييز بشكل واضح بين محرك اللعبة واللعبة نفسها. بشكل عام، محرك اللعبة عبارة عن إطار عمليحتوي على مجموعة من القواعد وأنماط التصميم التي يمكن تعديلها وتوسيعها قليلاً لإنشاء تطبيقات مختلفة للعبة. بحلول التسعينيات، بعد سنوات من تطوير الألعاب المجزأة، كانت الأمور تتغير، حيث أصبحت محركات الألعاب "القائمة على النوع" وبعض الجهود المبذولة لتطوير محركات للأغراض العامة هي المهيمنة. يمكن إعادة استخدام المكونات الأساسية للألعاب مثل "Doom" و"Unreal" لإنشاء العديد من الألعاب المختلفة.بدأت الألعاب ذات الأنواع المشابهة في مشاركة العديد من عمليات زرع المنطق الأساسية< قوي > . لقد انخفضت تكلفة وتعقيد تطوير ألعاب السباق والقتال وألعاب إطلاق النار من منظور الشخص الأول بشكل ملحوظ. أصبح المستحيل ممكنًا، واستمر تراكم التعليمات البرمجية بعد جيل من الألعاب والترقيات. من وجهة نظر برمجية، يعد هذا أحد الأسباب الرئيسية التي جعلت تطوير الألعاب صناعة ضخمة.
هناك العديد من المشكلات الأساسية في الألعاب الموجودة على السلسلة:
الافتقار إلى إطار العمل: يحاول كل فريق بناء كل شيء من الصفر، مما يؤدي إلى عدم الكفاءة والافتقار إلى منشئين لمعالجة نفس المشكلات وتحسين أفضل الحلول ملخص الخبرة والمعرفة بالنظام.
الافتقار إلى إمكانية إعادة استخدام التعليمات البرمجية: خذ العديد من الألعاب الموجودة على السلسلة والتي يتم تطويرها حاليًا كمثال. كم عدد هذه الأشياء التي يمكن تكرارها بنجاح وإنشاء لعبة مختلفة قليلاً؟ ما هو عدد الفروق الواضحة بين الطبقات والمكونات المختلفة للعبة، مما يسمح ببناء أجيال جديدة من الألعاب باستخدام قواعد برمجية مماثلة؟ لا يزال الوعد بإنشاء أهم مشروع مفتوح المصدر للألعاب وأكثرها ترابطًا يبدو بعيدًا.
الافتقار إلى إمكانية تكوين البيانات: لا ينتهي الأمر بإمكانية إعادة استخدام التعليمات البرمجية، بل > يتضمن أيضًا قدرة الألعاب الموجودة على السلسلة على الاستفادة من حالة blockchain المشتركة للبناء على بعضها البعض باستخدام البيانات من اللعبة "أ" واللعبة "ب". من الناحية العملية، يتطلب الأمر الكثير من العمل والموارد لدمج البيانات والمنطق الخاص باللعبة "أ"، وتصبح لعبة واحدة لعبة أخرى.
حل MUD:
MUD هي أول محاولة شجاعة للعمل كمحرك وإطار عمل لإنشاء الألعاب على السلسلة من خلال توفير هيكل قابل للصيانة والترقية والتشكيل. يُعتبر نموذج نظام مكونات الكيان (ECS) الذي تؤيده MUD مفيدًا لتطوير الألعاب بشكل عام وأكثر فائدة لتطوير الألعاب على السلسلة.
ECS في العقود الذكية:
الأفضل في MUD العناصر الأساسية هي المكونات (المكونات)، والتي توجد في شكل عقود ذكية وتعمل مثل قاعدة البيانات التي تخزن بيانات الكيان. على سبيل المثال، لدينا كيان (عنوان Ethereum) مثل عنوان محفظة اللاعب. يمكن أن يكون للكيان الذي يمثله هذا العنوان خصائص مختلفة، مثل: الموضع (x، y) في مكون الموقع، والمستوى 10 في مكون المستوى، والقيمة 50 في مكون الرمز المميز. تحتوي المكونات فقط على التعيين والتكوين الأساسي.
الأنظمة (الأنظمة) أكثر تعقيدًا وتنفذ منطق تغيير قيم المكونات (المكونات). يمكنك التفكير في الأمر على أنه واجهة برمجة تطبيقات طلب POST على قاعدة بيانات (مكون) محددة للأنظمة. فقط من خلال الحصول على أذونات الكتابة لمكونات محددة، يمكنهم كتابة البيانات إلى هذا المكون. وهنا تصبح الأمور مثيرة للاهتمام. يمكن للأنظمة أن تتفاعل مع مكونات مختلفة لإنشاء منطق تفصيلي. يمكن أن يكون لديك نظام حركة يحدد الحركات الصحيحة التي يمكن للاعب القيام بها (على سبيل المثال: خطوتان لكل حركة)، أو يمكن أن يكون لديك نظام مكافآت يمنح اللاعبين الذهب في كل مرة يصلون فيها إلى مستوى أعلى.
يتم تسجيل كل هذا لدى جهة الاتصال العالمية بحيث يؤدي كل تغيير في بيانات المكون إلى إصدار حدث. العقود العالمية غير مسموح بها ويمكن لأي شخص إضافة أنظمة ومكونات جديدة. من الناحية النظرية، يمكن للعقود العالمية المختلفة أن تتفاعل مع بعضها البعض.
إن إدخال ECS في الألعاب الموجودة على السلسلة سينتج بنية أنيقة للغاية، مما يجعل OPcraft مكونًا من 10 مكونات فقط وحوالي 15 نظامًا.
قابلية التركيب الحقيقية
لا يعد نظام ECS منطقيًا تمامًا في تطوير الألعاب التقليدية فحسب، بل أكثر من ذلك في الألعاب الموجودة على السلسلة لأنه يوفر ميزتين مهمتين يتم توفيرها:
إمكانية ترقية الألعاب المنشورة
أعلى درجة من قابلية التركيب
ol>تخيل مسارين: أحدهما هو الحفاظ على التصميم الأساسي، والآخر هو تغيير منطق اللعبة الأساسي.
تخيل لعبة استراتيجية PVP قياسية حيث يقوم اللاعبون ببناء جيوش لمحاربة بعضهم البعض. كان الإصدار الأساسي ثنائي الأبعاد، ولكنقرر الفريق الآن إنشاء عرض ثلاثي الأبعاد للعبة. كل ما يحتاجون إليه هو أخذ جميع الأنظمة المتعلقة بالموقع وإنشاء نسخة مطورة باستخدام الإحداثيات (x,y,z) بدلاً من (x,y). جميع الأنظمة والمكونات الأخرى (مثل: نظام الهجوم والمباني الصحية والجيش) يمكن أن تظل دون تغيير. بل إنها تتجاوز نطاق فريق التطوير الأصلي. يمكن للمجتمع إنشاء تعديلات مختلفة للعبة عن طريق إعادة نشر الأنظمة والمكونات، وحتى التنافس مع نفس المكونات من خلال منح حق الوصول للكتابة إلى الأنظمة الجديدة للتفاعل (في حالة وجود لعبة مملوكة للمجتمع، يمكن استخدام نماذج الإدارة المختلفة للتصويت على مثل هذه القرارات).
يحتفظ أسلوب آخر بنفس المكونات والأنظمة دون منح النظام الجديد حق الوصول للكتابة، ولكن من خلال إضافة مكونات وأنظمة لتوسيع الوظائف داخل اللعبة، كيف سيبدو؟ يحب؟ لنتأمل هنا لعبة شطرنج أساسية متصلة بالسلسلة، حيث تم نشر نظام من الحركات والقواعد. يمكن للأشخاص أن يلعبوا اللعبة تمامًا مثل لعبة الشطرنج الواقعية، ولكن ربما يقرر فريقك إنشاء طبقة إضافية: طبقة اجتماعية مع نظام تصنيف للمطابقة أو أي حالة استخدام أخرى. كل ما عليك فعله هو إضافة مكون تصنيف ونظام بقواعد التصنيف. لا يسمح هذا للمستخدمين بالانتقال إلى إصدارات جديدة من الألعاب بسلاسة تامة (تجربة مستخدم أفضل) فحسب، بل ينشئ أيضًا الوسائل التقنية للإصدارات المختلفة للتعايش أو التداخل مع بعضها البعض على مستوى العقد الذكي. يمكن للاعبين اللعب على إصدارات مختلفة من اللعبة أثناء التفاعل مع البيانات من نفس المكونات الأساسية، وهو أمر مبتكر للغاية بالإضافة إلى تطبيقات التركيب. إنه يخلق القدرة على الاشتراك في الثبات، مما يخلق بُعدًا آخر للملكية الذي توفره الألعاب عبر السلسلة. تتم حماية الملكية الحقيقية لأصول اللعبة المختلفة (مثل النتائج والرموز غير القابلة للاستبدال والإنجازات) من خلال منطق ثابت يمكن توسيعه من خلال ترقيات إضافية ولكنه لا يتغير في جوهره. إنه يحل إحدى المشكلات الرئيسية المتعلقة بألعاب Web3، وهي قدرة منشئي المحتوى على تعطيل الأصول دون موافقة.
المنظور العام للعميل:
يرجى ملاحظة أن MUD مشروع مستمر. قد لا يكون الجزء التالي محدثًا، وقد يحتوي على بعض الأوصاف غير الدقيقة، ولكن لا ينبغي أن تتغير البنية العامة بشكل كبير.
لقد قمنا حتى الآن بدراسة MUD على مستوى العقد الذكي. ولكن هناك ما هو أكثر من ذلك، حيث يوفر MUD مجموعة كاملة من مكتبات وطبقات العملاء، وقد تم تصميم MUD مع بعض الميزات الفريدة.
قابلية تكوين العميل
li>< li>تمت مزامنة العميل بالكامل مع تغييرات حالة blockchain (بيانات اللعبة)
-
PhaserX كطبقة عرض
دعنا نتعمق في التفاصيل الفنية لجعلها أكثر واقعية.
طبقة الشبكة:
طبقة الشبكة هي الطبقة الأساسية للعميل. يحتوي على التكوين الأساسي (العقد العالمي وتكوين اللعبة والشبكة) وواجهة برمجة التطبيقات (API) للتفاعل مع اللعبة. عندما تقوم بإنشاء طبقة شبكة، فإنها تحتوي على مواصفات لجميع المكونات والأنظمة المختلفة التي يمكن لعملائك التفاعل معها، ويمكنك اختيار التفاعل مع مكونات/أنظمة محددة فقط.
على سبيل المثال، إذا كنت ترغب في إنشاء حركة في لعبتك وتمثيلها في الواجهة الأمامية، فستحتاج إلى إنشاء عقد ذكي منشور مع المنصب المكون وطبقة شبكة الحركة لمزامنة النظام. يمكنك الآن إنشاء Move API الذي يعمل على موقع وبعض الكائنات (الكيانات) داخل اللعبة ويحدد موضعه أو ينقله من مكان إلى آخر. في أي وقت يستطيع فيه اللاعب استخدام Move API، فإنه سيرسل معاملة إلى blockchain. بالنسبة لنظام الحركة، سيقومون بتنفيذ الوظائف في العقد الذكي لنظام الحركة.
تسمح هذه البنية بألعاب متعددة العملاء. يمكن للجميع إنشاء عميل فريد، ويكون جميع العملاء صالحين على قدم المساواة طالما أنهم يتزامنون مع blockchain ويتبعون البنية التحتية لطبقة الشبكة. لقد شهدنا حالات استخدام رائعة حقًا للألعاب متعددة العملاء، كما هو الحال في Dark Forest حيث يتنافس اللاعبون ضد بعضهم البعض ولكنهم يستخدمون عملاء ومكونات إضافية مختلفة. يسمح لنا هيكل العميل بتضمينه في طبقة الشبكة وتعديل واجهة برمجة التطبيقات (API) للحصول على إصدارات مختلفة من العميل بسرعة كبيرة، مما يحقق مستوى عالٍ من مرونة العميل وقابلية التركيب.
قد تسأل عن كيفية مزامنة مكونات العميل مع مكونات السلسلة. يعد هذا أحد التحديات الكبيرة التي يواجهها المطورون عند التعامل مع عملاء الألعاب عبر السلسلة، ولدى MUD بعض الحلول.
أولاً وقبل كل شيء، يقدم MUD وظيفة اللقطة، والتي تسمح للعميل بالمزامنة مع الحالة العالمية (أي قيمة كيان المكون) دون الحاجة إلى المعالجة جميع الأحداث الماضية لإعادة بناء الدولة، وبالتالي تقليل الكمون وتقليل التعقيد.
بالإضافة إلى ذلك، نظام معرف MUD، حيث سيحصل كل نظام (نظام) ومكون (مكون) على معرف بناءً على اسمه، وعند نشرهما، سيتم تسجيله في العقد العالمي، مما يسهل تتبع التغييرات والتفاعل مع اللعبة.
طبقة العرض: متى وكيف يتم عرض الأحداث
يأتي MUD مزودًا بـ PhaserX، "محرك قابل للتطوير بدرجة كبيرة مبني على Phaser"، ولا يلزم وجود PhaserX. في OPcraft، يتم استخدام محرك Noa voxel بدلاً من محرك PhaserX. من الناحية النظرية، يمكنك استخدام أي محرك طالما أنه يتبع الهيكل.
كما ذكرنا من قبل، يتم تسجيل كل مكون ونظام في العقد العالمي، وعندما يحدث تغيير، سيتم إصدار حدث (مع معرف المكون والكيان) الهوية وبيانات التعريف الأخرى). هنا يمكن لخدمة البث المباشر من ECS أن توفر للعميل خيار اختيار الأحداث التي سيتم الاشتراك فيها.
يمكن أن يكون التمثيل الرسومي للكيان كما تريده. يمكن أن تتميز ألعاب القتال بشخصيات الأنمي أو الفرسان أو حتى عملة التشفير المفضلة لديك. جميعها إصدارات صالحة طالما أنها تمثل الأحداث الموجودة على السلسلة وتتفاعل معها.
الرابط الأصلي: https://mirror.xyz/matchboxdao.eth/d3lVAOa9Bi0kY-caoUT3lDC6E61mWJqtP1q6tME4xGY