الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مكتبة صوت وفيزياء وشبكة لمحرك الألعاب الرائع irrlicht

مغلق
بدأه Abdullah.Alshammeri في 20 يوليو 2007 · 4 رد · 1,713 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ..

أكيد الكل رأى irrlicht او سمع عنه .. او شم ريحة خبر ,

الان المحرك نبت له ريش .. وصار له محرك فيزيائي وصوتي ومحرر عالم World Editor .

تستطيعون الاطلاع على المشاريع التي أغلبها خاصة للمحرك irrlicht هنا :

http://irrlicht.sourceforge.net/phpBB2/viewforum.php?f=6

أبرز المشاريع :

http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=17971

أتمنى تلقوا نظرة خاطفة على الIPhysics :

http://www.nick-online.co.uk/iphysics/index.html

ميزة المحرك .. أنه غطى الاساسيات .. وبنى القاعدة ( أقصد الاساس :) ) بشكل عبقري .. وكود ذكي ومنظم .. ثم ترك المطورون من شتى أنحاء العالم

يبنون عليه ..

أتمنى حقيقة أن نجد من يهتم بهذا المحرك ..

تم تعديل هذه المشاركة بواسطة الشمري في 20 يوليو 2007 في 03:40

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#2

السلام عليكم :)

لقد عملت على Irrlicht فترة, تصميم المحرك فعلاً عبقري وجعلني أتسائل لماذا جميع المحركات الأخرى تدخل في تعقيدات لا نهاية لها (مثل Ogre) بينما هنالك إسلوب بسيط مثل المتبع في Irrlicht؟

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

ولكني حولت إلى محرك Ogre (رغم تعقيده وحجمه الهائل).

لدي سؤالين للأخ الشمري, هل هنالك دروس عربيه عن Irrlicht سواء هنا أو في مكان آخر؟ انا أحب أن أكتب أو أترجم دروس ومقالات وقد يكون Irrlicht خيار جيد. :)

كذلك كتبت يوم أمس المقالة الأولى من سلسلة مقالات تدور حول ++C المتقدمة بالتحديد مكتبة STL, ولكي واجهت صعوبات ومشاكل كثيرة (خاصة مع الكود) عندما حاولت نقل المقالة إلى هذا المنتدى في قسم ++C طبعاً, أمضيت وقتاً طويلاً وانا أحاول من غير نجاح, يبدوا أن نظام الكتابة في المنتدى يعاني من مشكلة ما, بماذا تنصحني؟

المقالة في موقعي: http://sal.awardspace.com/articles/stl_1_bright.htm

وشكراً :)

#3

لا اعتقد يوجد دروس عربية ؟؟ ولكن فكرة كتابة مقالات أو دروس هي فكرة رائعة وستفتح باب واسع لمن هو مهتم ببرمجة الالعاب ..

أسد على يديك .. وأتمنى أن نرى مثل تلك المواضيع .

Ogre .. لا احب هذه الكلمة :D .. لا اعرف لماذا له شعبية جارفة .. مع انه محرك جرافكس فقط " باستثناء اضافات قليلة من هنا وهناك "

وتصميمه للكود مزعج جدا جدا .. لا انكر أني استفدت من بعض الجزئيات من السورس كود .. ولكن لم استفد اطلاقا من تصميمه .

أتمنى لو نكتب موضوع عن هذا المحرك وعن سبب الاعجاب به .

بالنسبة لموضوع تنسيق موضوعك اخي الكريم .. فسأرد عليك برسالة خاصة قريبا ان شاء الله . . بعد اخذ المشورة من الادارة .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#4

شكراً لك :)

OGRE ويعني Object oriented Graphics Rendering Engine في بدايته كان قد تم تصميمه في الأساس لإثبات خطأ نظرية, النظرية كانت تقول إن إستخدام OOP في تصميم محرك تصيير كامل (و OOP فقط) ليس فكرة جيدة وسيكون المحرك الناتج بطئ إلى درجه إنه سيكون من غير العملي إستخدامه لصنع الألعاب, لذلك كانت جميع المحركات في السابق تستند إلى البرمجة الهيكلية (مثل C) حتى وإن كانت لديها واجهة مصممه بإستخدام OOP.

ولكن مصمم المحرك (sinbad) إستمر على إصراره في أنه يستطيع أن يكتب محرك بإستخدام OOP بالكامل, وكان ولا يزال يقول إن تحقيق سرعة مشابهه لسرعة C ممكنه إذا تم إستخدام أفكار OOP بحذر وذكاء, وقد أثبت نظريته عن طريق محرك Ogre, وكان ذلك السبب الرئيسي لمستوى تعقيده.

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

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

أهم ميزات المحرك هو إن كل شئ يمكن تمثيله كـ script, من الـ materials إلى الـ visual effects والـ particles الـ font, ...إلخ, كما إنه أحد المحركات القليلة المجانية التي تمتلك دعم كامل للـ Skinned Mesh عبر الـ skeletal animation والـ animation blending وحتى الـ facial animation وهو يستخدم نوع ملف خاص به لخزن النماذج بإسم (mesh.) ويضم المحرك أدوات تصدير كاملة لـ 3DSMax وMaya وXSI Softimage وBlender ...

كما إن Ogre مصمم بشكل يعتمد على الـ plugins, كل شئ هو plugin في Ogre, من الـ renderers, وحتى واجهته للوندوز, وخوارزميات تسريع المشاهد (مثل BSP و Octrees), وذلك يجعله مرن بشكل كبير, ويمكن إستخدامه لأي منصة حتى أجهزة الألعاب التجارية مثل Playstation2, كل ما تحتاجه هو plugins تدعم تلك المنصة المطلوبة, في الحقيقة هنالك plugins لدعم أجهزة أخرى غير الـ PC للـ Ogre ولكنها تباع بأسعار كبيرة طبعاً ويجب على المشتري أن يمتلك رخصة تطوير من الشركات المعنيه.

الميزات أعلاه (scripting و skinned meshes, plugins) لا تمتلكها بقية المحركات المجانية, خاصة skinned meshes التي هي من أهم الأشياء التي تتكون منها الألعاب التجارية, إلا إن جميع المحركات الأخرى لا تقدم دعم حقيقي لها. مثلاً أنت تعرف إن Irrlicht نفسه ليس له نوع من الملفات خاص به, كما إن دعمه للشخصيات محدود جداً. رغم إنه الآن إستعار نوع ملفات mesh. من Ogre.

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

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

النقص الوحيد في Ogre هو برنامج تصميم يشبه UnrealED.

والمشكلة الوحيدة تبقى دائماً... التعقيد.

:)

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

كلامك يخوف :) ..

لكن بالنسبة للpluging .. أليست هي مجرد تعديل على الكود ,,

أكيد تعرف نظام الNodes الموجود بالIRR . . ألا ترى أنه أفضل وأسهل من ناحية التطوير .. والدليل أنه يوجد عشرات المشاريع .. ستجدها في الرابط اللي وضعته في الاعلى .. مثلا واحد يصنع Node لانساء الاعشاب .. Node لانساء السحب . وهكذا ...

التطوير سهل جدا لهذا المحرك .. كما أنه يملك World Editor ,, متطور الان ..

اقتباس
مثلاً أنت تعرف إن Irrlicht نفسه ليس له نوع من الملفات خاص به, كما إن دعمه للشخصيات محدود جداً

ماذا عن الMD2 :D .

صحيح .. الدعم محدود ,, لكن يستطيع أي شخص تطوير هذا الجانب ’

أيضا المحرك الان متوجه لدعم الCollada .. التي ستجمع أمور كثيرة في ملف واحد ’’

لا زلت أصر على ان تصميم IRR يسمح وبسهولة لاضافة أي تطويرات يريدها المبرمج ,

انظر للMFC .. التي لم تحقق النجاح المنتظر ., وانظر الى الجافا عندما جاءتنا بمفهوم رائع في كتابة الكود ..

فحذت ميكروسوفت حذوها .. وأنتجت الdot net .

الان التوجه الجديد .. هو ترك تعقيد الكود لأمور تستحق التعقيد " كبناء لعبة " .. اما أن نعقد الكود منذ تصيمم المحرك .. فكيف سيكون شكل كود اللعبة بعد ذلك .

بالمناسبة .. مع كل ما قلته عن المحرك Ogre الا اني أتمنى لو أفهم فلسفة مصمم المحرك في تطوير المحرك ..

كيف يمكن أن نفهم المحرك .. من وين بدأ والى أين انتهى ,,

فالIRR يعتمد على توزيع عمله على namespace كل namespace عبارة عن كتلة واحدة .

فلو جئنا للvideo .

نجد واجهات للرسم والاكساء والماتيريال وماالى ذلك .

كل واجهة عمل لها implementation حسب الRender اللي يستخدمه ..

وجعل بين كلاسات الRender والواجهات .. شيء اسمه NULL Driver ليقوم بالامور المشتركة بين مختلف الRenderالمدعومة .

بينما في Ogre هنا الامور غير واضحة .. حتى لو تتبعت المحرك ,,

يمكن السبب هو أني لا اجيد الا اساسيات الOOP مثل الواجهات والAbstract و الوراثة ,, بينما هناك مفاهيم أخرى لا اعرفها حتى الان .

أتمنى لو يتم اتحافنا بالمزيد عن Ogre .. مميزاته .. تصميم الكود .. الخ .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

هذا الموضوع مغلق.

مواضيع مشابهة