سؤال

أتساءل عما إذا كان من الممكن تضمين روبي كلغة برمجة نصية في Microsoft XNA، وما هي أفضل طريقة للقيام بذلك.أنا أبحث عن شيء مثل Xnua, باستثناء روبي.

لقد عثرت على Ruby.NET وIronRuby ويبدو أنهما في مراحل مبكرة جدًا، لذا لست متأكدًا من مدى قابليتهما للاستخدام.علاوة على ذلك، لست متأكدًا من أنها ستعمل على Xbox 360.هذا الموضوع في منتديات XNA يقول أن IronPython لن يعمل، على سبيل المثال.

هل كانت مفيدة؟

المحلول

لا يعمل IronRuby وIronPython على Xbox 360 لأنهما يعتمدان على DLR (وقت تشغيل اللغة الديناميكي) ويستخدم DLR بشكل مكثف System.Reflection.Emit الأنواع غير المتوفرة حاليًا على Xbox 360 .Net Framework (نسخة معدلة من Compact .Net Framework).

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

نصائح أخرى

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

لا أستطيع أن أقول لك حقا كيف ستفعل ذلك، فقط لأنه يجب أن يكون ممكنًا.

بينما أتفق مع ملاحظات Leaf Garland، دعني أقدم لك بديلاً:

لغة البرمجة النصية "المفضلة" للألعاب هي Lua.على سبيل المثال، تستخدم لعبة Crysis وFar Cry تقنية LUA على نطاق واسع.انقر فوق في ويكيبيديا للحصول على قائمة بالألعاب البارزة التي تستخدمها.

فيما يتعلق باستخدام ذلك مع XNA، فقد خدشت السطح فقط منذ أن بدأت للتو في هواية تطوير XNA، ولكن ما أعرفه هو أنه لا يمكنك استخدام LUA مباشرة في XNA.وذلك لأن LUA مبني في لغة C++ (غير مُدارة) وبالتالي لن تتمكن من نشر ذلك على جهاز XBOX360 الخاص بك.

هناك مشروع قيد التطوير يقوم ببناء نسخة XNA من lua at http://www.xnua.com/.وهو أيضًا منتج مجاني وكود المصدر متاح أيضًا للتنزيل.

إذا كانت صناعة الألعاب تعتقد أن LUA جيدة بما يكفي لألعاب AAA التجارية، فسأتبع هذا الاتجاه شخصيًا أيضًا (على أساس أن لديهم خبرة أكبر بكثير في هذا المجال مما لدي)

لماذا لا تستخدم Ruby لتطوير أجهزة الكمبيوتر الشخصية وLua لـ 360؟

يحرر:ربما هذا سيكون مفيدا.

على الرغم من أنها ليست روبي وهذا سؤال قديم، إلا أنني أود أن أوضح لك محرك البرمجة النصية الجديد الذي كنت أقوم بإنشائه.سيتم تشغيله بشكل أساسي في أي مكان يوجد به إطار عمل .Net، بما في ذلك Xbox360 تحت XNA.إنه لا يستخدم Reflection.Emit، لذا فهو يعمل حيث لا تعمل اللغات الأخرى.كما أنه عبارة عن تعليمات برمجية مُدارة بالكامل، لذا لا يوجد استدعاءات P/مثل Lua.

يمكنك الحصول على مزيد من المعلومات من مدونتي ويمكن تجربتها في هذا الصفحة التجريبية

إنه جاهز تقريبًا للاختبار التجريبي، ولكن بعد الاختبار التجريبي سيكون مكونًا مرخصًا تجاريًا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top