السلام عليكم
من المعروف للمهتمين بمجال برمجة الألعاب أن كثيرا من التجارب العربية في مجال الألعاب كانت إما متواضعة أو غير جدية. حتى ولو أدت في النهاية إلى منتج مباع فإنه للأسف لم يرتق للمستوى المطلوب.
في العالم العربي نجحت الكثير من الشركات الخاصة بالإنتاج الإبداعي والتي تنتج أفلام كرتون أو إعلانات. كما نجحت الكثير من شركات البرمجة وحققت أرباحا. مما يدفعنا للتساؤل: هل هناك فرصة لنجاح العمل الذي يجمع هذين المجالين وهو برمجة وتصميم الألعاب؟
من وجهة نظري أرى أن المانع من نجاح هذه الأعمال ينقسم إلى مشكلتين: الكلفة العالية للإنتاج، وإمكانية النسخ والانتشار غير الشرعي للمنتج. وسأحاول إن شاء الله الحديث عن وجهة نظري في كيفية التعامل مع هاتين المشكلتين. وأتمنى من الإخوة المهتمين المشاركة بآرائهم لإثراء الموضوع والتعرف على وجهات النظر المختلفة. في هذا الموضوع الأول سأتحدث عن المشكلة الأولى لنناقشها، ثم ننتقل للمشكلة الثانية إن شاء الله.
بالنسبة للمشكلة الأولى وهي الكلفة العالية للإنتاج: عدا عن تكاليف توظيف المصممين والمبرمجين الذين سيعملون في الفريق، هناك تكلفة البرامج مثل Adobe Photoshop و 3D Studio Max والتي تستخدم عادة في تصميم الألعاب. أضف على ذلك تكلفة المحرك الذي سيستخدم (وأنا ضد أن تقول أنك ستقوم ببرمجة محرك من الصفر فهذه برأيي تجربة محكوم عليها بالفشل نظرا لكلفتها العالية).
هنا أتساءل: برنامج Photoshop يستخدم عادة من أجل إنشاء الخامات Textures . ألا يمكن الاستعاضة عنه بمئات وربما آلاف الخامات المجانية ومفتوحة المصدر المنتشرة على الإنترنت؟ وماذا عن برنامج GIMP ؟ ألا يمكن أن يكون بديلا معقولا لحل هذه المشكلة؟ برأيي أن الخامات متوفرة بشكل جيد على الإنترنت وربما من النادر أن تحتاج لخامات جديدة خاصة أنك تبدأ مشروعا بحجم صغير يمكن أن تكتفي فيه بالمتوفر.
بالنسبة لبرنامج 3Ds Max، والذي ينقسم استخدامه إلى مجالين: مجال تصميم المجسمات والنماذج Models وتصميم الخرائط Maps. بالنسبة للاستخدام الأول أرى أن من يبدأ مشروعا جديدا ويريد تعلم برنامج تصميم ثلاثي الأبعاد للمرة الأولى لن يجد فرقا بين البرامج الثلاثة 3Ds Max, Maya, & Blender لذا يمكن أن يتعلم البرنامج الأخير Blender حيث أنه مجاني ومفتوح المصدر ويفي بالغرض من الناحية الاحترافية، كما أنه سهل التعلم (من تجربتي الشخصية).
المشكلة مع Blender هي أنه غير عملي لإنشاء خرائط كبيرة الحجم والتي يسهل بناؤها باستخدام برامج تحرير خرائط خاصة، وأفضلها وأسهلها على الإطلاق هو Valve Hammer الخاص بلعبة Half-Life والذي تم استخدامه أيضا في Half-Life 2 . لكن هذا البرنامج ليس مجانيا، كما أنه ليس مفتوح المصدر ليتم تخصيصه مع ألعاب أخرى. لكن هناك برنامج مجاني لا يقل كفاءة عنه ومن تجربتي الشخصية وجدت أنه مناسب جدا لبناء الخرائط وتصميم المباني، وهو برنامج مجاني ومفتوح المصدر قمت بتعلمه واستخدامه وكانت النتائج مبهرة. اسم البرنامج هو DeleD 3D ويمكن تحميله من الموقع http://www.delgine.com وهنا صورة توضح هذا البرنامج.
إذن الآن لدينا الخامات ولدينا برامج التصميم (ولم تكلفنا للآن فلسا واحدا :cool: ). كيف نجمع هذه الأجزاء داخل لعبة؟ بمعنى آخر ما هو المحرك الذي سنستخدمه؟
الخيارات بالنسبة للمحرك كثيرة ومفتوحة: المحركات المجانية منتشرة ومعروفة مثل Irrlicht, Delta 3D, jMonkeyEngine, Cube, وغيرها الكثير. إذن يمكن استخدام أي من هذه المحركات مفتوحة المصدر مع مكتبات الفيزياء المجانية المعروفة مثل Bullet أو ODE . هل لديك فريق من المبرمجين المحترفين سواء في Java أو C++ ولديهم معرفة كافية في برمجة الألعاب؟ إذا كانت أجابتك بنعم: تهانينا! أنت الآن جاهز للبدء بالعمل على مشروعك.أما إذا كانت أجابتك بلا، تابع معنا فالبدائل موجودة.
ظهرت مؤخرا مجموعة من الأدوات المتكاملة والبيئات التطويرية لصناعة الألعاب برخص استخدام مختلفة، لكنها في الغالب تتيح استخدام نسخة محدودة بشكل مجاني مع اشتراط دفع مبلغ معين بعد تحقيق الأرباح. لعل أولها كان 3DSTATE وهو بصراحة أول بيئة لتطوير الألعاب وغيرها من التطبيقات ثلاثية الأبعاد، لكنني لم استسغ العمل عليه. أما أكثر البرامج شهرة هذه الأيام فهي بيئة Unity 3D و بيئة UDK التي تطرحها Epic Games والمبنية على محرك Unreal Engine.
هذه البيئات تتيح لك تطوير الألعاب بأقل قدر ممكن من البرمجة، وتستخدم لغات خاصة لكتابة Scripts. أعلم أن البعض لا يفضل مثل هذه البرامج بحجة أنها لن تنتج ألعابا بكفاءة الألعاب المكتوبة بلغات البرمجة المعروفة من ناحية الأداء. لكن هل جرب فعليا عمل لعبة كبيرة الحجم وقام بقياس أدائها؟ أم هي الحساسية المفرطة لكل هو ما ليس مكتوبا بـ C++ أو اللغات الأصلية؟
لكن أليس لهذه البرامج ميزات؟ بيئة سهلة تمكنك من إنتاج رسومات بمؤثرات احترافية، وتمتلك معظم الوظائف الجاهزة التي توجد في الألعاب وتريحك من برمجة ما هو موجود. أليس هذا أكثر واقعية لمن يريد عمل لعبة حقيقة وليس مجرد تجارب هواة؟ أليست هذه البرامج هي المكان الصحيح الذي تضع فيه قدراتك البرمجية لتوظفها في عمل منتج؟
لن أطيل في النقاش حول هذه النقطة وسأفترض بأنك اقتنعت برأيي وأردت استخدام إحدى هذه الأدوات، أيها ستختار؟ ولماذا؟ وكيف ستربطها بالبرامج المذكورة سابقا؟
من وجهة نظري أفضل Unity على UDK لأسباب عدة، أهمها أن الرخصة الخاصة بـ UDK تمثل عملية أشبه بالابتزاز، حيث تحصل الشركة على 25% من أرباحك إذا تجاوزت 5000 دولار. كما أن UDK محدود ببيئة Windows وبطاقات nVidia ولا يفيد في حالة منصات الألعاب الأخرى.
أما Unity يمكننا القول أن رخصته أقل “جشعا”، حيث يشترطون منك شراء النسخة الكاملة (والتي تحتوي على ميزات إضافية) مقابل 1500 دولار. شرط شراء النسخة هو تحقيق أرباح تتجاوز 100 ألف دولار. أضف إلى ذلك أن Unity يدعم منصة Wii بالإضافة إلى بيئات Windows و Mac بالإضافة إلى iPhone.
محرك Unity وبيئته التطويرية يمكنه استيراد نماذج ثلاثية الأبعاد من 3Ds Max و Blender وهو البرنامج الذي تحدثنا عنه في البداية. كما أنه يحتوي على مستورد Collada. لماذا نهتم بهذا المستورد تحديدا؟ الجواب هو أن برنامج الخرائط DeleD يحتوي على مصدر Collada أيضا بالتالي نحقق التكامل بين هذين البرنامجين.
إذن ومن وجهة نظري، يمكن تلخيص خطوات بناء لعبة بالخطوات التالية:
1. جهز خاماتك بالحصول عليها من الإنترنت أو تصميمها على GIMP
2. قم بعمل النماذج Models على برنامج Blender ثم قم باستيرادها إلى داخل Unity
3. ابن الخرائط والمباني الخاصة باللعبة على برنامج DeleD ثم قم بتصديرها إلى ملفات Collada
4. قم باستيراد ملفات Collada إلى داخل Unity
5. باستخدام Unity قم بعمل طبيعة اللعبة Terrain ثم أضف إليها المباني
6. قم ببرمجة ما يلزمك باستخدام JavaScript أو Boo أو C# من داخل Unity
7. بالنسبة للأصوات يمكن الحصول عليها من مواقع بتراخيص مفتوحة المصدر
علما أن البرامج المذكورة في هذه الخطوات كلها مجانية باستثناء Unity وقد ذكرنا متى يلزم شراؤه.
أتمنى أن أكون قد أفدتكم قليلا وأتمنى مشاهدة ردودكم وآرائكم.




