ماهي لغة البرمجة المفضلة في برمجة الألعاب؟ أعرف أنه توجد الكثير ولكن ماهي الأكثر شيوعاً والتي تمتلك مراجع عربية ممتازة
ماهي لغة البرمجة المفضلة في برمجة الألعاب؟
إن كان اهتمامك ينصب على وجود مراجع عربية أعتقد أن Game Maker و Unity هما الخيار الأفضل. خاصة أن المحركات تتشابه ولغات البرمجة كذلك.
Game Maker يستخدم لغة خاصة: GML بينما UNITY يستخدم JavaScript و #C و BOO.
المحرّكان مختلفان جدّاً. مع أنّ الـGame Maker نقطة بداية سهلة جدّاً و جيّدة
أعرف أن لكل محرك لغة تختلف عن الأخرى لكن بالمجمل لغات البرمجة تتشابه من حيث منطقها. هناك أكثر من معيار للمفاضلة بين المحركات وفي النهاية لن تصل لجواب حاسم كما قال عبد الله. لكن السائل حدد معيارا معينا وهو المراجع العربية للمحركات ومن ملاحظتي فإن هذين المحركين هما الأكثر انتشارا بين المطورين العرب ويمكن أن يجد المبتدئ الكثير من المساعدة فيهما، مع أنني شخصيا أفضل يونيتي
اللغة الوحيدة التي جربتها (نسبيا و بما يكفي) هي لغة لوا Lua وجدتها سهلة "منطقيا" و بها استطعت صنع عدة اسلحة و NPC للعبة Garry's Mod كان استخدامها ممتعا لكن بعد ما Garry Newman اضاف تحديثات و تغييرات(اصدار Gmod13) في اللغة كسرت غالب أعمالي و لم ارجع لها مرة اخرى.
لكني عرفت ان لعبة Project Zomboid تستخدم اللغة نفسها للتعديلات و الاضافات, فأثارت اهتمامي و قد ارجع لها ان شاء الله.
اولا السؤل ليس في محله لان المبرمج يبرمج الالعاب بلغته المفضلة التي يعمل عليها باقي الاشياء يعني كنت بتبرمج تطبيقات ب JAVA حتكمل ب JAVA اما لو تبرمج ب C# خلاص حتكمل ب C# يعني اولا قبل التفكير في الالعاب يجب تقرر لغة برمجة التي تريد عمل عليها في حياتك بصفة عامة يعني الغة الاساسية ممكن تكون في لغاة اخرى بتعمل بيها اشياء معينة لكن كل مبرمج له لغة مفضلة ومميزة بنسبة له
اما لو انك لست مبرمج وستدخل المجال حديثا كبرمج العاب فلا تستمع لمن يكلمك عن محركات فهي في الحقيقة تفرض عليك الغة اي انك ستجبر نفسك للبرمجة بلغة معين لكي تتماشى مع المحرك على عكس لو انك خترت لغة وتعلمت البرمجة بشكل عام يعني ليس في تخصص معين ثم تبحث عن محرك او المكتبه وهذ ما سنتحدث عنه اي لو انت مبرمج C# فلن تجد مشكلة في برمجة ب C# MONO على يونتي او قد تحصل على مكتبه 3D وتبرمج عليها يعني عادي مفيهش مشكلة وحتتعلم في اسرع وقت وبحترافية ايضا وسترتقي في محركات وحتى في مكتبات
اما بنسبة للغات اخي فانصحك بلغاة عالية المستوى وهذ لو انك ما تعرفو في الوقت الحالي حتعرفو لم تدرس البرمجة حتعرف اين يوجد الفرق هل في الغة او في مستوى الغة لان يعني لم تخير بين روبوت من 2000 وروبوت في 2013 فبطبع بتختار الحديث ليقوم لك بالاعمال المنزلية
ممكن تتلقي نضرة على لغات منخفضة المستوى لكن لا تركز عليها ولا تعطيها اكثر من حقها فقط ركز على لغة التي خترتها لتصل بها لابعد الحدود
اما المحركات فانصحك بختيار الغة اولا تم شوف المحركات اما لو تريد ان برمجة متكونش صعبة يعني وحيز تعمل العاب فقط فانصحك ب يونتي فهو بيخلط بين بساطة البرمجة و لديه واجه رصومية جميلة لكن لو حتتعلم برمجة وتركز عليها فخلي امر المحركات في مرتبه 2
اما من يقول لك ابدء ب 2D ثم 3D هذ في حقيقة مشتقة من نضرية صحيحة لكنه اشتقاق غلط لان الصحيح هو ابدء بالمحركات ثم مر لستخدام المكتبات وهذه نضرية تدرج في تعلم على اي حال اي ستفسار نحن جاهزون لمساعدة ^^
اسف على الاطالة وارجو تكون فيها منفعة
"اما المحركات فانصحك بختيار الغة اولا"
بصراحة لا أفوافقك في هذه، أي مبرمج المفروض يكون مرن في استعماله للغات. المفروض من المطور اختيار المحرك الأنسب له من ناحية الخصائص و ليس من ناحية لغة البرمجة.
"أي مبرمج المفروض يكون مرن في استعماله للغات."
اخي عندما نتحدث على برمجة بشكل عام فكل مبرمج له لغة يتميز فيها ويتقنها
فبرمجة الويب هناك من يبرمج ب asp.net وهناك php ...
هناك من يبرمج برامج ب java وهناك من يبرمج ب #c ...
اخي عندما نتحدث عن برمجة الالعاب فالمحركات هي شيئ ثانوي وجعل المبرمج يبني مستقبله على محرك هو خيار غلط ونضر قصير
بطبع انا لم اقل ان المبرمج له لغة واحدة بل يجيذ كثير من الغاة لكن بطبع هناك لغة مميزة يتقنها ويفضلها اكثر من الباقي
اي ان محركات الجاهزة جزء صغير في عالم الالعاب وجزء منعدم في عالم الحاسوب ومن غلط جعلها مرجع للبداية
وبطبع انا دائما اخاطب من يريد تعمق والاحتراف وليس من يريد دخول التقنية من اجل غرض معين ولن يطيل فيها والفرق واضح
المبرمج الذي يبني نفسه على لغة واحدة و ليس مرناً بالتعامل مع أي لغة بقراءة مستنداتها أراه مبرمج ضعيف الأساسات.
و لكن لا أعارض كلامك بأن المطور الذي يبني نفسه على محرك واحد أيضاً نظره قصير، فيجب على المطور أن يكون عنده الامكانية لقراءة مستندات أي محرك ألعاب و تعلمه و هذا لا يحصل إلا بقراءة جيدة و تجربة محركات كثيرة و التعمق في طريقة عمل المحركات بشكل جيد.
لذلك لا أزال أفضل أن المطور أن يرى ماهو المحرك الذي سيصله لتحوبل تصميم لعبته game design لحقيقة في أسرع وقت، و ليس عن طريق لغة البرمجة التي يستخدمها المحرك.
انا="بطبع انا لم اقل ان المبرمج له لغة واحدة بل يجيذ كثير من الغاة لكن بطبع هناك لغة مميزة يتقنها ويفضلها اكثر من الباقي"
انت="المبرمج الذي يبني نفسه على لغة واحدة و ليس مرناً بالتعامل مع أي لغة بقراءة مستنداتها أراه مبرمج ضعيف الأساسات."
عندما تتعلم برمجة اول مرة على لغة معينة فانت حينها تعلم ان باقي لغاة لن تصعب عليك هناك من تعلم على c++ وتجده الان يعمل على c# هل يعني انه لا يجيد غيرc#!! لكنه يا اخي امامه بحر من .net ومكتبات وخصائص عديدة عليه اتقانها اما C++ فلها بحرها ايضا وان اتا لجعل مستواه في c++ و c# وjava في توازي فهذ غباء حقيقتا و سيبقى في قعر التقنية . اخي لابد من تركيز نعم نجيد باقي لغاة نستطيع قراءة كود وفهمه لكن في الاخير هناك لغة برمجة تجيدها وتعتمد عليها في اغلب اعمالك
اخي بعد سنوات قد تجد نفسك تطور محرك مع اصدقائك فالبرمجة دائمة في عالم الحاسوب اما العمل على محركات جاهزة فهو مرحلة ثانوية ليس بالضروري قيام بها في عالم برمجة الالعاب مثلا unity و udk هذا فقط للهوات لكي ياخدو نضرة عن عالم المحركات اي اشتغالك على udk لن يساعدك على فهم ديناميكية عمل المحركات او كيف يتم صنعها وهنا تقع المشكلة
انا لا اضن ان هناك ختلاف بين المبرمجين عما قلته فقط اضنك ترى نفس ما اقوله بمنضور اخر اما النتيجه فواحدة
فانت فقط حصرت عالم البرمجة في الالعاب اما انا فانضر في عالم البرمجة عام وبرمجة الالعاب جزء له مكانه وقيمته مثل باقي مجالات
"لذلك لا أزال أفضل أن المطور أن يرى ماهي الغة التي ستوصله لتحويل افكاره في عالم الحاسوب لحقيقة في اسرع وقت " ^^ انا احترم موقفك لكن اطرح وجهة نضري فيما يوازي ما تقول لترى الفرق.
قرات رائيك كاملا
اعجبنى كثيرا
لكنى اعجز عن اختيار اللغة المناسبة المتطورة كما تقول (اللغة اللى هتجيب من الاخر وله مستقبل يعنى )
ولا اعرف من اين ابدا :)
هل من خطوات لتقصير المسافة
اريد برمجة العاب ( هواتف ذكية متصفح حواسب الخ )
اريد لغة اتقنها جدا جدا واتميز بها يمككننى استخدمها فى اى نوع من الالعاب على اختلاف انظمة التشغيل
اريد محركات العاب قوية استخدمها فى البداية تدعم لغات مشهورة لسيت لغة مخصصه للمحرك نفسه
شكرا مقدما :)
اللغة المفضلة او محرك الالعاب المضل هذا شئ تحدده ظروف الانتاج وخطة العمل. فحسبب مخطط التنفيذ يتم اختيار لغة معينة لانها تناسب طبيعة المشروع. مثلا انت تريد عمل لعبة للفيسبوك. يوجد عدة خيارات لكنك قد تستخدم الاكشن سكربت لتوافر المبرمجيين ضمن الفريق ولانك لا تحتاج لشراء رخص لاستعمالها. اما اذا اردت عمل لعبة بجرافكس عالي الجودة ومؤثرات حقيقية وللاكس بوكس ولديك الميزانية الكافية فقد تستستخدم لغة سي بلس بلس لانها الاسرع والانسب لبرمجة جرافكس مكثف.
اما اذا اردت ان تعرف ماهي اللغات المستخدمة بالسوق العربي فأتوقع ان معظم المبرمجين يستخدمون الاكشن سكربت واليونتي ومحركات الالعاب مثل الكونستركت تو والستينسل والجيم ميكر وقليل يستخدم اليو دي كيه والجافا والاتش تي ام ال خمسة والاوبجيكتيف سي..
يعتمد هذا على ما تريد بناءه... اشتهرت لغات C و مشتقاتها في صناعة الألعاب الكبرى سابقاً، أمّا اليوم فالعديد من اللغات تستخدم. يعتمد الموضوع على ما تريد بناءه وأين.
المشكلة الأساسيّة تكمن في المراجع.
كبداية، أنصح بالأكشن سكريبت، لأنّها قريبة في التفكير على جافا سكريبت و سي ++، وهما الأكثر انتشاراً.
وإن كنت تبحث عن الأسهل، يمكنك البدء من LUA. فهي غير معقّدة والكثير من المحركات الصغيرة تستخدمها لسهولتها.
تذكر أنّ المهم هو ليس لغة البرمجة، بل طريقة التفكير، و أيضاً الشيء الذي تريد بناءه.
ابدأ بلغة برمجة تدعم البرمجة الشيئية ( اوبجكت اورينتد او OOP)... و لا تضيق نطاق تفكيرك بلغة برمجة واحدة, بسبب حاجتك المستقبلية لتطوير الالعاب على عدة منصات (بيسي, ماك, اي او اس, اندرويد, بلي ستيشن, اكس بوكس, ويب, ...الخ) ... الفكرة هي بالمنطق و ليست بلغة البرمجة, اذا كان المنطق سليم, لن تواجه مشكلة بتعلم اي لغة بظرف وقت قصير. انصحك كبداية بلغة الاكشن سكربت3.
إن برمجة الألعاب وإختيار اللغة المناسبة أمر مختلف قليلا عن البرامج الأخرى
فتحت نعلم جيدا ان الألعاب تحتاج لسرعة في التنفيذ ولا تعلق، وهذا ما يجعلها ممتعة.
مثلا لا أتخيل لعبة عملاقة مبرمجة بلغة تفسيرية مثل جافا او بيثون، ربما ألعاب بسيطة صغيرة، لكن ألعاب كبيرة ورسوميات جيدة او جيدة جدا أظنه ضربا من الخيال.
أغلب الألعاب المعروفة ومحركات الألعاب تعتمد على سي وسي بلس بلس وسمعت أنها تستعمل بعض الأسمبلي. النقطة المشتركة بين هذه اللغات هي السرعة كما نعرف. وكذلك أرى ان سي شارب تخطو خطوات جيدة في هذا المجال، لكن كون أغلب الألعاب المشهورة تعتمد على محركات تستعمل هذه اللغات فلا أظنه سينتقلون للغة أخرى.
لغة البرمجة هى التى تختار المحرك والمحرك هو الذى يختار لغة البرمجة الاثنين معا
لماذا ؟كمثال انت الان تعمل مبرمج فى مجال اخر غير الالعاب وانت محترف فى هذا المجال ولغة برمجتك هى السى بلس بلس مثلا اذا فى هذة الحالة ستبحث عن محرك العاب يدعم هذة اللغة لسبب مهم جدا وهو ليس لأنك تعمل على هذة اللغة او فقط تعرفها ولكن لأنك محترف فى هذة اللغة فأحتمال انك تصنع العاب افضل هو بأخذ هذا الطريق.
بشكل عام اللغات كلها تتبع مبدأ ثابت فأذا احترفت لغة ما فأنك ستقدر على التعامل مع لغات اخرى بمجرد معرفتك لمبادىء هذة اللغات -ولكن- لن تحترف هذة اللغات كلغتك الاصلية لأننا هنا لا نتكلم عن اللغة وفقط -كطريقة كتابتها- فنحن نتكلم عن اللغة #ومكتباتها# فكل لغة تختلف فى المكتبات عن اللغات الاخرى لذالك يجب عليك ان تمضى وقت طويل حتى تقدر على التعامل مع اللغات الاخرى بشك يوازى على الاقل بمقدرتك فى التعامل مع مكاتب لغتك الاصلية ولا يوجد من هو يتقن اكثر من لغة - على الاقل فى الامد القريب - على الجانب الاخر هناك عوامل ستجعل المحرك هو سيد الموقف فمثلا عندما تريد تصميم لعبة حديثة بجرافك على وغيرة فى هذة الحالة ستفعمل مثل ما يفعل الباقون ستستخدم محركات الالعاب القوية مثل ال Unreal او CryEngine هنا سيجبرك المحرك على تعلم لغتة الخاصة
لذالك لا يوجد ما يسمى لغة البرمجه الافضل فى الالعاب فمقدار معرفتك والموفق الذى انت فية هو من يقرر
الخيار الثالث والاسهل هو ان تنظر من هى اكثر لغة مدعومة فى الكثير من المحركات او التى لها مكتبات كثيرة والتى لها مستقبل فى هذا المجال كال #C وال Javascript
التعليقات