سؤال

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

لوا و السنجاب يبدو أن يكون أكثر فحصها ، ولكن ايم مفتوحة لجميع.

على النحو الأمثل سيكون من الأفضل إذا كان هناك تجميع شكل لغة التوزيع وسهولة التحميل.

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

المحلول

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

LuaJIT هو أيضا حوالي 10 مرات أسرع الثعبان و لوا مترجم بكثير أقل بكثير (150kb أو حول 15k خطوط C والتي يمكنك قراءة الواقع من خلال فهم).يمكنك السماح للمستخدم سيناريو اللعبة الخاصة بك دون الحاجة إلى تضمين ضخمة اللغة.من ناحية أخرى إذا كنت مزق محلل جزء من لوا يصبح أصغر.

نصائح أخرى

واحد هو خيار مثير للاهتمام stackless-الثعبان.هذه كانت تستخدم في حواء-لعبة على الانترنت.

الثعبان/C API دليل أطول من كله لوا دليل (بما في ذلك Lua/C API).

سبب آخر لوا هو المدمج في دعم coroutines (التعاونية تعدد المهام في نظام التشغيل واحد الخيط).أنه يسمح لأحد أن يكون مثل 1000 من ما يبدو الفردية البرامج النصية تشغيل سريع جدا جنبا إلى جنب مع بعضها البعض.مثل برنامج نصي واحد في الوحش/سلاح أو نحو ذلك.

( لماذا يكتب الناس لوا في حالة العلوي كثيرا على ذلك ؟ إنه "لوا" (انظر هنا). )

أحد أكثر الأصوات بالنسبة لوا.صغيرة وسريعة وسهلة لدمج, ما هو مهم بالنسبة لوحات المفاتيح الحديثة - يمكنك بسهولة التحكم في عمليات الذاكرة.

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

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

ربما أود أن اختيار بيثون.عادة ما يجمع إلى بايت كود, لذلك سوف تحتاج إلى تضمين مترجم.ومع ذلك ، إذا كان يجب أن يمكنك استخدام PyPy على سبيل المثال ترجمة التعليمات البرمجية C ثم ترجمة ذلك.

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

أنا أحب أن أسمع عن بيثون ، كما رأيت استخدامه ضمن سلسلة battlefield أعتقد.

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

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

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

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

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