كل المقالات
دروس · 7 min read

ميزانيات الأداء لفن البيئات: الأرقام قبل الجمال

كيف تضع ميزانية أداء لمشاهد البيئة: شرائح زمن الإطار لكل نظام، وأسقف الـdraw call والذاكرة، وطريقة القياس بثلاث كاميرات، وإيقاع المراجعة، وترتيب الروافع التي تُسحَب حين يتجاوز مشهد.

Illustration of a performance gauge above stacked millisecond budget bars

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

سلاسل جبلية مشجّرة تتلاشى في الضباب، طبقةً بعد طبقة المنظر دائمًا هو الفاتورة: أقصى مسافة رسم، كل نظام على الشاشة دفعةً واحدة، كل حلقة LOD نشطة. اِرصُد لهذا العرض: الممرّ يعتني بنفسه.

اِرصُد زمن الإطار، لا المضلّعات

ميزانيات المضلّعات أثر قديم: بطاقات الرسوم الحديثة تختنق على الـdraw call والـoverdraw والظلال وعرض نطاق الذاكرة قبل المثلثات الخام بكثير. اِرصُد ما تقيسه فعلًا: مِلّي ثانية لكل نظام، لكل عرض.

لعبة بـ60 fps تملك 16.6 مِلّي ثانية لكل إطار؛ عند 30 fps، 33.3 مِلّي ثانية. تلك هي الميزانية كاملةً، يتقاسمها كل شيء: اللعب، والفيزياء، والذكاء الاصطناعي، والـVFX، وواجهة المستخدم، والبيئة. شريحة البيئة مفاوضة مع الرسم واللعب، لكنها يجب أن تكون رقمًا، مُتّفَقًا عليه ومكتوبًا، وإلا انهار كل نقاش عمّا إن كان مشهدٌ "باهظًا جدًا" إلى ذوق وأقدمية. إلى جانب زمن الإطار، أعطِ أسقفًا للكميّات التي تقيّده:

  • draw call لكل عرض (تقيّد الـCPU قبل أن يبلغ الـGPU قمّته بكثير)،
  • ذاكرة القوام والمِش لكل منطقة بثّ (الرقم الذي يقرّر أتبثّ أم تتلعثم)،
  • الأضواء المُلقية للظلال في العرض،
  • بؤر overdraw الساخنة: الغطاء النباتي والـVFX هما المشتبهان المعتادان.

الأسقف الدقيقة تعتمد على المنصّة والمحرّك؛ انضباط امتلاك أسقف هو ما ينتقل إلى كل مشروع ستشحنه يومًا. رقمٌ قد تخطئ فيه يتفوّق على حدسٍ لا تقدر إلا أن تجادل فيه.

قسّم الإطار كفطيرة، بالمِلّي ثانية

أعطِ كل قسم شريحة: اللعب، الـVFX، الواجهة، البيئة، ثم قسّم شريحة البيئة مجددًا: الأرض، الغطاء النباتي، الدعائم، الماء. "أهذه الغابة باهظة جدًا؟" تصير سؤالًا موضوعيًا.

تقسيم بداية عملي لعنوان بـ60 fps، يُعاد التفاوض عليه لكل مشروع: البيئة إجمالًا 6–8 مِلّي ثانية، منها الأرض ~1.5، الغطاء النباتي ~2–2.5، الدعائم والبنى ~1.5، الماء والجوّ ~1. النقطة ليست هذه الأرقام الدقيقة، بل أن الغابة حين تقيس 4 مِلّي ثانية مقابل شريحة 2.5، يصير الحديث "أي رافعة نسحب" بدل "خطأ من".

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

قِس عند ثلاث كاميرات ثابتة

اِرصُد لأسوأ عرض واقعي لا المتوسّط: اختر ثلاث "كاميرات ميزانية" ثابتة لكل خريطة (أسوأ منظر، أكثف فضاء قتال، أكثر داخل ازدحامًا) وقِس هناك تحديدًا، في كل مرة.

الطيرانات العشوائية تنتج أرقامًا عشوائية وحُججًا لا تُدحَض. الكاميرات الثابتة تنتج خطوط اتجاه: العرض نفسه، مقيسًا أسبوعيًا، يُظهر متى وأين هبط تراجعٌ ومن تسأل عنه. أسوأ منظر يستحق دور البطولة لأنه يكدّس كل شيء دفعةً: أقصى مسافة رسم، كل حلقة LOD، الأرض والماء والسماء آنيًا. خريطة تصون الميزانية عند منظرها تصونها في كل مكان تقريبًا؛ الممرّات تجاملك، والمناظر تقول الحقيقة.

اِحفظ مواضع الكاميرا في الخريطة كي يستطيع أي أحد إعادة إنتاج اللقطة تحديدًا. "تعمل جيدًا على جهازي من زاوية ما" ليست بيانات؛ "كاميرا الميزانية 2 تقيس 9.2 مِلّي ثانية على أدنى مواصفات، صعودًا من 7.8 الأسبوع الماضي" تقرير خلل بمشتبه.

اجعل الميزانية مرئية حيث يجري العمل

ميزانية في wiki ميّتة: تحيا كتراكبات إحصاءات أثناء التأثيث، وفحصًا مقابل الأسقف قبل دمج المحتوى، وتحذيرات حين يتجاوز خبزٌ عدد النُّسخ.

يبلغ الفنانون الميزانيات بسرور حين تكون التغذية الراجعة فورية، ويستاؤون منها حين تصل كتذكرة خلل بعد شحن العمل بثلاثة أشهر. الجانب الأدواتي يهمّ هنا بطريقة هادئة لكن حاسمة: حين يخبز الـscatter والدمج إلى بدائيّات أصلية للمحرّك (مِشات مُنسَّخة وfoliage عادية، كما يفعل Numivo) يقول مُنمِّطك القائم الحقيقة دون تجميل عنها، بلا runtime إضافة يعكّر الأرقام، وتنطبق كل رافعة قياسية (مسافات cull، LOD، أعداد نُسخ) دون تغيير. ميزانية لا تقدر قياسها إلا عبر صندوق أسود هي ميزانية ستكفّ بصمت عن الثقة بها.

إيقاع المراجعة الذي يثبت

التقاطات أسبوعية للكاميرات الثلاث (خمس دقائق)، فحص سقف آلي عند دمج المحتوى، ومراجعة شهرية للأسقف نفسها: الميزانيات تقديرات، والمراجعة الأمينة تتفوّق على الانتهاك الصامت.

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

حين تحمرّ الأرقام

اسحب الروافع بترتيب مردود التكلفة: مسافات الـcull وإعدادات الظلال أولًا (دقائق، مكاسب ضخمة)، ثم الـLOD والـimpostor، ثم أعداد النُّسخ، وأخيرًا فقط الفنّ نفسه.

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

الخطأ المكلف هو القفز مباشرةً إلى "احذف نصف الأشجار". الكثافة أكثر الروافع مرئيةً وليست عادةً الأرخص: منظرٌ متجاوز بـ2 مِلّي ثانية يعود عادةً أخضر من مجرّد ضبط مسافة الظل ومسافة الـcull، وكلاهما غير مرئي للاعبين. حذف المحتوى الملاذ الأخير تحديدًا لأنه الرافعة الوحيدة التي يراها اللاعبون؛ كل درجة فوقه على السلّم مجانية من منظور الفنّ. اِنزِل السلّم فتحفظ المظهر بينما تستعيد المِلّي ثواني؛ اِصعَد من الأسفل فتجعل اللعبة أقبح قبل أن تجرّب المكاسب المجانية.

أرقام ميدانية تستحق السرقة

  • الإطار عند 60 fps: 16.6 مِلّي ثانية، تتفاوض البيئات عادةً على 6–8 مِلّي ثانية
  • تقسيم فرعي عملي للبيئة: الأرض 1.5 / الغطاء النباتي 2–2.5 / الدعائم 1.5 / الماء والجوّ 1 (مِلّي ثانية)
  • كاميرات الميزانية لكل خريطة: 3 (منظر، قتال، داخل)، محفوظة في الخريطة
  • كلفة القياس الأسبوعي: ~5 دقائق؛ القيمة: خطوط اتجاه بدل جدالات
  • ترتيب الروافع عند الأحمر: culling ← ظلال ← LOD ← نُسخ ← فنّ

أسئلة شائعة موجزة

من يملك ميزانية البيئة؟ شخص واحد مُسمّى (عادةً فنان تقني) يملك القياس؛ والأسقف مملوكة بالاشتراك مع الرسم. الميزانيات بلا مالك تتحلّل إلى فولكلور خلال شهر، لأن "الجميع مسؤول" تعني أن لا أحد يقيس.

كيف تعمل الميزانيات مع وقت-اليوم الديناميكي؟ قِس أسوأ حالة إضاءة عند كل كاميرا، لا أجملها. الفجر بظلاله الطويلة الزاحفة يكلّف غالبًا ضِعف الظهيرة؛ ميزانية تصمد عند الظهيرة فقط نصف ميزانية، وسيجد اللاعبون الساعة الباهظة.

أأحتاج هذا كله لمشروع مستقل صغير؟ صغّره، لا تُلغِه. كاميرا ميزانية واحدة، سقف واحد (زمن إطار على جهازك أدنى المواصفات)، يُفحَص أسبوعيًا. عادة الخمس دقائق هي ما ينقذ الشهر الأخير: بصرف النظر عن حجم الفريق، وضع الإخفاق واحد: اكتشاف الكلفة حين يكون إصلاحها باهظًا.

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

الميزانية ليست حدًّا على الفنّية: إنها السبب في أن المشهد الجميل ما زال يبدو جميلًا عند 60 fps على العتاد الذي يملكه اللاعبون فعلًا. الفرق التي تعامل الأداء كقيد تصميم مشترك تشحن ألعابًا أجمل من الفرق التي تعامله كزعيم نهائي.