برمجة ألعاب الفيديو

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

عملية التطوير

يبدأ تطوير الألعاب الاحترافية عادةً بتصميم اللعبة ، والذي بدوره له عدة أصول محتملة. أحيانًا، تبدأ عملية تطوير اللعبة دون تصميم واضح في ذهن المطورين، بل كسلسلة من التجارب. على سبيل المثال، بدأ مصمم الألعاب ويل رايت تطوير لعبة " ذا سيمز" بجعل المبرمجين يجربون عدة أفكار.

النموذج الأولي

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

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

تصميم الألعاب

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

غالباً ما يتبع المبرمجون وثيقة تصميم اللعبة بدقة . ومع تقدم عملية تطوير اللعبة، تتغير وثيقة التصميم مع اكتشاف واستغلال القيود البرمجية والقدرات الجديدة.

إنتاج

أثناء عملية الإنتاج، قد يقوم المبرمجون بإنشاء كمية كبيرة من التعليمات البرمجية المصدرية لإنشاء اللعبة الموصوفة في وثيقة تصميم اللعبة. وخلال هذه العملية، يتم تعديل وثيقة التصميم لتلبية القيود أو توسيعها للاستفادة من الميزات الجديدة. تُعتبر وثيقة التصميم وثيقة "حية" بامتياز، حيث يتأثر مسارها بشكل كبير بجداول المبرمجين ومهاراتهم وقدرتهم على الابتكار.

مع أن العديد من المبرمجين يشاركون في تحديد محتوى اللعبة، إلا أن معظم منتجي الألعاب يستشيرون كبير المبرمجين بشأن حالة تطوير اللعبة. يتحمل كبير المبرمجين مسؤولية معرفة حالة جميع جوانب برمجة اللعبة وتحديد أي قيود. كما قد ينقل كبير المبرمجين اقتراحات المبرمجين حول الميزات التي يرغبون في إضافتها.

مع المحتوى البصري الغني في ألعاب اليوم، غالبًا ما يتفاعل المبرمج مع فريق التصميم الفني . ويعتمد هذا بشكل كبير على دور المبرمج، بالطبع. على سبيل المثال، قد يحتاج مبرمج الرسومات ثلاثية الأبعاد إلى العمل جنبًا إلى جنب مع مصممي النماذج ثلاثية الأبعاد في اللعبة لمناقشة الاستراتيجيات واعتبارات التصميم، بينما قد لا يحتاج مبرمج الذكاء الاصطناعي إلى التفاعل مع فريق التصميم الفني إلا نادرًا، إن احتاج أصلًا. ولمساعدة الفنانين ومصممي المراحل في مهامهم، قد يتطوع المبرمجون أو يُطلب منهم تطوير أدوات وبرامج مساعدة . [ 1 ] [ 2 ] قد يكون العديد من هذه الأدوات مخصصًا لغرض محدد، وقد يحتوي على أخطاء برمجية بسبب ضيق الوقت (غالبًا لا يُدرج وقت تطوير هذه الأدوات في جدول اللعبة)، فضلًا عن كونها مخصصة للاستخدام الداخلي فقط. تُطوّر العديد من أدوات الألعاب بلغات تطوير سريعة (RAD) لتسريع عملية التطوير، وقد تُهمل بعد اكتمال اللعبة.

الاختبار

تبدأ عملية اختبار ضمان الجودة الرسمية ، التي يُجريها مختبرو ألعاب محترفون ، في مراحل متقدمة من تطوير اللعبة. قد تبدأ الألعاب ذات الميزانيات الضخمة الاختبار مع أول نسخة تجريبية قابلة للعب ، بينما قد لا تدخل الألعاب ذات الميزانيات المنخفضة والألعاب البسيطة مرحلة الاختبار إلا بعد أن تصبح النسخة النهائية جاهزة للإصدار . وتتمثل مهمة المبرمجين في إصلاح الأخطاء والمشاكل التي تكتشفها فرق ضمان الجودة. [ 3 ]

يقترب من الاكتمال

تشمل المهام النهائية "صقل" اللعبة، مثل قيام المبرمجين بإصلاح الأخطاء العرضية - من البسيطة إلى الكارثية - التي قد تظهر خلال المراحل الأخيرة من الاختبار .

قد يُجري مطورو الألعاب فترة اختبار تجريبية (بيتا) ، لكن تعريف هذه الفترة يختلف من مطور لآخر. غالبًا ما تتضمن النسخة التجريبية جميع ميزات اللعبة، ولكنها قد تحتوي على بعض الأخطاء أو محتوى غير مكتمل. نادرًا ما تُمنح الألعاب فترة تجريبية عامة، على سبيل المثال، لقياس مدى تحمل خوادم اللعبة للضغط .

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

صيانة

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

مدة

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

أدوات

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

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

غالباً ما تكون شركات تطوير الألعاب على استعداد لإنفاق آلاف الدولارات لضمان تزويد مبرمجيها بأفضل الأدوات . وقد يمتلك المبرمج المجهز تجهيزاً جيداً جهازين أو ثلاثة أجهزة تطوير وشاشات متعددة في مكتبه أو مكان عمله.

لغات البرمجة

لغةسمات
حَشداحتمالية ضئيلة لزيادة الحمل على وحدة المعالجة المركزية
جمعروف على نطاق واسع، قابل للنقل على نطاق واسع، واجهات برمجة تطبيقات عديدة، يُترجم إلى لغة الآلة
لغة سي++لغة برمجة كائنية التوجه ، معروفة على نطاق واسع، تحتوي على العديد من واجهات برمجة التطبيقات، وتُترجم إلى لغة الآلة.
جافاكائنية التوجه، مع خاصية جمع البيانات المهملة ، وقابلة للنقل على نطاق واسع (عبر آلة افتراضية )
لغة C# ، لغة Visual Basic .NET ، إلخ.واجهة برمجة كائنية التوجه، مع خاصية جمع البيانات المهملة، وتتوافق مع منتجات مايكروسوفت
أوبجكتيف-سي ، سويفتبرمجة كائنية التوجه، تتكامل مع منتجات أبل
Lua و Python و JavaScript و Tcl وما إلى ذلك.بنية مألوفة، يسهل دمجها في اللغات المذكورة أعلاه، وغالبًا ما تُستخدم في البرمجة النصية
لغة ليسب ، باسكال ، بيرل ، سمول توك ، إلخ.لغات برمجة الألعاب الهامشية، على الرغم من شيوع الربط بالمكتبات الشائعة

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

بالنسبة لأجهزة الكمبيوتر الشخصية ، قد لا يكون اختيار اللغة أكثر من مجرد مسألة تفضيل شخصي. فواجهات برمجة التطبيقات للمكتبات الشائعة مثل SDL و Allegro متوفرة على نطاق واسع، [ 4 ] [ 5 ] والفارق في الأداء بين الشيفرة البرمجية المكتوبة بلغات حديثة مُجمّعة يكاد يكون معدومًا. [ 6 ] [ 7 ] عادةً ما تكون اللغات الأكثر شيوعًا إجرائية أو كائنية التوجه ، ويتم تنفيذها عبر مُجمّعات ؛ على سبيل المثال، C ، [ 8 ] و C++ ، [ 8 ] [ 9 ] و Java . [ 10 ] ومع ذلك، قد يأخذ المطورون في الاعتبار خصائص خاصة بالمجال ، مثل التفاعل مع نظام التشغيل، ومقاومة الهندسة العكسية لألعاب الفيديو عبر الإنترنت. [ 11 ] لا تُكتب العديد من الألعاب بلغة واحدة حصريًا، وقد تجمع بين لغتين أو أكثر؛ على سبيل المثال، يحتوي محرك الألعاب الشهير Unity على أجزاء مختلفة مكتوبة بلغات C و C++ و C# . [ 12 ]

بالنسبة لأجهزة الألعاب المنزلية ، يُعد دعم المنصة المستهدفة عادةً العامل الأكثر أهمية. في الماضي، كانت ألعاب الفيديو لأجهزة الألعاب المنزلية تُكتب بلغة التجميع بشكل شبه حصري نظرًا لمحدودية الموارد من حيث سعة التخزين وسرعة المعالجة. [ 13 ] ومع ذلك، مع تطور التكنولوجيا، تطورت خيارات تطوير الألعاب على أجهزة الألعاب المنزلية. تمتلك كل من نينتندو [ 14 ] ومايكروسوفت وسوني [ 15 ] حزم تطوير برمجية ( SDKs) مختلفة لأجهزة نينتندو سويتش وإكس بوكس ​​ون وبلاي ستيشن 4 ، على التوالي.

تُستخدم لغات البرمجة النصية عالية المستوى بشكل متزايد كإضافات مضمنة للعبة الأساسية المكتوبة بلغة برمجة مُجمّعة، وذلك لتسهيل الأمر على كلٍ من المطور الأصلي وأي شخص يرغب في تعديل اللعبة. تُعد لغة Lua خيارًا شائعًا جدًا، حيث أن واجهة برمجة التطبيقات الخاصة بها مكتوبة بلغة ANSI C ، واللغة مصممة ليتم تضمينها في تطبيقات أخرى. [ 9 ] [ 16 ] وقد ابتكر العديد من المطورين لغات مخصصة بالكامل لألعابهم، مثل QuakeC من id Software و UnrealScript من Epic Games .

واجهات برمجة التطبيقات والمكتبات

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

يعتمد اختيار واجهات برمجة التطبيقات والمكتبات بشكل كبير على المنصة المستهدفة. على سبيل المثال، قد لا تتوفر مكتبات تطوير ألعاب بلاي ستيشن 2 لأنظمة مايكروسوفت ويندوز ، والعكس صحيح. مع ذلك، تتوفر أطر عمل لتطوير الألعاب تُسهّل أو تُتيح تطويرها على منصات متعددة، ما يسمح للمبرمجين ببرمجة لعبة بلغة واحدة وتشغيلها على منصات مختلفة، مثل Wii و PlayStation 3 و Xbox 360 و PSP ومايكروسوفت ويندوز.

واجهات برمجة التطبيقات الرسومية

استخدام واجهة برمجة تطبيقات الرسومات عبر أنظمة التشغيل:
نظام التشغيلفولكانDirectXGNMXمعدن
ويندوز 10نعمنعملالا
ماكMoltenVKلالانعم
لينكسنعملالالا
أندرويدنعمنعمنعملا
نظام التشغيل iOSMoltenVKلانعمنعم
تيزنقيد التطويرلالالا
سمكة أبو شراعقيد التطويرلالالا
إكس بوكس ​​ونلانعملالا
نظام التشغيل أوربيس (بلاي ستيشن 4)لالانعملا
نينتندو سويتشنعملالالا

تُعدّ الرسومات اليوم سمةً أساسيةً في معظم الألعاب. فبينما كانت الرسومات ثنائية الأبعاد هي السائدة في الألعاب التي صدرت حتى منتصف التسعينيات، تتميز معظم ألعاب AAA الآن برسومات ثلاثية الأبعاد كاملة ، حتى بالنسبة للألعاب التي تعتمد بشكل كبير على الرسومات ثنائية الأبعاد، مثل Civilization III . ومع ذلك، شهدت الرسومات ثنائية الأبعاد نهضةً في ألعاب الإندي . [ 17 ]

يُعد نظام التشغيل مايكروسوفت ويندوز منصة حاسوبية راسخة . ونظرًا لتثبيته مسبقًا على ما يقارب 90% من أجهزة الحاسوب المباعة، فإنه يمتلك الآن أكبر قاعدة مستخدمين. أما واجهتا برمجة الرسومات ثلاثية الأبعاد الأكثر شيوعًا لنظام مايكروسوفت ويندوز فهما Direct3D و OpenGL . وتُثار نقاشات حادة بين مبرمجي ألعاب ويندوز حول مزايا وعيوب كل واجهة برمجة تطبيقات .

تُعدّ منصة جوجل أندرويد حاليًا الأكثر شيوعًا في مجال الحوسبة . ونظرًا لتثبيتها مسبقًا على ما يقارب 80% من الهواتف الذكية المباعة، فإنّ أندرويد تمتلك ثاني أكبر قاعدة مستخدمين، وهي في ازدياد مستمر. وتستخدم أندرويد واجهات برمجة التطبيقات OpenGL ES و Vulkan .

DirectX عبارة عن مجموعة من واجهات برمجة تطبيقات الألعاب. Direct3D هي واجهة برمجة تطبيقات ثلاثية الأبعاد ضمن DirectX. Direct3D متاحة مجانًا من مايكروسوفت ، وكذلك بقية واجهات برمجة تطبيقات DirectX . طورت مايكروسوفت DirectX لمبرمجي الألعاب، وتواصل إضافة ميزات جديدة إلى واجهة برمجة التطبيقات. لا تخضع مواصفات DirectX لرقابة لجنة تحكيم مفتوحة، ومايكروسوفت حرة في إضافة الميزات أو إزالتها أو تغييرها. Direct3D غير قابلة للنقل؛ فهي مصممة خصيصًا لنظام التشغيل مايكروسوفت ويندوز فقط (مع أن نسخة من Direct3D تُستخدم في أجهزة إكس بوكس ​​من مايكروسوفت ، وهواتف ويندوز فون 7.5 الذكية، والأجهزة المحمولة التي تعمل بنظام التشغيل بوكيت بي سي ).

OpenGL هي مواصفات واجهة برمجة تطبيقات محمولة. يسهل نقل البرامج المكتوبة باستخدام OpenGL بين المنصات المختلفة ذات التطبيقات المتوافقة. على سبيل المثال، قام أحد مُحبي لعبة Quake II ، التي تستخدم OpenGL، بنقلها من نظام Windows إلى نظام Linux. OpenGL معيارٌ تُشرف عليه هيئة مراجعة بنية OpenGL (ARB). تجتمع الهيئة دوريًا لتحديث المعيار بإضافة دعمٍ للميزات الجديدة لأحدث أجهزة الرسومات ثلاثية الأبعاد. بالإضافة إلى ذلك، تستخدم أدوات التطوير التي تُوفرها بعض شركات تصنيع أجهزة ألعاب الفيديو (مثل Nintendo GameCube وNintendo DS وPSP) واجهات برمجة تطبيقات رسومية تُشبه OpenGL. غالبًا ما تتأخر OpenGL في تحديثات الميزات نظرًا لعدم وجود فريق تطوير دائم، واشتراط بدء تطوير التطبيقات بعد نشر المعيار. يمكن للمبرمجين الذين يختارون استخدامها الوصول إلى أحدث ميزات الرسومات ثلاثية الأبعاد لبعض الأجهزة، ولكن فقط من خلال ملحقات غير قياسية. قد يتغير هذا الوضع في المستقبل، حيث نقلت هيئة مراجعة بنية OpenGL (ARB) مسؤولية المواصفات إلى مجموعة Khronos في محاولةٍ لمعالجة هذه المشكلة. [ 18 ]

واجهات برمجة التطبيقات الأخرى

في مجال تطوير البرامج على نظام التشغيل مايكروسوفت ويندوز، يمكن استخدام واجهات برمجة التطبيقات (APIs) المختلفة لـ DirectX للإدخال، والمؤثرات الصوتية ، والموسيقى، والشبكات ، وتشغيل مقاطع الفيديو. تتوفر العديد من المكتبات التجارية لإنجاز هذه المهام، ولكن نظرًا لأن DirectX متاح مجانًا، فهو الأكثر استخدامًا على نطاق واسع.

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

هيكل اللعبة

يُعدّ عنصر حلقة اللعبة المكون الأساسي لأي لعبة، من وجهة نظر البرمجة . تسمح حلقة اللعبة بتشغيل اللعبة بسلاسة بغض النظر عن إدخال المستخدم أو عدم إدخاله.

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

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

طالما (لم يخرج المستخدم) التحقق من إدخال المستخدم تشغيل الذكاء الاصطناعي تحريك الأعداء حل التصادمات ارسم الرسومات تشغيل الأصوات نهاية الحلقة

يمكن تحسين وتعديل هذه الحلقة مع تقدم عملية تطوير اللعبة، ولكن معظم الألعاب تعتمد على هذه الفكرة الأساسية. [ 19 ]

تختلف حلقات اللعبة باختلاف المنصة التي طُوّرت من أجلها. على سبيل المثال، تستطيع الألعاب المصممة لنظام DOS والعديد من أجهزة الألعاب المنزلية استغلال موارد المعالجة المتاحة بشكل كامل. مع ذلك، يجب أن تعمل الألعاب المصممة لأنظمة تشغيل الحواسيب الشخصية الحديثة، مثل مايكروسوفت ويندوز، ضمن قيود مُجدوِل العمليات. تُشغّل بعض الألعاب الحديثة خيوط معالجة متعددة ، بحيث يمكن، على سبيل المثال، فصل حساب ذكاء الشخصيات الاصطناعي عن توليد الحركة السلسة داخل اللعبة. يُؤدي هذا إلى زيادة طفيفة في الحمل الزائد، لكن اللعبة قد تعمل بسلاسة وكفاءة أكبر على المعالجات متعددة النوى أو التي تدعم تقنية تعدد الخيوط ، وعلى منصات المعالجات المتعددة. مع تركيز صناعة الحواسيب على وحدات المعالجة المركزية ذات النوى الأكثر قدرة على تنفيذ المزيد من خيوط المعالجة، تزداد أهمية هذا الأمر. تحتوي أجهزة الألعاب المنزلية، مثل إكس بوكس ​​360 وبلاي ستيشن 3، على أكثر من نواة واحدة لكل معالج، وتُنفّذ أكثر من خيط معالجة واحد لكل نواة.

الهواة

المنصات الوحيدة المتاحة على نطاق واسع لهواة البرمجة هي أنظمة التشغيل الاستهلاكية ، مثل أندرويد، وiOS، وويندوز، وماك، ولينكس، وغيرها. ويعود ذلك إلى أن تطوير الألعاب على أجهزة الألعاب يتطلب أنظمة تطوير خاصة باهظة الثمن. وغالبًا ما تُشترى هذه الأنظمة من الشركة المصنعة للجهاز، وتُباع أو تُؤجر فقط لاستوديوهات تطوير الألعاب الاحترافية. مع ذلك، كانت مايكروسوفت تُوزع إطار عمل لتطوير الألعاب يُسمى XNA ، والذي يعمل على كلٍ من مايكروسوفت ويندوز وإكس بوكس ​​360. توقف دعم XNA، لكن مشاريع أخرى مثل MonoGame و SharpDX تسعى إلى توفير نفس الإمكانية لبرمجة الألعاب. كما يقوم بعض الهواة بتطوير ألعاب منزلية الصنع ، خاصةً للأجهزة المحمولة أو أجهزة الألعاب المُعدلة .

يقوم بعض طلاب هندسة البرمجيات ببرمجة الألعاب كتمارين لتعلم لغة برمجة أو نظام تشغيل .

قد يستخدم بعض الهواة حزم برامج تساعد في تطوير الألعاب، مثل Adobe Animate و Unity و Android Studio و pygame و Adventure Game Studio و Roblox Studio و GameMaker Studio و Godot و Unreal Engine و Pixel Game Maker MV أو Construct .

انظر أيضاً

مراجع

  1. بوكنايت، دبليو. جاك (سبتمبر 1970). "إجراء لإنشاء عروض رسومات حاسوبية ثلاثية الأبعاد بنصف درجة لونية" . مجلة اتصالات رابطة مكائن ​​الحوسبة . 13 (9): 527-536 . doi : 10.1145/362736.362739 . ISSN 0001-0782 . S2CID 15941472 .  
  2. ميلينغتون، إيان (18 مارس 2019). الذكاء الاصطناعي للألعاب . doi : 10.1201/9781351053303 . ISBN 9781351053303. S2CID 186504701 . 
  3. شوبوتز، موريتز (12-12-2016). "كوجيكس: مُثبت منطقي للإجابة على الأسئلة" . داتاساكورا .
  4. "روابط لغة SDL" . تم الاسترجاع في 2015-11-08 .
  5. "Allegro - روابط اللغة" . تم الاسترجاع في 2015-11-08 .
  6. كورلان، ألكسندرو-دان (2003). "معايير لغات البرمجة" . تم الاسترجاع في 2015-11-08 .
  7. كورلان، ألكسندرو دان (11-06-2011). "معايير أداء لغات البرمجة" . تم الاطلاع عليه بتاريخ 08-11-2015 .
  8. 1 2 "برمجة الألعاب بلغة C و C++" . 2011. تم الاطلاع عليه بتاريخ 2015-11-08 .
  9. 1 2 ديلورا، مارك (2009-03-05). "استطلاع المحركات: النتائج العامة" . تم الاسترجاع في 2015-11-08 .
  10. "مشاريع LWJGL" . مؤرشف من الأصل بتاريخ 10-11-2015 . تم الاطلاع عليه بتاريخ 08-11-2015 .
  11. هير (30 نوفمبر 2015): "الفصل الخامس (ب) من كتاب "تطوير ونشر ألعاب MMOG"" .
  12. "برمجة الألعاب بلغة C و C++" . داتاساكورا . 2011.
  13. هايد، راندي (1985). استخدام لغة التجميع 6502 .
  14. هيلجاسون، ديفيد (2 نوفمبر 2012). "مطورو الألعاب، ابدأوا باستخدام محركات Unity 3D" . جيمز بيت (مقابلة). أجراها دين تاكاهاشي. فينشر بيت . مؤرشف من الأصل في 14 يوليو 2014. تم الاطلاع عليه في 13 يوليو 2014 .
  15. " [ فورونيكس ] لماذا تستخدم سوني LLVM/Clang على بلاي ستيشن 4؟" . Phoronix.com . تاريخ الاطلاع: 17 نوفمبر 2014 .
  16. "Lua: الاستخدامات" . 24-03-2015. مؤرشف من الأصل في 24-07-2019 . تم الاسترجاع في 08-11-2015 .
  17. "لماذا معظم ألعاب الإندي ثنائية الأبعاد بدلاً من ثلاثية الأبعاد؟" . رامبانت جيمز. 16 مايو 2013. تم الاطلاع عليه في 1 يناير 2017 .
  18. "شركة كرونوس تضع اختبارات التوافق مع OpenGL وOpenGL ES في المصادر المفتوحة" . بيان صحفي صادر عن مجموعة كرونوس. مؤرشف من الأصل بتاريخ 3 مايو 2008.
  19. ستوتز، مايكل (2001). برمجة ألعاب لينكس، الفصل 1. مطبعة مجلة لينكس. ISBN 1-886411-48-4.

مواقع الويكي