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

ما معنى وعمل المحرك وكيف يصنع ؟

مغلق
بدأه TYEF في 14 مارس 2005 · 7 رد · 3,472 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ,

أما بعد السلام والتحية أود أن أسأل ما المقصود بمحرك الألعاب وكيف يعمل وإيه علاقة الفيزياء به وكيف أصلا يصنع ؟

ده إختصار أسئلة كتير فى مواضيع هنا فى القسم بس مفهمتش الرد !

ولكم جزيل الشكر

#2

الفرق بين 3D Engines And Game Engines ?

هناك فرق شاسع بين المحركات الثلاثية الالعاب و محرك اللعبة نفسه -

فالمسؤل اولا و اخيرا عن العرض و التصيير هو المحرك الثلاثى البعد اى انا المحرك الخارجى وظيفته مثلا تصيير المراحل و الكائنات عموما ( شخصيات ، اسلحة ...) ، و ليس كما يعتقد البعض انه هو المخصص بالنظام الفيزيائى Physics System و نظام الحركة داخل اللعبة Animation System او نظام الذكاء المصنع Ai System ، و لكن العكس صحيح فمحرك اللعبة هو مجموعة من الاحداث الداخلية للعبة مثلا احتكاك اللاعبين ببعض و هو ما يجعل محرك اللعبة استعداء النظام الفيزيائى و مثلا حركة الشخصية الرئيسة ( الركض مثلاً ) مما يجعل محرك اللعبة استعداء نظام الحركة للقيام بهذه المهمة .

و جميع هذه الانظمة يجب ان تحاكى محرك اللعبة الرئيسى ، و بالطبع وظيفة كتابة محرك بالكامل هو عمل لعبة ثلاثية الابعاد .

و بإختصار اى لعبة ثلاثية الابعاد تحتاج الى هذه الانظمة :

محرك ثلاثى الابعاد

محرك للعبة

نظام اداخل ( الكيبورد و الماوس ) و نظام الشبكات

نظام حركة

نظام لكشف التصادمات

نظام فيزيائى

نظام للذكاء الصناعى

نظام لتحميل نماذج ( موديل) ثلاثية الابعاد .

قد يتسائل البعض لماذا لم ندمج النظام المخصص لكشف التصادمات مع الفيزياء و ذلك لانه معقد نوعا ما لذا جعلناه لنظام مخصص له يتخصص فيه .

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#3

Game System (or engine) is a system which includes many things,

let's take an example of this, which is Unreal system or Reality system:

They contains a lot of engines which are:

1- Graphics Engine (2D and 3D).

2- Scripting System Engine.

3- Networking Engine.

4- Input Engine.

5- Sound Engine.

6- Physcis Engine with advanced Collision Detection and advanced techniques like Ragdoll and breakage, etc.

7- Advanced WYSWYG editors for creating Levels, Networking, Content Creation, etc.

8- Common framework to integrate all this parts together.

So the idea here when any one wanna make any game, he just understand the framework well, and then begin making his own game using this framework which will wrap all the low level calls to Winsocks, DirectX library and so on.

Mohamed Meshref

Performance Engineer

SQL Server Engine Team

Microsoft Corporation

Redmond, Washington, USA

http://www.microsoft.com/sql/

Blog: http://www.mmeshref.com

#4

السلام عليكم

الصراحة اول مرة اعرف ان هناك فرق بين 3d game engin and 3d engin وشكرا لانكم طرحتم هذه النقطة

انا حاليا كنت استعد لبدء برمجة مشروع تخرجي بتصميم محرك صغير واقوم حاليا بتنزيل كتاب 3d game engin design ولكن بما انكم اشرتم الى ان ان هناك فرق بين الاثنين اريد ان استوعب منكم قبل البحث في جوجل عن الفرق بين الاثنين او النقاط الاساسية يعني مثلا هل 3d engin يستخدم في عدة تطبيقات غير الالعاب بينما 3d game engin يستخدم في الالعاب فقط

واخيرا ما هي الكتب التي تنصحوني بقراءتها لكل من ال 3d game engin and 3d engin

وشكرا

"خيركم من تعلم العلم وعلمه". ..........استغفر الله. ........ اللهم صلي وسلم على سيدنا محمد

احمد عبد الحميد ابوغرارة

CodeGuru CodeProject CGTalk

#5

It's not 3D engine and 3D game engine, it's 3D engine and Game engine, the first one is a part from the second one

Mohamed Meshref

Performance Engineer

SQL Server Engine Team

Microsoft Corporation

Redmond, Washington, USA

http://www.microsoft.com/sql/

Blog: http://www.mmeshref.com

#6

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

الوظيفة -> وظيفة التغليف (إن وجدت) -> المكتبة (إن وجدت) -> المحرك -> بيئة التطوير (تستقر عادة على المحرك الرئيسي - وقد تمتلك محركاً مصغراً خاصاً بها) .... وهكذا .... !!!!!!

- الوظيفة: ببساطة عبارة عن مجموعة من المتغيرات ، التعليمات ، الأدوات المنطقية والتي يؤدي ناتج عمل كل هذه العوامل فيها مجتمعة إلى عمل ما.

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

- المكتبة: مجموعة من الوظائف أو وظائف التغليف .... عادة المكتبات مثل DirectX وOpenGL لا تتضمن وظائف للتغليف لأنها تعتبر مكتبات مرجعية ، أي أنها مصممة لأداء مهام محددة ومعينة مهما صغرت أو كبرت باستخدام وظائف منفردة ومعزولة وذات خواص محددة .... الآن يأتي دور المطور بالتالي لوضع اختصاراته الكثيرة في وظيفة تغليف واحدة .... !!!!!! .... يفضل المبرمجين عادة اصدار مكتبات منفصلة لكل مهمة معينة ، كأن يكون هنالك مكتبة رسومية ، وأخرى صوتية ، وما إلى ذلك ، مع اعتبار أنه بالإمكان تضمين كل ذلك في مكتبة واحدة.

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

http://www.3dactionplanet.com/features/articles/gameengines

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

- بيئة التطوير المرئية: تعتبر بيئة التطوير المرئية أحد التطبيقات الواسعة الانتشار هذه الأيام ، وهي عبارة عن مجموعة من المكونات الرسومية والصوتية ، ... الخ المدمجة تحت مظلة بيئة التطوير ، أي بمعنى أنه يمكنك تطوير لعبتك مرئياً ومن ثم الاستحصال على الملف التنفيذي بالنهاية ، والواقع يقول أن محركك الأساسي موجود في الشيفرة الناتجة عن عملية التطوير ، وهو الذي سوف يتحمل كافة أعباء إدارة ما قمت بتصميمه كاملة ، فكيف نأتي ونقول أن 3D Game Studio بكامله هو محرك ... أو كيف نطلق على محرر Unreal الكوني أنه محرك ، وهذا خطأ فادح .... في الواقع 3D Game Studio وUnreal Editor هما وجهان لعملة واحدة .... اسم هذه العملة "محررات كونية ، أو بيئات تطوير مرئية" ... !!!!!!

فمثلاً:

DirectX ، وOpenGL = مكتبات

Genius3D ، وTrueVision3D = مكتبات أو وظائف تغليف

Quake = محرك لعبة Quake

3D Game Studio = بيئة تطوير مرئية للألعاب

هذا ما أعلمه شخصياً والله أعلم .... وعذراً على الإطالة ،،،،،،،،،،،،،،

Live Free ... Die Well

The Scorpion King

#8

موضوع شيق ونرجو المزيد للفائدة

163374357.gif

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

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