post

لمحة حول ميزات 2018.1 Unity النسخة التجريبية

السلام عليكم ورحمة الله وبركاته ، طرحت شركة unity تسخة تجريبية للإصدار الجديد لمحركها لعام 2018 تحت رقم إصدار 2018.1 ، حيث قامت بذكر أهم الأجزاء التي سيحتويه والتي ستكون مضمنة في النسخة النهائية من الإصدار، حيث سيحتوي الإصدار على الكثير من التحسينات والإضافات الجديدة مثل نظام التفاصيل الزائدة Tessellation for Metal و إستحدام كرت الشاشة في الإضاءة غير المباشرة GPU Instancing ، إضافة منظور ال PS4 لنافذة Game Resolution وتحسينات على نظام الجزئيات Particle system والتحسين على بلجت التصدير FBX وغيرها الكثير. وهنا ذكر لأهم الميزات لهذه النسخة :

* نظام تصيير جديد  Scriptable Render Pipeline

حيث قدمت الشركة في هذه النسخة نظام إظهار آني real-time rendering ذو الإختصار SRP ، حيث أنه تم تصميمه خصيصاً لمواكبة الأجهزة الحديثة وكروت الشاشة السريعة جداً ، فبدلاً من النظر إلى ملايين أسطر البرمجة بلغة السي ++ أصبح الآن بالإمكان التعامل معه بواسطة لغة السي شارب و عمل شيدرز سريع للمواد Material Shaders بسهولة. حيث ستقوم الشركة بوضع أنظمة جاهزة Templates تستطيع من خلالها إختيار طريقة العرض التي ستلائم مشروعك بتقسيمين : Lightweight  حيث سيكون مثالي لأجهزة الموبايل والأجهزة الخفيفة و High-Definition حيث سيكون ملائم للمواصفات العالية جداً مثل أجهزة الحاسوب وغيرها.

* أداة visual shader creation

حيث تم تطوير هذه الأداة خصيصاً للمصممين والرسامين ، فبواسطة هذه الأداة يمكنك عمل مواد معقدة من خلال طريقة ال Graph Nodes  ،  فبدلاً من كتابة Shaders خاصة بواسطة الأسطر البرمجية أصبح بإمكانك عمل Shader كامل بواسطة ربط ال Nodes ببعضها لتحصل على الشكل النهائي الذي تريده ، وهذه الميزة كانت من أكثر الميزات طلباً من جمهور المطورين وتم الإستجابة لهم من الشركة .

* قريباً C# Job System

تحسينات وتطويرات ستكون متاحة قريباً تزيد من كفاءة اللعبة خاصة لمن يقوم بكتابة الأسطر البرمجة بلغة السي شارب

* تعديل على المواصفات الدنيا System Requirements

قامت الشركة بحذف العديد من الأمور التي كانت ضمنياً متاحة داخل المحرك وذلك بهدف جعل المحرك أكثر مرونة، وتركت باب الحصول على الميزات السابقة متاحة بتنزيلها منفصلة عن المحرك ، فقد قامت بفصل إمكانية إستيراد مواد Substance Designer materials وفصل Wii U  و فصل Windows XP in standalone player و فصل محرر MonoDevelop حيث أنها تنصح بإستخدام فيجوال ستوديو من شركة مايكروسوفت ، وقامت بزيادة مواصفات macOS إلى النسخة 10.11 على الأقل ، وهي تعمل على فصل نظام الجزئيات التقليدي  Legacy Particle System في النسخة القادمة وإستبداله بنظام جديد

يجدر بالذكر أن النسخة هي نسخة تجريبية ويمكنك تنزيلها والمشاركة بها من خلال هذا الرابط : https://unity3d.com/unity/beta

 

 

post

البرمجة كائنية التوجه OOP – الجزء الأول

البرمجة كائنية التوجه OOP :

السلام عليكم ورحمة الله وبركاته، عندما تم تطوير البرمجة كائنية التوجه Object Oriented Programming المعروفة بالإختصار OOP أحدثت ثورة كبيرة في علم البرمجة، فلقد قامت بحل العديد من الإشكاليات والمعضلات التي كانت تؤرق المطورين أنفسهم، سنأخذكم في جولة سريعة نشرح فيها أهم المبادئ للبرمجة كائنية التوجه ومن ثم نتطرق إلى كيفية إستخدامها داخل لغة #C مباشرة، فمن أهم مبادئها :

التغليف (Encapsulation ):

وتعني ببساطة منع الوصول إلى المتغيرات الموجودة داخل الكلاس بشكلٍ مباشر، والسماح بتعديلها أو استرجاعها من خلال دوال مخصصة لذلك، وتبرز أهمية التغليف في قدرتنا على وضع قواعد معينة للتعامل مع المتغيرات، مثلا لنفرض ان هناك متغير لتخزين عمر الشخص، لو أتحنا الوصول المباشر لهذا المتغير سنفقد أي تحكم بالقيمة التي سيدخلها الشخص الذي يستخدم هذه الفئة Class (مبرمج آخر)، ولربما لن يكون لديه معرفة كافية عن طريقة عمل هذه الفئة Class فربما سيفترض أن إدخاله للعمر 0 لن يسبب اي مشاكل، لكن هذا افتراض خاطئ، ربما في أحد دوال هذه الكلاس هناك عملية قسمة لمتغير آخر على هذا العمر، و القسمة على صفر تؤدي إلى حدوث خطأ، والمشكلة أن مثل هذه الأخطاء عادةً لا تظهر مباشرة لـ مستخدم الفئة Class، إنما يظهر الخطأ فيما بعد وربما أثناء عمل البرنامج لدى المستخدم النهائي وهي ما تعرف بإسم Run-Time Error، لكن لو قمنا بالسماح باستخدام هذا المتغير من خلال دالة فنستطيع التحكم وتنبيه المطور مباشرة عند ادخاله للرقم 0 للعمر، أو تحويل الـ 0 الى 1 او غيرها .. ولأن مطور الفئة Class يعرف آلية عملها بالتفصيل فيجب أن يحمي المتغيرات الموجودة داخلها.

الوراثة (Inheritance):

الوراثة هي عملية إنشاء كلاس جديد بنائاً على كلاس سابق، أو بمعنى آخر اشتقاق، وتبرز أهمية الوراثة في تمكيننا من إعادة استخدام أكواد مكتوبة سابقاً، وتعديل بعضها أو إضافة خصائص جديدة بدل من إعادة كتابتها كل مرة، وتسمى الفئة Class التي نرث منها بالأب Parent والتي نُورِّثُ إليها بالابن Son . لنفهم أهمية الوراثة نأخذ المثال التالي، لنفرض أن هناك فئة Class تقوم باستخدامها لإظهار زر على الشاشة، وهذه الفئة كتبها مبرمج غيرك وهي تعمل بكفائة، وداخل تطبيقك تحتاج لإضافة خصائص إضافية لهذا الزر ، أو خصائص غير موجودة حالياً، لنقل مثلاً خاصية النقر المزدوج، في هذه الحالة لديك عدة خيارات قد تستطيع القيام بها:
1 – الدخول إلى تلك الكلاس والقيام بتعديله وقد تقوم بتعطيل شيء فيها دون قصد.
2 – القيام بنسخ الكود الخاص بهذه الكلاس ولصقها ثم إجراء التعديلات واستخدام هذه الكلاس الجديدة، لكن في هذه الحالة أي شيء نقوم بتغييره او تطويره، او اصلاح بعض الاخطاء على الكلاس الأصلية يجب أن نغيره على هذه ايضاً، وهذا فيه إضاعة كبيرة للوقت.
3 – الوراثة ! عمل كلاس جديدة ترث الكلاس القديمة بكامل خصائصها، ثم تقوم بإضافة الخاصية الجديدة فقط، وبهذه الطريقة نتأكد من استمرارية عمل الكلاس القديمة بلا اي مشاكل، واي تطويرات على الكلاس القديمة ستنعكس ضمنياً على هذه الكلاس.

تعدد الأشكال (Polymorphism):

ويعني أن الكائن يمكن أن يتخذ أكثر من شكل، والفكرة ببساطة أن مجموعة كائنات ترث خصائصها من أب واحد، لكن كل منهم يقوم بتعديل هذه الخصائص لـ تقوم بأمر مختلف.
ومن أهم استخداماته هو القدرة على تمرير هذه الكائنات المختلفة إلى نفس الدالة، أي لو كان لدينا الكائنات التالية: مربع، مستطيل و مثلث، ولدينا كلاس اسمه Area للتعامل مع المساحات وفيها خاصية طباعة مساحة الشكل على الشاشة، بدون مفهوم تعدد الأشكال سيكون علينا أن نقوم بعمل ثلاث دوال لطباعة مساحة كل شكل من هذه الاشكال، مثلا PrintSquareArea و PrintTriangleArea و PrintRectangleArea لكن بتطبيق مبدأ تعدد الأشكال بإمكاننا الاكتفاء بـ دالة واحدة مثلا PrintArea وتستطيع استقبال جميع الاشكال، لانهم بالنهاية مشتقين من كائن واحد، وهذا ممكن ببساطة لان جميع الكلاسات الخاصة بهذه الاشكال يجب ان ترث من كلاس أب يمتلك الخصائص التي نحتاجها وليكن اسمه Shape مثلاً ولديه دالة CalculateArea لحساب المساحة، ثم تقوم كل كلاس ترث منه بتعديل طريقة حساب المساحة بما يناسبها، لكن المهم انها تمتلك هذه الدالة ! فتستطيع دالة الطباعة استدعاء الدالة على أي شكل يمرر لها دون الاهتمام بـ نوعه، المهم أنه يرث من اب يمتلك هذه الدالة فبالتأكيد أن الكائن الابن يمتلكها ايضاً.

تطبيق البرمجة كائنية التوجه OOP بواسطة #C

هناك بعض المصطلحات المرافقة للبرمجة كائنية التوجه التي يجب عليك كمطور الإلمام بها ومعرفتها، سنقوم بالتعرف عليها وإستخدامها مباشرة بشكل أسطر برمجة بإستخدام لغة C# ، وهنا  أهمها تباعاً :

1 – الفئات والكائنات (Classes and Objects)

الفئة هي عبارة عن نموذج أو وصف للكائن (blueprint)، أما الكائن فهو عبارة عن نسخة من هذه الفئة (instance)، على سبيل المثال، لو كان لدينا فئة Student فإننا نقوم بإنشاء كائنات من هذه الفئة كما يلي:

Student std = new Student();

فهنا لدينا Student هي النموذج العام، ثم قمنا بإنشاء كائن Std وهو مستقل بذاته، أي إذا قمنا بانشاء 10 كائنات، فإن التعديل على خصائص أحدهما لا يؤثر في الآخر، لكن التعديل على الفئة نفسها ينعكس على جميع الكائنات المنشئة منها. وهنا طريقة إنشاء الفئة Class في لغة #C :

Class Student
{
}

تتكون الفئة Class من التالي :
الخصائص والمتغيرات (properties): وهي عبارة عن البيانات التي يتم تخزينها داخل الفئة Class
الدوال (methods): ويمكن ان نقول انها تمثل سلوك هذه الكلاس أو بعبارة أبسط المهام والأمور التي تقوم بها هذه الكلاس، مثلا دالة Max لإيجاد الأكبر بين رقمين.
الأحداث (events): والأحداث عبارة عن قنوات للتواصل بين الفئات والكائنات المختلفة.

2 – الخصائص والمتغيرات Properties & Variables

يمكن أن نقوم بإضافة متغيرات Variables للفئات Classes في لغة ال #C كما يلي :

Class Student
{ 
       public int age;
}

لكن كما تلاحظ فقد قمنا بانتهاك أحد مبادئ البرمجة كائنية التوجه، والتي تم شرحها في بداية المقالة، وهو التغليف Encapsulation ، لذلك يجب أن نحول متغير العمر الى شيء محمي ويبقى داخل الفئة وهو ما يعرف بالإسم private  كما يلي :

Class Student
{ 
      private int age;
}

هنا يأتي دور الخصائص Properties والتي تقوم بتعديل أو طباعة قيمة هذا المتغير وتحافظ عليه من أي تعديل خارجي، حيث يمكننا تعريفها داخل لغة #C كالتالي :

Class Student
{
	private int _age;
	public int Age
	{
		get {return _age;}
		set 
		{
			if(value <= 0)
				_age = 1;
			else 
				_age = value;
		}
	}
}

وكما تلاحظ هنا، فإننا نملك تحكم كامل بالقيم المدخلة أو المرتجعة من هذا المتغير، أي أننا قمنا بتغليفه، وفي حال أننا رغبنا بتمكين لغة السي شارب من العمليات الداخلية لهذا المتغير يمكن تعريفها بصيغة مختصرة جداً كالتالي :

Class Student
{
	Public int Age { get; set; };
}

3 – الدوال Methods

الدالة عبارة عن حدث أو مهمة تقوم بإجراءات وظيفية داخل الفئة وغالباً تتعامل مع المتغيرات والخصائص الداخلية، فمثلاً تأخذ العمر وبناءاً عليه تحدد شيء معين، وتكتب بهذا الشكل

public int Method(string param)
{
// code
}

ويمكن للفئة Class امتلاك أكثر من دالة تحمل نفس الاسم، لكن بشرط اختلاف عدد المتغيرات الممررة لها Parameters او اختلاف نوعها، وهو ما يعرف ب overloading ، كالتالي :

public int Method(string param) {};
public int Method(int param) {};

4 – دوال البناء Constructors

دالة البناء هي دالة يتم استدعائها بشكل تلقائي عند إنشاء الكائن باستخدام new ويجب ألا تقوم بإرجاع أي قيمة، وان يكون اسمها نفس اسم الفئة Class، كما يمكنك انشاء اكثر من دالة بناء من خلال ال overloading وعادة تستخدم دالة البناء لتهيئة الكلاس ووضع قيم أولية لـ متغيراتها قبل البدء باستخدامه.وهذا مثال عليها

public class SampleClass 
{
	public SampleClass()
	{
	}
	public SampleClass(int age)
	{
	}
}

كما تلاحظ، قمنا بإنشاء دالتي بناء، الاولى سيتم استدعائها عندما ننشئ كائن بهذا الشكل

SampleClass sc1 = new SampleClass();

والثانية عند تمرير قيمة مثل

SampleClass sc1 = new SampleClass(22);

5 – الكلاسات المتداخلة Nested Class

بإمكاننا تعريف فئة Class داخل فئة أخرى، وتسمى nested class اي فئة داخلية أو متداخلة

class Main
{
	Class Nested
	{
	}
}

كما نلاحظ هنا الكلاس Nested موجودة داخل الكلاس Main ونستطيع استخدامها بهذا الشكل

Main.Nested nested = new Main.Nested();

6 – سماحية الوصول (Access Modifiers)

نستطيع التحكم بإمكانية الوصول إلى المتغيرات والدوال داخل الكلاس عن طريق ال Access Modifiers ، وهناك خمس أنواع :
عام (public): نستطيع الوصول إلى هذا المتغير أو الدالة من اي مكان في المشروع، او حتى من خلال مشروع آخر يعتمد على هذا المشروع.
خاص (private): نستطيع الوصول إلى هذا المتغير أو الدالة من خلال نفس الكلاس فقط، وليس من أي مكان آخر.
محمي (protected): نستطيع الوصول إلى هذا المتغير أو الدالة من نفس الكلاس او من كلاس أخرى مشتقة منها (أي ترث منها كما شرحنا سابقاً).
داخلي (internal): نستطيع الوصول إلى المتغير أو الدالة من نفس المشروع فقط، أي أن المشاريع الأخرى التي تعتمد على هذا المشروع لا تستطيع الوصول اليه.
داخلي محمي (protected internal): نستطيع الوصول إلى هذا المتغير أو الدالة من نفس المشروع أو من كلاس موجودة في مشروع آخر تشتق (ترث) من هذه الكلاس.

تم كتابة الجزء الاول من المقالة بواسطة Ward Mahmoud وترجمتها إستناداً إلى مقالة أصلية هنا، نلقاكم في الجزء الثاني قريباً إن شاء الله.

post

بولي Poly مقصدك للمجسمات الخاصة بالواقع الإفتراضي

السلام عليك ورحمة الله وبركاته، أطلقت شركة Google موقع متخصص بتحميل المجسمات القليلة التفاصيل والتي قامت بتسميته Poly ، حيث أنها أعطت الفرصة لمن يقومون بتطوير تطبيقات الواقع الإفتراضي Virtual Reality المعروف بالإختصار VR والواقع المعزز Augmented Reality المعروف بالإختصار AR ،بإستخدام ألاف النماذج 3D Models القابلة للتحميل المباشر والإستخدام في تطوير التطبيقات السابقة.

استخدم Poly في كل مكان:

من الجدير بالذكر أن معظم التصاميم الموجودة هي من خلال تطبيقي  Tilt Brush  و Blocks  التي تمكنك من تصميم النموذج داخل الواقع الإفتراضي، بالتالي يمكنك تصديره ليراه الجميع، حيث قامت شركة Google  بإيجاد خدمة Poly خصيصاً لرفع تصاميمك من التطبيقين السابقين، لكن هناك إمكانية لرفع النماذج التي قمت بصنعها خارج هذين التطبيقات بواسطة الإمتداد OBJ وملف الخامة الخاصة به MTL . أيضاً يمكنك إستدعاء أي نموذج للتعديل عليه أو إستخدامه في التطبيقين السابقين أو حتى في تطوير لعبتك على محرك الألعاب Unity.

ألاف النماذج تنتظرك:

يمكنك زيارة الموقع poly.google.com لتجد العديد من النماذج، فإن قمت بالبحث عن طائرة مثلاً ووضعت Plane ستجد عشرات النماذج، قم بإختيار أي واحدة منها وقم بتصديرها لتستخدمها في مشاريعك، لكن إنتبه أن هناك بعض النماذج يشترط عليك أن تقوم بذكر إسم صاحبه في حال إستخدمته في مشروعك. ليس هذا فحسب، بل يمكنك تحويل أي مجسم أعجبك إلى صورة متحرك Gif لتستطيع نقلها لأي مكان آخر بعد ذلك، كما في الصورة التالية:

 

 

post

النسخة 2017.2 من محرك Unity متاحة الآن!

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

عن النسخة :

النسخة التي وُعدنا بها من شركة Unity لمحركها الشهير Unity Engine أصبحت متاحة الآن! نعم النسخة 2017.2 أصبحت قابلة للتحميل، وبإمكانك الحصول عليها من هنا. التي تحتوي على العديد من الميزات الجديدة والتحديثات وحلول لمشاكل كانت تؤرق المطورين.

العناوين الرئيسية :

هذه النسخة تحتوي على إضافات جديدة لم تكن في سابقاتها، هدف هذه الإضافات التسهيل على المطورين من ناحية توفير الوقت والجهد المبذول في أمور قد تكون أساسية لكل مطور ألعاب، فقد إشتملت على محرر جديد للألعاب ثنائية البعد المسمى Tilemap ، وفيها دعم أكثر للواقع الإفتراضي والمعزز XR وتحديثات لمصيرها الآني، وهنا نبذة مختصرة عن أهم العناوين الرئيسية لهذه النسخة :

  • محرر المراحل Tilemap : 

  • أو يمكن أن نطلق عليه باني الخرائط، فهي أداة مميزة تعطيك تحكم كامل لبناء خرائط لعبتك ثنائية البعد، فسابقاً كان العمل أصعب من حيث أنك مضطر لوضع المربع الواحد Sprite واحداً تلو الأخر بطريقة يدوية، على الرغم من وجود أدوات مساعدة مثل ال Snap وغيرها، إلا أن هذه الميزة ستوفر الكثير من الوقت على المطورين.

مدير الإنتاج cinemachine الثنائي الأبعاد:

شهدنا في الإصدارات السابقة تواجد مدير الإنتاح الغني عن التعريف cinemachine للألعاب ثلاثية البعد 3D والتي بإمكانك التحكم في الكاميرات الموجودة في لعبتك وعمل الكثير من الميزات الحصرية التي تختصر عليه المئات من الساعات لعملها بمفردك، في هذه النسخة أصبحت الميزة متاحة لألعاب البعد الثاني 2D أيضاً، كما هو موضح في الفيديو السابق.

الدروس التفاعلية Interactive Tutorials :

الآن أصبح بإمكان المطورين الجدد تعلم المحرك بواسطة دروس تفاعلية وحية مباشرة على المحرك، بحيث يتيح لك إمكانية التعديل على المتغيرات لترى ماذا قد يحصل لو قمت بتعديلها، وهذه الخطوة مهمة لأنه سيكون لك إمكانية لوضع دروس تفاعلية عندما تقن المحرك لتساعد غيرك من المطورين المبتدئين لإتقانه، هنا فيديو عن هذه الميزة :

ميزة إستيرا المجسمات Asset Management :

أو ما يعرف بالـ DCC المختصر من Digital Content Creation ، فالآن أصبح من السهل التعامل مع التطبيقات المختلفة مثل Autodesk وغيرها، ليس فقط إضافة ميزات لما تحويه هذه الملفات مثل الملف الشهير FBX الذي يحوي المجسمات والصور والحركة فحسب، بل إمتد الموضوع لإضافة مجسم جديد يمكنك إنشاءه وربطه لاحقاً بملف من تلك البرامج مما يتيح لك التعديل الآني ومن غير معاناة من إنتظار الوقت الكثير لإنعكاس التعديلات بين البرامج، فلقد تم إضافة Linked Prefabs  إلى قائمة الإنشاء كما هو موضح في هذا الفيديو :

إضافات للواقع الإفتراضي/المعزز XR :

يتضح جلياً تركيز المحرك على إعطاء القدرة القصوى لمطوريه للتماشي مع أكثر التطبيقات طلباً في الوقت الحالي، فقد إعتبرت كبرى الشركات مثل Microsoft و Sony و Google سنة 2016 على أنها سنة الواقع الإفتراضي VR المختصر من Virtual Reality والواقع المعزز AR المختصر من Argumented Reality بجدارة، أو ما يعرف كليهما بالإختصار XR ، فهناك العديد من الميزات التي تم إضافتها لتسهل العمل مع هذه التطبيقات، فها هي تضيف Vuforia  إلى محركها ضمنياً، وتدعم OpenVR و Google ARCore كما في الفيديو التالي :

ليس هذا فحسب، فهناك بعض الإضافات والتحسينات كالتالي :

+ ميزة Timeline للأصوات : بإمكانك الآن التعامل مع الأصوات أيضاً
+ تحديثات بالـ Profiler لتحليل اللعبة بشكل أكثر تفصيلاً
+ ميزة Lightmap background لإضافة لايت ماب للأماكن الفارغ سابقاً
+ أصبحت الأشجار يتم حساب ال Lightmap الخاص بها أيضاً
+ تحسينات على نظام ال Particle System

 

الخلاصة

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

post

محاكاة حركة أمواج البحار في محرك Unity

 

مقدمة :

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

إعرف ميزانيتك قبل البدء :

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

للوهلة الأولى بدى لي أن هذا ما أريده،  لكن بعد البحث والقراءة عن هذه الأداة وجدت أنها لا تتناسب مع ميزانيتي ( الوقت + المنصة ) فمشروعي سيصدر على منصة Web GL وهذا ال Shader لا يدعها بشكل كلي، فضاع جزء من وقتي بلا فائدة!

الحل أبسط مما تتخيل أحياناً :

بحثت كثيراً عن Shaders تتناسب وما أريد، لكني لم أجد شيء مناسب، ثم خطر ببالي أن أقوم بعمل خدعة ستوفر علي الوقت الكثير وتعطي كفاءة أعلى بكثير كونها تعتمد على حسابات أقل، فما لبثت أن شرعت في تنفيذها كالتالي:

  • – قمت بوضع وجه Quad واحد وقمت بجعله بحجم كبير لكي يبدوا وكأنه البحر، أي قمت بجعل الـ Scale له 2000 كل كل محور.
  • – ثم قمت بوضع صورة لموج قابلة للتكرار Seamless .
  • – ثم قمت بكتابة أسطر برمجية تقوم بعمل تحريك لإكساء المجسم Texture Scrolling ، كما في الصورة التالية :

عند هذه النقطة، حصلت على البحر كما في الصورة التالية :

لكن هذا وحده لم يكفي بالغرض، فضفاف الجزيرة وإمتداد الرمل يجب أن يبدوا واضحاً لإعطاء مصداقية بتدرج العمق، وكان الحل بتحويل Shader المادة التي أستخدمها من Standard إلى Particle –> Multiply كما في الصورة التالية :

عند هذه النقطة، إنتهيت من البحر نفسه، لكن بقي المشكلة هي حركة الأجسام التي تطفو عليه، فالبحر هنا عبارة عن وجه واحد فقط Quad وليس فيه أي حساب للتضاريس Deformation لكي يتأثر بها مجسم السفينة!

حركة السفينة :

بعد دراسة حركة السفينة إتضح لي أنه لا داعي لإشغال موارد الجهاز في حساب شيء قد يبدوا ثانوياً وليس أساسياً، فلجأت إلى محاكاة حركة السفينة عن طريق الأسطر البرمجية كالتالي :

بهذه الطريقة حصلت على المطلوب تماماً، وكنت راضياً جداً عن النتيجة!

الخلاصة المستفادة :

دراسة بسيطة وتحليل لعدد الخيارات المتاحة لديك ومقارنته بالميزانية التي تملك ( وقت ، جهد ، تكلفة مادية ، مناسب للمشروع ) قد يساعدك على إيجاد أكثر الطرق مناسبة لما أنت عليه، فالموضوع قد يكون أبسط بكثير من الحسابات والتعقيدات التي تضع نفسك فيها أحياناً.

 

أسامة ديب
مطور ألعاب

 

 

post

بناء نموذج ذو جودة عالية وإظهاره داخل محرك Unity

خطوات تحويل صور إلى مجسم ثلاثي الأبعاد لإظهاره داخل محرك Unity

 لمحة عن المقالة:

السلام عليكم ورحمة الله وبركاته، في الآونة الأخيرة ظهرت برامج تساعد المنمذجين 3D Modelers لبناء نماذج حقيقية Models تحتوي على تفاصيل كثيرة High Details بالإضافة إلى الخرائط الخاصة بها Textures ، ولعل من أشهرها تطبيق Reality Capture ، هذه النماذج غالباً تحتاج لإعادة تنقيح قبل إستخدامها في محركات الألعاب بسبب حجمها الكبير، وغالباً يتم ذلك بواسطة برامج النمذجة مثل 3Ds Max أو Maya، قامت شركة Unity بكتابة درس تفصيلي من 100 صفحة تقريباً خطوة بخطوة من تجهيز الأدوات إلى تجهيز النموذج لوضعهم داخل لعبتك، سنقوم بسرد أهم العمليات المستخدمة في المقالة ثم وضع رابط للنسخة المفصلة.

الأدوات والتطبيقات المستخدمة :

بالنسبة للأدوات، تتراوح حسب قدرتك وحسب إمكانياتك المتاحة، كل ما كانت أدوات التصوير أفضل كلما حصلت على جودة أعلى، يمكنك إستخدام كاميرا الموبايل لكن النتيجة بالتأكيد لن تكون كمن يقوم بإستخدام كاميرا متخصصة للتصوير الفوتوغرافي، الكاميرا المستخدمة في المقالة هي Canon 6D مع العدة الخاصة بها.
أما بالنسبة للتطبيقات التي سيتم إستخدامها للتعديل وللإخراج النهائي فهنا أهمها:

– Reality Capture : البرنامج الذي ستستخدمه لتحويل الصور إلى مجسمات ثلاثية الألعاب ، رابط موقع البرنامج هنا.
– Autodesk 3ds Max : البرنامج الذي ستقوم بتعديل النموذج الأولي Raw model وإعادة بناءه Retopology لكي يصبح جاهز للإستخدام، أيضاً سيستخدم لعملية فرد الخرائط Unwrap UV ، رابط موقع البرنامج هنا.
– Adobe Photoshop : البرنامج الذي ستستخدمه لعمل تعديل على الخرائط الناتجة من البرنامج الأول Textures بحيث تتناسب مع النتيجة النهائية، رابط موقع البرنامج هنا.
– Unity : بالتأكيد لا ننسى المحرك الذي سنقوم بإظهار النموذج النهائي عليه، محرك اليونيتي مجاني ويمكن تحميله من هنا.
هناك بعض التطبيقات التي ستحتاجها في بعض التعديلات البسيطة أيضاً.

ما قبل التصوير:

هناك بعض القواعد الأساسية التي يجب أن تأخذها بالحسبان قبل البدء بعملية التصوير، أهمها:
– الإجابة على The 3 W’s : الشيء الذي تود تصويره What،  أفضل موقع يمكن الحصول عليه Where، أفضل وقت تستطيع الحصول على جودة عالية عليه When.
– صور أم فيديو : في النهاية يجب الحصول على صور من كل الزوايا لإعطاء إمكانية لبرنامج Reality Capture الحصول على جودة عالية.
– إعدادات الكاميرا : النتيحة تختلف كلياً حسب إعدادات الكاميرا المختارة، يجب أن تكون على دراية تامة بهذه الإعدادات.

الحصول على الصور :

في هذا القسم ستذهب إلى الموقع المراد أخذ الصور منه، إن كان المجسم صغير يمكنك إلتقاط الصور له مباشرة، وإن كان كبير يمكنك الإستعانة بالطائرة drone لأخذ الصور له. أيضاً في حال كان المجسم صغير وفي متناول الأيدي يمكنك تصويره في بيئة تقوم بإعدادها أنت وبالتالي تحصل على نتائج أفضل، وإن كان الشيء المراد تصويره شيء حقيقي ستذهب وتقوم ببعض الخطوات لتضمن الحصول على نتائج مناسبة.

معالجة النموذج :

بعد الحصول على الصور ووضعهم داخل تطبيق Reality Capture سيقوم بمعالجتهم وتحويلهم إلى مجسم 3D Model ، يجدر الإشارة إلى أن النموذج الناتج غالباً يحتاج إلى تعديل، سواءاً بإعادة ترتيب الأوجه Polygons Retopology ، أو بإعادة تركيب طريقة فرد المجسمات على الخريطة Unwrap UV Texture ، ويتم ذلك بإستخدام تطبيق 3ds Max .

معالجة خرائط النموذج :

أو ما يسمى 3D Model Textures ، وهناك العديد من الخرائط التي يتوجب عليك العناية بها للحصول على جودة عالية في إظهار النموذج، حيث ستستخدم هذه الخرائط في إخراج المادة النهائية Material التي تتأثر بفيزيائية المادة، ويتم إستخدام تطبيقات للحصول على هذه الخرائط أشهرها Xnormal، وهنا لمحة عن أهم الخرائط Textures المهمة :

– خريطة الألوان الأساسية Albedo Map: أو تسمى Diffuse Map، هذه الخريطة أساسية وتحتوي على الألوان الحقيقية للمجسم.
– خريطة التفاصيل Normal Map : وتحتوي على معلومات يتم إستخدامها لإظهار تفاصيل إضافية على المجسم إستناداً إلى زاوية الضوء.
– خريطة الظل الغير مباشر Ambient Occlusion Map : وتحتوي على الظلال الخفيفة التي تتواجد في حال عدم وجود مصدر ضوء مباشر على المجسم.
هناك العديد من الخرائط الأخرى أيضاً منها : Height Map, Vertex color Map,Object space Normals Map.

تجميع النموذج النهائي :

بعد الحصول على نموذج نظيف يمكن تصديره كـ FBX ، وبعد الإنتهاء من الخرائط الأساسية يمكن تصديرها كـ TGA لجودة عالية أو يمكن تحويلها إلى PNG لحجم أقل، بعد السابق يتم تجميعهم وإضافتهم داخل محرك الألعاب Unity ، لتظهر كما في الصورة التالية:

الكتاب الإلكتروني الأصلي الذي يحتوي على التفاصيل تجده هنا.

post

وثيقة تطوير اللعبة Game Design Document

أهمية وثيقة تطوير اللعبة وكيف تقلل الوقت والجهد على فريق تطوير الألعاب

نبذة عن وثيقة تطوير اللعبة GDD :

السلام عليكم ورحمة الله وبركاته، كثر في الآونة الأخيرة إزدياد أعداد المطورين العرب، ومن المؤسف رؤية الكثير يقفز عن أهم مرحلة من مراحل تطوير اللعبة، ألا وهي المرحلة النظرية أو مرحلة كتابة مستند تطوير اللعبة المسمى Game Design Document ذو الإختصار GDD، حيث تكون في مرحلة قبل التطوير Pre-Production، فلازلنا نرى التوجه المباشر نحو محركات الألعاب، ولغات البرمجة وأدوات التصميم بشكل عشوائي وغير منظم، مما يضيع الكثير من الجهد والوقت خلال عملية تطوير الألعاب بحد ذاتها، لذلك كان لا بد من التطرق إلى مثال عملي عن هذه المرحلة، لكشف أهميتها لدى المطورين أنفسهم، ولتضفي خبرة كافية لهم لكي يقوموا بالإنتباه لها في مشاريعهم الحالية والمستقبلية.

إن كنت المسؤول عن عملية تصميم اللعبة Game Design ، فأنصحك بالإضطلاع على مهارات مصمم الألعاب عبر المقالة التالية : كيف تصبح مصمم ألعاب ناجح ، حيث تعتبر المقالة السابقة مقالة نظرية، وفي هذه المقالة سندخل تجربة تطبيق للعبة يتم تطويرها حالياً.

محتويات وثيقة تطوير اللعبة :

يمكن أن تحتوي هذه الوثيقة على خليط بين النصوص والصور والأشكال التعريفية Diagrams، أو سكيتشات أولية Concept Arts بالإضافة إلى أنها يمكن أن تحمل خوارزميات أو أسطر برمجية قياسية، أو ما يمكن تسميته Pseudocode يعطي إنطباع عن المهام الوظيفية التي ستكون داخل اللعبة، ويمكن تلخيص الأقسام الرئيسية التي تحويها كالتالي :

القصة Story : حيث يتم كتابة الفكرة الأولية للسيناريو وقصة اللعبة، ويمكن تفصيلها وتعديلها لاحقاً.
الشخصيات الرئيسية Characters : فكرة عن طبيعة شخصية اللاعب و الشخصيات المشاركة باللعبة، أو ما يعرف ب Non-Player Characters ذو الإختصار الشهير NPC.
تصميم المراحل Level/environment design : يتم وضع تصور عام عن بعض المراحل، ويمكن أن تكون عبارة عن رسومات أولية على أوراق حقيقية.
طريقة اللعبة Gameplay : وهي جوهر اللعبة لأهميتها، ويمكنك مراجعة مقالة كيف تصبح مصمم ألعاب ناجح ، للمزيد من المعلومات حول تصميم اللعبة.
الرسومات Art : السمة العامة المستخدمة داخل اللعبة، هل هي ثلاثية البعد أم ثنائية البعد، هل تصاميمها حقيقية أم كرتونية وهكذا، وتصورات مرسومة عن تفاصيل اللعبة.
الأصوات Sound and Music : نوع النمط الخاص بالصوتيات Genre ، ويمكن إرفاق ملفات أصوات سابقة مع الوثيقة.
الواجهات الرسومية User Interface : أو ما يعرف بال UI حيث يتم رسم المعلومات التي ستبقى على الشاشة خلال اللعب وماهيتها.
أزرار التحكم Game Controls : يمكن أيضاً كتابة كيفية التحكم في اللعبة، وما هي المنصة المستخدمة هل ستكون أحرف لوحة المفاتيح أم النقر كما في أجهزة الموبايل.

لعبة حرب القواعد – تطبيق عملي :

كما تعرفنا في المعلومات السابقة، أنه يمكن ضم عدد لا بأس به من الأقسام الرئيسية التي يجب أن تكون واضحة منذ بداية التطوير لكي تختصر الكثير من الوقت والجهد، في لعبة حرب القواعد تم كتابة 3 وثائق تفصيلية يمكن دمجهم معاً لتحصل على وثيقة تطوير اللعبة Game Design Document ، وهنا تم تفصيل 3 أقسام رئيسية يمكن تلخيصلهم بالشكل التالي :

1 – الوثيقة الأولية Game Concept Document :

حيث تم بروز فكرة لعبة في ذهن الأستاذ أسامة ديب ( صاحب المشروع ) لمحاكاة لعبة تحتوي على قلعتين متباعدتين، حيث يتسابقان لهدم قلعة الآخر من خلال بناء وحدات معينة، الفكرة السابقة كان لا بد من كتابتها في وثيقة ضمت المحاور التالية : شرح الفكرة، ميزات اللعبة، نوع اللعبة Genre، المنصة المستخدمة، وتطبيقات اللعبة. الوثقة تحتوي على 5 صفحات يمكن تصفحها مباشرة  هنا.

2 – الوثيقة الوظفية Functional Specification Document:

بعد الإنتهاء من الوثيقة الأولية يتم البدء بالتعمق في جوانب اللعبة التقنية ، حيث يتم تفصيل ميكانيكية اللعبة من خلال الكتابة عن نواة اللعبة وتسلسل الأحداث داخل اللعبة ، والعناصر الأساسية للعبة Game Units ، ثم التفصيل أكثر حول واجهات اللعبة الأساسية User Interface ، ومن ثم كتابة تخطيط بياني وخوارزميات لها ، إنتقالاً إلى التصاميم والرسوميات المستخدمة والسكيتشات إن وجد ذلك ، والأفلام البينية داخل اللعبة ، إنتقالاً للأصوات التي سيتم إستخدامها والموسيقى ، مروراً بسرد قصة للعبة حيث يتم إدخال اللاعب في قصة متسلسلة للعبة ككل ، والإنتقال إلى المراحل التي ستتكون منها اللعبة ، كل السابق قد تم كتابته بشكل عملي داخل هذه الوثيقة، تحتوي هذه الوثيقة على 8 صفحات يمكن تصفحها مباشرة هنا.

 

3 – الوثيقة التقنية Technical Specification Document :

بنفس الأقسام التي كانت في الوثيقة الوظيفية يتم التعمق أكثر حيث أن هذه الوثيقة ستكون مفهومة بشكل أساسي للمطورين و الرسامين المتواجدين ضمن الفريق ، حيث ستلاحظوا أنه في هذه الوثيقة سنناقش المنصة ونظام التشغيل بشكل مباشر من خلال إنتقاء مواصفات معينة ، وسيتم الإكثار من الخوارزميات الأساسية للعبة وتفصيلها برمجياً على شكل Pseudo Code بحيث يمكن للمبرمجين البدء الفعلي في كتابة الأكواد الخاصة باللعبة ، أيضاً يتم البدء في تحديد الأجزاء الأساسية التي ستظهر على الوجهات الرسومية المختلفة ، مروراً بالتصاميم ثنائية أو ثلاثية البعد ، وتحديد البرامح والمحركات التي سيتم إستخدامها خلال مراحل تطوير اللعبة ، إلى الأصوات والموسيقى ، وتفصيلاً أخيراً للمراحل، تحتوي هذه الوثيقة على 8 صفحات يمكن تصفحها مباشرة هنا.

 

  • يجدر بالذكر أن حرب القواعد تم تغيير إسمها إلى Get That Sheep ويمكن رؤية النتيجة الحالية للمشروع كما في الفيديو التالي :

post

كيف تصبح مصمم ألعاب ناجح

تعرف على مصمم الألعاب وما هي المهارات التي يجب أن يمتلكها

دور مصمم الألعاب Game Designer

السلام عليكم ورحمة الله وبركاته، يبقى الدور العام لمصمم الألعاب Game Designer هو كيفية عمل اللعبة بشكل صحيح أثناء عملية تصميمها، فهو يقوم بوضع الأهداف Objectives و القواعد Rules و الإجراءات Procedures ، ويقوم بوضع القصة وإعطاءها الحياة وهو أيضاً المسؤول عن التخطيط لكل ما يجعل اللعبة مقبولة، وهو من يقوم ببناء المرحلة Level Design سواءً بناءها على أسس الهندسة المعمارية أو رسم سكيتشات على الورق Blueprint، وهو أيضاً يقوم بتنسيق القصة (السيناريو العام) للعبة. فكل من كان يحلم في عمل مميز في هوليوود أصبح الآن بإمكانه فعل ما يريده بواسطة كتابة سيناريو القصة وإخراجها بشكل كامل، التخصصات السابقة أصبحت الآن متجزءة بشكل تخصصات كاملة، كل شخص مسؤول عن إحداها، لكن مطور الألعاب الناجح يجب أن يكون ملم بتفاصيل كل تخصص من باب تعلم شيء عن كل شيء، ولكن ما هي الأمور المطلوبة لتصبح مصمم ألعاب؟ وما هي المواهب والقدرات المطلوبة؟ وما هي أفضل طريقة لتصميم لعبة؟ هذا كله سنكتشفه من خلال هذه المقالة.

مصمم الألعاب يضع نفسه بدل اللاعب

يتمركز دور مصمم الألعاب وقبل كل شيء أن يتصرف وكأنه اللاعب، فالمصمم يجب أن يشاهد لعبته من زاوية أخرى وهي الزاوية التي يرى بها اللاعب Player هذه اللعبة، وعلى الرغم من أن هذا شيء سهل ولكنه للأسف يتم تجاهله، مما قد ينتج فجوة كبيرة في اللعبة بسبب هذا الخطأ البسيط، من البسيط أن نقوم بالتأكد أن تصميم الجرافيكس والقصة والبرمجة تسير بشكل صحيح، ولكننا نغفل عن أهم ميزة في اللعبة، وهي وجود الإثارة التي تدمج جميع ما سبق لنخرج بشيء متميز. وكمصمم ألعاب Game Designer فإن الجزء الأكبر من دورك يتمثل بالتركيز والحفاظ على تجربة اللاعب User Experience وملاحظة الأمور التي سيكتسبها من عملية اللعب، وأيضاً يجب أن لا تجعل الأمور التقنية (جرافيكس، وتأثيرات، وبرمجة) تطغى على هذا الجانب. دع كل شخص يهتم بتخصصه، فدع مسؤول الرسوميات Art Director يبدع بالتخيلات، ودع المنتج Producer يهتم بالميزانية، ودع المدير التقني Technical Director يهتم بمحرك الألعاب ومشاكله فمهمتك الأساسية هي أنه عندما يتم تسليم اللعبة للاعب يجب أن يندهش من طريقة اللعب Game play وببساطة أن يقول: !!Wow ولا يدع اللعبة في وقت قصير. وعندما نذكر مصطلح Game play يجب مباشرة أن يتبادر لذهنك الأمور التي سيكتسبها اللاعب من خلال لعبة وما هي الخبرات والأسس التي سيجدها في اللعبة.

 

مختبري اللعبة Game Testers

أي لعبة يجب أن تحتوي على من يختبرها Game Testers، وهم الأشخاص الذين يقومون بلعب اللعبة كاملة واستخراج الخلاصة إن كانت عن طريق زيادة أمور.. أو تصحيح أمور أخرى، وأيضاً هناك منظور مختلف عندما تقوم بمشاهدة شخص غيرك يقوم بعملية اللعب، فستولد أمور لم تكن تحسبها والتي من هدفها إثراء لعبتك. فستقوم بملاحظة اللاعب في تصرفاته، وعلى ماذا يركز، وما الأمور التي قد تسبب له حالة ملل، فكل ما يقوله يجب أن تدونه وتأخذه بالحسبان، فهو سيكون دليلك لتسليط الضوء على هذه الجوانب. وإن كنت تريد أن تكون في موقع مختبري اللعبة فيجب عليك وضع الأهداف الرئيسية التي ستقوم بها، وبالنهاية يمكنك أخذ جميع ميزات المختبر لتصبح مصمم ومختبر في نفس الوقت.

وهناك الكثير من المصممين الذي لا يدرجون الـ Game Tester بعملية تصميم اللعبة، لربما بسبب ضيق وقت العمل، أو أنه لا يريد أن يقوم المختبر بإزالة أشياء يظنها المصمم تضفي إيجابية على اللعبة، أو لربما أنهم يعتقدون أن ذلك سيكلفهم الكثير من النقود، أو أن اعتقادهم بأن عملية الاختبار تأتي ما بعد التسويق ومن خلال اللاعبين عبر العالم ولكنهم فعلياً يقومون بتضييع المزيد من الوقت والمزيد من التكلفة وأيضاً الكثير من الإبداع المتوقع من مختبري اللعبة، وذلك بسبب أن اللعبة ليست بطريق واحد للاتصال One-way بمعنى أنه ليس عليك طرح اللعبة ومن ثم إنتظار قدوم النقود!!، وليس الأمر أن يقوم المصمم بالتأكد من أن كل جزء من الأجزاء الوظيفية باللعبة تعمل بنجاح، الأمر يكمن في إيجاد الميزات التي يحب اللاعب أن تكون موجودة في لعبته المثالية Game Play وبالتأكد هذا لن تقوم بإكتشافه إلا من خلال الـ Game Tester.

فمصمم الألعاب يمكن تشبيهه بأنه المسؤول التنفيذي لحفلة معينة، فمهمته الأساسية التأكد من أن كل شيء جاهز: الطعام، والعصير، والزينة، وتهيئ الجو العام، وفي النهاية يفتح الأبواب لإستقبال المدعوين للحفل ليروا ما في الداخل، والنتائج على الأغلب لا يمكن التنبؤ بها أو تصورها، واللعبة مثلها مثل الحفلة، ولكن أي نوع من أنواع الحفلات؟ وهل فعلا سيستمتع المدعوون بهذه الحفلة أم أنهم  سيحاولون الهرب من الحفلة بعجالة من أمرهم؟ هل سيسهرون ويتبادلون الأحاديث بين بعضهم ويتمنون أن لا تنتهي هذه الليلة؟

دعوة أصدقائك لتجربة لعبتك، و معرفة ردود الفعل ولحظات الصمت ومطابقتها على أرض الواقع هي فعلا أفضل طريقة لتدرك كيف تسير لعبتك ولكي تصبح مصمم محترف. وبمجرد إستعدادك لسماع الآخرين والتعلم من نقدهم لها سيساعد ذلك لعبتك على النمو السريع والإيجابي. وعملية تصميم الألعاب تشبه دورة الحياة بشكل كبير، فهي تمر في مرحلة تطوير، ولا يوجد قواعد معينة وتكنيكات مطلقة، وكمصمم فإن الخيار مفتوح على مذراعيه لتبتكر طرقك الخاصة. هذا لا يعني أن تأخذ كل نصائح أصدقاءك على محمل الجد، فلديهم أذواق مختلقة، ويجب أن تأخذ غالباً ما يتوافق مع قواعدك وتطلعاتك المستقبلية للعبتك.

 

المهارات

ما هي الأمور المطلوبة لتصبح مصمم ألعاب؟ بالطبع لا يوجد إجابة واحدة، وأيضاً لا يوجد طريق واحد للنجاح، فهناك بعض المزايا والمهارات المشتركة في مصمم الألعاب المتميز، أولها يكمن في حب الألعاب نفسها، فإذا كنت لا تُحب ذلك، فلن تستطيع أبداً النجاح في هذا الأمر لأنك لن تقوم بالجلوس الساعات الطويلة لتقوم بالإبداع واختراع اللعبة وإعطاءها حقها.

كشخص عادي ليس له علاقة بهذا الأمر، يبدوا الأمر قليل الشأن، فمن يقوم بالنظر إلى مختبري الألعاب، يظنهم أنهم يلعبون ويضيعون الوقت الطويل ولا يدركون أن هذه العملية ضرورية وهي جزء لا يتجزأ من مرحلة تصميم الألعاب، فكونك مصمم ألعاب يجب أن تبقى بالك مشغولاً دائماً حول مشروعك، ويجب أن يكون قلبك للمشروع، ولا ننسى أنه ستمر عليك ساعات ضغط خصوصاً في نهاية المشروع تتطلب منك الصبر وانتظار النتائج المتوقعة، فبناءً على السابق، فإنه يجب عليك تطوير مهارات معينة، فحبك للألعاب لا يعتبر المهارة الوحيدة المطلوبة منك فهناك عوامل أخرى منها:

1 – مهارة التواصل مع مختلف الأشخاص

من أهم مزايا مصمم الألعاب أنه يمتلك القدرة على التواصل مع كل شخص تعتقد أنه سيضفي نجاح على لعبتك، بالتالي يجب أن يكون إيجابي التعامل لدرجة المرونة معهم ككل، لأنك ستقوم بعرض فكرة اللعبة على أنواع مختلفة من طرق التفكير، لأنك ستعرض لعبتك على: قريق عملك، والإدارة، والمستثمرين، وربما أصدقائك وعائلتك. ولمواجهة ذلك، يجب أن تتميز بالإقناع ووضوح لغة التفسير، أي أن يكون تفسيرك للعبة منطقي وواضح ومبسط حسب طبيعة تفكير الشخص المقابل، وأن تكون مقدم وعارض ناجح للمشروع. فهي الأمر الوحيد الذي من هدفه أن يؤمن لك تغطية كافية للموضوع مع دعم مادي من الأطراف المعنية، ويجب أن تدرك أن كل شخص ينظر للعبتك من منظور مختلف، فالممول يختلف عن صديقك!

ومهارة الإتصال لا تقتصر على الكتابة وفن الخطابة، بل هي تعني أيضاً فن الإستماع والإستعداد للتناقش بوسطية ومنطقية، فإستعدادك لسماعك رأي مختبري اللعبة Game Tester ولزملائك في الفريق Teammate سينتج أفكار جديدة وباتجاهات جديدة، فما هي ردة فعلك عندما تسمع شيئاً لا تحب سماعه؟ نحن نعلم أنه من الصعب أن نقدم بعض التنازلات، ولكن هنا الأمر مختلف ويجب عليك التنازل في هذا الموضوع لأنه من هدفه زيادة الإنتاجية، وفي الحقيقة أن معظم مصممي الألعاب يعتقدون أنه لا يجب التنازل أبداً عن الرأي والأفكار التي جمعها، ولكن التنازل مطلوب في بعض الأمور فإن كان الرأي الجديد جيداً فسيقوم بإضافة أفكار من هدفها أن تعطي الإبداع للعبة. فعلى سبيل المثال، قد ترى أن بعض التأثيرات من هدفها أن تقوم بإضافة أشياء مفيدة للعبة تجعلها أجمل، ولكن من الناحية التقنية Technical، لا يمكنك فعل ذلك لأنها مكلفة على نوع الجهاز الذي ستنزل عليه اللعبة، ولربما أن الوقت غير كافي لعمل، ولكن ماذا لو قدّم المبرمج طريقة ثانوية للتأثيرات التي تريد بحيث تكون قابلة لبرمجتها وبوقت قصير وبكلفة أقل؟ هل ستحتفظ برأيك الأول في ظل هذه المعطيات؟ في النهاية يكمن هدفك في إيجاد الفكرة المناسبة التي يمكن تكييفها من كل متطلبات العمل، فيجب أن تصغي لأي رأي جديد من هدفه إنجاح المشروع.

2 – مهارة العمل ضمن فريق

صناعة الألعاب هي مجال من أهم المجالات التي يمكن من خلالها أن تفهم معنى وفائدة العمل داخل فريق متكامل، حيث كل شخص مسؤول عن مجال هو مختص به، فمن العلوم المتخصصة بمجال الحاسوب هناك من سيقوم ببرمجة الجرافيكس، وهناك من سيقوم بالتصميم، ومن سيقوم بالبرمجة، ووضع أسس الذكاء الإصطناعي ومن سيقوم بصناعة الشخصيات وتحريكها، وهناك من سيقوم بدعم اللعبة وتأمين الجانب المادي لها، وهناك من سيقوم بتسويقها، وهناك من سيقوم بتسليمها ليد اللا عب !! فهناك مجموعة متسلسلة من التخصصات، تعتبر كلها كالجسد الواحد يكمل بعضه بعضاً.

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

3 – قادر على معالجة الأمور عند الضرورة

في أغلب الأحيان وعندما يكون عندك حط زمني معين للمشروع Deadline ، ستضطر لأخذ قرار أحياناً يؤثر سلباً على جودة اللعبة ككل أو على سير عملية التطوير، ومن شأنه أن يولد مشاكل مستقبلية تستمر بالظهور واحدة تلو الأخرى حتى تصبح اللعبة ككل مجموعة من المشاكل لا يمكن حلها!!، فالألعاب نظامها ضعيف، وكل العناصر ترتبط إرتباطاً وثيقاً ببعضها، فعند ظهور خلل في عنصر معين، سيؤثر هذا العنصر سلبياً على كل العناصر وبالتالي على كل المشروع، وهذه القضية خطيرة خصوصاً في المراحل النهائية لتصميم اللعبة، فحين ينفذ الوقت ستظهر بعض المشاكل التي لم تتمكن من حلها، وستضطر لحذف بعض المراحل وبعض العناصر للحفاظ على العناصر التي تم تصميمها بشكل سليم، إنها كارثة حقيقية، ولكنها بالنهاية تساعدنا على فهم سبب إحتواء الكثير من الألعاب على تناقضات والتي غالباً ما تميت اللعبة قبل وصولها للسوق (Dead On Arrival (D.O.A بفترة وجيزة.

4 – قادر على الإستنباط من حوله

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

إن أردت أن تصبح مصمم ألعاب مميز حاول أن تقوم بالنظر للعالم من حولك على أنه لعبة كبيرة جداً تحتوي مهمات ومستويات ومراحل مختلفة. حاول تفسير الوظائف الأساسية والمهمة في حياتك، وحاول إكتشاف القواعد التي تقوم عليها، حاول معرفة كيفية عمل الآليات والإلكترونيات، بإستنتاجك لها ستحصل على إمكانية بناء أنماط  وأفكار جديدة لم يتم التفكير بها سابقاً، كل ما عليك فعله هو كتابة ملاحظاتك وتحليلاتك ومعرفة أساساتها وستصبح بإذن لله من أنجح المصممين.
لكن لماذا لا نقوم بالنظر إلى الألعاب الموجودة في السوق على أنها مصدر للإلهام؟ فعلياً إن قمت بذلك فستقوم بعمل فكرة تم إيجادها سابقاً وبالتالي لن تحصل على ميزات الأفكار الجديدة، حاول أن تقوم بالنظر حولك وإكتشاف شيء جديد، ودائماً إجعل الحياة المحيطة بك هي مصدر لإلهامك لا ألعاب سابقة تم عملها. ومن أهم القضايا التي تلهم مصمم الألعاب بأفكار جديدة هي: العلاقات الإجتماعية، طريقة جمع النقود، البيع والشراء، المنافسة في العمل، وغير ذلك. مع ملاحظة أن كل ثقافة وبلد وطبيعة في العالم يمكن أن تغرس فيك فكرة لعبة جديدة، فيمكنك بالتالي إختيار أي فكرة تراها جيدة وتقوم بتطبيقها.
فمثلاُ في طبيعة الأرض أفكار مشعبة ومعقدة وكثيرة مثل: مستعمرات النمل، فهم منظمون إلى مجموعة من القواعد، وهم يتنافسون ويسعون لإثبات أنهم الأ فضل من خلال جمعهم الكثيف للغذاء، ويتنافسون مع مستعمرات أخرى لإثبات قدرتهم على العيش، والأمر نفسه مع كل أنظمة الحياة، من طرق إثبات القدرة على الحياة لدى الأسود الإفريقية إلى فعل ذلك لدى القطة الموجودة في أزقة الطرق.
قم بدراسة الأنظمة السابقة وقم بتقسيمهم: لعناصر objects و علاقات relationships، وسلوكيات behaviors، وإلى غير ذلك. وحاول إكتشاف كيفية التفاعل مع العناصر الأخرى، فلربما تخلق أساس لفكرة جديدة، وهذا الشيء نفسه عندما تنظر كيف يتم التعامل مع الأشخاص في مجال السياسة، وفي مجال الفن، وفي العلاقات الإجتماعية مثل الزواج، فهناك قصة لعبة في كل علاقة. من خلال إستنتاجك لجميع ما سبق، فإنك لا تكتسب زيادة المهارة في كونك مصمم ألعاب فحسب، ولكنك تفتح أفاقاً جديدة وتخيلات في ماهية لعبتك و قواعدها وطرق تصميمها.

5 – قادر على الإبداع

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

من أكبر وأشهر مصممي الألعاب Nintendo’s Shigeru Miyamoto يقول:
“دائماً ما أنظر لطفولتي ولأحلامي وهواياتي التي تتميز بالإلهام عندما كنت طفلاً، ذهبت لحديقة ووجدت بحيرة كانت لطيفة ومذهل بالنسبة لي أن أعثر عليها وعندما تجولت في البلدان بدون خريطة، حاولت شق طريقي الخاص، ووجدت أشياء مذهلة، وأدركت مدى سعادتي بمغامرة مثل هذه.”
“When I was a child, I went hiking and found a lake. It was quite a surprise for me to stumble upon it. When I traveled around the country without a map, trying to find my way, stumbling on amazing things as I went, I realized how it felt to go on an adventure like this”
وفي كثير من ألعابه قام بالإستفادة مما حلم به ورآه في طفولته.

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

 

post

إستخدام مصادر جاهزة لتطوير لعبتك

إستخدام مصادر جاهزة لتطوير الألعاب، تزيد من كفاءة لعبتك وتقلل وقت التطوير

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

يتناقش معي العديد من المطورين الذين يدخلون عالم تطوير الألعاب عن حلمهم في تطوير فكرة لعبة يعتبرونها مميزة، ويتابعون أن العناصر التي يودون إستخدامها في مرحلة التطوير يجب أن تكون من صنعهم، بالتالي فهم من سيقومون بتصميم النماذج ثلاثية الأبعاد 3D Models على برنامج 3Ds Max أو Maya وهم من سيقومون بعمل هيكلية وتحريك لها Rigging and Animation ، وهم من سيقومون ببناء واجهات اللعبة 2D UI وهم من سيقومون برسم كافة الرسومات التي تحتاجها اللعبة على برنامج Photoshop ، ليس هذا فحسب بل سيقومون بتسجيل و تحرير الأصوات والموسيقى التي ستحتاجها اللعبةـ وفوق هذا كله هم من سيقومون ببرمجة اللعبة نفسها.

السيناريو السابق ليس مستحيلاً، ولكن كوقت تقديري أنت تحتاج لما يقارب الـ 10 سنوات لإنهاء لعبتك، وإن صبرت كل هذه المدة ولم يصبك الإحباط في منتصف الطريق، فلن تكون لعبتك ذات جودة عالية، والسبب هو أنك لست مختص في أي مجال من المجالات السابقة، مما يترك فرصة لتدني جودة اللعبة ككل.

إبحث عن المصادر الجاهزة

من الأفضل أن تقوم بالبحث أولاً عن شيء قريب لفكرة لعبتك بحيث يتماشى مع الثيم الخاص بها سواءاً كانت لعبة ثلاثية الأبعاد أو لعبة ثنائية الأبعاد، حيث أن هناك العديد من المواقع التي تتيح لك كافة المستلزمات التي تحتاجها في رحلة تطوير لعبتك، سواءاً كانت مدفوعة الأجر أو مجانية، ولعل من أشهر المواقع التي تحتاجها كمطور ألعاب تستخدم محرك Unity هو Unity Asset Store ، الموقع الغني بكل ما تحتاجه سواءاً مجسمات ثلاثية الأبعاد 3D Models أو ملفات حركة Animation أو صوتيات Audio أو برمجيات جاهزة Scripting أو حتى مشاريع كاملة Complete Projects .

 

لم تجد ضالتك في المصادر الجاهزة؟

في بعض الأحيان لن تجد مبتغاك خصوصاً إن كنت تبحث عن شيء محدد بمواصفات معينة، بالتالي أنت بحاجة للبحث عن شخص مختص ليقوم بعملها ألا وهو الـ Freelancer ، حيث يمكنك توظيفه بمقابل مالي أو بعرض نسبة من الأرباح بعد إنهاء اللعبة، بل إن هناك أنواعاً من الموهوبين الذين لم يدخلوا إلى سوق العمل بعد مستعدين أن يعملوا معك مجاناً مقابل الحصول على خبرة العمل الجماعي أو مقابل وضع إسمه في قائمة العاملين على اللعبة Credits .

هناك العديد من المواقع والأماكن التي تتيح لك التعرف وإيجاد مطورين ورسامين مستقلين ولعل خدمة Unity Connect سهلت عملية البحث والتواصل بينهم، أيضاً هناك العديد من المجموعات على شبكة التواصل الإجتماعي تعج بالخبرات الفريدة والتي تحتاج للعمل على مشاريع جماعية منها مجموعة طورني على شبكة الفيسبوك.

الخلاصة 

إعطاء كل وظيفة للشخص المناسب والمتخصص تزيد من كفاءة الناتج، وتنمي مهارات العمل الجماعي والتي إن إمتلكتها ستزيد فرصك في الدخول إلى سوق تطوير الألعاب، ليس عيباً أن تقوم بإستخدام مصادر جاهزة للعبتك، ولا بأس في إستخدامها في مرحلة البداية، لاحقاً إن إمتلكت الميزانية الكافية يمكنك إستبدالها بشيء تريده أنت من خلال توظيف فريق يعمل لأجل مشروعك. ولكن هناك قضية يجب التنويه لها، فليس كل المصادر المجانية صالحة للإستخدام، فهناك بعض المصادر مجانية ولكن مشروطة بإضافة إسم صانعها إلى قائمة ال Credits لذلك توخى الحذر في إنتقاء المصادر وخصوصاً المجانية منها.

post

الألعاب الإلكترونية ايجابياتها وسلبياتها

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

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

* الألعاب الإلكترونية ، إيجابياتها وسلبياتها؟

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

* هل من أنواع تندرج تحتها ألعاب الفيديو؟

بالتأكيد ، فهناك تصنيفات عديدة لطبيعة ونوع اللعبة أو ما يطلق عليه Game Genres، ولعل أشهرها هو ألعاب المنظور الأول First Person Shooter ذو الإختصار FPS و ألعاب اللعب الجماعية الكبيرة Massively multiplayer online ذو الإختصار المعروف MMO وهناك العديد من الأنواع الأخرى مثل الألعاب الرياضية Sports والألعاب الإستراتيجية RTS وغيرها. للمزيد من الأنواع الأخرى يمكنك زيارة هذه الصفحة.

* أغلب العاب الفيديو أجنبية الصنع.. إلى ما نعزو التقصير العربي بذلك؟

ذلك بسبب قلة الخبرات العربية في هذا المجال وإن وجد تجدهم فرادى تحت مسمى مطور مستقل ( indie Developer ) ، بالإضافة قلة الوعي والإهتمام من أصحاب الأموال والمستثمرين العرب حول هذا المجال، لذلك إنطلقت منصة طورني التي تهدف بشكل أساسي إلى تكوين كادر عربي قادر على منافسة الشركات الكبيرة في هذا المجال.

* الألعاب العنيفة ما هي أخطارها؟

الحقيقة أن أخطار الألعاب بدأت بالظهور بشكل كبير في السنتين الماضيتين، وينتج ذلك عندما يقوم اللاعب بتخطي العدد الأقصى لساعات اللعب يومياً (أكثر من 4 ساعات يومياً = مدمن ألعاب)، ولمعاينة الأخطار يمكن تقسيم السلبيات إلى أقسام كالتالي:
جسمية : وتتركز بشكل أساسي حول سلامة العينين ( النظر لساعات طويلة إلى الشاشة ) ، وإلى زيادة معدل السمنة والبدانة، حيث أن اللاعب بفقده للوعي أحياناً يقوم بتناول الوجبات السريعة Fast Food والمكسرات بشكل مفرط.
نفسية : اللعب المفرط يبني هواجس نفسية عند اللاعب تستمر معه حتى بعد إقفال الألعاب والذهاب للعمل أو الخلود للنوم، مما يؤثر عليه سلباً من الناحية النفسية.
إقتصادية : بسبب إدمانه على الألعاب يدفعه للشراء المتكرر من متجر اللعبة أو شراء أي تحديث لها غير مجاني، حيث أني أعرف شخص صرف ما يقارب 17 ألف دولار على لعبة خلال السنة الماضية لوحدها.
إجتماعية : مدمن الألعاب يتميز بالعزلة الإجتماعية ( وبالإجتماعية الإلكترونية ) قام بإستبدال الأصدقاء الحقيقين الذين حوله بأصدقاء حقيقيين يجتمع معهم داخل اللعبة وتفصل بينهم المسافات البعيدة.
تربوية وسلوكية : يتعرف اللاعب على ثقافات مختلفة مما يدعه يكتسب الحسن ( وهذه إيجابية ) والسيء منها، كالألفاظ السيئة والمعاملات المتردية.

* هل تصميم وإطلاق تطبيقات خاصة بالألعاب أمر صعب؟

لو كان هذا السؤال موجهاً لي قبل 10 سنوات لقلت نعم، لكن الآن أصبح من السهل جداً إنتاج التطبيقات والبدء بتطوير الألعاب، وخصوصاً المواد التعليمية الكثيرة المتوفرة بشكل مجاني ومدفوع. أيضاً سهولة حل المشاكل خصوصاً أن هناك العديد من المطورين متوفرين ومتفرغين فقط ليساعدوك في مشاكلك.

* عادة الأهل لا يهتمون ولا يطلعون على الألعاب التي يلعبها أطفالهم فكيف يمكن تمييز السيء من الجيد؟

هذا صحيح وخصوصاً في مجتمعنا العربي، هناك نظام تقييم لكل لعبة يتم إصدارها بما يتناسب مع محتواها وأشهر نظام للتقييم هو The Entertainment Software Rating Board المختصر بـ ESRB ، يمكن الحصول على معلومات أكثر عنه من هذه الصفحة، وننوه وندعوا الأهالي إلى ضرورة البحث عن اللعبة المطلوبة قبل شراءها، وهناك العديد من المواقع الأجنبية والعربية التي تقوم بعمل مراجعات للألعاب، حيث أن ذلك لن يستغرق من الأهل سوى أقل من نصف ساعة لمعرفة ما هذه اللعبة وما هي محتوياتها وإلى أي مدى ممكن تسبب أضرار على اللاعب.

* كيف يمكننا حماية أجهزة الأطفال من الألعاب السيئة؟

أصبح بالإمكان الآن لأي جهاز حديث أن يقوم الأهل بعمل رقابة على الأجهزة بما يسمى Parent Control ، حيث أنها خيار أو تطبيق يتيح للأهل أن يخصصوا تطبيقات حصرية لكي يقوم طفلهم بلعبها، ليس هذا فحسب، بل يقوم بإعطاء تقارير عن ماذا قام بفتحه وأي موقع قام بدخوله.

* ما هي طبيعة الألعاب المناسبة للأطفال؟

ألعاب تعليم اللغات والكلمات والحروف والحيوانات، حيث أنها تنمي ذكاء الطفل وتشجعه على التعليم بتفاعلية أكثر.

* متى ننتج ألعاب أطفالنا برأيك؟

عندما يصبح لدينا العديد من المطورين العرب، ويجدوا الدعم والمحفز للبدء بتطوير ألعاب ، والحقيقة أن هناك بالفعل ألعاب عربية من مطورين مستقلين نفتخر بها.