لو عايز تعمل ألعاب، متبدأش بلعبة زي GTA.
الـ Game Development إنك تبني اللعبة نفسها: الشخصية بتتحرك إزاي، والعدو بيعمل إيه، والقفزة إحساسها إيه، وإمتى تكسب وإمتى تخسر. وعلشان تتعلمه صح فيه ترتيب: لغة برمجة، وبعدها Game Engine، وبعدين رياضيات الألعاب، وبعدها فيزيا اللعبة، وفي الآخر ألعاب صغيرة جدًا تخلصها لآخرها.
علّم على كل حاجة تخلصها وانت ماشي، علشان تعرف انت فين، وترجع تكمّل من نفس المكان.
قبل ما تبدأ
- ذاكر كل يوم، حتى لو شوية. المدد هنا محسوبة على ساعتين في اليوم. لو وقتك أقل هتاخد وقت أطول، وده عادي.
- المدد تقريبية. في ناس هتخلص أسرع وناس أبطأ. عدّي المرحلة لما تبقى جاهز فعلًا، مش لما الوقت يخلص.
- كل مرحلة فيها مشروع. متعديش للمرحلة اللي بعدها قبل ما تعمله بإيدك، حتى لو شكله مربعات وألوان سادة.
المرحلة 1 من 5
C#لغة البرمجة الأول
المدة: 6 لـ 8 أسابيع
ابدأ بلغة برمجة وافهم أساسياتها كويس، قبل ما تفتح أي engine. اللعبة في الآخر برنامج: شروط، و loops، وبيانات بتتغير كل لحظة.
أنا مختارلك C# هنا، لأنها لغة Unity، و Godot بيدعمها كمان. ولو ناوي على Unreal من الأول، اتعلم C++ بدلها، والمرحلة بنفس الترتيب. المهم تختار لغة واحدة وتكمّل بيها.
هتتعلم إيه
0 من 11اعمل بإيدك
لعبة في الـ console. XO بين لاعبين، أو «خمّن الرقم»، بـ C# من غير أي engine. فيها loop للعبة، وبتاخد input من اللاعب، وبتعرف مين كسب، وبتسأله يلعب تاني ولا لأ.
تعدّي للمرحلة اللي بعدها لما
- تقدر تكتب برنامج صغير من ملف فاضي من غير ما تنسخ من حد
- فاهم الـ class والـ object، وتقدر تعمل class لأي حاجة في لعبة
- لما الكود يضرب error، بتقرا الرسالة وتدوّر على السبب بنفسك
- مرتاح في الأساسيات دي قبل ما تفتح أي engine
المرحلة 2 من 5
Game Engineالرسم والفيزيا والصوت جاهزين
المدة: 4 لـ 6 أسابيع
بعدها اختار Game Engine، ودا البرنامج اللي فيه الرسم والفيزيا والصوت جاهزين، علشان متبنيش كل ده من الصفر. أشهر 3: Unity وبيشتغل بـ C#، و Godot ودا مجاني ومفتوح المصدر، و Unreal وبيشتغل بـ C++.
التلاتة ينفعوا. لو اتعلمت C# ابدأ بـ Unity أو Godot. المهم تختار واحد وتفضل عليه لحد ما تخلص الخطة، ومتنطش بينهم كل ما تقابلك مشكلة.
هتتعلم إيه
0 من 12اعمل بإيدك
لعبة لمّ العملات. شخصية بتتحرك بالأسهم، وعملات متوزعة في المكان كل ما تلمس واحدة النقط تزيد، وتايمر، ولما الوقت يخلص تظهر شاشة Game Over فيها النقط وزرار إعادة. وتعمل build تشغّله برة الـ engine.
تعدّي للمرحلة اللي بعدها لما
- تقدر تعمل scene فيها لاعب بيتحرك بالـ input من غير ما تبص على شرح
- عارف الكود بتاعك بيتنفذ إمتى: مرة واحدة في الأول، ولا كل frame
- عملت build للعبة واشتغلت على جهاز من غير الـ engine
المرحلة 3 من 5
رياضيات الألعابالحاجة رايحة فين وبسرعة قد إيه
المدة: 2 لـ 3 أسابيع
بعد كده رياضيات الألعاب، زي الـ Vectors، ودي اللي بتحدد الحاجة رايحة فين وبسرعة قد إيه. متخافش: مش محتاج تبقى شاطر في الرياضيات، محتاج حاجات قليلة هتستخدمها كل يوم.
لو عرفت تتعامل مع الـ Vector، هتعرف تحرك أي حاجة، وتخلي العدو يجري وراك، والطلقة تروح ناحية الماوس.
هتتعلم إيه
0 من 11اعمل بإيدك
Top-down shooter صغيرة. لاعب بيتحرك في 8 اتجاهات بنفس السرعة، وبيلف ناحية الماوس، وبيضرب طلقات رايحة في الاتجاه ده، وأعداء بيمشوا ناحيته، والكاميرا ماشية وراه بنعومة.
تعدّي للمرحلة اللي بعدها لما
- تقدر تخلي حاجة تمشي ناحية حاجة تانية بسرعة ثابتة على أي جهاز
- فاهم ليه بتضرب في
deltaTime - بتكتب كود الحركة والدوران وانت فاهم كل سطر، مش بتنسخه
المرحلة 4 من 5
فيزيا اللعبةالتصادم والجاذبية والقفز
المدة: 2 لـ 3 أسابيع
وبعدها فيزيا اللعبة، يعني التصادم والجاذبية والقفز. الـ engine فيه physics جاهزة، بس لازم تفهمها علشان تعرف تتحكم فيها.
وفي ألعاب كتير، الإحساس أهم من الفيزيا المظبوطة. قفزات ألعاب المنصات المشهورة مش واقعية خالص، بس حلوة في الإيد. هنا بتتعلم الاتنين: تستخدم الفيزيا الجاهزة، وتعرف إمتى تكتب الحركة بنفسك.
هتتعلم إيه
0 من 11اعمل بإيدك
مرحلة Platformer. لاعب بيجري ويقفز، وأرضيات ومنصات، وعملات يلمّها، وشوك لو لمسه يموت ويرجع من أول المرحلة، وعلَم في الآخر لما يوصله المرحلة تخلص.
تعدّي للمرحلة اللي بعدها لما
- القفزة عندك مظبوطة: مفيش قفز في الهوا، واللاعب مبيعلقش في الحيطان
- بتفرّق بين الـ trigger والـ collision وبتستخدم كل واحد في مكانه
- كود الفيزيا عندك في المكان الصح، مش في الـ update العادي
المرحلة 5 من 5
ألعاب صغيرة لآخرهازي Flappy Bird
المدة: 6 لـ 8 أسابيع
وفي الآخر تعمل ألعاب صغيرة جدًا، زي Flappy Bird، وتخلصها لآخرها. لآخرها يعني: فيها قايمة، وصوت، وخسارة، وإعادة، وأعلى سكور، ومنشورة بلينك أي حد يلعبها منه.
الجزء الأخير في أي لعبة هو أصعب حتة: الحاجات الصغيرة اللي محدش بيحب يعملها. وهنا بالظبط بتتعلم تخلّص، ودي أهم مهارة في الخطة كلها.
هتتعلم إيه
0 من 12اعمل بإيدك
3 ألعاب صغيرة منشورة. ابدأ بنسخة من Flappy Bird، وبعدها Pong أو Breakout، وبعدها لعبة صغيرة من فكرتك. كل واحدة فيها قايمة، وصوت، و Game Over، وإعادة، ومنشورة على itch.io.
تعدّي للمرحلة اللي بعدها لما
- عندك 3 ألعاب خلصانة ومنشورة، مش 10 ألعاب واقفة في النص
- حد غيرك لعب لعبتك وفهمها من غير ما تشرحله
- بتعرف تقول «لأ» لأي feature جديدة علشان تخلّص
سلم المشاريع
المشاريع هي اللي بتعلمك بجد، وهي اللي هتوريها لأي حد عايز يشوف شغلك. دول 5 مشاريع، كل واحد أصعب شوية من اللي قبله، وكلهم من المراحل فوق. والأخير هو اللي بيقفل الخطة.
لعبة في الـ console
C#
XO أو «خمّن الرقم»، من غير engine. هنا بتفهم الـ loop اللي أي لعبة ماشية عليه.
لعبة لمّ العملات
Game Engine و Input و UI
أول لعبة جوه engine: حركة، ونقط، وتايمر، وشاشة Game Over، و build بيشتغل لوحده.
Top-down shooter
Vectors و Normalize و Lerp
لاعب بيلف ناحية الماوس، وطلقات، وأعداء بيجروا وراه. كل الرياضيات اللي اتعلمتها في مكان واحد.
مرحلة Platformer
Colliders و Rigidbody و Raycast
جري وقفز ومنصات وشوك. هنا بتتعلم تخلي الحركة حلوة في الإيد، مش بس شغالة.
لعبتك الأولى الخلصانة
كل اللي فات و itch.io
آخر لعبة في المرحلة الأخيرة: فكرتك انت، صغيرة وخلصانة ومنشورة على itch.io. حط لينكها في الـ CV، ومعاها فيديو قصير من اللعب، ولينك الكود على GitHub.
مصادر مجانية
كل دول مجانيين. متجمعش مصادر كتير: اختار مصدر أساسي واحد لكل مرحلة وكمّل بيه، والباقي ارجعله لما تقف في حتة.
C#
- Microsoft Learn: C# (بيفتح في تاب جديدة)الشرح الرسمي لـ C# من Microsoft، من أول برنامج لحد المواضيع المتقدمة.
- Foundational C# with Microsoft (بيفتح في تاب جديدة)كورس C# للمبتدئين من freeCodeCamp و Microsoft، خطوة بخطوة.
Unity
- Unity Essentials (بيفتح في تاب جديدة)المسار الرسمي لأول مرة تفتح فيها Unity: الواجهة، والـ scenes، والـ GameObjects.
- Junior Programmer (بيفتح في تاب جديدة)مسار رسمي بتتعلم فيه تبرمج ألعاب بـ C# جوه Unity، بمشاريع صغيرة.
Godot
- Godot Docs: Step by step (بيفتح في تاب جديدة)الشرح الرسمي لأساسيات Godot: الـ nodes، والـ scenes، والـ scripts.
- Godot Docs: Your first 2D game (بيفتح في تاب جديدة)لعبة 2D كاملة صغيرة، من أول ملف فاضي لحد ما تخلص.
Unreal
- Unreal Engine Learning (بيفتح في تاب جديدة)الكورسات والشروحات الرسمية من Epic، لو اخترت Unreal.
الرياضيات والفيزيا
- Godot Docs: Vector math (بيفتح في تاب جديدة)شرح الـ Vectors للألعاب بالرسم، وينفعك حتى لو شغال على Unity.
- Freya Holmér (بيفتح في تاب جديدة)قناة فيها شرح لرياضيات الألعاب بالرسم والحركة، من Vectors لحد مواضيع متقدمة.
- Godot Docs: Physics introduction (بيفتح في تاب جديدة)أنواع الـ physics bodies والـ collisions، وإمتى تستخدم كل واحد.
- Red Blob Games (بيفتح في تاب جديدة)شروحات تفاعلية لحاجات زي الـ grids والـ pathfinding، هتحتاجها بعد كده.
تخلّص وتنشر
- Kenney (بيفتح في تاب جديدة)رسومات وأصوات مجانية ترخيصها CC0، يعني تقدر تستخدمها في أي لعبة حتى لو هتبيعها.
- itch.io (بيفتح في تاب جديدة)موقع تنشر عليه لعبتك ببلاش، وتلاقي فيه game jams كتير.
- Game Maker’s Toolkit (بيفتح في تاب جديدة)فيديوهات عن تصميم الألعاب: ليه لعبة ممتعة ولعبة لأ.
أكتر الأخطاء اللي بشوفها
- إنك تبدأ بلعبة كبيرة زي GTA. ألعاب زي دي بتشتغل عليها فرق كبيرة لسنين. لو بدأت بيها هتقف في النص، وتحس إنك مش نافع. ورأيي إن لعبة صغيرة خلصانة أحسن من لعبة كبيرة واقفة في النص. الصغيرة الخلصانة بتعلمك كل حاجة، من أول الحركة لحد النشر.
- إنك تنط من engine لـ engine. كل ما تقابلك مشكلة تقول «أكيد الـ engine التاني أسهل». المشكلة غالبًا في الحاجة اللي لسه متعلمتهاش، مش في الـ engine. اختار واحد وخلّص عليه الخطة.
- إنك تفضل ماشي ورا tutorials من غير ما تعمل حاجة لوحدك. بتخلص الـ tutorial وانت حاسس إنك فاهم، وأول ما تبدأ لوحدك متعرفش تعمل إيه. بعد كل tutorial، غيّر فيه حاجة أو زوّد feature من دماغك.
- إنك تقعد ترسم وتعمل assets قبل ما اللعبة تبقى ممتعة. جرب الفكرة بمربعات الأول. لو مش ممتعة وهي مربعات، الرسم الحلو مش هينقذها.
- إنك تهرب من الرياضيات. من غير الـ Vectors هتفضل تنسخ كود الحركة ومش فاهمه، وأول ما تحتاج تغيّر فيه حاجة هتقف. هي حاجات قليلة، اتعلمها مرة وخلاص.
بعد كده
لما تخلص الخطة دي وتنشر ألعابك، دي الخطوات اللي بعدها:
- الـ Game Jams: مسابقات بتعمل فيها لعبة كاملة في وقت قصير، زي يومين أو أسبوع، على موضوع بيتعلن في أولها. أحسن تمرين على إنك تخلّص، وهتلاقي منها كتير على itch.io.
- تنظيم الكود في لعبة أكبر: لما اللعبة تكبر، الكود بيتلخبط بسرعة. كتاب Game Programming Patterns مجاني أونلاين، وبيشرح الطرق اللي بتنظم بيها كود الألعاب.
- تخصص: الـ 3D، أو الـ multiplayer، أو الـ shaders، أو ذكاء الأعداء (AI). اختار على حسب نوع الألعاب اللي بتحب تعملها.
احفظ الصفحة دي، وارجعلها كل ما تخلص حاجة وعلّم عليها. ولو وقفت في مرحلة ومش فاهم، ارجع للي قبلها، غالبًا المشكلة هناك.