المتحدثون: أندريا، غابرييل، المؤسس المشارك لشركة ماجيك بلوك
演讲标题:إطار عمل للألعاب على السلسلة
** مقدمة المترجم: "BOLT هو محرك ألعاب كامل السلسلة تم تطويره بواسطة فريق Magicblock لنظام Solana البيئي. تم تجميع هذه المقالة من العروض التقديمية لمؤسسي Magicblock في حدث Breakpoint 2023. "**
مرحبا بالجميع ، هذا هو الخطاب الأخير قبل عيد الهالوين ، وآمل أن يكون محتوى الخطاب مثيرا للاهتمام للجميع. اسمي أندريا وأنا المؤسس المشارك لي ، غابرييل. اليوم ، سنقدم إطارا جديدا للألعاب كاملة السلسلة (محركا).
**01.لماذا تحتاج إلى لعبة كاملة السلسلة **
سأبدأ بالأساسيات ، وهذا هو السبب في عناء بناء لعبة كاملة السلسلة مع كل من الحالة والمنطق على السلسلة ، والتعامل مع جميع التعقيدات التي تأتي معها. السبب البسيط هو الحصول على ميزات لا تمتلكها البنية التحتية للألعاب التقليدية.
الميزة الأولى هي تعديل بدون إذن. هذا يعني أنه يمكن لجميع اللاعبين والمطورين تخصيص أي مكون في اللعبة ، بما في ذلك إدخال المكونات الإضافية أو التعديلات ، بدءا من العميل المتقدم. حتى المنطق الأساسي للعبة يمكن تمديده من خلال العقود الذكية. بشكل أساسي ، إنه وضع جديد حيث تكون كل لعبة عبارة عن منصة جديدة افتراضيا ، ويمكنك أن تصبح قوة محتوى بغض النظر عن مدى صغر فريقك.
السمة الثانية هي المثابرة. تسببت العوالم المستقلة وحقيقة أن هذه التجارب الافتراضية يمكن أن توجد إلى الأبد في الكثير من التداعيات. نظرا لأنه لا يمكن فرض رقابة على أي خوادم أو إغلاقها ، فإن هذه التجارب تقدم في الواقع معنى جديدا تماما. أصبحت الألعاب منصة للاعبين للعب والتواصل الاجتماعي وإجراء التجارة العالمية ، وهي أكثر عالمية من منصات الألعاب التقليدية.
الميزة الأخيرة هي الاقتصادات المفتوحة. يمكن للألعاب الاستفادة من نظام الدفع العالمي المفتوح بدون احتكاك في blockchain ، وخاصة المدفوعات الصغيرة في نظامنا البيئي ، وإعادة استخدام البنية التحتية الحالية على السلسلة مثل أسواق DEXs أو NFT.
**02.الحل الحالي **
المشكلة الحالية في ألعاب omnichain هي أن تجربة التطوير سيئة للغاية ، وننظر إلى الحلول الموجودة في السوق ونجد أن هناك بعض أطر التطوير التي تحاول تبسيط تجربة المطور.
بعضها مثير للاهتمام للغاية من حيث أنهم يحاولون التكرار في جلسات يمكن إثباتها ، حيث يمكنك إجراء حسابات خارج السلسلة وإثبات سلامة الحسابات على السلسلة. أو قدم وقت تشغيل يعتمد على الأحداث يكون أكثر ملاءمة لمحركات ألعاب blockchain ، بدلا من وقت التشغيل المستند إلى الحلقة.
لكن كل هذه الأطر تتطلب مقايضات بين الأداء وقابلية التركيب لتحقيق أداء أعلى و TPS أعلى. عادة ، ستقوم إما بإنشاء عزل أو تقديم وقت تشغيل مختلف باستخدام الأجزاء.
لكننا لسنا سعداء بهذه المقايضة. سألنا أنفسنا ، ماذا لو كان هناك إطار عمل يمكن أن يدعم TPS الذي نحتاجه؟ عندما تنجح لعبتك ، لا يتعين عليك التضحية بتجربة المستخدم الخاصة بهم ، حتى مع ملايين اللاعبين ، لأن حروب الغاز لن تحدث. ولا يتطلب إطار العمل التجزئة والتجزئة ، لذلك يمكنك استخدام جلسات اللعبة التي يمكن إثباتها وحتى محاكاة مرور الوقت دون دفع رسوم الغاز. ليست هناك حاجة لتجزئة النظام أو استخدام الطبقة 3 على الإطلاق.
** 03.محرك تطوير لعبة سلسلة كاملة على Solana: BOLT **
لهذا السبب نحن متحمسون لتقديم BOLT ، وهو إطار تطوير ألعاب عالي الأداء وقابل للتركيب وكامل السلسلة يعتمد على SVM.
BOLT معياري وقابل للتركيب ، مما يسمح له باستخدام جميع البنية التحتية الموجودة في Solana. إنه يعمل مع منشآتنا الحالية على السلسلة مثل الهوية على السلسلة ، وواجهة برمجة التطبيقات الخالية من الغاز ، ومفتاح الجلسة ، بالإضافة إلى إطار تطوير Anchor الحالي وجميع البرامج الحالية على Solana. يمكن أن يتوسع كلاهما بترتيب أعلى من حيث الحجم بفضل Ephemeral Rollups ، وهي جلسات ألعاب يتم فتحها وإغلاقها حسب طلب المستخدم ، وتوسيع نطاقها حسب الحاجة.
BOLT سريع للغاية ، ويمكننا تحقيق نفس مستوى الأداء مثل محرك اللعبة التقليدي قبل استخدام أوقات التشغيل المخصصة هذه لتسريع عمليات معينة.
هذا عرض بانورامي لإطار BOLT. من الواضح أنه مصمم ل Solana ، لكن يمكنه استخدامه على أي نظام أساسي متوافق مع SVM ، مثل الطبقة 2 المتوافقة مع SVM. لدى BOLT هدفان رئيسيان ، قابلية التركيب وقابلية التوسع.
يعد نظام ECS (مكون الكيان) إحدى الطرق التي نبسط بها استخدام المكونات على السلسلة. والآخر هو Ephemeral Rollup ، والذي تم ذكره بإيجاز سابقا ، وسأتعمق في كلتا التقنيتين بعد قليل.
تم دمج BOLT مع محركات الألعاب القديمة الأكثر استخداما ، مثل Unity ، والتي غالبا ما تكون بمثابة الواجهة الأمامية للألعاب. بالطبع ، يتضمن هذا أيضا محركات ألعاب أخرى مفتوحة المصدر ومحبوبة مثل Godot و Phaser. نحن نعمل حتى مع عميل لعبة محدث ، Turbo ، يركز على تحسين تجربة المطورين المستقلين وتسهيل إنشاء الألعاب بسرعة. قد يكون هناك المزيد من الشركاء في المستقبل.
سأبدأ هنا وأستمر في شرح سبب حاجتنا إلى نظام مكون كيان ECS. الجواب بسيط ، لأنه يسمح بأقصى قدر من التركيب ، مما يعني أنه يمكننا إنشاء وإعادة استخدام المكونات الجاهزة.
كما يوحي الاسم ، تم تضمين ECS في ثلاثة عناصر رئيسية: الكيانات ، وهي في الأساس معرفات مسجلة في مثيل عالم لعبة منفصل ، والمكونات ، التي تحدد بنية البيانات بحيث تكون في الأساس البيانات المرتبطة بالكيان ، وأخيرا النظام ، وهو المنطق الذي يتعامل مع المكونات المرتبطة بالكيان.
ميزة هذه البنية هي أن جميع الأنظمة والمكونات قابلة لإعادة الاستخدام. يمكن نشرها في سجل عام ، ويمكن للمطورين المساهمة بسهولة في أي نوع من المكونات وبنائه واكتشافه ودمجه ، لذلك لا يتعين عليك كتابة سطر واحد من التعليمات البرمجية من البداية بعد الآن ، ولكن يمكنك إعادة استخدام جميع المكونات الموجودة والمساهمة فيها في النهاية. على سبيل المثال ، يمكن أن يكون لدينا بنية بيانات شبكية (مثل متاهة أو ساحة معركة) ، أو نظام متحرك ، أو نظام إثبات المعرفة الصفرية لضباب الحرب.
** 04.BOLT محرك ECS ممارسة البرمجة **
** (ملاحظة المترجم: يوصى بهذا الجزء للمطورين لمشاهدة الفيديو الأصلي ، ويمكن لغير المطورين تخطي هذا الجزء) **
الآن ، سأنتقل إلى IDE الخاص بي وأريكم مثالا بسيطا للعبة باستخدام محرك BOLT ECS.
سنحدد العديد من الكيانات ومكون الموقع ونظامين سيتعاملان مع البيانات الخاصة بمكون الموقع هذا ويغيرانها. لذا ، فإن نقطة الدخول الأولى هي التفاعل مع البرنامج العالمي. يعد البرنامج العالمي جزءا من إطار عمل BOLT ويكشف عن بعض عمليات الاستخراج التي تسمح لك بتسجيل مثيلات عالمية جديدة.
يمكنك إضافة كيانات إلى المثيل العالمي الخاص بك، ويمكنك تسجيل المكونات مع الكيانات التي حددتها للتو، والتي يتم تعريفها بشكل أساسي بواسطة برنامج المكونات. يحتوي برنامج المكون على توجيهين ، أولهما تهيئة وإنشاء وتخصيص مساحة لتخزين صفوف البيانات التي سيتم استخدامها في المكون الخاص بك. في هذا المثال البسيط ، نقوم بتعريف مكون الموقع ، وإذا نظرنا إلى سياق توجيه التهيئة ، يمكننا أن نرى أن لدينا بيانات مكون ، وبيانات المكون تحدد فقط بنية بإحداثيات XYZ يمكنها تخزين موقع المشغل على سبيل المثال.
الآن ، ربما يكون التوجيه الثاني هو الأكثر إثارة للاهتمام ، فهو نقطة دخول تسمح لنا بتنفيذ أي منطق. سيتلقى مكوناتنا وأنظمتنا التعسفية كمدخلات ، وينفذ المنطق المحدد داخليا في النظام من خلال التنفيذ عبر مواقع البرمجة. الآن ، إذا نظرت إلى السطر 15 ، فلدينا استدعاء CPI (واجهة البرمجة المشتركة) ، والذي سينفذ المنطق المحدد داخليا من خلال CPI. سيقوم بإجراء جميع الحسابات التي يحددها النظام ثم يعود إلى موقعنا ، حيث سيقوم برنامج المكون باسترداده وإعادته إلى بياناتنا.
والآن، دعونا نحاول إلقاء نظرة على سياق دالة التطبيق، حيث يمكننا ملاحظة أن لدينا حسابين فقط. الأول هو الحساب الذي يحتوي على بيانات مكوناتنا ، والثاني هو برنامج النظام. نتيجة لذلك ، أصبح برنامج النظام الآن واجهة بدلا من برنامج واحد. لذلك ، يمكن تنفيذ أي برنامج يلتزم بواجهة نظام BOLT الخاصة بنا من خلال هذا التطبيق.
**05.أهمية نظام ECS **
بشكل أساسي ، يغير هذا الطريقة التي تصمم بها منطق لعبتك ويقلب العمليات التقليدية رأسا على عقب. في السابق ، إذا كنت ترغب في إنشاء أو تغليف بعض المنطق في برنامجك ، فعادة ما تضيف ميزات أولا ، كل منها كان توجيها في البرنامج ، ثم في النهاية في مرحلة ما ، ستغلق برنامج اللعبة الذي كنت تقوم بتطويره.
ومع ذلك ، مع نموذج ECS ، يمكننا بدلا من ذلك الحصول على برنامج غير قابل للتغيير من البداية ، وبعد ذلك باستخدام آلية الوكيل هذه ، يمكننا إضافة نظام مدمج داخليا أو من قبل أي شخص ، حتى نتمكن من الحصول على لعبة يمكن تشغيلها إلى الأبد ، قابلة للتطوير ، ويمكن لأي شخص حقا تغيير منطق اللعبة.
يمكنهم نشر أنظمة جديدة تعمل على هذه المكونات. الآن ، تتيح لك الواجهة أيضا إجراء بعض الفحوصات ، حتى نتمكن من تصميم ميكانيكي ألعاب يجعل من غير المسموح به إضافة أنظمة جديدة يمكنها تعديل بيانات المكونات.
أو يمكننا إعداد واجهة للتحقق مما إذا كان النظام يسمح بالتنفيذ على المكون. على سبيل المثال ، يمكنك تصميم نظام حوكمة حيث إذا اقترح شخص ما منطقا جديدا ، وتمت الموافقة على هذا المنطق ، فيمكن لجميع اللاعبين استخدام هذا المنطق في اللعبة.
هذا يمكن أن يؤدي حتى إلى شوكة في عالم اللعبة (العقد العالمي). في عالم ، أنت تمتلك نظام الطيران. وفي عالم آخر ، إذا لم تتم الموافقة على النظام ، فمن الممكن أن يكون لديك قواعد مختلفة وسيظل الجميع قادرين على المساهمة في نسختهم الخاصة من العالم.
الآن دعونا نلقي نظرة على كيفية بناء نظام يمكنه تعديل هذا المكون. النظام هو في الأساس مجرد برنامج على Solana يحدد تعليمات التنفيذ ، وتعليمات التنفيذ هي التي نسميها من البرنامج المكون في CPI (واجهة البرمجة المشتركة). هنا ، يقوم فقط بتغليف منطق بسيط للغاية يتلقى فيه اتجاه الإدخال ، ويحسب الدلتا ، ثم يغير مواضع X و Y للمكون.
لذلك دعونا نلقي نظرة على نظام آخر يمكن نشره بواسطة شخص آخر ، حتى بعد إصدار اللعبة. إليك مثال آخر على نظام ينفذ ute. هنا ، يتم زيادة موضع Z بمقدار 1 ، لذلك يحاول شخص ما إضافة نظام جانبي ، والذي يمكن أن يكون واجهة بطبقة مختلفة أعلى لعبتك.
لذا ، فإن الفكرة الآن هي أن كل هذه الأنظمة ، كل هذه المكونات قابلة للتركيب حقا ، ولم يعد مستخدمو اللعبة مستخدمين بسيطين ، فقد أصبحت اللعبة منصة مفتوحة وقابلة للتطوير ومستمرة. لذلك سأحاول تنفيذ اختبارات الوحدة التي أعددتها في هذا المثال ، وسأستخدم BOLT CLI ، المبني على قمة Anchor ، وهو إطار عقد ذكي ل Solana ، لذلك إذا كنت معتادا بالفعل على Solana ، فلن تحتاج إلى تعلم أي شيء جديد.
الآن ، يمكنك تطوير البرامج على Solana ، فقط تطوير البرامج ، برامج الاختبار ، لذلك أنا هنا أقوم بتشغيل بناء الترباس واختبار الترباس ، وهنا أقوم بنشر برنامجنا ، ثم أقوم باختبار النوع الذي أعددته هنا.
لذلك ، هنا الاختبار هو إرسال معاملة لتهيئة عالم جديد. نحن نسجل كيانين ، ونرفق مكونات الموقع ببعضها ، ومن ثم ربما يكون الجزء المثير للاهتمام هو القيام ببعض الأنظمة هنا. إذن، نسمي هنا الدالة apply، ثم نستخدم أحد هذه الأنظمة. إذن ، هذا مجرد نظام افتراضي.
نحن هنا نسمي حركة بسيطة ، ثم نطير بحركة هنا. حسنا ، الآن ، إذا نظرنا إلى سجلات الاختبار ، في الصفقة الأولى ، نستخدم هنا نظاما متحركا باتجاه تصاعدي ، مما يزيد من موضع Y بمقدار 1. في المعاملة الثانية ، نستخدم نفس النظام للانتقال إلى اليمين ، ثم أخيرا ، ننفذ نظام الطيران ، الذي يفعل العكس ، مما يزيد من موضع Z بمقدار 1. إنه مجرد مثال بسيط ، لكنه يقدم ميكانيكيا قويا للغاية يسمح لأي شخص بتطوير وتوسيع وربما جعل لعبتك ممتعة.
**06.التراكمي سريع الزوال **
الآن بعد أن عدنا إلى الشريحة ، سأصف الجانب الثاني المثير للاهتمام في إطار عمل BOLT ، وهو حل قابلية التوسع لدينا ، والذي نسميه Ephemeral Rollup.
من المفترض عموما أن Solana سريع جدا ورخيص بالفعل ، وأنه يولد حاليا كتلة كل 400 مللي ثانية ويمكنه معالجة آلاف المعاملات ، لذلك فهو جاهز بالفعل لبناء لعبة كاملة السلسلة. ومع ذلك ، إذا كان لديك سلسلة منطقية قديمة للاعبين المتعددين ، فستكون تحديثات الموقع بطيئة للغاية.
حتى نتمكن من بناء طبقة تسريع قصيرة العمر متوافقة تماما مع وقت تشغيل Solana. الوقت المستخدم اختياري ، يمكنه أن يكون بمثابة تسريع حقيقي لعملية معينة ، بينما لا يزال يتم تنفيذ معظم المنطق على السلسلة الرئيسية ، لذلك يعتمد على الميزة التي يتم تخزين كل الحالة على Solana في الحساب.
عادة ، سيكون لديك برنامج لعبة يحدد المنطق ، وبعد ذلك سيتم تخزين كل الحالة في هذا الحساب ، حتى نتمكن من تفويض بعض هذه الحسابات إلى هذه الطبقة سريعة الزوال التي تستخدم محرك BOLT.
في هذا المثال، هناك حسابان معتمدان يخزنان موقع المشغل، ويستمع الموفر بنشاط لطلبات التفويض وطلبات التوفير. سيبدأ وقت تشغيل جديد حسب الحاجة ، وهو سريع وقابل للتخصيص ولا يمكن أن يكون له معاملات غاز أو علامات ، ويسمح لنا حقا بإجراء معاملات أقل من 50 مللي ثانية ، وربما التوسع من خلال وجود أوقات تشغيل مخصصة متعددة.
الآن ، الجزء الآخر المثير للاهتمام هو أنه يمكن تجريد كل هذا التعقيد بعيدا عن المستخدم. لدينا جهاز توجيه RPC ، والذي يشبه بشكل أساسي جهاز توجيه RPC التقليدي. يمكن لعميل RPC التفاعل مباشرة مع RPC لإرسال المعاملات. نظرا لأنه في Solana ، يتم الإعلان مسبقا عن جميع المعاملات لجميع الحسابات القابلة للتغيير والقراءة ، يمكن لأجهزة توجيه RPC توجيه المعاملات واستعلامات البيانات واسترجاعها إلى المستوى الصحيح.
ثم في مرحلة ما ، سيتم إغلاق الطبقة سريعة الزوال (كما يوحي اسمها) وسيتم تسوية جميع الحالات في طبقة Solana الأساسية ، وهي مسؤولية جهاز التسلسل ، الذي يتتبع جميع الحسابات.
هناك طريقة أخرى للنظر إلى هذه الآلية وهي أن لدينا طبقتين ، وينفذان المعاملات بالتوازي. لقد قمنا بتفويض الحسابات التي تسمح لنا بالتحديث بزمن انتقال أقل دون استخدام معدل نقل السلسلة الرئيسية. ثم لدينا حسابات أخرى ، لم يتم تفويضها ، ويتم تنفيذها على السلسلة الرئيسية.
الآن ، الشيء المثير للاهتمام هو أن البرامج والأدوات والأطر والبنية التحتية كلها على السلسلة الرئيسية. لا تحتاج إلى نشر البرنامج الخاص بك في مجموعة التحديثات ، على الرغم من أن هذا أمر شائع في العديد من البنى الأخرى. كل شيء على نفس الطبقة ، كل شيء قابل للتركيب ، وكما ذكرنا ، فإن وقت التشغيل المتخصص هذا قابل للتوسيع أيضا ويمكن تخصيصه حقا.
الآن ، يفتح هذا فئة جديدة تماما من الألعاب ، والتي يبنيها على blockchain وهي ذات زمن انتقال منخفض. تماما كما تفعل مع خادم تقليدي متعدد اللاعبين ، ولكن لا يزال بإمكانك الاندماج مع كل ما هو متاح على نظام Layer 1 البيئي.
يمكنك الوصول إلى السيولة الحالية ، ويمكنك إرسال رسائل من خلال البروتوكولات ، و NFTs ، واستخدام تجريدات الحساب ، ومفاتيح الجلسة ، ولوحات المتصدرين ، ونظام بيئي موحد ، والجميع يثري نفس النظام البيئي.
شكرا جزيلا على الاستماع إليكم. يمكنك التسجيل للوصول المبكر إلى إطار العمل الخاص بنا باستخدام رموز QR والتحقق من المستودع. يمكنك بالفعل العثور على وثائق قوية وأوراق بيضاء تصف بالتفصيل إطار العمل الذي قدمناه للتو. أشكرك كثيرًا.
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
بولت: محرك ألعاب ECS كامل السلسلة قائم على سولانا
روابط الفيديو:
المتحدثون: أندريا، غابرييل، المؤسس المشارك لشركة ماجيك بلوك
演讲标题:إطار عمل للألعاب على السلسلة
** مقدمة المترجم: "BOLT هو محرك ألعاب كامل السلسلة تم تطويره بواسطة فريق Magicblock لنظام Solana البيئي. تم تجميع هذه المقالة من العروض التقديمية لمؤسسي Magicblock في حدث Breakpoint 2023. "**
مرحبا بالجميع ، هذا هو الخطاب الأخير قبل عيد الهالوين ، وآمل أن يكون محتوى الخطاب مثيرا للاهتمام للجميع. اسمي أندريا وأنا المؤسس المشارك لي ، غابرييل. اليوم ، سنقدم إطارا جديدا للألعاب كاملة السلسلة (محركا).
**01.لماذا تحتاج إلى لعبة كاملة السلسلة **
سأبدأ بالأساسيات ، وهذا هو السبب في عناء بناء لعبة كاملة السلسلة مع كل من الحالة والمنطق على السلسلة ، والتعامل مع جميع التعقيدات التي تأتي معها. السبب البسيط هو الحصول على ميزات لا تمتلكها البنية التحتية للألعاب التقليدية.
الميزة الأولى هي تعديل بدون إذن. هذا يعني أنه يمكن لجميع اللاعبين والمطورين تخصيص أي مكون في اللعبة ، بما في ذلك إدخال المكونات الإضافية أو التعديلات ، بدءا من العميل المتقدم. حتى المنطق الأساسي للعبة يمكن تمديده من خلال العقود الذكية. بشكل أساسي ، إنه وضع جديد حيث تكون كل لعبة عبارة عن منصة جديدة افتراضيا ، ويمكنك أن تصبح قوة محتوى بغض النظر عن مدى صغر فريقك.
السمة الثانية هي المثابرة. تسببت العوالم المستقلة وحقيقة أن هذه التجارب الافتراضية يمكن أن توجد إلى الأبد في الكثير من التداعيات. نظرا لأنه لا يمكن فرض رقابة على أي خوادم أو إغلاقها ، فإن هذه التجارب تقدم في الواقع معنى جديدا تماما. أصبحت الألعاب منصة للاعبين للعب والتواصل الاجتماعي وإجراء التجارة العالمية ، وهي أكثر عالمية من منصات الألعاب التقليدية.
الميزة الأخيرة هي الاقتصادات المفتوحة. يمكن للألعاب الاستفادة من نظام الدفع العالمي المفتوح بدون احتكاك في blockchain ، وخاصة المدفوعات الصغيرة في نظامنا البيئي ، وإعادة استخدام البنية التحتية الحالية على السلسلة مثل أسواق DEXs أو NFT.
**02.الحل الحالي **
المشكلة الحالية في ألعاب omnichain هي أن تجربة التطوير سيئة للغاية ، وننظر إلى الحلول الموجودة في السوق ونجد أن هناك بعض أطر التطوير التي تحاول تبسيط تجربة المطور.
بعضها مثير للاهتمام للغاية من حيث أنهم يحاولون التكرار في جلسات يمكن إثباتها ، حيث يمكنك إجراء حسابات خارج السلسلة وإثبات سلامة الحسابات على السلسلة. أو قدم وقت تشغيل يعتمد على الأحداث يكون أكثر ملاءمة لمحركات ألعاب blockchain ، بدلا من وقت التشغيل المستند إلى الحلقة.
لكن كل هذه الأطر تتطلب مقايضات بين الأداء وقابلية التركيب لتحقيق أداء أعلى و TPS أعلى. عادة ، ستقوم إما بإنشاء عزل أو تقديم وقت تشغيل مختلف باستخدام الأجزاء.
لكننا لسنا سعداء بهذه المقايضة. سألنا أنفسنا ، ماذا لو كان هناك إطار عمل يمكن أن يدعم TPS الذي نحتاجه؟ عندما تنجح لعبتك ، لا يتعين عليك التضحية بتجربة المستخدم الخاصة بهم ، حتى مع ملايين اللاعبين ، لأن حروب الغاز لن تحدث. ولا يتطلب إطار العمل التجزئة والتجزئة ، لذلك يمكنك استخدام جلسات اللعبة التي يمكن إثباتها وحتى محاكاة مرور الوقت دون دفع رسوم الغاز. ليست هناك حاجة لتجزئة النظام أو استخدام الطبقة 3 على الإطلاق.
** 03.محرك تطوير لعبة سلسلة كاملة على Solana: BOLT **
لهذا السبب نحن متحمسون لتقديم BOLT ، وهو إطار تطوير ألعاب عالي الأداء وقابل للتركيب وكامل السلسلة يعتمد على SVM.
BOLT معياري وقابل للتركيب ، مما يسمح له باستخدام جميع البنية التحتية الموجودة في Solana. إنه يعمل مع منشآتنا الحالية على السلسلة مثل الهوية على السلسلة ، وواجهة برمجة التطبيقات الخالية من الغاز ، ومفتاح الجلسة ، بالإضافة إلى إطار تطوير Anchor الحالي وجميع البرامج الحالية على Solana. يمكن أن يتوسع كلاهما بترتيب أعلى من حيث الحجم بفضل Ephemeral Rollups ، وهي جلسات ألعاب يتم فتحها وإغلاقها حسب طلب المستخدم ، وتوسيع نطاقها حسب الحاجة.
BOLT سريع للغاية ، ويمكننا تحقيق نفس مستوى الأداء مثل محرك اللعبة التقليدي قبل استخدام أوقات التشغيل المخصصة هذه لتسريع عمليات معينة.
هذا عرض بانورامي لإطار BOLT. من الواضح أنه مصمم ل Solana ، لكن يمكنه استخدامه على أي نظام أساسي متوافق مع SVM ، مثل الطبقة 2 المتوافقة مع SVM. لدى BOLT هدفان رئيسيان ، قابلية التركيب وقابلية التوسع.
يعد نظام ECS (مكون الكيان) إحدى الطرق التي نبسط بها استخدام المكونات على السلسلة. والآخر هو Ephemeral Rollup ، والذي تم ذكره بإيجاز سابقا ، وسأتعمق في كلتا التقنيتين بعد قليل.
تم دمج BOLT مع محركات الألعاب القديمة الأكثر استخداما ، مثل Unity ، والتي غالبا ما تكون بمثابة الواجهة الأمامية للألعاب. بالطبع ، يتضمن هذا أيضا محركات ألعاب أخرى مفتوحة المصدر ومحبوبة مثل Godot و Phaser. نحن نعمل حتى مع عميل لعبة محدث ، Turbo ، يركز على تحسين تجربة المطورين المستقلين وتسهيل إنشاء الألعاب بسرعة. قد يكون هناك المزيد من الشركاء في المستقبل.
سأبدأ هنا وأستمر في شرح سبب حاجتنا إلى نظام مكون كيان ECS. الجواب بسيط ، لأنه يسمح بأقصى قدر من التركيب ، مما يعني أنه يمكننا إنشاء وإعادة استخدام المكونات الجاهزة.
كما يوحي الاسم ، تم تضمين ECS في ثلاثة عناصر رئيسية: الكيانات ، وهي في الأساس معرفات مسجلة في مثيل عالم لعبة منفصل ، والمكونات ، التي تحدد بنية البيانات بحيث تكون في الأساس البيانات المرتبطة بالكيان ، وأخيرا النظام ، وهو المنطق الذي يتعامل مع المكونات المرتبطة بالكيان.
ميزة هذه البنية هي أن جميع الأنظمة والمكونات قابلة لإعادة الاستخدام. يمكن نشرها في سجل عام ، ويمكن للمطورين المساهمة بسهولة في أي نوع من المكونات وبنائه واكتشافه ودمجه ، لذلك لا يتعين عليك كتابة سطر واحد من التعليمات البرمجية من البداية بعد الآن ، ولكن يمكنك إعادة استخدام جميع المكونات الموجودة والمساهمة فيها في النهاية. على سبيل المثال ، يمكن أن يكون لدينا بنية بيانات شبكية (مثل متاهة أو ساحة معركة) ، أو نظام متحرك ، أو نظام إثبات المعرفة الصفرية لضباب الحرب.
** 04.BOLT محرك ECS ممارسة البرمجة **
** (ملاحظة المترجم: يوصى بهذا الجزء للمطورين لمشاهدة الفيديو الأصلي ، ويمكن لغير المطورين تخطي هذا الجزء) **
الآن ، سأنتقل إلى IDE الخاص بي وأريكم مثالا بسيطا للعبة باستخدام محرك BOLT ECS.
سنحدد العديد من الكيانات ومكون الموقع ونظامين سيتعاملان مع البيانات الخاصة بمكون الموقع هذا ويغيرانها. لذا ، فإن نقطة الدخول الأولى هي التفاعل مع البرنامج العالمي. يعد البرنامج العالمي جزءا من إطار عمل BOLT ويكشف عن بعض عمليات الاستخراج التي تسمح لك بتسجيل مثيلات عالمية جديدة.
يمكنك إضافة كيانات إلى المثيل العالمي الخاص بك، ويمكنك تسجيل المكونات مع الكيانات التي حددتها للتو، والتي يتم تعريفها بشكل أساسي بواسطة برنامج المكونات. يحتوي برنامج المكون على توجيهين ، أولهما تهيئة وإنشاء وتخصيص مساحة لتخزين صفوف البيانات التي سيتم استخدامها في المكون الخاص بك. في هذا المثال البسيط ، نقوم بتعريف مكون الموقع ، وإذا نظرنا إلى سياق توجيه التهيئة ، يمكننا أن نرى أن لدينا بيانات مكون ، وبيانات المكون تحدد فقط بنية بإحداثيات XYZ يمكنها تخزين موقع المشغل على سبيل المثال.
الآن ، ربما يكون التوجيه الثاني هو الأكثر إثارة للاهتمام ، فهو نقطة دخول تسمح لنا بتنفيذ أي منطق. سيتلقى مكوناتنا وأنظمتنا التعسفية كمدخلات ، وينفذ المنطق المحدد داخليا في النظام من خلال التنفيذ عبر مواقع البرمجة. الآن ، إذا نظرت إلى السطر 15 ، فلدينا استدعاء CPI (واجهة البرمجة المشتركة) ، والذي سينفذ المنطق المحدد داخليا من خلال CPI. سيقوم بإجراء جميع الحسابات التي يحددها النظام ثم يعود إلى موقعنا ، حيث سيقوم برنامج المكون باسترداده وإعادته إلى بياناتنا.
والآن، دعونا نحاول إلقاء نظرة على سياق دالة التطبيق، حيث يمكننا ملاحظة أن لدينا حسابين فقط. الأول هو الحساب الذي يحتوي على بيانات مكوناتنا ، والثاني هو برنامج النظام. نتيجة لذلك ، أصبح برنامج النظام الآن واجهة بدلا من برنامج واحد. لذلك ، يمكن تنفيذ أي برنامج يلتزم بواجهة نظام BOLT الخاصة بنا من خلال هذا التطبيق.
**05.أهمية نظام ECS **
بشكل أساسي ، يغير هذا الطريقة التي تصمم بها منطق لعبتك ويقلب العمليات التقليدية رأسا على عقب. في السابق ، إذا كنت ترغب في إنشاء أو تغليف بعض المنطق في برنامجك ، فعادة ما تضيف ميزات أولا ، كل منها كان توجيها في البرنامج ، ثم في النهاية في مرحلة ما ، ستغلق برنامج اللعبة الذي كنت تقوم بتطويره.
ومع ذلك ، مع نموذج ECS ، يمكننا بدلا من ذلك الحصول على برنامج غير قابل للتغيير من البداية ، وبعد ذلك باستخدام آلية الوكيل هذه ، يمكننا إضافة نظام مدمج داخليا أو من قبل أي شخص ، حتى نتمكن من الحصول على لعبة يمكن تشغيلها إلى الأبد ، قابلة للتطوير ، ويمكن لأي شخص حقا تغيير منطق اللعبة.
يمكنهم نشر أنظمة جديدة تعمل على هذه المكونات. الآن ، تتيح لك الواجهة أيضا إجراء بعض الفحوصات ، حتى نتمكن من تصميم ميكانيكي ألعاب يجعل من غير المسموح به إضافة أنظمة جديدة يمكنها تعديل بيانات المكونات.
أو يمكننا إعداد واجهة للتحقق مما إذا كان النظام يسمح بالتنفيذ على المكون. على سبيل المثال ، يمكنك تصميم نظام حوكمة حيث إذا اقترح شخص ما منطقا جديدا ، وتمت الموافقة على هذا المنطق ، فيمكن لجميع اللاعبين استخدام هذا المنطق في اللعبة.
هذا يمكن أن يؤدي حتى إلى شوكة في عالم اللعبة (العقد العالمي). في عالم ، أنت تمتلك نظام الطيران. وفي عالم آخر ، إذا لم تتم الموافقة على النظام ، فمن الممكن أن يكون لديك قواعد مختلفة وسيظل الجميع قادرين على المساهمة في نسختهم الخاصة من العالم.
الآن دعونا نلقي نظرة على كيفية بناء نظام يمكنه تعديل هذا المكون. النظام هو في الأساس مجرد برنامج على Solana يحدد تعليمات التنفيذ ، وتعليمات التنفيذ هي التي نسميها من البرنامج المكون في CPI (واجهة البرمجة المشتركة). هنا ، يقوم فقط بتغليف منطق بسيط للغاية يتلقى فيه اتجاه الإدخال ، ويحسب الدلتا ، ثم يغير مواضع X و Y للمكون.
لذلك دعونا نلقي نظرة على نظام آخر يمكن نشره بواسطة شخص آخر ، حتى بعد إصدار اللعبة. إليك مثال آخر على نظام ينفذ ute. هنا ، يتم زيادة موضع Z بمقدار 1 ، لذلك يحاول شخص ما إضافة نظام جانبي ، والذي يمكن أن يكون واجهة بطبقة مختلفة أعلى لعبتك.
لذا ، فإن الفكرة الآن هي أن كل هذه الأنظمة ، كل هذه المكونات قابلة للتركيب حقا ، ولم يعد مستخدمو اللعبة مستخدمين بسيطين ، فقد أصبحت اللعبة منصة مفتوحة وقابلة للتطوير ومستمرة. لذلك سأحاول تنفيذ اختبارات الوحدة التي أعددتها في هذا المثال ، وسأستخدم BOLT CLI ، المبني على قمة Anchor ، وهو إطار عقد ذكي ل Solana ، لذلك إذا كنت معتادا بالفعل على Solana ، فلن تحتاج إلى تعلم أي شيء جديد.
الآن ، يمكنك تطوير البرامج على Solana ، فقط تطوير البرامج ، برامج الاختبار ، لذلك أنا هنا أقوم بتشغيل بناء الترباس واختبار الترباس ، وهنا أقوم بنشر برنامجنا ، ثم أقوم باختبار النوع الذي أعددته هنا.
لذلك ، هنا الاختبار هو إرسال معاملة لتهيئة عالم جديد. نحن نسجل كيانين ، ونرفق مكونات الموقع ببعضها ، ومن ثم ربما يكون الجزء المثير للاهتمام هو القيام ببعض الأنظمة هنا. إذن، نسمي هنا الدالة apply، ثم نستخدم أحد هذه الأنظمة. إذن ، هذا مجرد نظام افتراضي.
نحن هنا نسمي حركة بسيطة ، ثم نطير بحركة هنا. حسنا ، الآن ، إذا نظرنا إلى سجلات الاختبار ، في الصفقة الأولى ، نستخدم هنا نظاما متحركا باتجاه تصاعدي ، مما يزيد من موضع Y بمقدار 1. في المعاملة الثانية ، نستخدم نفس النظام للانتقال إلى اليمين ، ثم أخيرا ، ننفذ نظام الطيران ، الذي يفعل العكس ، مما يزيد من موضع Z بمقدار 1. إنه مجرد مثال بسيط ، لكنه يقدم ميكانيكيا قويا للغاية يسمح لأي شخص بتطوير وتوسيع وربما جعل لعبتك ممتعة.
**06.التراكمي سريع الزوال **
الآن بعد أن عدنا إلى الشريحة ، سأصف الجانب الثاني المثير للاهتمام في إطار عمل BOLT ، وهو حل قابلية التوسع لدينا ، والذي نسميه Ephemeral Rollup.
من المفترض عموما أن Solana سريع جدا ورخيص بالفعل ، وأنه يولد حاليا كتلة كل 400 مللي ثانية ويمكنه معالجة آلاف المعاملات ، لذلك فهو جاهز بالفعل لبناء لعبة كاملة السلسلة. ومع ذلك ، إذا كان لديك سلسلة منطقية قديمة للاعبين المتعددين ، فستكون تحديثات الموقع بطيئة للغاية.
حتى نتمكن من بناء طبقة تسريع قصيرة العمر متوافقة تماما مع وقت تشغيل Solana. الوقت المستخدم اختياري ، يمكنه أن يكون بمثابة تسريع حقيقي لعملية معينة ، بينما لا يزال يتم تنفيذ معظم المنطق على السلسلة الرئيسية ، لذلك يعتمد على الميزة التي يتم تخزين كل الحالة على Solana في الحساب.
عادة ، سيكون لديك برنامج لعبة يحدد المنطق ، وبعد ذلك سيتم تخزين كل الحالة في هذا الحساب ، حتى نتمكن من تفويض بعض هذه الحسابات إلى هذه الطبقة سريعة الزوال التي تستخدم محرك BOLT.
في هذا المثال، هناك حسابان معتمدان يخزنان موقع المشغل، ويستمع الموفر بنشاط لطلبات التفويض وطلبات التوفير. سيبدأ وقت تشغيل جديد حسب الحاجة ، وهو سريع وقابل للتخصيص ولا يمكن أن يكون له معاملات غاز أو علامات ، ويسمح لنا حقا بإجراء معاملات أقل من 50 مللي ثانية ، وربما التوسع من خلال وجود أوقات تشغيل مخصصة متعددة.
الآن ، الجزء الآخر المثير للاهتمام هو أنه يمكن تجريد كل هذا التعقيد بعيدا عن المستخدم. لدينا جهاز توجيه RPC ، والذي يشبه بشكل أساسي جهاز توجيه RPC التقليدي. يمكن لعميل RPC التفاعل مباشرة مع RPC لإرسال المعاملات. نظرا لأنه في Solana ، يتم الإعلان مسبقا عن جميع المعاملات لجميع الحسابات القابلة للتغيير والقراءة ، يمكن لأجهزة توجيه RPC توجيه المعاملات واستعلامات البيانات واسترجاعها إلى المستوى الصحيح.
ثم في مرحلة ما ، سيتم إغلاق الطبقة سريعة الزوال (كما يوحي اسمها) وسيتم تسوية جميع الحالات في طبقة Solana الأساسية ، وهي مسؤولية جهاز التسلسل ، الذي يتتبع جميع الحسابات.
هناك طريقة أخرى للنظر إلى هذه الآلية وهي أن لدينا طبقتين ، وينفذان المعاملات بالتوازي. لقد قمنا بتفويض الحسابات التي تسمح لنا بالتحديث بزمن انتقال أقل دون استخدام معدل نقل السلسلة الرئيسية. ثم لدينا حسابات أخرى ، لم يتم تفويضها ، ويتم تنفيذها على السلسلة الرئيسية.
الآن ، الشيء المثير للاهتمام هو أن البرامج والأدوات والأطر والبنية التحتية كلها على السلسلة الرئيسية. لا تحتاج إلى نشر البرنامج الخاص بك في مجموعة التحديثات ، على الرغم من أن هذا أمر شائع في العديد من البنى الأخرى. كل شيء على نفس الطبقة ، كل شيء قابل للتركيب ، وكما ذكرنا ، فإن وقت التشغيل المتخصص هذا قابل للتوسيع أيضا ويمكن تخصيصه حقا.
الآن ، يفتح هذا فئة جديدة تماما من الألعاب ، والتي يبنيها على blockchain وهي ذات زمن انتقال منخفض. تماما كما تفعل مع خادم تقليدي متعدد اللاعبين ، ولكن لا يزال بإمكانك الاندماج مع كل ما هو متاح على نظام Layer 1 البيئي.
يمكنك الوصول إلى السيولة الحالية ، ويمكنك إرسال رسائل من خلال البروتوكولات ، و NFTs ، واستخدام تجريدات الحساب ، ومفاتيح الجلسة ، ولوحات المتصدرين ، ونظام بيئي موحد ، والجميع يثري نفس النظام البيئي.
شكرا جزيلا على الاستماع إليكم. يمكنك التسجيل للوصول المبكر إلى إطار العمل الخاص بنا باستخدام رموز QR والتحقق من المستودع. يمكنك بالفعل العثور على وثائق قوية وأوراق بيضاء تصف بالتفصيل إطار العمل الذي قدمناه للتو. أشكرك كثيرًا.