قديما عندما كانت الألعاب تعمل على اجهزة الحاسوب وغيرها، كانت تلك الاجهزة قليلة الموارد، ووقتها لم تكن هناك محركات العاب تُمكن المطور من التطوير مباشرة. بل أحتاج إلى تعلم الرياضيات وبعض من الفيزياء فقط حتى يجعل الكرة ترتد من الحائط بالاتجاه الصحيح !
في الوقت الحالي، محركات الألعاب توفر تقنيات وأنظمة سهلة الاستخدام للمطورين، فيمكن للمطور صنع لعبة عالية المستوى بدون أن يعرف قانون مساحة المثلث حتى.
لا هل مازالت الرياضيات والفيزياء بالفعل مهمة؟ فهي مازالت تُدرس في المعاهد الخاصة بتعليم تطوير الألعاب، رغم أن المحركات تُغنيك عنها
عناصر المقال
هل تعلم الرياضيات والفيزياء مهم؟
للاسف لا يوجد اجابة مباشرة في هذا الموضوع، نعم تعلم الرياضيات والفيزياء يجعلك أفضل في تطوير الألعاب، ولكن لا حاجة لأن تتعلمها مخصوصا لاجل ذلك. بل ربما فقط بعض الدروس الاساسية وانتهى الامر.
نعم، لأنك تحتاج أن تعرف بعض الامور في الرياضيات والفيزياء حتى تصبح مطور العاب اصلا، وكلما استزدت فيهما، زادت خبرتك في تطوير الألعاب وأمكنك صنع العاب افضل.
ولا لان الكثير من الألعاب لا تعتمد على أيا منها، بل فقط اللاعب يضغط على بضعة أزرار هنا وهناك حتى ينتقل الى مرحلة مختلفة، مثل العاب الروايات المرئية (Visual Novel) او العاب الواجهات (Menu-based).
وعموما يختلف هذا المجال عن الكثير من المجالات الاخرى التقنية في هذا الشأن، ففي تطوير المواقع او التطبيقات، لا تحتاج لتعلم الفيزياء الا لو فقط كان المشروع بحد ذاته يتضمن ذلك، ولكن هنا الوضع مختلف قليلا.
فرغم أن محركات الألعاب الأن تزيل عنك الكثير من عبء الرياضيات والفيزياء، إلا انه أحياناً تحتاج الى واحدة منهما او كليهما لو كانت لعبتك تعتمد كثيرا على تقنية تتعلق بتلك المجالات.
وفي نفس الوقت، حاجتك لفهم الرياضيات بالذات يعتبر شيئا أساسيا إذا أردت فهم كيف يحصل ما يحصل من طرف المحرك، على سبيل المثال، دالة lerp التي تُرجع لك قيمة محددة بين نقطتين على حساب النسبة التي وضعتها.
لذلك يجب التفريق بين تعلمك انت كمطور العاب للرياضيات والفيزياء، وتعلمك انت كمطور محركات العاب لها، فالأول لا يحتاجها كثيرا، لكن الثاني لا يستغنى عنها.
متى تكون مهمة
وضحت انها مهمة وغير مهمة في نفس الوقت، مهمة لمطور محركات الالعاب، الشخص الذي يتعامل مباشرة مع تقنيات إنشاء العوالم ومكتبات الرسوميات لعرض اللعبة، وايضا تحتاج لكليهما بكثرة لأنشاء تقنيات فيزيائية في محرك.
تحتاج الى الكثير والكثير والكثير، بل وايضا الكثير من الرياضيات والفيزياء أن اردت صناعة محرك العاب، بل ايضا ستحتاجها كثيرا أن قررت صناعة لعبتك الخاصة دون محرك العاب.
ونظرا لأنه قديما لم تكن محركات الألعاب قوية بما فيه الكفاية وليست بها كل التقنيات المعاصرة، يجب على مطور الألعاب أيضا أن يتعلم الرياضيات والفيزياء، لانه كثيرا ما قد يحتاج إلى صناعة تلك التقنيات بنفسه.
ذلك لا يعني أنك لست في حاجة إليها الآن، فلو كانت لعبتك تعتمد على الفيزياء بكثرة، فوقتها ستحتاج إلى تعلم الفيزياء والرياضيات، ليس فقط الاساسيات، بل ربما يصل الامر الى تعلم ميكانيكا الكم!
لقد بالغت قليلا، لا حاجة لتعلم ميكانيكا الكم، ولكن المقصد أنك بحاجة لتعلم الكثير في الفيزياء بالدرجة الكافية التي تحتاجها لعبتك، لان في هذه الحالة لا أحد يعرف ما هي الفكرة التي تريد عملها.
ايضا تحتاج إليها أن قررت التعامل مع تقنيات الشيدر (shader) برمجيا، فقد تحتاج الى فهم كيفية التعامل مع المعادلات الرياضية، لأنك ستتعامل كثيرا معها بسبب اليوفي (UV) وكيفية ترويضها لتحصل على ما تريد.
هل يمكن صنع العاب دونهما؟
نعم، اكيد، بالطبع.
في الوقت الحالي يمكن للمرء تعلم تطوير الألعاب ولا يعرف الكثير عن الرياضيات، يكفيه فهم الأرقام والنسب والاحداثيات وانتهى الامر، لان المحرك سيغنيه عن الباقي بالتقنيات الجاهزة.
لا حاجة لتعلم قوانين فيثاغورس وعلم المثلثات وكيفية إيجاد المساحات، ولا حاجة لتعلم التفاضل والتكامل.
لأنه يمكن بسهولة تنفيذ كل تلك بأوامر وتعليمات (code) داخل المحرك او من لغة البرمجة التي تستعملها مباشرة.
تكمن المشكلة في نقطتين فقط، الاولى أن في الكثير من الأحيان الصغيرة تجد أنك بحاجة إلى الرياضيات لفهم سبب مشكلة ما، أو الوصول الى نتيجة ليست واضحة من أول مرة.
المشكلة الثانية هو التعامل مع النسب والمتجهات، لان كل شيئ في اللعبة يتعامل مع الثانية، أما الأولى تحتاج إليها في بضعة تقنيات، مثل معرفة كم نسبة صحة العدو، بالتالي تعرضها بما يتناسب مع ذلك في شريط صحته.
ما الذي يجب تعلمه؟
يمكن هنا تقسيم تعلم الرياضيات والفيزياء الى 3 اقسام، الاول هو الأساسي، الذي يجب على الجميع تعلمه، ولا يمكنك أن تترك شيئا فيه، المستوى الثاني يضمن لك فهم أعمق لكيفية عمل المحرك بالتالي تحل مشاكله اسرع، وايضا تصل الى تقنيات أفضل، أما المستوى الاخير فهو فقط لأولئك من يريدون عمل العاب فيزيائية – أو تعذيب أنفسهم 🙂
فتكون مواضيع المستويات كالتالي:
المستوى الأول : أساسي
- الجبر : إيجاد المجهول وتطبيق ذلك على المتغيرات والمعادلات
- الجبر الخطي : وهو متعلق بالمتجهات، وذلك لتمثيل حركة الكائنات وحجمها وموقعها في عالم اللعبة.
- فيزياء القوى : وهي أن كل كائن يتأثر بقوى ما، مثل الجاذبية والاصطدام وحتى التسارع
المستوى الثاني : حل المشاكل
- علم المثلثات : فهم الجيب وجيب التمام والظل لحل المشكلات المتعلقة بالزوايا. يمكن أن يكون هذا مفيدًا لحركة الشخصية وآليات التصويب.
- الاحتمال والاحصاء : وذلك لتطبيق وتوزيع قيم محددة او عشوائية على عناصر مختلفة في اللعبة
- التفاضل والتكامل (الأساسي) : وذلك لفهم عمليات التراكم والتغير والتسارع مفيدة لعمليات المحاكاة
- التصادمات: تعلم كيفية تفاعل الأجسام عند الاصطدام، بما في ذلك مفاهيم مثل المرونة ونقل الزخم.
المستوى الثالث : العمق
- ديناميكا الأجسام الصلبة : وهو التعامل مع الأجسام واصطدامها وتأثيرها على بعضها الآخر.
- التفاضل والتكامل (بعمق) : استخدام المشتقات لحساب الحركة المعقدة ومحاكاة الفيزياء
- ديناميكيات الجسم الرخو: محاكاة الأجسام القابلة للتشوه مثل القماش أو العضلات
- كل ما سبق ذكره ولكن بشكل أعمق*
وتذكر أنك لست في حاجة إلى المستويات العميقة إلا فقط لو كانت لعبتك تعتمد على ذلك.
متى وأين تتعلمها؟
اسأل نفسك اولا، انت في اي مرحلة؟ ما الذي تحتاجه الآن؟ هل مازلت مبتدئا كثيرا لدرجة لا تُمكنك من حل معادلة صغيرة، أم أنك وصلت لمشاكل تتعلق بإنشاء معادلات لتسريع شيفرتك (script)؟
وجود مشكلة في فيزياء لعبتك ليس بالضرورة سبب يجعلك تفكر في ذلك، لربما المشكلة تكمن في متغير بسيط وهو فقط ما تحتاج لمعرفته.
اتذكر مرة اني بحثت لقرابة أسبوع عن مشكلة فيزيائية في لعبتي، لأكتشف في النهاية أن المحرك كان لديه حل لها بالفعل من البداية، وهو تغير متغير ما من 0.1 الى 0.2 وانتهى الامر. فلم احتج لتعلم فيزياء الاصطدام وقتها.
وذلك كان اجابة سؤال متى، وهو باختصار، تعلم عندما تقرر زيادة مهاراتك في تطوير الألعاب.
بالنسبة لسؤال أين، فيوجد العديد من المصادر العربية التي توفر دروسا تتعلق بالرياضيات، منها اكاديمية خان و منصة نجوى، فالاولى بها موسوعة كبيرة من الدروس في العديد من المجالات، والثانية تهتم بالمناهج التعليمية من الابتدائية وحتى المرحلة الثانوية، بالتالي يمكنك اختيار ما تشائه وبدء التعلم.
ايضا يمكنك البحث عن الدروس باسمائها، او تحديد المشكلة التي تواجهك ثم البحث عن الدروس المتعلقة بتلك المشكلة.
تلخيص.
الرياضيات والفيزياء ليست أساسية في مجال التطوير الألعاب المعاصر، كانت اساسية سابقا قبل تواجد محركات الالعاب، اما الان، لا تحتاج كمطور العاب التعمق فيهما، بل يكفيك الاساسيات فقط.
ويعتمد تعمقك فيهما على ما تريده أنت، فإن اردت صناعة محرك الألعاب خاصتك او أنشاء لعبة تعتمد بشكل كبير على الفيزياء والحركة وغيره، فعندها ربما تحتاج الى تعلم الفيزياء والرياضيات.