المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : مبادئ برمجة الـ3D و الألعاب (جوهر برمجة الألعاب)



NubiaPrince
31-12-2005, 08:49 PM
:ciao: مبادئ برمجة الـ 3D والألعاب......................

بسم الله الرحمن الرحيم

- لنبدأ بعون الله
اولاً مازلت أشدد علي أن مبرمج الألعاب يحتاج الي الكثير من الأدوات والبرامج لتساعده علي إخراج عمله؛
أقدم لكم 3 مواقع الأول لتدرب من خلال الكتب والدروس العربية والأجنبية التي يقدمها علي التعامل مع برامج الـ 3D Designing مثل : الماكس و مايا و Z-Brush سوفت إيمج.....إلخ.
و برامج الجرافيكس مثل : Flash و Corel Draw و PhotoShop....إلخ.
والموقع للأخ ( أحمد مراد ) مصمم جرافيكس وبالمقع أدوات عديدة لتسهيل عملك علي الماكس ومايا :http://www.geocities.com/mourad3d/book.htm (http://www.geocities.com/mourad3d/book.htm)
الموقع الثاني صيني(إنجليزي) و به مجموعة من الكتب الأنجليزية المختارة في برمجة الألعاب
و هو:http://www.newebug.com/ebook/game/index.shtml (http://www.newebug.com/ebook/game/index.shtml)
وستجد ركن للبرمجة أيضاً بهذا المقوقع إن شاء الله
الموقع الثالث Server Gamers الشهير:
www.free.gameres.com (http://www.free.gameres.com/)
به الألف من كتب تعليم برمجة الـ 3D و برمجة الألعاب وبناء المحركات و الاف من ملفات مفتوحة المصدر .
***********************والأن الي صلب المضوع********************************
:jester: برمجة الألعاب أمر ممتع ورائع و لكن علينا أن نعرف الخطوات الصحيحة الي إحتراف هذا الجال إن شاء الله.
كمقدمة مني لكم بعض هذه النصائح والمعلومات للتذكرة:
1- ان المحركات هي أخر خطوات تعلم برمجة الألعاب .
2- ليس الـ DirectX او كما نسميه الـ X المكتبة الوحيدة أو الأشهر أو الأفضل أو حتي الأسهل في برمجة الألعاب ، ولكن
مكتبة الـ OpenGl وملحقاتها من أعظم مكتبات تصميم الـ 3D بصفة عامة.
3- لأكون مصمم العاب من الجيل الحلي يلزمني تعلم:
أ-البرمجة علي ++C (الأفضل)-VisualBasic أو الـ #C أو VisualBasic.NET.
ب-دراسة الـ DirectX أو الـ OpenGl بإحتراف لأهميتهم كعامل ربط بين الكود البرمجي والـ 3D Model أي النماذج ثلاثية الأبعاد.
ج-دراسة الألكترونيات و الاسيمبلي Assimbly.
ء-دراسة الفيزباء والرياضيات الثلاثية الأبعاد :تفاضل-تكمل-هندسة فراغية-جبر خطي...إلخ.
هـ -معرفة ان المحركات في تصميم الألعاب نوعين (رسومي-فيزيائي).
-المحرك الرسومي: هو محرك تصميم Designing و رسم و التحكم في المجريات وعمليات التصييرRendering و العمليات الزسومية البسيطة وهذا ما نستطيع تصميمة من المحركات.
-المحرك الفيزيائي: هو المحرك المستحيل ؟! لأنه المسؤل عن الحركة والمادة والجزيئات والعمليلت المتسلسلة Chain Reactions والخوارزميات, وهذا المحرك غالبا أقصد دائماً نحضره جاهز..لماذا؟ لأن تصميمه يحتاج الي 20 سنة ومن منا لديه هذا الكم من وقت الفراغ؟:11:
* الخوارزميات: هي عمليات منطقية وهي تمثل الطريق الذي يسير عليه القصة ودورها يائتي في كونها عامل تخيير لك بأن تنهي كل مرحلة بالشكل الذي يناسبك وقرباً إنشاء الله سأحضر رسم يبسط العملية لكم أكثر.
و-الذكاء الأصطناعي AI:هو ما لم اصل غليه بعد لأتمكن من شرحه ولكنه العامل المحدد علي ما اظن لمستوي صعوبة اللعبة وردة فعل الخصم.
*مهمة الدايركت أس DirectXاو الأوبن جي إل OpenGl في المحرك هي الأمتداد الذي يمكننا أثناء التصميم من التعديل في اللعبة من خلال التصميم الرسومي والكود البرمجي وربطهم لتصميم اللعبة وهي المكتبات الأشهر والأضمن والأكثر إنتشاراً في التعمل مع تصميم الألعاب.
:06: الفرق بين الـ OpenGL و الـ DirectX :
الفرق بين الـ DirectX أو كما نسميه كمبرمجين الـ X و الـ OpenGL أو كما نسميها أيضاً الـ GL ؛
أولاً :أعرفك بهما:-
1- DirectX :
* و هو مكتبة من تصميم Microsoft بها عدة أقسام تتضمنها و هي:
- Direct Play:
خاص بنوافذ التشغيل والعرض.
- Direct Sound:
خاص بالصوتيات.
- Direct Draw:
خاص بالرسوميات و بصفة خاصة الـ 2D منها الثنائية الأبعاد .
- Direct 3D:
و هو الجزء المفضل لنا و هو الخاص بإنشاء المجسمات الثلاثية الأبعاد و التحم فيها وتصميم أدوات تسهل لنا ذلك ، هذا هو الجزء الخاص بالعمل علي التصميم بالمجسمات الـ 3D .
:02: و هناك أجزاء أخري خاصة بالأتصالات لعمل إتصالات شبكات داخلية أو عبر الإنترنت....و لكن لا أتذكرها الأن لأني لم أعمل عليها بعد :09: ..و انا أسف علي هذا.
* أكثر ما يميز الـ DirectX هو إنه يتم التعامل معه من خلال اكواد مباشرة و من خلال إستدعاءنا لدوال الـ API أي أن أي مبرمج للغة أو أكثر من لغات البرمجة التي تدعمهة مكتبة الـ X يكون أكثر قدرة عن غيره علي التعامل معها.
2- OpenGL :
- هي مكتبة مفتوحة المصدر يمكن أن تقوم بإنزالها من موقعها : www.opengl.org (http://www.opengl.org/)
و هي إختصار لكلمة (Open Graphics Library) أي مكتبة الرسوميات المفتوحة ،
و يتميز الـ OpenGL بأنه لا يحتاج لخبرة كبيرة في البرمجة فقط أن نعرف أساسيات إحدي لغات البرمجة و نعرف علي أي منصة سوف نستخدمها فهي كما تعرفون موجهة لكل نظم التشغيل ليس كالـ DirectX صمم للـ Windows Microsoft فقط ،
فمكتبة الـ GL تدعم كافة نظم التشغيل تقريباً لكن إن أردنا أن نستخدمها في الـ Windows لنتعلم أساسيات إحد لغات البرمجة ثم نقوم بدراسة برمجة الـ Windows أو الـ Win32 Programming فقط ، ثم أن نتعلم الدوال التي يتم إستخدامها لبرمجة متكبة الـ GL لإنها تستخدم دوال ليس أكواد :D ( أسهل للمبتدئين).
ثانياً: بعض النقاط المهمة لكل مكتبة:-
1- المكتبتان (مدعمتان) داخل Microsoft Windows و لكن لنستخدم المكتبات البرمجية لهم لابد من وجود الـ SDK ) Service Development Kit ) لكل منهما وهي متوفرة مجاناً علي موقعي: www.microsoft.com (http://www.microsoft.com/) و www.opengl.org (http://www.opengl.org/) .
2- من حيث طعوبة البرمجة أو الفرق بينهم في الأكواد فالعنلية بينهم تعد نسبية حسب قدرات كل مبرمج لأنهم يتبعوا نفس الأسلوب في الإخراج و الإعداد و التجسيم و حتي النتيجة النهائية...إلخ
3- هناك أمر هام هو أن الـ OpenGL مكتبة رسوميات فقط أي إنها لا تدعم الصوتيات أو الشبكات ، لذا هناك مكتبات أخري مفتوحة تكملها مثل:
- مكتبة الصوتيات المفتوحة: OpenAL
- مكتبة الوسائط المفتوحة: OpenML
..........إلخ
و إن لم نستطع إستيعاب هذا الكم من المكتبات لنا القدرة (كخطوة متقدمة برمجياً) أن نستدعي ما ينقصنا في الـ OpenGL و ندعمه بالـ DirectX .
ثم زر هذا الرابط لموقع الفريق العربي يشرح فيه بشكل مفصل الفرق بين الـ : Direct3D و الـ OpenGL من هنا (http://www.arabteam2000-forum.com/index.php?showtopic=39229)
و لك الأن أن تختار أخي بماذا تبدأ
> اسف للأطالة ..., وأية خدمة أو معلومة لدي لن أبخل عليكم بها إنشاء الله ولا أي مسلم.
* إن كان يرى أحد المبرمجين المحترفين أو او المشرفين أو ذوي الخبرة نقص في موضوعاتي فليكمله . :)
- فالكمال لله سبحانه وتعالي -
و أخر قولي عن رسولنا الكريم -صلى الله عليه وسلم- "أطلوبوا العلم ولو في الصين " و" أطلبوا العلم من المهد الى اللحد" , و" إثنان لا يشبعان طـالـب عــلــم وطالب مال" -صدق رسول الله صلي الله عليه وسلم.
أخيكم في الله
NubiaPrince
أحمد أسامة
اللقب : أحمد زايد

الموقوف
31-12-2005, 09:24 PM
مشكوووووووووور أخي على مجهودك الرائع الذي بذلته في هذا الموضوع :)

XORO
31-12-2005, 10:56 PM
موضوع ممتاز ويناسب الاشخاص الراغبين في برمجة العاب الثري دي :biggthump

الصراحة انا بعيد عن برمجة العاب الثري دي :أفكر: يكفيني الجيم ميكر :D

ومشكور وما قصرت :p





وشكـــــــــــــــــــــــــــــــــــــــــــــــــــــــرا :ciao:

Son Of UAE
31-12-2005, 11:15 PM
السلام عليكم ورحمة الله وبركاته.
تشكر على الدرس و الذي قل امثاله هذة الأيام. موضوعك عبارة عن مقدمة لكثير من التسؤلات
" كيف اصنع لعبة مثل رزدنت ايفيل ؟ "
" كيف ابرمج متل جير ؟ "
"كيف اصير مبرمج عشان اسوي لعبة نيد فور سبيد ؟"

هذي الأسئلة تكررت كثيراً في هذا المنتدى . :أفكر:


أ-البرمجة علي ++C (الأفضل)-VisualBasic أو الـ #C أو VisualBasic.NET.
ب-دراسة الـ DirectX أو الـ OpenGl بإحتراف لأهميتهم كعامل ربط بين الكود البرمجي والـ 3D Model أي النماذج ثلاثية الأبعاد.
ج-دراسة الألكترونيات و الاسيمبلي Assimbly.


اعتقد ان " ج " المفروض تكون بالاول .. ولكل شخص رأيه :)


و اخيراً .. احب أعرف نبذة عنك .. بما انك عضو جديد .. فهلا تفضلت وأخبرتنا عن مستواك و طموحك . أو أي شيء إضافي .. :D

Mr. Black Man
01-01-2006, 12:23 AM
ما شاء الله عليك :biggthump
شكراً لك على هذا الموضوع المفيد جداً ;)
بداية موفقة لك في المنتدى , و أهلاً و سهلاً بك :)

OctoBot
01-01-2006, 12:40 PM
قرأت الدرس كله و عجبني جدا جدا, و لكنك أخطئت في شيء, و هو طريقة التقديم و العرض, الموضوع شوي ملخبط, قسمه إلى نقاط و خطوات, و حط ألوان و خطوط تحت الكلام المهم و زي كذا, بهذه الطريقة توصل المعلومة إلى القارئ بطريقة أفضل, و لكن الموضوع جميل جدا, و مشكور على الجهد.

d.a.m.h
01-01-2006, 05:29 PM
مقالة ممتازة و شاملة لكن تحتاج لبعض التنظيم

مجهود رائع مشكور جدا عليه و اهلا بك فى منتدانا

رجل الحاسوب
03-01-2006, 01:39 PM
السلام عليكم
أخي
مجهود ضخم تشكر عليه
شكرا على الموضوع الممتاز
:)

NubiaPrince
05-01-2006, 01:24 AM
:ciao: السلام عليكم
والله أحرجتونا بذوقكم و كانت حاجة بسيطة و الله لإثراء المنتدي بموضوعات جديدة وشاملة لكسر جو الإحتكار الذي يأخذه الـ Game Maker :09: مع إحترامي لأنصاره ......
و لكن النجاح الحقيقي يأتي بالإلتزام بالبرمجة و ليس إستخدام المحركات الجاهزة أو الدعائية :33: ،
:jester: و في الدروس القادمة إن شاء الله تعالي سأراعي كافة النقاط التي تطرقلها الإخوة الأعضاء الخاصة بالتوضيح .
و لي طلب صغيير من أعضاء النتدي وزواره : الحفاظ علي حقوقي كناشر و مؤلف للموضوع .
و الشكر لكل الأعضاء الكرام والإدارة الواعية للمنتدي .
أخوكم في الله
NubiaPrince

CHALLENGER
05-01-2006, 11:39 PM
شكرا لك على الموضوع الممتاز برأيي ... ولكن هل جرب احدكم تنزيل كتاب ما من سيرفر :
http://www.newebug.com/ebook/game/index6.shtml
لأنه يحتاج تسجيل و بعدما سجلت اتضح لي انه يجب دفع مبلغ ما !!!

و لكنني غير متأكد

وليدس
06-01-2006, 01:52 AM
اهلا اخي الكريمNubiaPrince بك معنا وموضوعك مفيد فعلا:biggthump ولاكن انت تتحدث عن البرمجة الاحترافية والاعضاء في هذا المنتدي الرائع مازلو في اول الطريق وبرنامج جيم مكير ليس سوى البديه الى طريق البرمجه الاحترافيه ان شاء الله :D










ولاكن يكون في علمك اخي الكريم من يريد ان يصبح مبرمج ناجح يجب ان يكون ملم بكل علوم الحاسب الالي. :33:










وعندي بعض الاسئلة ما هو مستواك في البرمجه وهل لديك اعمال لكي نستفيد منك اكثر وارجو منك ان ترفق مع دروس القادمة امثلة :)



اخوكم وليدس



Quest3Dبرنامج رهيب



انظر الى تصميم وبرمجةالألعاب بشكل احترافي (http://www.quest3d.com/index.php?id=15)

خبير البرمجة
16-01-2006, 09:27 PM
Download

FlashGet 1.71 (http://down1.amazesoft.net/fgf171.exe)
FlashGet 1.71 (http://down2.amazesoft.net/fgf171.exe)
FlashGet 1.71 (http://www.flashget.com/fgf171.exe)
FlashGet 1.71 (http://ftp.shareurl.com/fgf171.exe)
Click here find more mirror sites (http://www.shareurl.com/search.php?name=fgf170.exe)


FlashGet supports over 30 languages! (http://www.amazesoft.com/download.htm#language)

Using the Opera web browser or Netscape 6.x, 7.x or Mozilla FireFox?
Click here (http://www.amazesoft.com/browser.htm) for more information.

International User Manuals
Bulgarian Version (Last updated 10/04) (http://www.amazesoft.com/fgbulhlp.zip)
Japanese Version (Last updated 8/04) (http://www.amazesoft.com/fgjpnhlp.zip)
Spanish Version (Last updated 2004/4) (http://www.amazesoft.com/fgesphlp.zip)
Russian Version (Last updated 2004/2) (http://www.amazesoft.com/fgrushlp.zip)
Greek Version (Last updated 2004.2) (http://www.amazesoft.com/fgellhlp.zip)
Italian Version (Last updated 10/22/02) (http://www.amazesoft.com/fgitahlp.zip)
Ukrainian Version (Last updated 8/18/02) (http://www.amazesoft.com/fgukrhlp.zip)
German Version (Last updated 6/14/02) (http://www.amazesoft.com/fgdeuhlp.zip)
French Version (Last updated 12/11/01) (http://www.amazesoft.com/fgfrahlp.zip)
Polish Version (Last updated 12/17/01) (http://www.amazesoft.com/fgplhlp.zip)
Traditional Chinese Version (Last updated 7/13/01) (http://www.amazesoft.com/fgchthlp.zip)

Supported languages: </B>

English
Basque
Bulgarian
Catalan
Czech
Danish
Dutch
French
German
Greek
Hebrew
Hungarian
Italian
Japanese
Korean
Norwegian

Polish
Portuguese(Brasil)
Romanian
Russian
Serbian(latin)
Slovak
Slovenian
Spanish
Swedish
Simplified Chinese
Traditional Chinese
Thai
Turkish
Ukrainian
Estonian


FlashGet has own mirrors service - anonymous url share, for more information click here (http://www.shareurl.com/)

Webmasters Join Our Affiliate Program (http://www.amazesoft.com/affiliate.htm) to Make Money! 30% Per- Sale FlashGet support Skin (http://www.amazesoft.com/skin.htm) now.

Please try serval addons for FlashGet (http://www.amazesoft.com/addon.htm)





LINK TO US
http://www.amazesoft.com/fganibut.gif





http://asjf.jeeran.com/index.html


ابحث عن هذا الملف raysat_3dsmax8server.exe (file:///C:/Program%20Files/Autodesk/3dsMax8/mentalray/satellite/raysat_3dsmax8server.exe) ضمن ملفات الماكس أثناء التنصيب وقم بتشغيله ثم اضغط على retry

CHALLENGER
18-01-2006, 11:08 PM
اخي خبير البرمجة ... هل ردك في محله

تــــأخــــرت
19-01-2006, 06:03 AM
موضوع رائع وجميل وكثير منا يتمنى ان يقوم بعمل القليل والقليل حتى يكون على الأقل هناك امل في الأستمرار ..
لكن يا اخي ياليت لو تجعل فقرة في موضوعك الجديد كما قلت انك سوف تطرحه
فقره خاصة للناس الجدد الذين يريدون السير في هذا الطريق .. كأمثالي طبعاً ^__^ وشكراً