بناء عالم افتراضي: كيف تستخدم تقنية blockchain للحفاظ على الوقت لـ "الآلهة الرقمية"؟

العنوان الأصلي:

ترجمه: Justincaptainz

بصفتنا مبتكرين للعوالم الافتراضية ، فإن هدفنا هو إنشاء بيئات ممتعة وجذابة للغاية للمستخدمين. وهذا يتطلب منا إيجاد توازن بين تصميم الفيزياء الرقمية التي تسمح بظهور السلوكيات المعقدة وغير المتوقعة ، والتأكد من أن البنية التحتية الحالية يمكن أن تدعم هذه السلوكيات. للقيام بذلك ، نحتاج إلى النظر في ثلاثة أبعاد رئيسية للفيزياء الرقمية: الوقت ، وشكل قوانينها ، ومدى تطبيق تلك القوانين.

وقت

نشير إلى مرور الوقت في العالم الافتراضي على أنه التطبيق التكراري لقوانين العالم على نفسه. كل تطبيق منفصل هو "لحظة" في تدفق الوقت في هذا العالم. تتمثل إحدى طرق تصميم الوقت في العالم في جعله مستمرًا مع الوقت الخارجي. في عالم افتراضي قائم على blockchain ، تتوافق كل كتلة مع عدد معين من اللحظات الماضية في العالم ، بغض النظر عن المعاملات التي تحتوي عليها الكتلة. يُعرف هذا باسم الوقت المتزامن ، أو ظاهرة "التجزئة". يمكن أن يجعل هذا النهج العالم أكثر تشويقًا للمستخدمين حيث يمكنهم رؤية نتائج أفعالهم في الوقت الفعلي. بالإضافة إلى ذلك ، ينتج عنه وقت أطول في العالم ويستمر العالم في التحديث ، مما يشجع على السلوكيات المثيرة للاهتمام.

ومع ذلك ، فإن هذا النهج له أيضًا عيوبه. تتطلب الأطر الزمنية الأكبر عمومًا المزيد من موارد الحوسبة ، والتي يمكن أن تتجاوز بسرعة قدرات السلسلة أو الخادم. قد يكون من الصعب أيضًا تنفيذ هذا النظام على blockchain العادي ، نظرًا لأن جميع التغييرات على السلسلة يجب أن تبدأ من خلال المعاملات التي يبدأها مستخدمون خارجيون.

تصبح هذه الصعوبة واضحة عندما تتخيل شيئًا يبدو بسيطًا: لعبة متصلة بشخصيات غير لاعب (NPCs). على mainnet Ethereum ، يمكنك تحديد وظيفة التحديث التي تحدد موقع كل NPC على خريطة اللعبة ، ويكون لديك حساب خارجي يتصل به بشكل دوري لتحديث موقعه. ولكن قد يكون هذا غير موثوق به ، لأنه لا يمكنك ضمان عدم المزايدة على الحساب الخارجي مقابل رسوم الغاز في الكتلة التي يجب أن تستدعي التحديث. وبالتالي ، فإن الهيكل الزمني في لعبتك سينحرف (خذ وظيفة CryptoKitties giveBirth () الأصلية كمثال ؛ مع زيادة رسوم الغاز على السلسلة ، يتعين على Axiom Zen بالفعل زيادة المكافأة لاستدعاء وظيفة giveBirth للتأكد من أن NFT الجديد تسمى معاملة الولادة 256 كتلة بعد أن يولد المستخدم كيتي). نشير إلى هذه الطريقة في استخدام الحسابات الخارجية باسم "التأشير اليدوي".

تمنحنا القوائم المخصصة مزيدًا من المرونة لإضافة وظيفة "التجزئة" على السلسلة ، ولا حاجة إلى حسابات خارجية ، ويضمن البروتوكول تقدم الوقت المتزامن. نسمي هذه الطريقة "علامة تلقائية". يمكن تنفيذ العلامات التلقائية عن طريق كتابة "عقد التجزئة" الذي يتم استدعاؤه بواسطة البروتوكول نفسه وليس بواسطة حساب خارجي.

على سبيل المثال ، طورtherealbytes سلسلة tickchain لإثبات المفهوم استنادًا إلى OP Stack الذي يدير تطبيقًا لـ Conway's Game of Life والذي يتم وضع علامة عليه تلقائيًا (يمكنك العثور على عرض فيديو توضيحي لهذا هنا). يستخدم Bytes معاملة نظام معدلة لاستدعاء عقد محاكاة التشغيل الآلي الخلوي لـ tick-tick. من أجل اختبار حدود السلسلة نفسها بشكل كامل ، طبق اللعبة بطريقتين: الأولى كعقد Solidity الذكي الذي يعمل على السلسلة ، والأخرى كتجميع مسبق للسلسلة نفسها. يعمل تطبيق Solidity على زيادة وحدة المعالجة المركزية (CPU) إلى الحد الأقصى بعد الوصول إلى شبكة 70 × 70 مع تحديثين لكل كتلة (كتلة واحدة / ثانية ، أو حوالي 10 آلاف خلية / ثانية) ، بينما تستخدم سلسلة المحرك المُجمَّع مسبقًا المخصص حوالي 6٪ لتحقيق نفس المعدل لـ 256 × 256 شبكة مزودة بوحدة معالجة مركزية أعلى (حوالي 130 ألف خلية / ثانية).

في الجملة الأخيرة من الفقرة الأخيرة ، الكلمة الأساسية هي "الوصول إلى الحد الأقصى". تضيف سلاسل التجزئة القراد طبقة إضافية من التعقيد: تتطلب كل كتلة إضافية المزيد من الحالات التي يتم لمسها من خلال المعاملات التي تحاكي اللعبة. في النهاية ، سيتم تقييد عقد التجميع بواسطة الحساب الأولي (وحدة المعالجة المركزية ، القرص IO ، إلخ). الحل الوحيد هنا هو استخدام عقد ذات سعة أكبر.

بديل "الوقت المتزامن" هو "الوقت غير المتزامن". بموجب هذا المخطط ، لا يتقدم مرور الوقت في العالم بالضرورة مع تقدم الوقت الخارجي. بدلاً من ذلك ، يتحرك الوقت عادةً إلى الأمام عند حدوث أحداث معينة (عادةً إجراءات المستخدم). تقع ألعاب الطاولة التقليدية التي لا تحتوي على مؤقت ضمن فئة مماثلة. يعد تحقيق الوقت غير المتزامن على السلسلة أسهل لأن هذا هو النموذج الذي تم تصميم blockchains لدعمه. ومع ذلك ، فإنه يضحي أيضًا ببعض الميزات التي قد تجعل العالم أكثر تشويقًا (مثل تحريك الشخصيات غير القابلة للعب تلقائيًا).

تكشف WildWood ، وهي نسخة مبكرة من لعبة إثبات المفهوم بواسطةnotdavidhuang و cha0sg0d ، هذه التضحية. في هذه اللعبة ، يجب على لاعبين الدفاع عن قاعدتهما من حصار الشخصيات غير القابلة للعب العدوانية. في الإصدارات السابقة من اللعبة ، تم تشغيل حركة NPC فقط عندما تحرك اللاعب نفسه - وهو تنفيذ غير عملي للوقت غير المتزامن. بعد إضافة القراد ، تحركت الشخصيات غير القابلة للعب ، لكن استمرت مشكلة أخرى. تحدد السلسلة كل ثانية ، مما يعني أنه إذا تحرك اللاعب أكثر من مرة في الثانية ، فيجب على اللعبة بث موقع اللاعب على الخريطة مع تحديثات من التجميع المتفائل. ومع ذلك ، لن يرى زملائك في الفريق عميلك تلقائيًا ، مما يعني أنه سيكون هناك تأخير في تحديثات مركز اللاعب. للتغلب على هذه المشكلة ، استخدم الفريق خدمة ترحيل MUD ، وهي شبكة من نظير إلى نظير لبث العملاء المحليين إلى السلسلة الكاملة. Voila ، يتم الانتقال من الوقت غير المتزامن إلى الوقت المتزامن.

قوانين الأشكال المغلقة والمفتوحة

يجب أن يقرر بناة العالم أيضًا ما إذا كان عالمهم الافتراضي يتبع تمثيلًا مفتوحًا أم مغلقًا. التعبيرات ذات الشكل المغلق لها عدد ثابت من العمليات. ومع ذلك ، فإن عدد العمليات المعبر عنها في شكل مفتوح (أو بشكل متكرر) ينمو وفقًا للمتغيرات المحددة. في ظل التمثيلات المفتوحة ، لا يمكن حساب الحالة المستقبلية للعالم إلا من خلال التطبيق المتكرر لقوانين العالم على الدول المعروفة. عادةً ما تندرج البيئات الرسومية المعقدة ، مثل Dwarf Fortress ، ضمن هذه الفئة. من ناحية أخرى ، تسمح التمثيلات ذات الشكل المغلق بحساب أي حالة مستقبلية من الحالات السابقة والوقت المنقضي بينهما (بافتراض عدم تغيير أي إجراءات للمستخدم في المستقبل) ، مثل معدلات استخراج الموارد في Age of Empires II.

يمكن للنماذج المفتوحة أن تجعل العوالم الافتراضية أكثر إثارة للاهتمام لأنها ، مثل العالم الحقيقي ، لا يمكن التنبؤ بها. يتطلب توقع الحالة المستقبلية للعالم المزيد والمزيد من الوقت وموارد الحوسبة (تطبيق Conway's Game of Life على السلسلة مثال جيد: لا يمكنك حساب الحالات المستقبلية التعسفية لأنك تحتاج إلى تشغيل اللعبة في الوقت المناسب). علاوة على ذلك ، يمكن أن تظهر السلوكيات العيانية غير المتوقعة من التفاعلات المجهرية البسيطة. في عالم يحكمه شكل مغلق ، عادة ما تحدث هذه السلوكيات الناشئة خارجيًا فقط ، من خلال تصرفات المستخدمين (هم أنفسهم في الشكل المفتوح) ، وليس داخل فيزياء العالم نفسها.

تتضمن المفاضلة بين النماذج المفتوحة والمغلقة توازنًا مشابهًا لميزان الوقت. قد تجعل النماذج المغلقة العالم أقل إثارة للاهتمام ، لكنها تجعله أيضًا أكثر كفاءة من الناحية الحسابية. يمكن استخدام النموذج المغلق مع الوقت المتزامن أو غير المتزامن. عند تنفيذها على blockchain ، فإنها تتمتع بمزايا كبيرة على النماذج المفتوحة عندما يتعلق الأمر بمزامنة الوقت. نظرًا لأن التكلفة ثابتة لأي فترة زمنية ، يمكن تصميم العالم بحيث يتم تحديث الحالة على السلسلة فقط عندما يرسل المستخدم معاملة ، ولكن يتم تعيينها على الحالة بعد الوقت المنقضي منذ آخر تحديث.

نطاق الوقت والشكل

ضع في اعتبارك النهج القياسي الحالي لديناميكيات السلسلة ، وهو نهج يُعرف باسم "التحديثات البطيئة". في التحديث البطيء ، يبدأ اللاعب في بدء الإجراء ونهايته ، ولكن يتم محاكاة الأوقات الواقعة بينهما بدلاً من حسابها بشكل مباشر. على سبيل المثال ، يقوم اللاعب بزرع شجرة تفاح في القطعة الأولى ، ثم يحصد التفاح في القطعة العاشرة. يمكن كتابة منطق التحديث الكسول بحيث يمكن للاعبين حصاد تفاحة واحدة لكل وحدة زمنية ، بإجمالي 9 تفاحات. هذا جيد تمامًا لمنطق التحديث بوظائف النموذج المغلق (مثل تفاحة واحدة لكل كتلة) ، لكنه يفشل إذا تغير منطق الزراعة بناءً على المدخلات بين إجراءات اللاعب. إذا أدى هطول أمطار غزيرة في الكتلة 5 إلى زيادة معدل نمو التفاح وفي المربع 7 ، فإن وباء الجراد يقضي على المحصول تقريبًا ، فعندئذٍ في الكتلة 10 ، لا يهم عدد التفاحات التي يمكن للاعب حصادها الحسابية ، إلا إذا قمت بالفعل بتطبيق جميع الأحداث التي حدثت (لن يكون لديك قوة حاسوبية كافية للحاق بالحالة الجديدة). ومع ذلك ، تعد التحديثات البطيئة رائعة بالنسبة للحسابات الرخيصة لبعض الغوغاء (مثل النباتات ذات معدل النمو الثابت) ، ولكنها لا تزال غير كافية لمجموعة أدوات كاملة لعالم ديناميكي.

في العالم الحقيقي ، الوقت موجود في كل مكان ويمر جميعًا مرة واحدة ، والكون لا نهائي على الأرجح (وإن كان مع بعض التعقيدات النسبية). ومع ذلك ، في العالم الافتراضي ، ليس هذا هو الحال بالضرورة.

أولاً ، يمكن أن تكون العوالم الافتراضية محدودة بشكل واضح. تزداد احتمالات المؤامرة بشكل عام مع زيادة الحجم - حيث تحدث أشياء أكثر في عالم به 20 مليار مجرة أكثر من عالم مكون من ذرتين - لكن التكلفة الحسابية تزداد أيضًا. ترتبط كل من هذه العلاقات ارتباطًا وثيقًا بالمقايضتين المذكورتين سابقًا: مرور الوقت والشكل المادي.

ثانيًا ، لا يجب أن يمر الوقت في كل مكان في العالم الافتراضي. يمكن تقسيم العالم إلى مناطق منفصلة بفترات زمنية مختلفة لتقليل العبء الحسابي للعالم. على سبيل المثال ، يمكن استخدام قواعد فيزيائية أكثر تعقيدًا وتكلفة في المناطق التي يكون فيها نشاط المستخدم ، وقواعد فيزيائية أبسط في الأماكن التي لا يوجد فيها نشاط. الجانب السلبي لهذا النهج ذو شقين: يمكن أن يجعل العالم يبدو غير متسق ويفتقر إلى الاكتمال ، مما يحد من مساحة التصميم لقواعد العالم ويمارس الضغط على بناة العالم لتجنب إرباك المستخدمين ؛ الحد من انتشار السببية داخل العالم ، إذا كانت الإجراءات منطقة واحدة لا يمكن أن يكون لها عواقب في مناطق بعيدة ، يتم تجميد المسافة بين الاثنين في الوقت المناسب. يُعد حجم المنطقة التي تُطبق فيها قواعد الفيزياء اعتبارًا مهمًا في التصميم سيؤثر على الموارد التي يحتاجها العالم ومستوى المتعة التي يمكن أن يحققها.

[بناء عالم افتراضي: كيف تستخدم تقنية blockchain للحفاظ على الوقت لـ "الآلهة الرقمية"؟ ] (https://img-cdn.gateio.im/resized-social/moments-69a80767fe-38b665c291-dd1a6f-1c6801)

من أجل إنشاء عالم افتراضي ممتع وجذاب ، من الضروري أن توازن بعناية بين الكفاءة الحسابية والمتعة. يتضمن ذلك تحديد نوع الوقت الذي يجب استخدامه (متزامن أو غير متزامن) وتقييم شكل قوانين الفيزياء التي تحكم العالم. حجم المنطقة التي تنطبق عليها قوانين الفيزياء هو قرار مهم آخر. من خلال اتخاذ هذه الخيارات بعناية ، لا يمكن لبناة العالم الحفاظ على العبء الحسابي للعالم مثيرًا للاهتمام لإدارته فحسب ، بل يمكنهم أيضًا تزويد المطورين الآخرين بقاعدة خصبة للغاية للابتكار.

شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • تعليق
  • مشاركة
تعليق
0/400
لا توجد تعليقات
  • تثبيت