هذا بوضوح في خلاف مع نموذج التطوير للألعاب التقليدية. تجذب الألعاب التقليدية الناجحة العديد من المستخدمين من خلال ميكانيكا اللعب المشوقة، مما يسمح للمطورين ببناء مسارات ربحية وتوسيعها بشكل محتمل إلى المنتجات المتعلقة والملكية الفكرية. تعمل هذه الألعاب في دورة إيجابية حيث يستمتع اللاعبون باللعبة وغالبًا ما يحققون فوائد اقتصادية داخل اللعبة وخارجها.
على العكس من ذلك، تجذب الألعاب الحالية المعتمدة على تقنية البلوكشين اللاعبين بشكل رئيسي من خلال العوائد المالية. بالإضافة إلى قلة قابلية اللعب، تواجه ألعاب الويب3 مشاكل طويلة المدى مثل حواجز الدخول العالية وعمليات التفاعل العنيدة.
ما هو السبب الجذري لهذه المشاكل؟ تختلف الآراء. يعتقد فريق TabiChain أن العامل الرئيسي هو أن مطوري الألعاب التقليدية الموهوبين يواجهون صعوبة في دخول بيئة الويب3 بسبب العقبات التقنية والتعليمية. بالنسبة لأولئك الذين غير عائلين بتطوير الألعاب أو البرمجيات، قد يبدو التحول من الويب2 إلى الويب3 مجرد تحول في السرد والبيئة، ولكن الواقع أشد قسوة من ذلك بكثير.
إذا، كيف يمكننا خلق بيئة أكثر ترحيبًا لمطوري الألعاب التقليدية أو الشركات ذات الصلة من خلال التكنولوجيا؟ في الأقسام التالية، سنحلل بدقة التحديات التي تواجه ألعاب الويب3 وحلولها، مشرحين كيف يمكن تصميم صناعة الألعاب على الويب3 في المستقبل بشكل تقني لتناسب أفضل مطوري الألعاب التقليدية.
في المقال السابق، ذكرنا بإيجاز أن التكنولوجيا غير الودية وتكاليف التعلم العالية هما العوامل الأساسية التي تمنع الممارسين التقليديين في مجال الألعاب من دخول نظام الويب3. يمكن توسيع ما يسمى بالتكنولوجيا غير الودية وتكاليف التعلم العالية إلى النقاط التالية:
البلوكشين والتطبيقات عليه (التطبيقات اللامركزية) مختلفة بشكل جوهري عن الهندسة المعمارية للبرمجيات التقليدية وتتطلب من المطورين أن يكونوا لديهم نظام معرفة جديد، مثل مبدأ عمل البلوكشين، وبروتوكولات التوافق، ونماذج برمجة العقود الذكية، إلخ. يحتاج مطورو الألعاب التقليدية إلى قضاء الكثير من الوقت في تعلم Solidity أو لغات العقود الذكية الأخرى ويحتاجون إلى فهم كيفية عمل EVM.
وعلاوة على ذلك، يتم تنفيذ منطق اللعبة التقليدي عادةً على خادم مركزي، الذي يمكنه التعامل بمرونة مع حالات اللعبة المعقدة والتفاعلات عالية التردد. تشغيل منطق اللعبة على سلسلة الكتل يتطلب درجة عالية من التبسيط أو إعادة التصميم، لأن كل عملية يجب نشرها على الشبكة الموزعة للتنفيذ ثم تحميلها على السلسلة، مما يقتصر بشدة بأداء وتكلفة سلسلة الكتل.
على الرغم من أن EVM هو كامل تورينغ ويمكنه بشكل نظري التعبير عن منطق تعسفي، إلا أن خصائصه غير مواتية جدًا لتطوير الألعاب، مثل:
يمكننا أن نرى أي نوع من المعلومات حول الرصيد والرمز التي تمتلكها عنوان معين من الأدوات مثل Etherscan. يتم فهرسة هذه المعلومات بواسطة الأدوات الطرفية مثل متصفحات البلوكشين، ويحتاج الأخير إلى بناء قاعدة بيانات ضخمة مخصصة وزحفها بالكامل. فقط من خلال جمع جميع بيانات الكتل أو مراقبة الأحداث على السلسلة، يمكن تلخيص جميع البيانات على السلسلة.
يضطر مطورو الويب3 عادةً إلى دمج مزودي بيانات من الطرف الثالث مثل Etherscan، NFTscan، The Graph، وما إلى ذلك، وحتى يضطرون لدفع رسوم للحصول على مفتاح API الخاص بهم. بالإضافة إلى ذلك، هذه الخدمات من الطرف الثالث تعتبر أساسًا قواعد بيانات خارج السلسلة، والتي قد تتسبب في تأخيرات، أخطاء، تجاوز حدود الاستدعاء، عدم توفر الخدمة وفشل آخر.
دعونا نقارن الاختلافات بين شكل قاعدة البيانات في معظم الألعاب وطرق تخزين البيانات في سلسلة الكتل. الفرق بين الاثنين واضح. هيكل بيانات معظم الألعاب مخصص تمامًا بنفسه، وله قدرات تعبيرية وفهرسة جيدة، ولا يحتاج إلى الاعتماد على أي خدمات من جهة ثالثة.
الأصول اللعبة الحالية (مثل الأدوات والشخصيات) عادة ما لا تُنشأ وتُدير على البلوكشين. تتضمّن تحويل هذه الأصول إلى البلوكشين عادة تحويل أنواع بيانات شائعة ولكن طويلة الذيل إلى NFTs أو عملات مميزة قياسية، مما يتطلب عملية تحويل وتكامل معقدة وسوف يؤثر على النظام الاقتصادي للعبة الحالي.
على شبكة إيثيريوم، بمجرد نشر عقد ذكي، يصبح الكود لا يُمكن تغييره، مما يجعل الترقيات والإصلاحات أكثر تعقيدًا من البرمجيات التقليدية. غالبًا ما يستخدم المطورون عقود الوكيل أو أنماط الترقية لتجاوز هذا القيد، ولكن هذا يزيد من تعقيد الهيكل الكلي. عقود الوكيل تحتاج إلى استخدام عناية خاصة لتجنب تلف البيانات الناجم عن تضارب فتحات التخزين. بالإضافة إلى ذلك، يعتبر خطر تسرب الحقوق الإدارية أمرًا خطيرًا أيضًا.
ترقية رمز الألعاب التقليدية ليست معقدة إلى هذا الحد من حيث الهيكل التقني. الشيء الوحيد الذي قد يحتاج إلى تقييد هو السلطة المركزية للترقية. يمكن تحقيق ذلك من خلال طرق مثل DAO بدلاً من الاعتماد على العقود الذكية.
وعلاوة على ذلك، غالبا ما تقوم الألعاب التقليدية بأخذ لقطات أو نسخ احتياطية من قاعدة البيانات. قد لا يكون هذا مهمًا عادةً، ولكن في حالة وجود خطأ كبير في الترقية، يمكنك العودة بسرعة إلى البيانات السابقة، وهو أمر أساسي في عالم البلوكتشين. حتى لو تم إعادة بعض بيانات اللعبة من خلال إعادة بناء العقد، فإن كيفية ترحيل البعض الآخر من البيانات وحالة العقد القديم إلى العقد الجديد لا يزال أمرًا معقدًا.
لدى سلاسل الكتلة العامة والآلات الظاهرية لغات عقود ذكية مختلفة تمامًا، وهناك اختلافات كبيرة في البنية المعمارية وهياكل البيانات، وما إلى ذلك. في الويب2، سيختار مطورو الألعاب محركات واجهة مستخدم متعددة المنصات مثل يونيتي، والتي يمكن أن تجعل مجموعة من الشفرات تعمل بتكيف بسيط لتشغيلها في بيئات مختلفة مثل آيفون وأندرويد وسطح المكتب. نظرًا لأن الخلفية لا تعمل على جهاز المستخدم، فلا توجد مشاكل متعلقة بالمنصة المتعددة.
في Web3، هذا أساسًا ترف فاخر. تهاجر إلى سلسلة أو آلة افتراضية مختلفة تعني إعادة بناء المشروع بأكمله وتكبد تكاليف هائلة. والأمر الأكثر أهمية، أن المطورين الجدد في Web3 ليس لديهم أي تجربة على الإطلاق لاختيار بيئة تناسبهم. هل هو من منظور تقني أم بيئي؟
على مستوى تجربة المستخدم، تكون تفاعلات البلوكشين معقدة للغاية. ظهرت مفهوم التجريد من الحساب الذي كان شائعًا جدًا من قبل لحل مشاكل تجربة المستخدم في web3، لذا لن أدخل في التفاصيل هنا.
بعد سرد الحجج الستة الرئيسية أعلاه، دعونا نلخص: يواجه مطورو الويب 2 تحديًا هائلًا في الانتقال إلى الويب 3. إذا كانوا مطورين رائدين في الويب 2، فلا حاجة لهم للتخلي عن مهنتهم في الويب 2 والانتقال إلى مجهول مثل الويب 3. في هذا البيئة، نحن نطور بعض الأعمال التجارية التي لا نعرف ما إذا كانت ستنجح أم لا.
يمكن القول إن معظم مطوري الألعاب الرائدين لم يدخلوا إلى Web3. إلى حد ما، يجعل هذا معظم ألعاب Web3 متحيزة نحو التكهن المالي بدلاً من أن تكون لها قابلية خاصة للعب والمرح.
توجد عقبات من نفس الطبيعة أيضًا على جانب المستخدم. تحتوي ألعاب Web3 على سلسلة من خطوات العمليات التي تعيق معدلات تحويل المستخدم، مما يؤدي إلى وجود مجموعة كبيرة من المستخدمين من Web2 الذين لا يرغبون في تجربة أو حتى لا يدركون تمامًا وجود ألعاب Web3.
هل هناك مشروع في مستوى البنية التحتية يمكن أن يحل المشاكل المذكورة أعلاه؟ قد يكون Tabi Chain مشروعًا قريبًا جدًا من إحدى الحلول النهائية لألعاب الويب3. مفهومه الأساسي هو "Omni Execution Layer": لم يعد المطورون بحاجة إلى الاهتمام بالفروق بين مختلف الآلات الظاهرية أو بيئات التشغيل. يمكنهم استخدام بيئات التشغيل المألوفة لديهم أو حتى قابلة للتخصيص مباشرة لتطوير ألعاب أو نقلها مباشرة.
بالإضافة إلى ذلك، تابي تشين لديها أيضًا توافق قابل للتعديل وطبقة أمان وميزات أخرى. كل شيء قابل للتعديل وقابل للتخصيص لتلبية احتياجات الألعاب والتطبيقات المختلفة.
دعونا نستعيد مفهوم البلوكشين الأساسي. بينما قد يصف البعض أنها دفتر أستاذ غير مركزي ولا يمكن تغييره، يمكن تحديده بدقة أكبر على أنه تزامن قابل للتحقق لحالة دائمة لآلة حالة ضمن شبكة موزعة.
بالجوهر، تحافظ سلسلة الكتل على جهاز حالة مقبول عالميا وحالته التشغيلية:
وبالتالي، لا يحتاج نظام التوافق في سلسلة الكتل إلى أن يكون محدودًا بطبقة تنفيذية واحدة فقط (مثل EVM فقط). بغض النظر عن عدد الطبقات التنفيذية، طالما يمكن للسلسلة التحقق من الحالات عبر عدة طبقات، مما يسمح لكل لعبة بالعمل في بيئتها الخاصة، يمكننا التعامل مع المشاكل المختلفة التي تم مناقشتها سابقًا.
في تابي، يمكن لكل لعبة أو dApp بناء خدمتها المستقلة الخاصة. تقوم جميع الخدمات بتقديم الكتل التي تم إنشاؤها ذاتيًا إلى نظام الاتفاق في السلسلة؛ تشمل العقد المشرفة الوقت التشغيل/VM في جميع الخدمات للتحقق من حالة كتل الخدمة. يمكن اعتبار نواة طبقة التنفيذ شاملة الكل في تابي على أنها VM بقدرات متعددة الشكل، لذا يُطلق عليها اسم Polymorphism VM.
لتكامل أجهزة الإفتراض الظاهرية القائمة، يحتاج جهاز إفتراض الظاهرية متعدد الأشكال إلى دمج هذه الأجهزة ضمن بيئته التشغيلية وتوفير واجهة الدعوة اللازمة لطرق الاستدعاء. يمكن تنفيذ مفهوم "التكامل" هنا بطريقتين:
الحالة العالمية المشتركة: شبيهة بـ Ethermint، التي تدعم EVM على Cosmos. يعمل EVM كطبقة سطحية، مركزًا على تفاعل المستخدم وعمليات العقد، مما يجعل جميع أنشطة الجانب الخاص بالمستخدم تبدو وكأنها تُنفذ على EVM. ومع ذلك، يتم تخزين النتائج النهائية والبيانات لهذه العمليات في وحدات Cosmos أخرى. وبالتالي، تعددية EVM هذه في الأساس تعددية للبيانات الأساسية.
يمكن تمديد هذه العلاقة التعيين إلى الآخرين أيضًا. على سبيل المثال، يمكن لإيثرمينت دمج طبقة إضافية من وحدة SVM، حيث تتوافق كل من SVM و EVM مع نفس البيانات الأساسية.
هذا يشبه استخدام VMWare على جهاز كمبيوتر شخصي لتشغيل جهاز كمبيوتر افتراضي بنظام Windows. يمكن لـ VMWare الوصول إلى كل من القرص الصلب الافتراضي للجهاز الافتراضي وقرص الكمبيوتر الفعلي. إذا قمت ببدء تشغيل جهاز كمبيوتر افتراضي لنظام Mac بعد ذلك، فيمكنه استعراض البيانات من القرص الفعلي بنفس الطريقة. يُمكن استخدام هذا الإعداد بشكل فعال لتمكين عدة أجهزة كمبيوتر افتراضية من مشاركة الموارد والحالة لنفس البيئة.
سيستخدم الخدمة الرئيسية لـ Tabi Chain نهج الحالة العالمية المشتركة. وهذا يعني أنه بمجرد تكييف جهاز الظاهرة الافتراضي المقابل، يمكن نشر تطبيقات اللامركزية التي تم تطويرها لهذا الجهاز مباشرةً على الخدمة الرئيسية دون الحاجة إلى إنشاء خدمة منفصلة.
الدولة العالمية المستقلة: تختلف التطبيقات والألعاب في متطلباتها الفريدة، وتستخدم بعض الألعاب بيئات تشغيل مخصصة. لذلك، النهج الشامل لدمج جميع الآليات الظاهرية من خلال 'الدولة العالمية المشتركة' في آلية التعددية الظاهرية ليس مناسبًا لكل حالة. الدولة العالمية المستقلة ضرورية أيضًا، حيث أنه من الأسهل تنفيذها ومثالية للخدمات التي تمتلك بيانات منفصلة تمامًا.
بغض النظر عن الطريقة المستخدمة، يجب أن تكون قابلة للتحقق من قبل العقدة المشرفة. وهذا يعني أنه يجب أن يتضمن جهاز الإنفاذ الظاهري لـ Polymorphism جميع أجهزة الإنفاذ الظاهري أو الأوقات التشغيلية المستخدمة من قبل طرق التنفيذ المختلفة.
مثال على نقل لعبة Web2
يمكن تخصيص جهاز الـ Polymorphism بشكل كبير، مما يجعله مفيدًا بشكل خاص لمطوري الويب2. يمكنهم استخدام لغات وأطر عمل مألوفة لنقل أي منطق تجاري إلى جهاز الـ Polymorphism.
نفترض أن Minecraft يرغب في الانتقال إلى Tabi. سيكون العملية العامة كما يلي:
بهذا، العملية بأكملها قد اكتملت.
بالنسبة للمطورين، يتم إجراء هذه التعديلات ضمن لغة الجافا والإطار القائمين. نفس المفهوم ينطبق على الألعاب التي تم تطويرها باستخدام أي طريقة أخرى. بالنسبة للمستخدمين، تظل تفاعلية اللعبة دون تغيير كبير. بوضوح، هذه الطريقة لنقل ألعاب الويب2 سريعة وفعالة للغاية، وقد تصبح النموذج الأساسي لتبني الجماهير لألعاب الويب3.
تفاصيل وظائف اللعبة STR (State Transition Runtime)
توفر النموذج السابق نظرة عامة على نقل لعبة Web2. للحصول على فهم أعمق، نحتاج إلى الانغماس في المزيد من التفاصيل. هذه المرة، سنستخدم مثالًا عامًا بدلاً من لعبة محددة لتوضيح التفاصيل المشاركة في وقت تشغيل طبقة التنفيذ الأومني.
بالأساس، يمكن النظر إلى تخصيص بيئة تشغيل اللعبة على أنها إنشاء جهاز حالة اللعبة على سلسلة الكتل، المشار إليه بجهاز تشغيل تحويل الحالة (STR) في Tabi.
المثال أعلاه هو العملية العامة لنقل الألعاب Web2. لا يزال علينا معرفة المزيد عن التفاصيل. هذه المرة نستخدم مثالًا عامًا بدلاً من مثال لعبة محدد لعرض التفاصيل المشاركة في التشغيل في طبقة التنفيذ القاهرة.
في الأساس، يمكن اعتبار تخصيص بيئة تشغيل لعبة على البلوكشين كإنشاء آلة حالة للعبة معينة، والتي تُسمى وقت التشغيل لتحويل الحالة في تابي.
يمكن دمج STR في Polymorphism VM على شكل ثنائي أو وحدة.
في نظام يشبه سلسلة الكتل، نحتاج إلى ضمان شفافية المداخل، ورؤية عامة لتحولات الحالة، وقدرة التعبير عن الحالة العامة. لتلبية هذه المتطلبات، نحتاج إلى بناء وقت تشغيل يحتوي على الميزات التالية:
الهياكل التنظيمية التالية هي عناصر أساسية في هذا STR. ستوفر تابي SDK بشكل افتراضي لتسهيل عمل المطورين في إنشاء الوقت التشغيلي.
World DB
عملياً، من المحتمل أن يستخدم اللعبة أو التطبيق أكثر من قاعدة بيانات واحدة، وقد تكون هذه القواعد من أنواع مختلفة. لنفترض أن لعبة معينة تستخدم كل من قاعدة بيانات ذات علاقات وقاعدة بيانات مفتاح-قيمة.
التالي هو مثال بسيط على قاعدة بيانات علاقية:
هذا هو قاعدة بيانات بسيطة مفتاح-قيمة:
وظيفة الانتقال بين الحالات
هذه وظيفة تحول الحالة بسيطة. عندما تتلقى هذه الوظيفة إدخالًا من المستخدم، فإنها تضربه بمجرد 5 وتعدل البيانات في قاعدة البيانات العلاقاتية.
متراكم الحالة العالمية
يمكننا بناء مجمع تجميع مجموعات بسيط لتمثيل حالة العالم:
A_s+1 = هاش(A_s + هاش(الاستعلام))
تضمن هذه الطريقة أنه بعد أي تعديل على قاعدة بيانات العالم، سيكون هناك دائمًا حالة فريدة ومحددة تتوافق مع ذلك التعديل.
من المهم أن نلاحظ أن وظيفة انتقال الحالة يجب أن تنفذ هذه الطريقة. يمكن فرض هذا المتطلب باستخدام تعديلين، واجهات، خطافات، أو آليات أخرى محددة للغة. نظرًا للخصائص المختلفة للغات البرمجة المختلفة، لن ننغمس في تفاصيل محددة هنا.
يتبع عملية التحديث لقاعدة بيانات القيمة المفتاحية (KVDB) نفس المبدأ.
أرقام عشوائية
دوال تحويل الحالة يجب ألا تتضمن أرقام عشوائية، حيث سيؤدي ذلك إلى حدوث نتائج مختلفة عند التحقق من قبل محققين مختلفين، مما يؤدي إلى كسر التوافق. يجب تضمين الأرقام العشوائية كجزء من معاملات الإدخال للنظام.
من الأمثلة أعلاه، يمكننا أن نرى أن طبي تشين Omni-Execution Layer توفر لمطوري الألعاب مرونة كبيرة من خلال نهج موديلار. نظرًا لقيود المساحة، لا يمكننا مناقشة جميع التفاصيل هنا، ولكن النقاط الأساسية المذكورة كافية لإظهار أن حل طبي تشين عملي ومبتكر.
في النظام البيئي الحالي للويب3 ، تفتقر الأعمال المطورة على سلاسل وآلات افتراضية مختلفة عمومًا إلى القابلية للنقل. بالنسبة لألعاب الويب2 التي تنتقل إلى الويب3 ، فإن ذلك يعني في كثير من الأحيان إعادة كتابة اللعبة بلغات وبيئات غير مألوفة ، ومواجهة مجموعة متنوعة من القيود غير المفهومة.
مع Tabi، يمكن للمطورين استخدام لغتهم الأصلية ومنصة التطوير والمحرك. يحتاجون فقط إلى إجراء تكييفات وتعديلات بسيطة، مشابهة لاستدعاء SDK، لجلب مشاريعهم إلى عالم البلوكشين. وهذا يؤدي إلى تحسينات هائلة في الكفاءة وتقليلات في التعقيد.
نأمل أن يمكن لسلسلة تابي أن تصبح عاملا محفزًا لتبني العاب الويب3 بشكل واسع، مجذبة للمطورين الموهوبين في الألعاب ويب2 وجلب ألعاب حقا مسلية وقابلة للعب إلى المساحة ويب3.
هذا بوضوح في خلاف مع نموذج التطوير للألعاب التقليدية. تجذب الألعاب التقليدية الناجحة العديد من المستخدمين من خلال ميكانيكا اللعب المشوقة، مما يسمح للمطورين ببناء مسارات ربحية وتوسيعها بشكل محتمل إلى المنتجات المتعلقة والملكية الفكرية. تعمل هذه الألعاب في دورة إيجابية حيث يستمتع اللاعبون باللعبة وغالبًا ما يحققون فوائد اقتصادية داخل اللعبة وخارجها.
على العكس من ذلك، تجذب الألعاب الحالية المعتمدة على تقنية البلوكشين اللاعبين بشكل رئيسي من خلال العوائد المالية. بالإضافة إلى قلة قابلية اللعب، تواجه ألعاب الويب3 مشاكل طويلة المدى مثل حواجز الدخول العالية وعمليات التفاعل العنيدة.
ما هو السبب الجذري لهذه المشاكل؟ تختلف الآراء. يعتقد فريق TabiChain أن العامل الرئيسي هو أن مطوري الألعاب التقليدية الموهوبين يواجهون صعوبة في دخول بيئة الويب3 بسبب العقبات التقنية والتعليمية. بالنسبة لأولئك الذين غير عائلين بتطوير الألعاب أو البرمجيات، قد يبدو التحول من الويب2 إلى الويب3 مجرد تحول في السرد والبيئة، ولكن الواقع أشد قسوة من ذلك بكثير.
إذا، كيف يمكننا خلق بيئة أكثر ترحيبًا لمطوري الألعاب التقليدية أو الشركات ذات الصلة من خلال التكنولوجيا؟ في الأقسام التالية، سنحلل بدقة التحديات التي تواجه ألعاب الويب3 وحلولها، مشرحين كيف يمكن تصميم صناعة الألعاب على الويب3 في المستقبل بشكل تقني لتناسب أفضل مطوري الألعاب التقليدية.
في المقال السابق، ذكرنا بإيجاز أن التكنولوجيا غير الودية وتكاليف التعلم العالية هما العوامل الأساسية التي تمنع الممارسين التقليديين في مجال الألعاب من دخول نظام الويب3. يمكن توسيع ما يسمى بالتكنولوجيا غير الودية وتكاليف التعلم العالية إلى النقاط التالية:
البلوكشين والتطبيقات عليه (التطبيقات اللامركزية) مختلفة بشكل جوهري عن الهندسة المعمارية للبرمجيات التقليدية وتتطلب من المطورين أن يكونوا لديهم نظام معرفة جديد، مثل مبدأ عمل البلوكشين، وبروتوكولات التوافق، ونماذج برمجة العقود الذكية، إلخ. يحتاج مطورو الألعاب التقليدية إلى قضاء الكثير من الوقت في تعلم Solidity أو لغات العقود الذكية الأخرى ويحتاجون إلى فهم كيفية عمل EVM.
وعلاوة على ذلك، يتم تنفيذ منطق اللعبة التقليدي عادةً على خادم مركزي، الذي يمكنه التعامل بمرونة مع حالات اللعبة المعقدة والتفاعلات عالية التردد. تشغيل منطق اللعبة على سلسلة الكتل يتطلب درجة عالية من التبسيط أو إعادة التصميم، لأن كل عملية يجب نشرها على الشبكة الموزعة للتنفيذ ثم تحميلها على السلسلة، مما يقتصر بشدة بأداء وتكلفة سلسلة الكتل.
على الرغم من أن EVM هو كامل تورينغ ويمكنه بشكل نظري التعبير عن منطق تعسفي، إلا أن خصائصه غير مواتية جدًا لتطوير الألعاب، مثل:
يمكننا أن نرى أي نوع من المعلومات حول الرصيد والرمز التي تمتلكها عنوان معين من الأدوات مثل Etherscan. يتم فهرسة هذه المعلومات بواسطة الأدوات الطرفية مثل متصفحات البلوكشين، ويحتاج الأخير إلى بناء قاعدة بيانات ضخمة مخصصة وزحفها بالكامل. فقط من خلال جمع جميع بيانات الكتل أو مراقبة الأحداث على السلسلة، يمكن تلخيص جميع البيانات على السلسلة.
يضطر مطورو الويب3 عادةً إلى دمج مزودي بيانات من الطرف الثالث مثل Etherscan، NFTscan، The Graph، وما إلى ذلك، وحتى يضطرون لدفع رسوم للحصول على مفتاح API الخاص بهم. بالإضافة إلى ذلك، هذه الخدمات من الطرف الثالث تعتبر أساسًا قواعد بيانات خارج السلسلة، والتي قد تتسبب في تأخيرات، أخطاء، تجاوز حدود الاستدعاء، عدم توفر الخدمة وفشل آخر.
دعونا نقارن الاختلافات بين شكل قاعدة البيانات في معظم الألعاب وطرق تخزين البيانات في سلسلة الكتل. الفرق بين الاثنين واضح. هيكل بيانات معظم الألعاب مخصص تمامًا بنفسه، وله قدرات تعبيرية وفهرسة جيدة، ولا يحتاج إلى الاعتماد على أي خدمات من جهة ثالثة.
الأصول اللعبة الحالية (مثل الأدوات والشخصيات) عادة ما لا تُنشأ وتُدير على البلوكشين. تتضمّن تحويل هذه الأصول إلى البلوكشين عادة تحويل أنواع بيانات شائعة ولكن طويلة الذيل إلى NFTs أو عملات مميزة قياسية، مما يتطلب عملية تحويل وتكامل معقدة وسوف يؤثر على النظام الاقتصادي للعبة الحالي.
على شبكة إيثيريوم، بمجرد نشر عقد ذكي، يصبح الكود لا يُمكن تغييره، مما يجعل الترقيات والإصلاحات أكثر تعقيدًا من البرمجيات التقليدية. غالبًا ما يستخدم المطورون عقود الوكيل أو أنماط الترقية لتجاوز هذا القيد، ولكن هذا يزيد من تعقيد الهيكل الكلي. عقود الوكيل تحتاج إلى استخدام عناية خاصة لتجنب تلف البيانات الناجم عن تضارب فتحات التخزين. بالإضافة إلى ذلك، يعتبر خطر تسرب الحقوق الإدارية أمرًا خطيرًا أيضًا.
ترقية رمز الألعاب التقليدية ليست معقدة إلى هذا الحد من حيث الهيكل التقني. الشيء الوحيد الذي قد يحتاج إلى تقييد هو السلطة المركزية للترقية. يمكن تحقيق ذلك من خلال طرق مثل DAO بدلاً من الاعتماد على العقود الذكية.
وعلاوة على ذلك، غالبا ما تقوم الألعاب التقليدية بأخذ لقطات أو نسخ احتياطية من قاعدة البيانات. قد لا يكون هذا مهمًا عادةً، ولكن في حالة وجود خطأ كبير في الترقية، يمكنك العودة بسرعة إلى البيانات السابقة، وهو أمر أساسي في عالم البلوكتشين. حتى لو تم إعادة بعض بيانات اللعبة من خلال إعادة بناء العقد، فإن كيفية ترحيل البعض الآخر من البيانات وحالة العقد القديم إلى العقد الجديد لا يزال أمرًا معقدًا.
لدى سلاسل الكتلة العامة والآلات الظاهرية لغات عقود ذكية مختلفة تمامًا، وهناك اختلافات كبيرة في البنية المعمارية وهياكل البيانات، وما إلى ذلك. في الويب2، سيختار مطورو الألعاب محركات واجهة مستخدم متعددة المنصات مثل يونيتي، والتي يمكن أن تجعل مجموعة من الشفرات تعمل بتكيف بسيط لتشغيلها في بيئات مختلفة مثل آيفون وأندرويد وسطح المكتب. نظرًا لأن الخلفية لا تعمل على جهاز المستخدم، فلا توجد مشاكل متعلقة بالمنصة المتعددة.
في Web3، هذا أساسًا ترف فاخر. تهاجر إلى سلسلة أو آلة افتراضية مختلفة تعني إعادة بناء المشروع بأكمله وتكبد تكاليف هائلة. والأمر الأكثر أهمية، أن المطورين الجدد في Web3 ليس لديهم أي تجربة على الإطلاق لاختيار بيئة تناسبهم. هل هو من منظور تقني أم بيئي؟
على مستوى تجربة المستخدم، تكون تفاعلات البلوكشين معقدة للغاية. ظهرت مفهوم التجريد من الحساب الذي كان شائعًا جدًا من قبل لحل مشاكل تجربة المستخدم في web3، لذا لن أدخل في التفاصيل هنا.
بعد سرد الحجج الستة الرئيسية أعلاه، دعونا نلخص: يواجه مطورو الويب 2 تحديًا هائلًا في الانتقال إلى الويب 3. إذا كانوا مطورين رائدين في الويب 2، فلا حاجة لهم للتخلي عن مهنتهم في الويب 2 والانتقال إلى مجهول مثل الويب 3. في هذا البيئة، نحن نطور بعض الأعمال التجارية التي لا نعرف ما إذا كانت ستنجح أم لا.
يمكن القول إن معظم مطوري الألعاب الرائدين لم يدخلوا إلى Web3. إلى حد ما، يجعل هذا معظم ألعاب Web3 متحيزة نحو التكهن المالي بدلاً من أن تكون لها قابلية خاصة للعب والمرح.
توجد عقبات من نفس الطبيعة أيضًا على جانب المستخدم. تحتوي ألعاب Web3 على سلسلة من خطوات العمليات التي تعيق معدلات تحويل المستخدم، مما يؤدي إلى وجود مجموعة كبيرة من المستخدمين من Web2 الذين لا يرغبون في تجربة أو حتى لا يدركون تمامًا وجود ألعاب Web3.
هل هناك مشروع في مستوى البنية التحتية يمكن أن يحل المشاكل المذكورة أعلاه؟ قد يكون Tabi Chain مشروعًا قريبًا جدًا من إحدى الحلول النهائية لألعاب الويب3. مفهومه الأساسي هو "Omni Execution Layer": لم يعد المطورون بحاجة إلى الاهتمام بالفروق بين مختلف الآلات الظاهرية أو بيئات التشغيل. يمكنهم استخدام بيئات التشغيل المألوفة لديهم أو حتى قابلة للتخصيص مباشرة لتطوير ألعاب أو نقلها مباشرة.
بالإضافة إلى ذلك، تابي تشين لديها أيضًا توافق قابل للتعديل وطبقة أمان وميزات أخرى. كل شيء قابل للتعديل وقابل للتخصيص لتلبية احتياجات الألعاب والتطبيقات المختلفة.
دعونا نستعيد مفهوم البلوكشين الأساسي. بينما قد يصف البعض أنها دفتر أستاذ غير مركزي ولا يمكن تغييره، يمكن تحديده بدقة أكبر على أنه تزامن قابل للتحقق لحالة دائمة لآلة حالة ضمن شبكة موزعة.
بالجوهر، تحافظ سلسلة الكتل على جهاز حالة مقبول عالميا وحالته التشغيلية:
وبالتالي، لا يحتاج نظام التوافق في سلسلة الكتل إلى أن يكون محدودًا بطبقة تنفيذية واحدة فقط (مثل EVM فقط). بغض النظر عن عدد الطبقات التنفيذية، طالما يمكن للسلسلة التحقق من الحالات عبر عدة طبقات، مما يسمح لكل لعبة بالعمل في بيئتها الخاصة، يمكننا التعامل مع المشاكل المختلفة التي تم مناقشتها سابقًا.
في تابي، يمكن لكل لعبة أو dApp بناء خدمتها المستقلة الخاصة. تقوم جميع الخدمات بتقديم الكتل التي تم إنشاؤها ذاتيًا إلى نظام الاتفاق في السلسلة؛ تشمل العقد المشرفة الوقت التشغيل/VM في جميع الخدمات للتحقق من حالة كتل الخدمة. يمكن اعتبار نواة طبقة التنفيذ شاملة الكل في تابي على أنها VM بقدرات متعددة الشكل، لذا يُطلق عليها اسم Polymorphism VM.
لتكامل أجهزة الإفتراض الظاهرية القائمة، يحتاج جهاز إفتراض الظاهرية متعدد الأشكال إلى دمج هذه الأجهزة ضمن بيئته التشغيلية وتوفير واجهة الدعوة اللازمة لطرق الاستدعاء. يمكن تنفيذ مفهوم "التكامل" هنا بطريقتين:
الحالة العالمية المشتركة: شبيهة بـ Ethermint، التي تدعم EVM على Cosmos. يعمل EVM كطبقة سطحية، مركزًا على تفاعل المستخدم وعمليات العقد، مما يجعل جميع أنشطة الجانب الخاص بالمستخدم تبدو وكأنها تُنفذ على EVM. ومع ذلك، يتم تخزين النتائج النهائية والبيانات لهذه العمليات في وحدات Cosmos أخرى. وبالتالي، تعددية EVM هذه في الأساس تعددية للبيانات الأساسية.
يمكن تمديد هذه العلاقة التعيين إلى الآخرين أيضًا. على سبيل المثال، يمكن لإيثرمينت دمج طبقة إضافية من وحدة SVM، حيث تتوافق كل من SVM و EVM مع نفس البيانات الأساسية.
هذا يشبه استخدام VMWare على جهاز كمبيوتر شخصي لتشغيل جهاز كمبيوتر افتراضي بنظام Windows. يمكن لـ VMWare الوصول إلى كل من القرص الصلب الافتراضي للجهاز الافتراضي وقرص الكمبيوتر الفعلي. إذا قمت ببدء تشغيل جهاز كمبيوتر افتراضي لنظام Mac بعد ذلك، فيمكنه استعراض البيانات من القرص الفعلي بنفس الطريقة. يُمكن استخدام هذا الإعداد بشكل فعال لتمكين عدة أجهزة كمبيوتر افتراضية من مشاركة الموارد والحالة لنفس البيئة.
سيستخدم الخدمة الرئيسية لـ Tabi Chain نهج الحالة العالمية المشتركة. وهذا يعني أنه بمجرد تكييف جهاز الظاهرة الافتراضي المقابل، يمكن نشر تطبيقات اللامركزية التي تم تطويرها لهذا الجهاز مباشرةً على الخدمة الرئيسية دون الحاجة إلى إنشاء خدمة منفصلة.
الدولة العالمية المستقلة: تختلف التطبيقات والألعاب في متطلباتها الفريدة، وتستخدم بعض الألعاب بيئات تشغيل مخصصة. لذلك، النهج الشامل لدمج جميع الآليات الظاهرية من خلال 'الدولة العالمية المشتركة' في آلية التعددية الظاهرية ليس مناسبًا لكل حالة. الدولة العالمية المستقلة ضرورية أيضًا، حيث أنه من الأسهل تنفيذها ومثالية للخدمات التي تمتلك بيانات منفصلة تمامًا.
بغض النظر عن الطريقة المستخدمة، يجب أن تكون قابلة للتحقق من قبل العقدة المشرفة. وهذا يعني أنه يجب أن يتضمن جهاز الإنفاذ الظاهري لـ Polymorphism جميع أجهزة الإنفاذ الظاهري أو الأوقات التشغيلية المستخدمة من قبل طرق التنفيذ المختلفة.
مثال على نقل لعبة Web2
يمكن تخصيص جهاز الـ Polymorphism بشكل كبير، مما يجعله مفيدًا بشكل خاص لمطوري الويب2. يمكنهم استخدام لغات وأطر عمل مألوفة لنقل أي منطق تجاري إلى جهاز الـ Polymorphism.
نفترض أن Minecraft يرغب في الانتقال إلى Tabi. سيكون العملية العامة كما يلي:
بهذا، العملية بأكملها قد اكتملت.
بالنسبة للمطورين، يتم إجراء هذه التعديلات ضمن لغة الجافا والإطار القائمين. نفس المفهوم ينطبق على الألعاب التي تم تطويرها باستخدام أي طريقة أخرى. بالنسبة للمستخدمين، تظل تفاعلية اللعبة دون تغيير كبير. بوضوح، هذه الطريقة لنقل ألعاب الويب2 سريعة وفعالة للغاية، وقد تصبح النموذج الأساسي لتبني الجماهير لألعاب الويب3.
تفاصيل وظائف اللعبة STR (State Transition Runtime)
توفر النموذج السابق نظرة عامة على نقل لعبة Web2. للحصول على فهم أعمق، نحتاج إلى الانغماس في المزيد من التفاصيل. هذه المرة، سنستخدم مثالًا عامًا بدلاً من لعبة محددة لتوضيح التفاصيل المشاركة في وقت تشغيل طبقة التنفيذ الأومني.
بالأساس، يمكن النظر إلى تخصيص بيئة تشغيل اللعبة على أنها إنشاء جهاز حالة اللعبة على سلسلة الكتل، المشار إليه بجهاز تشغيل تحويل الحالة (STR) في Tabi.
المثال أعلاه هو العملية العامة لنقل الألعاب Web2. لا يزال علينا معرفة المزيد عن التفاصيل. هذه المرة نستخدم مثالًا عامًا بدلاً من مثال لعبة محدد لعرض التفاصيل المشاركة في التشغيل في طبقة التنفيذ القاهرة.
في الأساس، يمكن اعتبار تخصيص بيئة تشغيل لعبة على البلوكشين كإنشاء آلة حالة للعبة معينة، والتي تُسمى وقت التشغيل لتحويل الحالة في تابي.
يمكن دمج STR في Polymorphism VM على شكل ثنائي أو وحدة.
في نظام يشبه سلسلة الكتل، نحتاج إلى ضمان شفافية المداخل، ورؤية عامة لتحولات الحالة، وقدرة التعبير عن الحالة العامة. لتلبية هذه المتطلبات، نحتاج إلى بناء وقت تشغيل يحتوي على الميزات التالية:
الهياكل التنظيمية التالية هي عناصر أساسية في هذا STR. ستوفر تابي SDK بشكل افتراضي لتسهيل عمل المطورين في إنشاء الوقت التشغيلي.
World DB
عملياً، من المحتمل أن يستخدم اللعبة أو التطبيق أكثر من قاعدة بيانات واحدة، وقد تكون هذه القواعد من أنواع مختلفة. لنفترض أن لعبة معينة تستخدم كل من قاعدة بيانات ذات علاقات وقاعدة بيانات مفتاح-قيمة.
التالي هو مثال بسيط على قاعدة بيانات علاقية:
هذا هو قاعدة بيانات بسيطة مفتاح-قيمة:
وظيفة الانتقال بين الحالات
هذه وظيفة تحول الحالة بسيطة. عندما تتلقى هذه الوظيفة إدخالًا من المستخدم، فإنها تضربه بمجرد 5 وتعدل البيانات في قاعدة البيانات العلاقاتية.
متراكم الحالة العالمية
يمكننا بناء مجمع تجميع مجموعات بسيط لتمثيل حالة العالم:
A_s+1 = هاش(A_s + هاش(الاستعلام))
تضمن هذه الطريقة أنه بعد أي تعديل على قاعدة بيانات العالم، سيكون هناك دائمًا حالة فريدة ومحددة تتوافق مع ذلك التعديل.
من المهم أن نلاحظ أن وظيفة انتقال الحالة يجب أن تنفذ هذه الطريقة. يمكن فرض هذا المتطلب باستخدام تعديلين، واجهات، خطافات، أو آليات أخرى محددة للغة. نظرًا للخصائص المختلفة للغات البرمجة المختلفة، لن ننغمس في تفاصيل محددة هنا.
يتبع عملية التحديث لقاعدة بيانات القيمة المفتاحية (KVDB) نفس المبدأ.
أرقام عشوائية
دوال تحويل الحالة يجب ألا تتضمن أرقام عشوائية، حيث سيؤدي ذلك إلى حدوث نتائج مختلفة عند التحقق من قبل محققين مختلفين، مما يؤدي إلى كسر التوافق. يجب تضمين الأرقام العشوائية كجزء من معاملات الإدخال للنظام.
من الأمثلة أعلاه، يمكننا أن نرى أن طبي تشين Omni-Execution Layer توفر لمطوري الألعاب مرونة كبيرة من خلال نهج موديلار. نظرًا لقيود المساحة، لا يمكننا مناقشة جميع التفاصيل هنا، ولكن النقاط الأساسية المذكورة كافية لإظهار أن حل طبي تشين عملي ومبتكر.
في النظام البيئي الحالي للويب3 ، تفتقر الأعمال المطورة على سلاسل وآلات افتراضية مختلفة عمومًا إلى القابلية للنقل. بالنسبة لألعاب الويب2 التي تنتقل إلى الويب3 ، فإن ذلك يعني في كثير من الأحيان إعادة كتابة اللعبة بلغات وبيئات غير مألوفة ، ومواجهة مجموعة متنوعة من القيود غير المفهومة.
مع Tabi، يمكن للمطورين استخدام لغتهم الأصلية ومنصة التطوير والمحرك. يحتاجون فقط إلى إجراء تكييفات وتعديلات بسيطة، مشابهة لاستدعاء SDK، لجلب مشاريعهم إلى عالم البلوكشين. وهذا يؤدي إلى تحسينات هائلة في الكفاءة وتقليلات في التعقيد.
نأمل أن يمكن لسلسلة تابي أن تصبح عاملا محفزًا لتبني العاب الويب3 بشكل واسع، مجذبة للمطورين الموهوبين في الألعاب ويب2 وجلب ألعاب حقا مسلية وقابلة للعب إلى المساحة ويب3.