الشبكة العربية لمطوري الألعاب

مبتدئ  dnjx مشاركة 1

هناك العديد من اللغات المطروحة للتداول في XSI مثل VBScript/JScript/Python...
انني حاليا انتقل من لغة Java الى #C فهل هي اللغة المطلوبة(ذات الكفاءة الاعلى) للتعامل مع XSISDK و Behavior يرجى النصح.....

خبير مدير همام البهنسي مشاركة 2

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

لتسهيل معالجة الموضوع سأعتمد مبدأ التحليل التراجعي حيث يتم تحديد الأهداف المطلوبة والعودة للخلف لاتخاذ القرار في اختيار أدوات التطوير المناسبة.
الحالة 1: الهدف المطلوب هنا هو تطوير وحدات ذكاء صناعي للتحكم بحشود من الشخصيات الرقمية ضمن بيئة الـ Softimage|Behavior.
في هذه الحالة لسوء الحظ لا يوجد لديك الكثير من الخيارات. فالبيئة البرمجية للـ Behavior تفرض عليك تطوير المحاكاة من خلال لغة برمجة خاصة تدعى: Piccolo إضافة بالطبع لإمكانية التعبير عن المنطق العام للشخصيات من خلال (HFSM Hierarchal Finite State Machine). لحسن الحظ فأن هذه الـ Piccolo مشابهة جداً للغات البرمجة السائدة مثل C والـ Java لذلك إذا كان لديك خبرة بسيطة في أي منها فلن تجد الكثير من الصعوبة في التعامل مع الـ Behavior.
إضافة لما سبق يوفر الـ Behavior إمكانية لاستخدام C/C++ لبرمجة إضافات ذات أداء عالي لنظام المحاكاة العام في البرنامج من خلال مكتبة الـ SDK الخاصة به.

الحالة 2: الهدف هنا هو أتمتة بعض العمليات الروتينية أو تطوير أدوات خدمية لا تحتاج لأداء أو معالجة سريعة ضمن بيئة الـ XSI. في مثل هذه الحالات ليس من الحكمة الاعتماد على لغة مترجمة (Compiled) مثل (C/C++) أو حتى الـ C# والخوض بالكثير من التفاصيل البرمجية التي يمكن الاستغناء عنها. الحل الأفضل هنا هو البرمجة بالاعتماد على أحد اللغات المفسرة (Interpreted) التي يدعمها الـ XSI مثل (VBScript/Jscript/Python). حيث تمكنك هذه اللغات من برمجة الهدف المطلوب بعدد محدود من السطور وتنفيذ البرنامج ومعاينة نتائجه بشكل فوري ضمن بيئة البرنامج. وكنتيجة سيكون لديك فرصة للتركيز بشكل أفضل على الخوارزمية بدل من التركيز على العديد من التفاصيل البرمجية الإضافية.
وبالنسبة للمرونة والحرية فإن المعمارية الجديد للـ Scripting Engines في الـ XSI تمكنك حتى من تطوير نماذج أولية (Prototypes) لإضافات معقدة (Plug-ins) تنتمي للحالة الثالثة.
بالمناسبة: يمكنك استخدام C# ضمن الـ XSI كلغة Scripting ودون الحاجة للترجمة -نظرياً- بطريقة ملتوية قليلاً مذكورة في مراجع XSISDK.

الحالة 3: الهدف في هذه الحالة هو تطوير إضافات ذات أداء عالي مثل: أنظمة محاكاة Simulation Systems – مظللات خاصة Custom Shaders - ... الخ...
هنا لا يمكنك الاعتماد على أي من لغات الـ Scripting حتى ولو كانت تمكنك من برمجة المطلوب بشكل نظري، لأنها تعاني من نقطة ضعف هامة وهي البطء في الأداء مقارنة مع اللغات المترجمة مثل (C/C++).
لذلك في هذه الحالة أنت مضطر لاستخدام (C/C++) للبرمجة وإلا لن تكون هناك فرصة كبيرة لاستثمار نتيجة جهودك بشكل عملي.