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

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

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

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

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

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

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

تصميم اللعبة

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

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

إنتاج

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

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

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

الاختبار

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

تقترب من الانتهاء

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

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

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

صيانة

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

مدة

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

أدوات

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

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

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

لغات البرمجة

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

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

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

بالنسبة لوحدات التحكم ، عادةً ما يكون دعم المنصة المستهدفة هو العامل الأكثر اعتبارًا. في الماضي، كانت ألعاب الفيديو لوحدات التحكم تُكتب حصريًا تقريبًا في التجميع بسبب الموارد المحدودة من حيث كل من التخزين وسرعة المعالجة. [13] ومع ذلك، مع تقدم التكنولوجيا، تقدمت أيضًا خيارات تطوير الألعاب على وحدات التحكم. تمتلك Nintendo و [14] Microsoft و Sony [15] مجموعات SDK مختلفة لوحدات التحكم Wii U و Nintendo Switch و Xbox One و PlayStation 4 على التوالي.

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

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

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

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

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

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

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

من بين منصات الكمبيوتر الشخصي الراسخة نظام التشغيل Microsoft Windows. ونظرًا لأنه يأتي مثبتًا مسبقًا على ما يقرب من تسعين بالمائة من أجهزة الكمبيوتر المباعة، فقد أصبح لديه الآن أكبر قاعدة مستخدمين. [ بحاجة لمصدر ] واجهتا برمجة الرسومات ثلاثية الأبعاد الأكثر شيوعًا لنظام التشغيل Microsoft Windows هما Direct3D و OpenGL . وتوجد مناقشات ساخنة حول فوائد ونقاط ضعف كل واجهة برمجة تطبيقات بين مبرمجي ألعاب Windows .

حاليًا، منصة الحوسبة الأكثر شعبية هي Google Android. نظرًا لأنه يأتي مثبتًا مسبقًا على ما يقرب من ثمانين بالمائة من الهواتف الذكية المباعة، فإن Android لديه ثاني أكبر قاعدة مستخدمين، ويتزايد عددها. يستخدم Android OpenGL ES و Vulkan (API) .

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

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

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

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

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

هيكل اللعبة

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

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

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

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

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

تختلف حلقات اللعبة حسب المنصة التي تم تطويرها من أجلها. على سبيل المثال، يمكن للألعاب المكتوبة لنظام التشغيل DOS والعديد من وحدات التحكم أن تهيمن على موارد المعالجة المتاحة وتستغلها دون قيود. ومع ذلك، يجب أن تعمل الألعاب لنظام التشغيل الحديث للكمبيوتر الشخصي مثل Microsoft Windows ضمن قيود جدول العمليات. تعمل بعض الألعاب الحديثة بخيوط متعددة بحيث يمكن، على سبيل المثال، فصل حساب الذكاء الاصطناعي للشخصية عن توليد الحركة السلسة داخل اللعبة. وهذا له عيب زيادة النفقات العامة (قليلاً)، ولكن اللعبة قد تعمل بسلاسة وكفاءة أكبر على المعالجات متعددة النوى أو متعددة النوى وعلى منصات متعددة المعالجات. مع تركيز صناعة الكمبيوتر على وحدات المعالجة المركزية ذات النوى الأكثر التي يمكنها تنفيذ المزيد من الخيوط، أصبح هذا مهمًا بشكل متزايد. تحتوي وحدات التحكم مثل Xbox 360 و PlayStation 3 بالفعل على أكثر من نواة لكل معالج، وتنفذ أكثر من خيط واحد لكل نواة.

الهواة

المنصات الوحيدة المتاحة على نطاق واسع للهواة للبرمجة هي أنظمة التشغيل الاستهلاكية ، مثل Android وiOS وWindows وMac وLinux وما إلى ذلك. وذلك لأن التطوير على وحدات التحكم في الألعاب يتطلب أنظمة تطوير خاصة تكلف آلاف الدولارات. غالبًا ما يجب الحصول عليها من الشركة المصنعة لوحدة التحكم ولا يتم بيعها أو تأجيرها إلا لاستوديوهات تطوير الألعاب الاحترافية. ومع ذلك، اعتادت Microsoft توزيع إطار عمل لتطوير الألعاب، XNA ، والذي يعمل على كل من Microsoft Windows وXbox 360. تم إيقاف XNA، لكن مشاريع أخرى مثل MonoGame وSharpDX تحاول السماح بنفس الوصول لترميز الألعاب. في الآونة الأخيرة، أصبح Android هو منصة الهواة الأكثر شعبية المفضلة لمطوري الأجهزة المحمولة. [20] يطور بعض الهواة أيضًا ألعابًا منزلية الصنع ، خاصة للأنظمة المحمولة أو وحدات التحكم المعدلة .

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

قد يستخدم بعض الهواة حزم البرامج التي تساعد في تطوير الألعاب، مثل 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. ^ ميلينجتون، إيان (2019-03-18). الذكاء الاصطناعي للألعاب. doi :10.1201/9781351053303. ISBN 9781351053303. S2CID  186504701.
  3. ^ Schubotz, Moritz (2016-12-12). "Cogex: أداة إثبات منطقية للإجابة على الأسئلة". Datasakura .
  4. ^ "روابط لغة SDL" . تم الاسترجاع في 2015-11-08 .
  5. ^ "Allegro - Language bindings" . تم الاسترجاع في 2015-11-08 .
  6. ^ كورلان، ألكساندرو دان (2003). "معايير لغة البرمجة" . تم الاسترجاع في 2015-11-08 .
  7. ^ Corlan, Alexandru-Dan (2011-06-11). "معايير لغات البرمجة" . تم الاسترجاع في 2015-11-08 .
  8. ^ ab Corlan, Alexandru-Dan (2011). "برمجة الألعاب بلغة C وC++" . تم الاسترجاع في 2015-11-08 .
  9. ^ ab DeLoura, Mark (2009-03-05). "The Engine Survey: General results" . تم الاسترجاع في 2015-11-08 .
  10. ^ Corlan, Alexandru-Dan. "LWJGL - Projects". مؤرشف من الأصل في 2015-11-10 . تم الاسترجاع 2015-11-08 .
  11. ^ "أرنب بلا أخطاء" (30 نوفمبر 2015). "الفصل الخامس (ب) من "تطوير ونشر MMOG"".
  12. ^ كورلان، ألكساندرو (2011). "برمجة الألعاب بلغة سي وسي++". داتاساكورا .
  13. ^ هايد، راندي (1985). استخدام لغة التجميع 6502 .
  14. ^ هيلجاسون، ديفيد (2 نوفمبر 2012). "مطورو الألعاب، ابدأوا تشغيل محركات Unity 3D الخاصة بكم". GamesBeat (مقابلة). مقابلة مع دين تاكاهاشي. VentureBeat . تم الاسترجاع في 13 يوليو 2014 .
  15. ^ "[Phoronix] لماذا تستخدم Sony LLVM/Clang على PlayStation 4". Phoronix.com . تم الاسترجاع في 17 نوفمبر 2014 .
  16. ^ Corlan, Alexandru-Dan (2015-03-24). "Lua: Uses". مؤرشف من الأصل في 2019-07-24 . تم الاسترجاع في 2015-11-08 .
  17. ^ "لماذا أغلب الألعاب المستقلة ثنائية الأبعاد بدلاً من ثلاثية الأبعاد؟". Rampant Games. 2013-05-16 . تم الاسترجاع في 2017-01-01 .
  18. ^ "Khronos Places OpenGL and OpenGL ES Conformance Tests into Open Source" بيان صحفي صادر عن مجموعة Khronos. مؤرشف من الأصل في 2008-05-03.
  19. ^ ستوتز، مايكل (2001). برمجة ألعاب لينكس، الفصل الأول . مطبعة مجلة لينكس. رقم ISBN 1-886411-48-4.
  20. ^ "تقرير: 79% من مطوري الأجهزة المحمولة يفضلون بناء تطبيقاتهم على نظام أندرويد". 29 أغسطس 2016.
  • GameDev.net، أحد الموارد الرائدة لتطوير الألعاب
  • رابطة مطوري الألعاب الدولية (IGDA)
  • تطوير الألعاب لمهندسي البرمجيات، دورة قصيرة مدتها 5 أيام تقدمها معهد ماساتشوستس للتكنولوجيا بتوجيه من مرشدي مختبر الألعاب الحائز على جوائز في معهد ماساتشوستس للتكنولوجيا.
  • تجربة أحد مبرمجي الألعاب السابقين في صناعة تطوير الألعاب
  • نصائح توم سلوبر، الخبير المخضرم في صناعة الألعاب، حول برمجة الألعاب

ويكيات

  • ويكي تطوير الألعاب ثنائية الأبعاد
  • ويكي تطوير الألعاب -GDwiki
Retrieved from "https://en.wikipedia.org/w/index.php?title=Video_game_programming&oldid=1249223886"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate