النقاط الرئيسية
- تعتبر محركات الألعاب التي يفهمها ChatGPT مناسبة لترميز نماذج الألعاب الأولية.
- تتطلب المساعدة في الترميز من ChatGPT فهمًا جيدًا لمحرك اللعبة المستخدم.
- توقع أن يوفر ChatGPT حلولاً قريبة، ولكن ليست دقيقة، لمشاكل الترميز. لا يزال يتعين عليك مراجعة وتنقيح الكود الذي يوفره ChatGPT.
الذكاء الاصطناعي هو الكلمة الطنانة الجديدة التي يبدو أن الجميع يتحدثون عنها. حتى الهواتف الذكية أصبحت تحتوي على تطبيقات ذكاء اصطناعي كاملة التنفيذ، ولكن هناك الكثير مما يمكنك القيام به باستخدام أدوات مثل ChatGPT، بما في ذلك برمجة الألعاب. لقد كنت أقوم بتطوير الألعاب منذ ما يقرب من عقد من الزمان، بل وأطلقت بعض المشاريع وشاركت في عدد من لعبة مربى على الحكة.
عندما اكتشفت ChatGPT، كان أول ما أردت فعله هو معرفة ما إذا كان بإمكاني استخدامه في تطوير الألعاب. وكما هو الحال دائمًا، فإن ChatGPT حريص على المساعدة ويبدو وكأنه المتدرب الأكثر شغفًا بهذا المجال في العالم.
هل يمكن لبرنامج ChatGPT برمجة لعبة لك؟
من الواضح أن استعداد GPT لتعليمك كيفية برمجة لعبة ما هو أمر حسن النية ولكنه يتطلب منك أن تفهم قليلاً عما تفعله. بصفتي مطور ألعاب هاوٍ لأكثر من عقد من الزمان، فأنا أعرف القليل عن برمجة الألعاب. باستخدام GPT لمساعدتي، كنت مهتمًا بمعرفة مدى تطوره لإنتاج نموذج أولي للعبة قابلة للعب.
إنه يفهم محركات الألعاب بالتأكيد
محرك اللعبة هو ما يستخدمه المطور لإنشاء لعبة. تتوفر العديد من محركات الألعاب، بما في ذلك محرك غير واقعي, جودو، و الوحدةباعتباري شخصًا يعرف Unity جيدًا، قررت استخدام هذا كمحرك تطوير خاص بي. طرحت بعض الأسئلة العامة (التي أعرف إجابتها) للتأكد من أن ChatGPT لن يبدأ في الهلوسة بشأن محرك لعبتي.
بعد التأكد من أنه على الأقل يعرف ما كان يفعله، قررت أن أعطيه الإطار لمشروعي، والذي تضمن:
- إنشاء عشوائي لخلفية متمررة
- وجود شخصية لاعب يتم التحكم فيها من خلال أزرار الاتجاه، مع أزرار الماوس لإطلاق النار
- نظام النقاط مع قائمة المتصدرين
- عدد لا نهائي من الأعداء، حتى يتمكن اللاعبون من اللعب بشكل عرضي
كان برنامج ChatGPT مفيدًا للغاية في تقديم حلول برمجية لبعض الأشياء التي قد أحتاجها لإنشاء هذه اللعبة. على سبيل المثال، طلبت منه بعض التعليمات البرمجية لقذيفة سأطلقها من موضع اللاعب عندما يضغط على زر “إطلاق النار”، وأعطاني ما يلي:
using UnityEngine;public class Projectile : MonoBehaviour
{
public float speed = 10f;
void Start()
{
GetComponent<Rigidbody2D>().velocity = transform.right * speed;
}
void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Enemy"))
{
Destroy(other.gameObject);
Destroy(gameObject);
}
else if (other.CompareTag("Wall"))
{
Destroy(gameObject);
}
}
}
من الجدير بالذكر أنه أعطاني كودًا مُعلَّقًا عليه جيدًا حتى أتمكن من متابعته كمبرمج مبتدئ. تشير العديد من الأماكن إلى أنه يمكنك تعلم البرمجة باستخدام الذكاء الاصطناعي، ويعد تضمين التعليمات البرمجية ذات التعليقات الجيدة جزءًا من ذلك. لن تضطر إلى القلق إذا كانت هناك أخطاء في التعليمات البرمجية الخاصة بك إذا كان بإمكانك تتبعها تعليقًا تلو الآخر. ومع ذلك، عند استخدام GPT لبناء لعبة، واجهت العديد من المشكلات التي قد تفشل الوافد الجديد إلى تطوير الألعاب.
ChatGPT بعيد كل البعد عن الكمال
تعتمد جودة (أو سوء) برامج LLM على نوعية المطالبات التي يقدمها المستخدم لها. على سبيل المثال، يمكن للمستخدم بسهولة إنشاء شخصيات من نوع الرسوم المتحركة باستخدام MidJourney من خلال تضمين بضع كلمات لتوضيح النتيجة النهائية للمطالبة. ومع ذلك، عند بناء لعبة باستخدام ChatGPT، وجدت أنه في بعض الأحيان لم يلتقط المحرك ببساطة ما كنت أضعه.
في هذا المثال، واجهت مشكلة في إطلاق المقذوفات، حيث انحرفت كل “الرصاصات” عندما يتحرك اللاعب. ورغم أن هذا قد يؤدي إلى إنشاء بعض أنماط اللعب المثيرة للاهتمام، فقد قررت أن أطلب منه إصلاح المشكلة، واقترح إصلاحًا. ولكن للأسف، لم ينجح الإصلاح.
لقد قمت بإصلاح المشكلة بنفسي في النهاية، ولكنها سلطت الضوء على مشكلة رئيسية تتعلق باستخدام ChatGPT لبرمجة اللعبة: هناك بعض الأشياء التي لا يعرفها.
في النهاية، قمت بتجميع اللعبة باستخدام بعض الاقتراحات من GPT حول النتيجة المستمرة بالإضافة إلى خوارزمية التوليد العشوائي والتمرير لخلفية اللعبة. يمكنك العب المباراة النهائية هنا.
هل يعمل مع محركات الألعاب الأخرى؟
أعلم أن ChatGPT كان جيدًا جدًا مع Unity بمجرد أن تمكنت من حل بعض المشكلات التي واجهتها أعلاه. ومع ذلك، تساءلت كيف يمكن برمجة لعبة باستخدام ChatGPT لمحرك أقل شهرة مثل Godot. لست خبيرًا في Godot، حيث استخدمته أقل بكثير من Unity. قررت طرح بعض الأسئلة على ChatGPT:
مشكلة جودو في برنامج GPT
بالنسبة لأولئك الذين يستخدمون Godot بانتظام، فإن المشكلة واضحة على الفور. توقف ChatGPT عن التعلم في عام 2021 أو نحو ذلك (على الأقل للإصدار المجاني). كان النص الذي أعطاني إياه GPT يعتمد على معرفته بـ Godot 2.x، وهو إصدار قديم للغاية من الإصدار 4.x الحالي. المشكلة الصارخة هي استخدام KinematicBody2D، والذي تم استبداله بـ CharacterBody2D في التكرارات اللاحقة للغة.
ما هو مقدار المهارة التي تحتاجها لبرمجة لعبة باستخدام ChatGPT؟
إذا كنت تفكر في إنشاء لعبة Legend of Zelda: Breath of the Wild التالية باستخدام ChatGPT، فربما يتعين عليك تخفيف توقعاتك. يجب أن يكون لديك فهم جيد للمحرك الذي تعمل عليه لاستخدام ChatGPT كمساعد ترميز.
قد يكون المساعدون الآخرون مثل Microsoft Copilot أفضل في التعامل مع التعليمات البرمجية العامة وقد يساعدون بدرجة أكبر. المشكلة الكبرى هي أن هؤلاء المساعدين يبحثون في مشكلة مجردة، وهم يرونها دون أن يروها فعليًا.
بعبارات أبسط، أنت تعرف كيف ينبغي أن تبدو اللعبة التي تصنعها وكيف ينبغي أن تتصرف الأشياء فيها. يمكنك شرح ما تريده لـ ChatGPT، وسيقدم لك شيئًا قريبًا (ولكن ليس تمامًا) مما تحتاجه لعبتك. لجعلها تتصرف بالطريقة التي تريدها، سيتعين عليك العبث بالكود الذي يقدمه لك GPT.
هل يجب عليك برمجة لعبة باستخدام ChatGPT؟
إن تطوير الألعاب مجال معقد، ولكن بفضل محركات مثل تلك المذكورة أعلاه، أصبح هذا المجال أكثر سهولة بالنسبة لعامة الناس. يمكن للمطور الماهر أن يقضي بضع ساعات في تجميع لعبة تعمل وتحتوي على كل الأشياء التي يريدها.
استغرق هذا المشروع بالتحديد 48 ساعة من البداية إلى النهاية. وكلما كانت اللعبة أكثر تعقيدًا، كلما استغرق الأمر وقتًا وجهدًا أكبر. وهذا لا يشمل مقدار الوقت الذي يتعين عليك إنفاقه في البحث عن الأصول وتطويرها. وقد يصبح المشروع ضخمًا للغاية.
إذا قررت برمجة لعبة بمساعدة ChatGPT، فإليك بعض الأشياء التي يجب وضعها في الاعتبار:
- قد يرتكب ChatGPT أخطاء في الكود.
- قد يمنحك ChatGPT كودًا قديمًا، مما يتطلب منك قضاء ساعات في البحث عبر Google عن حل.
- لا يمكن للذكاء الاصطناعي إنشاء أصول للعبة حتى الآن (أصول ثنائية الأبعاد ليست جيدة على أي حال) لذا سيتعين عليك الحصول على الأصول بشكل منفصل.
- لن تنجح بعض الاقتراحات التي يقدمها لك ChatGPT وقد تقودك إلى طريق مسدود، مما يتطلب منك إعادة التفكير في تنفيذك.
إذا سألني أي شخص اليوم عما إذا كان بإمكانه تعلم برمجة لعبة باستخدام ChatGPT من الصفر دون أي معرفة بالمحرك، فسأقول له لا.