كيف تصبح مبرمجًا أفضل في Unity

مع ظهور AI والتعلم الآلي، من السهل الافتراض أنه لن تكون هناك حاجة للمبرمجين في المستقبل. ومع ذلك، قد يستغرق الأمر وقتًا طويلاً قبل أن يتمكن الذكاء الاصطناعي من تفسير المهام الأكثر تعقيدًا، مثل التجريد والتحسين والربط البيني وما إلى ذلك.

لذلك، لم يفت الأوان أبدًا لتحسين معرفتك البرمجية في Unity، لتجعل من نفسك ليس فقط مبرمجًا أكثر كفاءة، ولكن أيضًا، عندما يحين الوقت، قادرًا على الإشراف على التعليمات البرمجية التي يكتبها الآخرون وتوجيههم في الاتجاه الصحيح.

1. إن التحسين المبكر ليس دائمًا أصل كل الشرور

إنه موضوع شائع التشهير بالتحسين المبكر باعتباره خطوة غير ضرورية عند إنشاء نموذج أولي لشيء ما، ومع ذلك، لا ينبغي أن يكون الأمر كذلك دائمًا، خاصة أثناء إضافة أشياء صغيرة، والتي تعرف بالتأكيد أن لها تأثيرًا كبيرًا على الأداء، وعندما يحين الوقت للقيام بذلك قم بالتحسين الحقيقي، فقد تم توفير الوقت بالفعل من خلال الاهتمام بالأشياء الصغيرة. لنستخدم gameObject.name كمثال:

using UnityEngine;

public class ObjectNameScript : MonoBehaviour
{
    public string objectName;

    void Update()
    {
        objectName = gameObject.name;
		Debug.Log(objectName);
    }
}

أثناء استخدام gameObject.name قد يبدو غير ضار، كما اكتشفنا في منشور "Unity تحسين لعبتك باستخدام Profiler"، فإن الحصول على اسم الكائن يخصص قدرًا كبيرًا من الذاكرة، مما يضاعف المشكلة عن طريق الاتصال به كل إطار. لذلك، يمكننا على الفور نقل هذا التعيين إلى الدالة Start (ما لم يتغير اسم الكائن بشكل متكرر، في هذه الحالة، سيكون من الأفضل تخطي استخدام الاسم تمامًا واستخدام متغير بدلاً من ذلك).

using UnityEngine;

public class ObjectNameScript : MonoBehaviour
{
    public string objectName;

    void Start()
    {
        objectName = gameObject.name;
    }

    void Update()
    {
        Debug.Log(objectName);
    }
}

2. اكتب رمزًا أقصر

إن كتابة تعليمات برمجية أقصر توفر دائمًا الوقت، مما يجعلها أكثر قابلية للقراءة وأسهل للمحافظة عليها في المستقبل.

هناك العديد من الطرق لكتابة كود أقصر، وفي حالة Unity، كود C#. على سبيل المثال، من خلال تبسيط عبارة if/else باستخدام الرمز '?':

int numA = 10;
int numB = 5;
int result;
if (numA > numB) {
    result = numA;
} else {
    result = numB;
}
Debug.Log(result);

يمكن اختصار نفس الكود إلى:

int numA = 10;
int numB = 5;
int result = (numA > numB) ? numA : numB;
Debug.Log(result);

هناك طريقة أخرى لتقصير الكود وهي وضع الكود المتكرر في وظيفته الخاصة ثم استخدام تلك الوظيفة بدلاً من ذلك.

3. الكود أولاً، اطرح الأسئلة لاحقًا

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

بشكل عام، هناك أشياء قليلة جدًا ستجعلك أفضل في البرمجة مثل البدء في العمل والبدء في كتابة التعليمات البرمجية.

4. Playtest، قبل إجراء أي تغييرات

عندما يكون لديك عرض توضيحي قابل للتشغيل، فمن الضروري البدء في اختباره في أقرب وقت ممكن لتحديد المكان الذي يمكن تحسين الأمور فيه، لأنه في كثير من الأحيان، قد لا يكون ذلك واضحًا بمجرد النظر إلى الكود.

بمجرد إتقان فن اختبار اللعب وجمع التعليقات، ستصبح مبرمجًا أكثر كفاءة، من خلال معرفة المكان الذي يجب أن تبحث فيه بالضبط لتحسين التعليمات البرمجية.

Unity يوفر بالطبع العديد من الأدوات المفيدة على طول الطريق، مثل وحدة التحكم (لرصد التحذيرات والأخطاء)، Profiler لتصحيح الأداء، وبقية الواجهة (Scene، Hierarchy، Inspector، وما إلى ذلك) لمراقبة تدفق اللعبة/المشروع).

5. التحسين هو عملية تدريجية

يمكننا أن نتفق جميعًا على أن أداء اللعبة يمكن أن ينجح أو يكسرها، وهو أحد الركائز الأساسية للإطلاق الناجح. ولكن لا يمكن تقييم أداء اللعبة إلا من خلال إجراء اختبارات اللعب في ظل سيناريوهات وظروف مختلفة، وذلك لمحاكاة اللعبة من وجهة نظر اللاعبين العاديين.

لقد ناقشنا العديد من الطرق لكيفية تصحيح الأخطاء وتحسينها والعثور على الاختناقات في كود اللعبة الخاص بك.

لمعرفة المزيد حول كيفية تحسين لعبتك على سطح المكتب أو الهاتف المحمول، يمكنك مراجعة المنشورات أدناه:

  1. Unity قم بتحسين لعبتك باستخدام ملف التعريف
  2. تحسين أداء لعبة الهاتف المحمول في Unity 3D
  3. Unity نصائح التحسين

إذا كانت لديك نصائحك الخاصة حول كيفية أن تصبح مبرمجًا أفضل في Unity، فلا تتردد في نشرها في التعليقات.

المقالات المقترحة
العمل مع المصفوفات والقوائم في كود الوحدة
إضافة دخول اللاعب إلى السيارة في Unity
إنشاء محاكي حركة المرور في الوحدة
تنفيذ معدل التحديث المخصص في الوحدة
الدوران في المكان في الوحدة
نهج عملي للتعليمات البرمجية المعيارية في الوحدة
كيفية تشغيل Cutscene في الوحدة