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

برمجة الألعاب بالأسمبلي؟؟؟؟؟؟؟؟؟

مغلق
بدأه enstien في 9 ديسمبر 2007 · 15 رد · 2,027 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أخوان.....لماذا يهمل مبرمجو الألعاب لغة الأسمبلي في برمجة الألعاب فالوين أسمبلر تستطيع التعامل مع مكتبات directx و opengl مثل ما تتعامل معها اللغات العالية المستوى

كما أنها لغة قوية جدا وتطبيقاتها أسرع أصغر مساحة و أسرع بكثير حتى من لغة السي/السي ++ التي تبرمج بها نعظم الألعاب ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

شوفواهذه الروابط التي تحوي على أمثلة كثيرة بهذا الخصوص

http://www.scrontsoft.com/Scrontsoft.asp?pageID=1

http://in4k.untergrund.net/index.php?title=Graphics_Coding :clapping:

مع تحياتي الحاااااااااااااااااااارة لجميع أعضاء المنتدى B)

#2

بسم الله

يااااه .. الاسمبلي مرة واحدة .. اعتقد ان الموضوع ليس بالسهل .. وخاصة في مجال الالعاب

#3
enstien كتب:
أخوان.....لماذا يهمل مبرمجو الألعاب لغة الأسمبلي

أحد الأسباب أنها ليست قابلة للتنقل عبر المعالجات (cross-platform). كما أن كلامك غير دقيق لأن الألعاب تـُعتبر من أكثر التطبيقات التي تستعمل تعليمات الـ assembly في مكان ما ضمن الكود.

أخيراً تأكد من أن العبارات على غرار: "الأسمبلي هي أسرع لغة. فلنبني برامجنا عليها" هي عبارات غير واقعية. ويمكنك التحقق من ذلك بالدخول في مسابقة بسيطة مع أي شخص يدعي هذا الكلام. اتفقوا على برنامج صغير (مثلاً شخصية 3D تتحرك) ونفذوه سوية: مرة بالـ assembler بشكل كامل ومرة بـ ++C، وسجل الزمن المستغرق لتنفيذ المشروع على كل لغة، ثم سجل أداء البرنامج الفعلي أثناء التنفيذ.

إن فاز صاحب الأسمبلي بأي من الجهتين فإنني سأدعوك لعشاء فيجاتروني مع القائد جاندال على حسابي...

-------

زوريل

وزير العلوم الأعلى لقوات فيجا المتحالفة

ومخطط الهجمات التكنولوجية

قاعدة جمجمة القمر

#4

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

أخوي زوريل :

شكرا للك على مرورك الكريم

أنا مجرد مبتدأ في البرمجة

إلا أنني أسمع من خبراء البرمجة أن اللغات العالية المستوى عادة ما تكون أبطأ من لغة الأسمبلي ومساحتها أكبر والسي من اللغات العالية المستوى أليس كذلك

مثلا برنامج اطباعة حملة hello world كان مساحته 23kb

أما بلغة الأسمبلي كانت مساحته 500بايت فقط

وايضا

وقرأت أيضا في كتلب the art of assembly

هذا الكلام

What’s Right With Assembly Language?

An old joke goes something like this: “There are three reasons for using assembly language: speed,

speed, and more speed.” Even those who absolutely hate assembly language will admit that if speed is

your primary concern, assembly language is the way to go. Assembly language has several benefits:

• Speed. Assembly language programs are generally the fastest programs around.

• Space. Assembly language programs are often the smallest.

• Capability. You can do things in assembly which are difficult or impossible in HLLs.

• Knowledge. Your knowledge of assembly language will help you write better programs,

even when using HLLs.

Assembly language is the uncontested speed champion among programming languages. :clapping:

ولهذه الأسباب أنا أحب الأسمبلي وأفضلها على غيرها

#5

البرمجة بلغة التجميع احسن:

تنفيذ اسرع

حجم اصغر

لكن من الجهة الاخرى تحتاج الى

وقت اكبر/اطول

فهم اكثر/اعمق بالعتاد

لذلك المبرمجون يستخدمون لغات اخرى لربح ما امكن من الوقت

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

d4baa0.gif
#6

اخي العزيز ،

بالنسبة لاستخدام لغة الاسيمبلي في برمجة الالعاب فهو قاصر علي تسريع الاشياء التي تستنفذ من المعالج حمل زيادة مثل حساب الجذر التربيعي مثلاً ، و الحسابات الرياضية في المعالج FPP باستخدام الفاصلة العشرية .

غير ذلك لا نستخدم لغة الاسيمبلي ، بالنسبة لكلام الاخوة علي المساحة الصغيرة و السرعة ، هذه الاشياء فعلا صحيحة علي انظمة 8 بت و الانظمة المضمنه Embedded Systems ، و الذي عمل علي المتحكمات microntrollers والمعالجات مثل Z80 سيعرف فعلا ان الاسيمبلي مهمة ; لصغر مساحة الرام ، و الروم ...إلخ ، و لكن في المعالجات الحاسب الشخصية لا نحتاج لبناء برامجنا بها و لكن نستفيد منها في تحسينات البرامج كما ذكرت في الامثلة .

و اني لرايت مبرمجين كتبوا لعبة مثل wolf علي برنامج debug في الويندوز :D .

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

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

#7

بدك تعمل برنامج بالأسمبلي:بسيطة

1-اعمل برنامجك بالدلفي مهما كان كبير الكود رح يطلع بالكثير 10صفحات مثلاً

2-شغل دي أسمبلي وافتح الملف التطبيقي رح يطلع معك حولي 5000 صفحة

3-خبر الناس أنك عملتوا بالأسمبلي

سبحان الله وبحمده

#8

مشكورييييييييين أخوان والله يعطيكم العافية على ردوكم

#9
enstien كتب:
مثلا برنامج اطباعة حملة hello world كان مساحته 23kb

أما بلغة الأسمبلي كانت مساحته 500بايت فقط

هل تعتبر برنامج Hello World برنامجاً واقعياً؟

enstien كتب:

• Speed. Assembly language programs are generally the fastest programs around.

• Space. Assembly language programs are often the smallest.

• Capability. You can do things in assembly which are difficult or impossible in HLLs.

Assembly language is the uncontested speed champion among programming languages.

هذه النقاط ليست صالحة مع المعالجات الجديدة، حتى في أجهزة الكونسول المحدودة كالـ Wii والـ DS. السبب هو أن المعالجات هذه الأيام تحتوي على خطوط معالجة pipelines متعددة وعميقة. إن كنت تريد بالفعل الاستفادة منها فإن أفضل وسيلة هي الاعتماد على مترجم عصري يأخذ هذه الحقائق بعين الاعتبار، كما هو الحال مع مترجم مايكروسوفت ومترجم إنتل. الموضوع ليس مجرد التخلص من تعليمات زائدة، لكن هناك المزيد من التفاصيل التي تؤثر على الأداء والتي يدخلها المترجم ضمن حساباته، مثل تأخر التعليمة latency وجلب البيانات المناسبة من الذاكرة إلى الكاش cache، حيث أن مجرد إعادة ترتيب ذكر التعليمات في البرنامج سيزيد من أدائه. لهذا السبب، فإنه حتى عند استخدام الأسمبلي في ++C، فإنه ينصح باستخدام التعليمات المدمجة intrinsics بدلاً من تعليمات الأسمبلي المباشرة، فقط لأن ذلك يعطي المترجم فرصة إعادة ترتيب التعليمات لأفضل أداء.

أعتقد أن الجدوى من كل هذا الحوار هي تحديد إن كان استخدام أسمبلي سيجعل ألعابي ناجحة أم لا. وهنا يمكننا ببساطة النظر إلى الألعاب الناجحة هذه الأيام ورؤية كيفية تنفيذها. مثلاً، Quake، و Need For Speed و Fifa. جميعها تعمل بملفات تنفيذية لا تقل عن ميجا بايت (تصل إلى العشرينات أحياناً) ونعلم أنها مكتوبة بالـ C أو ++C بشكل رئيسي. هل هذا يجعلها ألعاب فاشلة؟ لا أعتقد...

-------

زوريل

وزير العلوم الأعلى لقوات فيجا المتحالفة

ومخطط الهجمات التكنولوجية

قاعدة جمجمة القمر

#10

الالعاب دائما ما تأخذ حيز كبير من الكود يصعب انتاجه بواسطة الاسمبلي لذلك فاللغات العليا تقوم بالمهمة بسهولة ... الاسمبلي جيد لبرمجة الادوات الصغيرة ذات المهام الواحدة وهذا رأيي المتواضع :lol:

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#11

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

أخوي العزيز زويل

يعطيك العافية على ردودك

أنا لا أقول أن لغة السي هي لغة فاشلة فأنا أكبر عاشق للسي.

أقصد ماذا لوكانت لدينا لعبة بحجم 500ميغا بايت مثلا مكتوبة بالسي

ماذا لوكتبناها بلغة الأسمبلي ربما أصبح حجم اللعبة 50ميغا بايت أو اقل ربما أقل بكثيير B)

صحيح أن كتابة الكود باغة الأسمبلي تكون مرهقة للغااااااااااااااية

إلا أنها تكون عالية الجوووووووووووودة

وأيضا فالأسمبلي 32بت تستطيع التعامل مع مكتبات برمجة الألعاب كأنها لغة عالية المستوى :clapping:

وجزاكم الله خيرأخواني على ردودكم المفييييييييييدة

#12

قالوا الجندي قفز عن الحيط

قالوا هذا الجندي وهذا الحيط

ياريت يا أخ أنشتاين تتكرم علينا بشي مثال :excl:

سبحان الله وبحمده

#13

OpenGL_CUBE_5K.rar مثال -ليس لي- بسيط لمكعب ب OpenGL الحجم 5 كيلوبايت مكتوب بلغة التجميع

الان ممكن ان لاحدكم ان يرفق مثله بنفس الحجم او الاداء بلغة اخرى ؟

d4baa0.gif
#14

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

أخوي الطارق

الروابط الشوف تي في الموضوع الأول وفيها الكثير من الأمثلة عن مكتبة opengl وdirecx :rose:

وجزاك الله خير أستاذي الكريم B.M.AbdelAziZ

#15

:rose: وعليكم السلام ورحمة الله أخي enstien

وشكراً لأستاذنا محمد عبد العزيز

وانا أشكرك على الموضوع الجميل أخي وبصراحة ما كنت اعرف ان الأسمبلي تستخدم إلا في التحكم بمنافذ الحاسب

ولم يكن قصدي سوى استدراجك لتكتب موضوع كامل مفيد يطلع الآخرون عليه من كل جوانبه

وجزاك الله خيراً على ماقدمته

سبحان الله وبحمده

#16

لكن عدد مستخدمين لغة التجميع قليل جدا للاسباب المذكورة من قبل

ولغة C مستخدمة اكثر ويمكن عمل اشاء صغيرة الحجم بها بذكاء، مثال:

لعبة Rick32 فهي تعمل في Windows وباستخدام Directx 8 وايضا يمكنها ان تستفيد من خدمات كرت 3D ان وجد

كل هذا ب 32 كيلوبايت فقط! ومكتوبة بلغة C

يمكن تحميلها من هنا

rick.gif

موقعها : http://leonard.oxg.free.fr/rick32/rick32.html

-

ليست خبير بالالعاب لكن اظن هناك اشياء اهم من اختيار اللغة في برمجة الالعاب وهي الادوات المستخدمة في تصميم اللعبة وفكرة اللعبة ذاتها

هذا والله اعلم

d4baa0.gif

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

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