يقدم
Dark Forest هي لعبة إستراتيجية لا مركزية تعتمد على سلسلة Ethereum blockchain. في اللعبة، يمكن للاعبين جمع الموارد وبناء القواعد وتطوير التكنولوجيا وجمع الأسلحة والقتال مع لاعبين آخرين للتنافس على الموارد.
في Dark Forest، يتحكم كل لاعب في كوكبه الخاص ويحتاج إلى جمع الموارد وبناء القواعد وتطوير التكنولوجيا على الكوكب لتحسين قدراته القتالية. يمكن للاعبين استخدام مباني إنتاج الموارد والأبحاث التكنولوجية ومرافق تصنيع الأسلحة للحصول على ميزة في القتال.
عندما يطير اللاعبون عبر الفضاء بين النجوم، فإنهم بحاجة إلى اكتشاف كواكب وموارد أخرى من خلال الاستطلاع والاستكشاف المستمر. عندما يكتشف لاعبان نفس الكوكب في نفس الوقت، يمكنهم اختيار مهاجمة الكوكب أو اختيار الهروب. عند الهجوم، يحتاج اللاعبون إلى استخدام أسلحتهم الخاصة لمهاجمة قاعدة الخصم والاستيلاء على موارد الخصم.
تتميز Dark Forest بأن اللعبة مبنية بالكامل على تقنية سلاسل الكتل (البلوك تشين). يتم تخزين كوكب كل لاعب وموارده على سلسلة الكتل، ولا يمكن التلاعب بها أو حذفها. إضافةً إلى ذلك، تعد Dark Forest لعبة لامركزية (DeGame)؛ لا توجد خوادم مركزية تتحكم في سير اللعبة، بل يتم صون اللعبة واتخاذ القرارات بشأنها من قِبل جميع اللاعبين معًا.
تُعد Dark Forest أيضًا أول لعبة في الألعاب اللامركزية على مستوى السلسلة الكاملة التي تُدخل نظام “حجاب الحرب” (战争迷雾). وقد حظيت بتقدير فيتاليك بوترين (V神). سنقوم في هذه المقالة بتفكيك هذا النظام بعمق لاستكشاف كيف يمكن لهذه اللعبة من نوع الاستراتيجية الفورية أن تتحقق في بيئة “على كامل السلسلة”. وبالصدفة، أعلن في الأول من أبريل @DfArchon عن تنظيم “Community Round” قريبًا؛ ويمكن للمهتمين من الطلاب الانضمام للمشاركة في الاختبار أيضًا.
لنبدأ من نوع اللعبة، ونقارن أولًا بين ألعاب MMORPG وMMORTS:
MMO -RPG: ألعاب لعب الأدوار متعددة اللاعبين عبر الإنترنت، عالَم مفتوح، وفيها يبدأ اللعب ثم لا ينتهي فعليًا؛ وتكمن متعة اللعبة في تجربة قصصية وانغماس في عالم ألعاب الميتافيرس. مثلًا: عالم علب (World of Warcraft). MMO-RTS: ألعاب استراتيجية تنافسية متعددة اللاعبين عبر الإنترنت، بعالَم أصغر نسبيًا ومغلَق، وتكون كل جولة محدودة يبدأ اللعب فيها وينتهي في إطار واحد. تكمن متعة اللعبة في خوض مواجهة متعددة اللاعبين ضمن خلفية قصصية، مع الاعتماد على الاستراتيجية للحصول على الموارد للتطور ثم القضاء على الخصم. أمثلة نموذجية: StarCraft وWarcraft، وتستغرق كل مباراة عادةً 20-40 دقيقة. تعد DF لعبة MMORTS لأنها تسمح بمشاركة عدد كبير في الوقت نفسه (قد يصل إلى الآلاف). وبما أن TPS على سلسلة الكتل محدود، فإن مدة كل جولة (round) تستمر قرابة 10 أيام. ويُحسم الفوز والخسارة وفق ترتيب نقاط السلم (tladder)؛ وتأتي النقاط أساسًا من الموارد التي يتم الحصول عليها داخل اللعبة (الحصول الحر في PVE والنهب في PVP). أما كيفية إيقاف اللعبة على سلسلة الكتل، فما زال غير واضح. تنفيذ عملي
في البداية كان الأمر يقتصر على قيام الجهة الرسمية بتنظيم Official Round فقط، حيث كان يلزم رمز دعوة (key) لتسجيل الدخول والمشاركة. أما الآن فلدينا ميزة lobby، حيث يمكن لأي شخص إنشاء “round” خاص به، ومن هنا ظهرت فكرة “community round” (كأن تقام مسابقة يشارك فيها المجتمع). ادخل إلى الصفحة الرئيسية https://zkga.me/ ثم اضغط على ”Create Lobby“، وستنتقل إلى صفحة إعدادات الـ Lobby، كما هو موضح في الصورة أدناه.
إعدادات اللعبة: يمكن تغيير سرعة اللعب عبر تعديل معدل استعادة الطاقة/العملات الفضية (silver coins) وسرعة الإبحار. حجم العالم (World Size): يمكن تغيير حجم الخريطة عبر تعديل نصف قطر الكون. نوع الفضاء والبيئة الحيوية (Space Type & Biome): اختر خريطة اللعبة. الكواكب (Planets): تحديد المعلمات الأساسية للكواكب. ظهور اللاعب (Player spawn): إعدادات توليد اللاعبين. الحطام الفضائي (Space junk): إعدادات هذا العنصر الخاص في اللعبة. مناطق السيطرة (Capture zones): إعدادات مناطق الاستيلاء/الاحتلال. القطع الأثرية (Artifacts): إعدادات هذا العنصر الخاص في اللعبة. صلاحيات المسؤول (Admin permissions): تحديد ما إذا كانت قائمة السماح/الوايت ليست للاعبين مفعّلة أم لا. Snarks المتقدمة (Advanced Snarks): إعدادات نظام حجاب الحرب (war fog).
للحصول على المزيد من نصائح الاستخدام حول الـ Lobby، يُرجى الرجوع إلى هذا الرد الرسمي:
https://blog.zkga.me/introducing-dark-forest-lobbies
تبدو Dark Forest معقدة على السطح، لكن قواعد اللعبة الأساسية فيها بسيطة بالفعل: تمتلك الكواكب قيمة طاقة، وهذه القيمة تتناقص مع الامتداد بحسب المسافة. القفز بين الكواكب هو في جوهره هجومٌ متبادل. ويُحسم نتيجة الهجوم بناءً على حجم قيمة الطاقة بعد التناقص. بطبيعة الحال، هناك العديد من المقالات والفيديوهات التي تشرح كيفية اللعب، ولن نخوض في تفاصيل أكثر هنا.
تحليل وثائق المطورين
https://dev-guides.zkga.me/
تقدم وثائق المطورين شرحًا إطارياً لبنية تطوير اللعبة، وتشمل ذلك مطورين الإضافات، ومطوري عميل الويب، ومطوري عقود اللعبة، ومطوري دوائر ZK.
الاتصال بسلسلة الكتل
تعمل اللعبة على طبقة xDai الثانية (layer2)، أي على شبكة Gnosis Chain الحالية. وبما أن اللعبة أثناء تشغيلها تحتاج إلى تفاعلات كبيرة مع العقود الذكية (contracts)، فهي تتضمن عقدة RPC داخلية. بل إن فريق Gnosis خصص حتى عقدة مخصصة لهذه اللعبة.
الإضافات (Plugins)
تسمح Dark Forest للاعبين بتخصيص عميل الويب الافتراضي عبر نظام الإضافات. الإضافات هي مقتطفات كود يمكن للاعبين كتابتها، بهدف تقديم طرق عرض بديلة لبيانات اللعبة، وأتمتة مسارات اللعب الشائعة، وحتى إعادة تصميم جلد/واجهة اللعبة. ومن حيث الجوهر، تتيح Dark Forest للاعبين البرمجة والتفاعل مع عميل الشبكة بأي طريقة يفضلونها.
التنقيب (Mining)
تتمثل الآلية الأساسية في Dark Forest في “حجاب الحرب” (war fog) القائم على التشفير. عند انضمامك الأول إلى اللعبة، لا تعرف أين يوجد اللاعبون الآخرون. يجب على اللاعبين حساب قيم التجزئة (hashes) لاكتشاف نقاط الاهتمام في الكون، مثل مواقع الكواكب ومواقع اللاعبين الآخرين. تُحفظ قيم التجزئة هذه في التخزين المحلي للمتصفح (local storage) وتُعد بيانات سرية. بشكل افتراضي، يستخدم عميل الويب في Dark Forest “مُعدّن” (miner) واحد-خيط (single-thread) عبر Javascript لاستكشاف الكون، لكن يمكنك اتخاذ عدة إجراءات لرفع معدل التجزئة، مثل تغيير عدد نوى وحدة المعالجة (CPU cores) بجانب زر التعدين. إذا حاولت ضبط عدد الأنوية على قيمة أكبر من عدد الأنوية الفعلي في جهاز الكمبيوتر، فسوف تصبح أداء آلة التعدين (矿机) شبه ثابت.
عندما يعثر المُعدّن لدى اللاعب على خريطة منطقة في الكون، يقوم عميل الويب بحفظ المعلومات المتعلقة بالمناطق غير المكتشفة ضمن التخزين المحلي للمتصفح. تقوم Dark Forest بحفظ البيانات في IndexedDB. كما يمكن للاعبين أيضًا تشغيل خادم بعيد ليعمل كمُعدّن يستكشف ويولّد خريطة للمواقع.
الـ Snarking
تستند Dark Forest إلى تقنية ZK-Snark. وتقنية ZK-Snark هي نوع من التقنيات التشفيرية يمكن استخدامها لإثبات صحة دالة/عملية ما دون الكشف عن مُدخلاتها أو منطقها. تستخدم Dark Forest هذه التقنية للتحقق من صحة تحركات اللاعب في اللعبة، دون أن تكشف عن مواقع الكواكب لمن يراقب/يتجسس على السلسلة (على الشبكة). تكون هذه التقنية (Zk-snark Proof Generation) مكلفة جدًا حسابيًا! لذلك يتم نقل حساب هذا الإثبات (ZK-Proof) خارج المتصفح، ويستلزم تشغيل Node.JS محليًا. وبالطبع، تسمح اللعبة أيضًا باستخدام خادم بعيد لتشغيل هذه الخدمة.
الملخص
باعتبارها لعبة على مستوى السلسلة الكاملة (full-chain) وتتميز بابتكار قوي جدًا، يبدو أن تطور Dark Forest كان بطيئًا بالفعل. قد يكون سبب محتمل أن المشروع مدفوع من المجتمع؛ ورغم أنه يمكن ضمان اللامركزية، إلا أن ذلك يؤثر أيضًا على كفاءة التطوير. كان آخر official round في فبراير 2022. كانت تحديثات Webclient في أكتوبر 2020. وكانت تحديثات الإضافات التابعة لأطراف ثالثة (مجتمع) أكثر نشاطًا قليلًا، بما فيها nightmarket في يوليو 2022 (سوق تداول إحداثيات الكواكب بشكل مجهول)، وlobby في مارس 2022.
