"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > C++: هاجس السرعة في صناعة الألعاب

C++: هاجس السرعة في صناعة الألعاب

تم النشر بتاريخ 2024-08-01
تصفح:743

C   : speed obsession in the game industry

متى نحتاج حقًا إلى السرعة؟

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

توزيع المسؤولية

قد نقوم بتنفيذ وظائف تتطلب الأداء في لغة مجمعة، مثل C، ونستدعيها من برنامج مكتوب بلغة ديناميكية، مثل Python.
ولكن، اليوم لدينا بالفعل مكتبات موثقة جيدًا وسهلة الاستخدام لـ Python (pygame, pyopengl, pyassimp, pybullet, numpy)، والتي يتم تنفيذها بشكل أساسي على C/C وتوفر وظائف للحسابات الثقيلة، أو الفيزياء/الرسومات على وجه الخصوص. قد لا نواجه أبدًا ضرورة تنفيذ مثل هذه المكتبات بمفردنا.

هل C هو الخيار الوحيد؟

من المقبول عمومًا أن اللغات المجمعة المهملة، مثل Java أو C#، تكون أبطأ من لغة C ولا تلبي متطلبات العمليات الحسابية الثقيلة. وهذا بالطبع ليس صحيحا.
قد تتفوق لغة C على Java أو C# في الأداء بنسبة 20-30% في بعض الحالات الخاصة، ولكن عندما يتعلق الأمر بـ تجريدات وقت التشغيل، مثل إرسال الوظائف الديناميكية، أو تفاعل اللغات، أو المهام غير المتزامنة، أو إدارة المجموعات النصية أو المجردة، تُظهر Java وC# كفاءة أعلى بكثير من C .
أيضًا، قد نقوم بتشغيل برامج Python الخاصة بنا في نفس وقت التشغيل مع Java أو C#، باستخدام Jython أو IronPython. إنه يجلب الكثير من الفوائد، مثل الذاكرة المشتركة المجمعة للقمامة ونظام الأنواع وسهولة الوصول إلى مكتبات C# أو Java بمجرد إخراجها من الصندوق. في Java، يتم تنفيذ لغات ديناميكية لطيفة مثل Clojure وGroovy، والتي تتمتع بإمكانية الوصول الكامل إلى Java Class Library ومشاركة المزايا المذكورة مسبقًا.

ما الذي يؤثر حقًا على الأداء؟

أصبحت أجهزة الكمبيوتر الشخصية اليوم أسرع بكثير مما كانت عليه قبل 15-20 عامًا. لكن معظم برامج سطح المكتب أو الألعاب لا تعمل بالسرعة المتوقعة (على الرغم من أنها لا تزال تنفذ في الغالب على C/C). نحتاج اليوم إلى خوارزميات وأساليب فعالة أكثر بكثير من مجرد سرعة اللغة. تعد الوظيفة ذات التعقيد المستمر في Python أكثر تفضيلاً من الوظيفة ذات التعقيد الخطي على C. إن رسم 100 شجرة في 15 سطرًا من كود Python أفضل من رسم 500 شجرة في 300 سطر من كود C.

اهتم باللعبة وليس باللغة

ليس من المهم حقًا، ما هي اللغة التي تستخدمها، عندما لا تكون لديك أي لعبة، أليس كذلك؟

يعد إنشاء لعبة على لغة C أكثر
يتطلب جهدًا ومرهقًا ، من فعل الشيء نفسه على Python أو Ruby. عندما تنشئ لعبة واحدة باستخدام لغة C ، فإنك ستنشئ 10 ألعاب باستخدام لغة Python . عندما تنشئ 5 ألعاب باستخدام Python، فستكون 0 ألعاب باستخدام C . دعونا نهتم بالألعاب والمرح، وإلا ما الفائدة؟

بيان الافراج تم نشر هذه المقالة على: https://dev.to/taqmraz/speed-obsession-in-the-game-industry-1p4i?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3