مرحبًا بالجميع،
كما يعلم أغلبكم، تسبب إصدار 32.00 الأخير في Fortnite في ظهور عدة انتكاسات ومشكلات في الاستقرار. شملت هذه المشكلات اختلالات كبيرة مثل عدم تمكن اللاعبين من الوصول إلى محتوى UEFN وFNC، وعدم إتاحة UEFN وبوابة المبدعين للمبدعين، وأخطاء في بعض الميزات.
شهدنا مرة أخرى في الإصدار 32.10 بعد ملاحظتنا لعدة ساعات تقطُّع المحتوى والأدوات المتاحة للاعبين والمبدعين.
لم تلبِّ هذه الإصدارات معاييرنا المنشودة، ما دفعنا إلى إجراء مناقشات داخلية عديدة بشأن كيفية حدوث هذه المشكلات دون رصدها، وما يمكننا تحسينه في عمليتنا من الآن فصاعدًا.
تتطور مجموعة خدمات Fortnite بسرعة في حين أنه من الصعب ضمان عملية الاستقرار والتوافق عبر مجموعة واسعة من الميزات والتجارب، لكننا ملتزمون بمواجهة ذلك التحدي. هذا يعني أننا نهدف إلى التعلم من أخطائنا ونتحمل المسؤولية. نريد أيضًا أن نكون واضحين بشأن المشكلات الرئيسية التي واجهها المبدعون مؤخرًا، وردودنا عليها، والتغييرات التي سنطبقها.
ومن هذا المنطلق، نقدم لكم فيما يلي ملخصًا بأكثر المشكلات خطورة في الإصدار 32. يتضمن كل ملخص المشكلة وسببها وتأثيرها والتغييرات التي سنطبقها وفقًا لما عرفناه.
رغم أن هذه ليست الأخطاء الوحيدة في الإصدارين 32.00 و32.10، فقد أثّرت هذه المشكلات بشكل واسع في مجموعة الخدمات، وأدت إلى تنشيط إجراء داخلي في Epic يتعلق بالحوادث البالغة.
المشكلة: تدهور خدمة المحتوى (32.00 و32.10)
خدمة المحتوى عبارة عن نظام داخلي لدينا يتتبع كل المحتوى المُنشأ في FNC وUEFN، بما يتضمن البيانات التعريفية مثل الإصدارات وحالة النشر. يعمل بصفته “فهرسًا للميتافيرس” بشكل أساسي، وهو مهم للأداء الوظيفي لـFortnite وUEFN.
مع توسع استخدام UEFN في Epic، فقد زاد أيضًا اعتمادنا على خدمة المحتوى.
في التحديث 32.00، تسببت التغييرات التي طرأت على برنامج لعبة Fortnite وخادمها دون قصد في زيادة هائلة في بيانات خدمة المحتوى، إذ تجاوزت في مرحلة ما 10 أضعاف التحميل الطبيعي. كشفت هذه الطفرة عن مشكلة تسببت في حدوث أخطاء خلال محاولة توسيع نطاق خدمة المحتوى للتعامل مع التحميل، ما أثَّر بدوره في الأداء الوظيفي لـUEFN وFNC من نواحٍ عدة.
كانت محاولات إعادة تهيئة الخدمة أو توسيع نطاقها غير ناجحة، ولم تكن هناك طريقة فورية لتعديل سلوك برنامج اللعبة أو الخادم. لحسن الحظ، كان فريق مجموعة الخدمات الأمني لدينا قادرًا على تهيئة جدار حمايتنا لخفض تدفق البيانات إلى مستويات يمكن التحكم فيها، ما يسمح باسترجاع خدماتنا.
عالجنا الزيادة المفرطة في بيانات برنامج اللعبة والخادم للإصدار 32.10، ولكن في يوم الإطلاق واجهنا مستوى طبيعيًا من تدفق البيانات أدى مرة أخرى إلى تراجع أداء خدمة المحتوى. استمرت الخدمة في العمل هذه المرة، لكن ميزات جُزر المبدعين وUEFN كانت غير مستقرة لعدة ساعات. كانت Fortnite الإعادة غير متوفرة أيضًا خلال هذه الفترة.
التأثير: لم يكن بعض من محتوى Fortnite متوفرًا مثل الإعادة ومقطوعات العزف وجُزر المبدعين من الساعة 9 صباحًا حتى الساعة 8 مساءً بتوقيت الرياض عندما أُطلق الإصدار 32.00 يوم 2 نوفمبر.
في يوم 13 نوفمبر عند إطلاق الإصدار 32.10، كان الوصول إلى وظيفتي جُزر المبدعين وUEFN متدهورًا من الساعة 3 مساءً حتى الساعة 9 مساءً بتوقيت الرياض، مع تحقيق اللاعبين معدل نجاح يقارب 70% في الانضمام إلى الجُزر. كانت Fortnite الإعادة غير متوفرة خلال هذه الفترة.
التغييرات: نعمل بجد لحل مشكلة التوسع هذه، ونثق بأننا سنكون في وضع جيد خلال بقية العام.
سنزيد أيضًا فحوصات ما قبل الإصدار لبيانات برنامج اللعبة والخادم بدءًا من الإصدارات المقبلة لرصد أي مشكلات قد تظهر بالخطأ في وقت أبكر.
المشكلة: فقدان الاستمرارية (32.00)
بعد استعادة وظيفة خدمة المحتوى بفترة وجيزة، أبلغ عديد من المبدعين الذين يستخدمون الاستمرارية عن اكتشاف اللاعبين فقدان أنواع معينة من العناصر من مستودعاتهم.
كشف تحقيقنا عن إعادة تنظيم بعض محتويات Fortnite من أجل مبادرة مقبلة. تسببت إعادة التنظيم هذه في اتخاذ العناصر المتعقَّبة، مثل الألماس، مسارًا جديدًا للأصول، ما يجعلها تظهر في المخزون كعناصر جديدة صفرية. على الرغم من أن Unreal Engine يتميز بنظام للتعامل مع الأصول المنقولة (معيدات التوجيه)، فقد منع خطأ في رمز الاستمرارية لدينا تطبيق إعادة التوجيه.
لمعالجة هذه المشكلة، كانت لدينا أولويتان أساسيتان:
- حل المشكلة لمنع فقدان بيانات اللاعبين الجدد.
- استعادة المستودعات للاعبين المتأثرين بالفعل بالمشكلة.
تطلبت المهمة الأولى إنشاء خادم جديد واختباره ونشره. يستغرق الأمر عادةً أقل من 24 ساعة، لكن نظرًا لعدة عوامل والرغبة في إجراء تغييرات لحل مشكلات أخرى في المقام الأول، لم يُنشر الخادم الجديد حتى 5 نوفمبر، أي بعد ثلاثة أيام. نُدرك أن هذا الإطار الزمني غير مقبول على الإطلاق لحادث بهذه الخطورة.
تضمنت المهمة الثانية إنشاء مخطط محدد لاستعادة المستودعات للاعبين الذين لعبوا في جزيرة منذ إطلاق الإصدار 32.00 وضبط مستودعاتهم. تُعد الاستعادة في هذا الموقف خيارًا صعبًا، لأن التأثير يختلف حسب الجزيرة، واختيار ما إذا كان من الأفضل استعادة البيانات أم الاستمرار بالبيانات الجديدة يعتمد على التأثير والمدة التي قد تستغرقها الاستعادة.
عرضنا الاستعادة على المبدعين الذين أبلغوا عن التأثير وبدأنا في استعادة بيانات اللاعبين من تلك الجُزر يوم 6 نوفمبر الساعة 10 مساءً بتوقيت الرياض. انتهى هذا الأمر يوم 7 نوفمبر الساعة 11 مساءً بتوقيت الرياض
التغييرات: على الرغم من أن لدينا آلية تلقائية تبلّغنا حين تُزال الأصول، حتى لا تُفقد العناصر في جُزر المبدعين على سبيل المثال، فهذه الآلية التلقائية لم تبلغنا عندما انتقلت الأصول. سنحدِّث هذا ليتم الإبلاغ عن الأصول المنقولة أيضًا.
بالإضافة إلى ذلك، نبحث أيضًا في خيارات الآلية التلقائية للإبلاغ عندما يتعذر تحميل العناصر المخزنة في المستودعات في الإصدارات المقبلة من Fortnite، على الرغم من أن هذه مشكلة أصعب وستستغرق وقتًا أطول لحلها.
وأخيرًا، كما ذُكر أعلاه، فالوقت المستغرق لنشر الخادم بالإصلاح كان غير مقبول. سنحسّن هذه العملية.
المشكلة: عدم استقرار برنامج اللعبة بشكل عام (32.00)
لاحظنا في وقت قصير تزايدًا ملحوظًا في أعطال برنامج اللعبة عبر جميع المنصات.
كان السبب الرئيسي هو التغيير الذي أُجري في تحديث 32.00 لإصلاح الأخطاء المرتبطة بتعطيل ضرر السلاح في مناطق المطفّر. أدى هذا التغيير إلى ظهور حالة تعارض، إذ أصبح بإمكان مؤشرين الوصول إلى مصفوفة واحدة في آنٍ واحد. وفقًا للتوقيت وسلوك اللاعب في أثناء إعادة النشر، قد يؤدي هذا إلى حدوث عطل.
نظرًا لأن هذه الأعطال وقعت في برنامج اللعبة ولا يمكن حلها عن طريق تعديلات الخادم، كان علينا إصدار ملف تصحيح لبرنامج اللعبة عبر جميع المنصات. ملفات تصحيح برنامج اللعبة تستغرق وقتًا أطول في الإنشاء وتتطلب تصديقًا على منصات معينة، لذلك لم يكن التحديث متاحًا حتى يوم 11/16.
التأثير: واجهت برامج اللعبة على كل المنصات عدم استقرار زائد في تحديث الإصدار 32.00.
التغييرات: خلال تطوير كل إصدار من Fortnite، نتتبع الأعطال المعروفة ونتعامل معها. لم نكتشف حدوث هذا العطل من قبل وفقًا لتحقيقنا، حتى مع ساعات اختبار مكثفة. بعد معرفة السبب لم نستطع محاكاته داخليًا.
هذا التحدي “للمشكلات على نطاق واسع” هذا ليس جديدًا. على سبيل المثال، العطل الذي نسبة حدوثة 0.01% قد لا يظهر خلال التطوير لكن لأن هناك مليون لاعب يوميًا، قد ينتج عن ذلك 10,000 عطل يوميًا.
لحل ذلك ننوي زيادة استخدام إصدارات “التنقيح” خلال الاختبار. عززت تلك الإصدارات الكشف عن مشكلات الوصول إلى الذاكرة حتى إن لم تتسبب في حدوث أعطال فورًا. رغم أنه لا يمكننا التأكد من تمكن هذه الطريقة من رصد المشكلة الحالية فهي على الأغلب ستمنع حدوث المشكلات المشابهة مستقبلًا.
المشكلة: يتعطل المحرر عند تحميل المشاريع (32.00)
عندما أُصدر التحديث 32.00 تلقينا بلاغات سريعًا من المبدعين عن مواجهتهم أعطال في المحرر عند محاولة فتح مشاريعهم. في البداية، ظننا أن هذه الأعطال ذات صلة بتدهور خدمة المحتوى الحالي لكن سرعان ما أدركنا أنها مشكلة منفصلة.
تشخيص المشكلة كان صعبًا إذ تضمنت عطلًا داخل برنامج تشغيل الرسوميات وهذا يوفر عادة معلومات محدودة عن السبب. بمجرد أن عرفنا هذا، نصحنا المبدعين بالتبديل إلى Direct3D 11 في UEFN كحل بديل مؤقت.
اكتشفنا في النهاية أن السبب الأساسي يرجع إلى مشاريع ذات عدد كبير من تحذيرات بدء التشغيل التي عُرضت في نافذة “إخطار” منبثقة في أسفل الجانب الأيمن. استهلكت كل رسالة تحذير مساحة زائدة من الذاكرة للعرض، وحين تظهر تحذيرات كثيرة قد يتخطى استخدام الذاكرة الحدود ما يتسبب في وقوع عطل.
لحسن الحظ، بما أنه يمكننا تحديث UEFN بشكل منفصل عن Fortnite، تمكنا من إصدار تحديث في اليوم التالي.
والأمر المحبط أن هذا الخطأ قد رآه مستخدم UEFN داخلي مرة في إصدار مبكر من 32.00 ولكن المطورين لم يتمكنوا من تكراره لذا أُنهي النظر في المشكلة.
التأثير: حدثت مئات من أعطال UEFN في أول ثماني ساعات بعد الإصدار.
التغييرات: خلال مرحلة ما بعد الانتهاء، لاحظنا أن محطات عملنا عادة ما تكون ذات مواصفات أعلى من آلات المستهلك العادية، خاصة فيما يتعلق بذاكرة الفيديو.
في السابق، ركزت اختبارات التوافق لدينا على “تجربة المستخدم الجديد” ولم تركز كثيرًا على أداء UEFN عند التعامل مع المشاريع الكبيرة. من الآن فصاعدًا، ننوي زيادة الاختبارات على الآلات ذات الحد الأدنى من المواصفات والمواصفات المناسبة للمستهلك بمشاريع داخلية أكبر للتعرف على المشكلات المحتملة بصورة أفضل.
نأمل أن يوضح هذا التحليل سبب المشكلات التي ربما واجهتك وقت إصدار 32.00 على نحو أفضل. نأخذ على محمل الجد توفير بيئة مستقرة للمبدعين ليصنعوا تجارب تشعل حماس اللاعبين ويدعموها.
نهدف إلى الاستمرار في تحسين أنظمتنا وعملياتنا والاستماع إلى المشكلات التي تواجهكم ومشاركة الطرق التي نعمل عليها لتحسين UEFN وFNC من أجل الجميع.
شكرًا،
Andrew