برمجيات مصممة لطريقة عملك.مصر · السعودية · الإمارات

خطة تعلم Game Development من الصفر: من أول سطر كود لحد أول لعبة خلصانة

الخطة كاملة لو بتبدأ من الصفر: 5 مراحل بالترتيب، في كل واحدة إيه تتعلمه بالظبط، ومشروع تعمله بإيدك، ومدة تقريبية، وإزاي تعرف إنك جاهز للي بعدها.

لو عايز تعمل ألعاب، متبدأش بلعبة زي 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 مشاريع، كل واحد أصعب شوية من اللي قبله، وكلهم من المراحل فوق. والأخير هو اللي بيقفل الخطة.

  1. لعبة في الـ console

    C#

    XO أو «خمّن الرقم»، من غير engine. هنا بتفهم الـ loop اللي أي لعبة ماشية عليه.

  2. لعبة لمّ العملات

    Game Engine و Input و UI

    أول لعبة جوه engine: حركة، ونقط، وتايمر، وشاشة Game Over، و build بيشتغل لوحده.

  3. Top-down shooter

    Vectors و Normalize و Lerp

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

  4. مرحلة Platformer

    Colliders و Rigidbody و Raycast

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

  5. لعبتك الأولى الخلصانة

    كل اللي فات و itch.io

    آخر لعبة في المرحلة الأخيرة: فكرتك انت، صغيرة وخلصانة ومنشورة على itch.io. حط لينكها في الـ CV، ومعاها فيديو قصير من اللعب، ولينك الكود على GitHub.

مصادر مجانية

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

C#

Unity

Godot

Unreal

الرياضيات والفيزيا

تخلّص وتنشر

أكتر الأخطاء اللي بشوفها

  • إنك تبدأ بلعبة كبيرة زي GTA. ألعاب زي دي بتشتغل عليها فرق كبيرة لسنين. لو بدأت بيها هتقف في النص، وتحس إنك مش نافع. ورأيي إن لعبة صغيرة خلصانة أحسن من لعبة كبيرة واقفة في النص. الصغيرة الخلصانة بتعلمك كل حاجة، من أول الحركة لحد النشر.
  • إنك تنط من engine لـ engine. كل ما تقابلك مشكلة تقول «أكيد الـ engine التاني أسهل». المشكلة غالبًا في الحاجة اللي لسه متعلمتهاش، مش في الـ engine. اختار واحد وخلّص عليه الخطة.
  • إنك تفضل ماشي ورا tutorials من غير ما تعمل حاجة لوحدك. بتخلص الـ tutorial وانت حاسس إنك فاهم، وأول ما تبدأ لوحدك متعرفش تعمل إيه. بعد كل tutorial، غيّر فيه حاجة أو زوّد feature من دماغك.
  • إنك تقعد ترسم وتعمل assets قبل ما اللعبة تبقى ممتعة. جرب الفكرة بمربعات الأول. لو مش ممتعة وهي مربعات، الرسم الحلو مش هينقذها.
  • إنك تهرب من الرياضيات. من غير الـ Vectors هتفضل تنسخ كود الحركة ومش فاهمه، وأول ما تحتاج تغيّر فيه حاجة هتقف. هي حاجات قليلة، اتعلمها مرة وخلاص.

بعد كده

لما تخلص الخطة دي وتنشر ألعابك، دي الخطوات اللي بعدها:

  • الـ Game Jams: مسابقات بتعمل فيها لعبة كاملة في وقت قصير، زي يومين أو أسبوع، على موضوع بيتعلن في أولها. أحسن تمرين على إنك تخلّص، وهتلاقي منها كتير على itch.io.
  • تنظيم الكود في لعبة أكبر: لما اللعبة تكبر، الكود بيتلخبط بسرعة. كتاب Game Programming Patterns مجاني أونلاين، وبيشرح الطرق اللي بتنظم بيها كود الألعاب.
  • تخصص: الـ 3D، أو الـ multiplayer، أو الـ shaders، أو ذكاء الأعداء (AI). اختار على حسب نوع الألعاب اللي بتحب تعملها.

احفظ الصفحة دي، وارجعلها كل ما تخلص حاجة وعلّم عليها. ولو وقفت في مرحلة ومش فاهم، ارجع للي قبلها، غالبًا المشكلة هناك.

لديك مشروع يحتاج من يبنيه؟

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

ابدأ مشروعكاختر الخدمة المناسبة