عيون العرب - ملتقى العالم العربي

العودة   عيون العرب - ملتقى العالم العربي > عيــون الأقسام العلمية > علوم و طبيعة > علم البرمجيات

إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 04-09-2019, 05:37 PM
 
مدخل إلى تصميم وبرمجة الألعاب : البداية والاحتراف ^^..

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

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

نظرأ لكثرة تردد هذا السؤال , وغيابه عن بعض المبتدئين و ظهور كثير من محركات الالعاب في الوقت الحاضر رأيت مناقشته في المدونة .

هناك العديد من الطرق تصلح لبرمجة وتصميم الألعاب ,إما بغحدى لغات البرمجة واستخدام مكتبات رسوميات مثل OpenGL أو عن طريق برامج جاهزة مثل Flash , لكن المهم هو اختيارك لأي من هذه الطرق لتناسب مستواك واحتياجات اللعبة التي تريد إنشاءها .

أولاً :لماذا قلت تصميم و برمجة , أليسا شيئاً واحداً ؟

لا , هما مصطلحان مختلفان , لكن قد يقوم بمهما شخص واحد .

البرمجة Game Programming : كتابة الكود بإحدى لغات البرمجة , الكود الذي يتحكم مثلاً بالجاذبية ,التعامل مع مكتبة الرسوميات ..

التصميم Game Design : هي -بشكل عام- تصميم طريقة اللعب , المراحل , المهمات , القصة . كل ذلك على بالرسم والكتابة فقط دون أدنى تدخل في عملية البرمجة .

المصمم يحدد وظيفة الكود الذي يقوم المبرمج بكتابته . مثلاً المصمم يحدد ان اللعبة تطلب نوعاً معيناً من القفزات العالية , فيقوم المبرمج بكتابة كود يتعامل مع الجاذبية ومع حركة اللاعب لتحقيق القفزة المطلوبة .

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

ثانياً : الفرق بين أساليب تصميم وبرمجة الالعاب حالياً

الطريقة الأولى : البرمجة مباشرة باستخدام لغة برمجة C++ أو #C مع مكتبة رسوميات (OpenGL , DirectX) ومكتبة فيزياء (Newton , PhysX) , وبالطبع ستحتاج معرفة بكيفية بناء محرك لعبة Game Engine Structure , وتمكن جيد من لغة برمجة قوية . في أغلب الأحيان بمجرد إنشائك لمحرك اللعبة يصبح معظم اللعبة قد انتهى . معظم شركات الألعاب تنشئ محركاً واحداً تصنع به ألعابها كلها (يمكنك تصور محرك الألعاب كبرنامج مثل Flash , لكن بإمكانات تناسب الشركة المصنعة) , فمثلاً شركة Valve لديها محرك Source الذي أنشأت به Half-life و Portalبأجزائهما دون حاجة إلى عمل محرك مستقل لكل لعبة , وأيضاً هو متاح للمطورين لتصميم مراحل خاصة بهم يمكن لعبها في Half-Life و Portal .

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

ولكن هذه الطريقة تستهلك وقتاً أكبر نسبياً من الطريقة الثانية , وهذا الوقت هو اللازم لبناء محرك اللعبة , ومن وجهة نظري تصلح لمن يريد أن يصبح مبرمج ألعاب لأن عليه التعامل مع محرك اللعبة , أما للمصمم فمعظمها تضييع وقت .

الطريقة الثانية : استخدام محركات الألعاب الجاهزة , تحت شعار لماذا تعيد اختراع العجلة ؟! وهي الاستعانة بمحركات ألعاب عملاقة جاهزة ومتاحة للاستخدام , بالطبع مقابل أجر مادي زهيد بصور تختلف من محرك لآخر , أي انك ستهتم في معظم الاحيان بالتصميم , ولن تشغل رأسك بالأمور البرمجية (إنشاء كاميرات من الصفر , أو التواصل مع مكتبة الرسوميات مباشرة ..) لأن هذه وظيفة المحرك نفسه , مع ملاحظة أنه يمكنك الوصول لكل هذا وتعديل معظمه وهذا يحصل في أحيان قليلة جداً .

هذه الطريقة تتضمن في بعض الأحيان بعض الخبرة البرمجية مع إحدى لغات البرمجة التي يدعمها المحرك , ليكون لديك قوة أكبر , بالتالي توفر الوقت لكلاً من المبرمج والمصمم -وأحياناً لن تحتاج إلى مبرمج بالمرة - وتختصر عليك الوقت والجهد .

ثالثاً : الفرق بين محركات الألعاب المشهورة :

GameMaker


https://youtu.be/HbcLuYBxbIE">https://youtu.be/HbcLuYBxbIE" type="application/x-shockwave-flash" width="425" height="350">





وهو محرك ألعاب مصمم ليناسب الألعاب 2D بشكل أساسي , وهو سهل جداً ولا يحتاج معرفة برمجية إلا في حالات متقدمة , لأن الأوامر البرمجية ممثلة بصور تقوم بسحبها وإلقائها في المحرر , لفهم أوضح شاهد هذا



تم النشر منذ 5 Feb 2012

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

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

نظرأ لكثرة تردد هذا السؤال , وغيابه عن بعض المبتدئين و ظهور كثير من محركات الالعاب في الوقت الحاضر رأيت مناقشته في المدونة .

هناك العديد من الطرق تصلح لبرمجة وتصميم الألعاب ,إما بغحدى لغات البرمجة واستخدام مكتبات رسوميات مثل OpenGL أو عن طريق برامج جاهزة مثل Flash , لكن المهم هو اختيارك لأي من هذه الطرق لتناسب مستواك واحتياجات اللعبة التي تريد إنشاءها .

أولاً :لماذا قلت تصميم و برمجة , أليسا شيئاً واحداً ؟

لا , هما مصطلحان مختلفان , لكن قد يقوم بمهما شخص واحد .

البرمجة Game Programming : كتابة الكود بإحدى لغات البرمجة , الكود الذي يتحكم مثلاً بالجاذبية ,التعامل مع مكتبة الرسوميات ..

التصميم Game Design : هي -بشكل عام- تصميم طريقة اللعب , المراحل , المهمات , القصة . كل ذلك على بالرسم والكتابة فقط دون أدنى تدخل في عملية البرمجة .

المصمم يحدد وظيفة الكود الذي يقوم المبرمج بكتابته . مثلاً المصمم يحدد ان اللعبة تطلب نوعاً معيناً من القفزات العالية , فيقوم المبرمج بكتابة كود يتعامل مع الجاذبية ومع حركة اللاعب لتحقيق القفزة المطلوبة .

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

ثانياً : الفرق بين أساليب تصميم وبرمجة الالعاب حالياً

الطريقة الأولى : البرمجة مباشرة باستخدام لغة برمجة C++ أو #C مع مكتبة رسوميات (OpenGL , DirectX) ومكتبة فيزياء (Newton , PhysX) , وبالطبع ستحتاج معرفة بكيفية بناء محرك لعبة Game Engine Structure , وتمكن جيد من لغة برمجة قوية . في أغلب الأحيان بمجرد إنشائك لمحرك اللعبة يصبح معظم اللعبة قد انتهى . معظم شركات الألعاب تنشئ محركاً واحداً تصنع به ألعابها كلها (يمكنك تصور محرك الألعاب كبرنامج مثل Flash , لكن بإمكانات تناسب الشركة المصنعة) , فمثلاً شركة Valve لديها محرك Source الذي أنشأت به Half-life و Portalبأجزائهما دون حاجة إلى عمل محرك مستقل لكل لعبة , وأيضاً هو متاح للمطورين لتصميم مراحل خاصة بهم يمكن لعبها في Half-Life و Portal .

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

ولكن هذه الطريقة تستهلك وقتاً أكبر نسبياً من الطريقة الثانية , وهذا الوقت هو اللازم لبناء محرك اللعبة , ومن وجهة نظري تصلح لمن يريد أن يصبح مبرمج ألعاب لأن عليه التعامل مع محرك اللعبة , أما للمصمم فمعظمها تضييع وقت .

الطريقة الثانية : استخدام محركات الألعاب الجاهزة , تحت شعار لماذا تعيد اختراع العجلة ؟! وهي الاستعانة بمحركات ألعاب عملاقة جاهزة ومتاحة للاستخدام , بالطبع مقابل أجر مادي زهيد بصور تختلف من محرك لآخر , أي انك ستهتم في معظم الاحيان بالتصميم , ولن تشغل رأسك بالأمور البرمجية (إنشاء كاميرات من الصفر , أو التواصل مع مكتبة الرسوميات مباشرة ..) لأن هذه وظيفة المحرك نفسه , مع ملاحظة أنه يمكنك الوصول لكل هذا وتعديل معظمه وهذا يحصل في أحيان قليلة جداً .

هذه الطريقة تتضمن في بعض الأحيان بعض الخبرة البرمجية مع إحدى لغات البرمجة التي يدعمها المحرك , ليكون لديك قوة أكبر , بالتالي توفر الوقت لكلاً من المبرمج والمصمم -وأحياناً لن تحتاج إلى مبرمج بالمرة - وتختصر عليك الوقت والجهد .

ثالثاً : الفرق بين محركات الألعاب المشهورة :

GameMaker

وهو محرك ألعاب مصمم ليناسب الألعاب 2D بشكل أساسي , وهو سهل جداً ولا يحتاج معرفة برمجية إلا في حالات متقدمة , لأن الأوامر البرمجية ممثلة بصور تقوم بسحبها وإلقائها في المحرر , لفهم أوضح شاهد هذا الفيديو


المحرك يكلف 39.99$ للنسخة الكاملة , لكن يمكنك استخدام النسخة العادية بدون مشاكل (باستثناء اختفاء بعض الميزات المتقدمة , وعرض رسالة دعاية للمحرك على ألعابك) وهناك نسخة من المحرك تدعم HTML5 قيمتها 99$ .

التعامل مع عناصر اللعبة (أصوات , صور ..) مباشر وسهل , ويأتي مع النسخة العادية مثالان مشروحان يوضحان كيفية التعامل مع أساسيات البرنامج .

Unity

وهو يعتبر أفضل المحركات حالياً للمبتدئين , له مزايا قوية , ويوفر ترقيات -غير مجانية- لأنظمة iOS و Android , ويدعم JavaScript و #C كما أنه يمكن لعب ألعاب Unity من خلال المتصفح مباشرة من خلال إضافة خاصة .

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

UDK Unreal Development Kit

هذا المحرك هو الذي تم استعماله لإنشاء Mass Effect 2 , Batman Arkham City , Batman Arkham Asylum , BioShock 2 هذا غير Gears of War و Unreal Tournament أعتقد أن واحدة فقط منهم تكفي لتقتنع أن المحرك قوي جداً

UDK مجاني , إلا لو قررت بيع ألعابك فيجب دفع 99$ , وعندما يصل صافي ربحك إلى 50000$ سيكون عليك دفع قيمة إضافية , لا تخف تابع معي المثال التالي من موقع المحرك :

يمكنك إنشاء أي لعبة لاستعمالك الشخصي مجانا
إذا أردت بيعها سيكون عليك دفع 99$ ثمناً للرخصة التجارية
بفرض أنك قمت ببيع 15000 نسخة كل منها بقيمة 4.99$ , يكون إجمالي سعر البيع في السوق Retail هو 74850$
لكن السوق (وليس UDK) سوف ياخذ نسبة من هذه المبيعات 30% تقريباً , فيصبح الصافي الذي يصلك هو 52395$
ضع أول 50000$ في جيبك , وادفع 25% من الباقي (لصالح UDK) أي ستدفع 25% من 2395 والذي يساوي 598$ تقريباً
الآن أصبح إجمالي ما قمت بدفعه (خطوة 2 و 5) 697$ تقريباً , والذي يساوي 1% فقط من إجمالي سعر البيع !
المحرك فعلاً يستحق , وهو قوي جداً ولا يحتاج معرفة برمجية -إلا في حالات متقدمة بالطبع - وهو يستعمل طريقة مرئية للبرمجة , أشبه بنظام العلاقات في MsAccess لكنه أكثر تطوراً طبعاً ويعطيك تحكماً في كل شيء . ويمكنك من التحكم في حركة الأجسام بطريقة أشبه ببرنامج Flash (لكن بالطبع أكثر تقدماً وقوة) .

CryEngine

الحقيقة لم أتعامل معه .. , لكن يكفي ان من الألعاب المطورة به Crysis 2 والتي كانت ثورة في مجال الرسوميات وأصبحت الان مقياساً تقاس به قوة أجهزة الألعاب توضح مركز قوة هذا المحرك في مجال الرسوميات . والمحرك لا يقتصر على الألعاب فقط وإنما الأفلام أيضاً , وهو مجاني -للاستعمالات غير التجارية- .

أعتقد انه أكثر المحركات تميزاً , لكن من تجارب بعض المستخدمين ذكروا أنه يتطلب ترخيصاً غالياً بعض الشيء , لكن عليك في كل حال أن تتصل بشركة Crytek وتخبرهم بخطتك وإمكاناتك ليعطوك السعر المناسب . أما بالنسبة للمبرمجين المنفردين فهو يتطلب 20% من مبيعات اللعبة , بشكل مقارب لـUDK

XNA

حقيقة لم أتعامل مع هذا المحرك , لكنه يعتبر IDE يستخدم #C و DirectX لتطوير الألعاب , وبالطبع يحتاج إلى خبرة في #C و OOP . يمكنك عمل ألعاب تجارية على PC أو غير تجارية بالنسبة لمنصة XBox360 . ومن خلال رفع ألعابك فيما يسمى Creators Club يمكنك بيعها بخصم 30% من سعر البيع .

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

أشكال أخرى من المحركات :

Map Editor

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

العوامل الواجب مراعاتها عند اختيار المحرك :

عليك تحديد وظيفتك مصمم , مبرمج أو كليهما -مؤقتاً- , وتحديد إمكاناتك في كل منهما , إتقانك للبرمجة وقدراتك الفنية عامل مهم لتحديد ذلك .
إمكانيات اللعبة (وهذا يشمل الوقت كعامل أساسي) التي تريد البدء بها , ونصيحة مني إياك البدء بألعاب كبيرة , لأنك حتماً ستفشل , اعرف ان هذا قد يكون محبطاً لكنها الحقيقة , لا تتوقع مثلاً عمل ألعاب مثل GTA أو Skyrim ؛ لأن من يقوم عليها شركات كبرى من مصممين وكتاب ومبرمجين ورسامين ..الخ وتحتاج منهم إلى سنين من العمل , وتحوي أخطاءاً وعيوباً بعد كل ذلك ! , حاول البدء بلعبة بسيطة , سهلة التصميم والتنفيذ ولا تأخذ وقتاً , لهدف واحد هو أن تتعرف على عالم الألعاب جيداً كبداية وتعتاد على المحرك الذي تستخدمه , فكل شيء يحتاج إلى تدرج لا تقلق .
الظروف المالية , هل يتسحق Unity مبلغ 1500$ للإمكانات المتقدمة التي يوفرها , وإزالة نافذته SplashScreen من ألعابك ؟ أم تستخدم UDK ..
قدرتك على إتقان المحرك , من حيث توفر مصادر الشرح والدعم للمحرك , وقدرتك على التعلم الذاتي من خلال التجربة ونظام المساعدة المرفق ..
المصادر الخارجية , مثلاً دقة الصوت والرسومات التي يمكنك توفيرها والتي تريد أن تصل لعبتك إليها
والله الموفق الفيديو
__________________

التعديل الأخير تم بواسطة DEMONOID-X ; 04-09-2019 الساعة 05:49 PM
رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة



الساعة الآن 11:22 PM.


Powered by vBulletin®
Copyright ©2000 - 2019, vBulletin Solutions, Inc.

شات الشلة
Powered by: vBulletin Copyright ©2000 - 2006, Jelsoft Enterprises Ltd.
جميع الحقوق محفوظة لعيون العرب
2003 - 2011