مدخل إلى تصميم وبرمجة الألعاب : البداية والاحتراف ^^.. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته نظرأ لكثرة تردد هذا السؤال , وغيابه عن بعض المبتدئين و ظهور كثير من محركات الالعاب في الوقت الحاضر رأيت مناقشته في المدونة . هناك العديد من الطرق تصلح لبرمجة وتصميم الألعاب ,إما بغحدى لغات البرمجة واستخدام مكتبات رسوميات مثل 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://www.youtube.com/watch?v=HbcLuYBxbIE وهو محرك ألعاب مصمم ليناسب الألعاب 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 .. قدرتك على إتقان المحرك , من حيث توفر مصادر الشرح والدعم للمحرك , وقدرتك على التعلم الذاتي من خلال التجربة ونظام المساعدة المرفق .. المصادر الخارجية , مثلاً دقة الصوت والرسومات التي يمكنك توفيرها والتي تريد أن تصل لعبتك إليها والله الموفق :)الفيديو |
الساعة الآن 03:32 PM. |
Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
شات الشلة
Powered by: vBulletin Copyright ©2000 - 2006, Jelsoft Enterprises Ltd.
جميع الحقوق محفوظة لعيون العرب
2003 - 2011