مذكرة لمطور لعبة كمبيوتر مبتدئ


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

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

1. من أين تبدأ؟


من الممارسة. يمكنك أن تبدأ بـ C النقي و OpenGL / DirectX ، هذه هي طريقة الساموراي ، لأن تعلمها من نقطة الصفر ، دون أي تجريد ، أمر صعب للغاية.

يمكنك استخدام أطر عمل مثل SDL أو LibGDX / PyGame / LÖVE2D من المستوى الأعلى إذا كان C / C ++ مرتبكًا جدًا. هنا يكون مستوى التجريد أعلى قليلاً ، لذا فالعمل أسهل كثيرًا ، لكن عليك القيام بتنظيم كامل للبنية الداخلية للعبة بنفسك ، وإدراك ماهية حلقة اللعبة وكيفية تنظيم نظام الأحداث فيها. يوفر هذا النهج مستوى جيدًا من المعرفة والمهارات ، لكنه في البداية لا يوفر حافزًا للتسلق إلى أعماق براري الحديد.

وأخيراً ، يمكنك أن تأخذ محرك لعبة مثل Unity / Unreal / CryEngine / Godot ، وتصنع لعبة عليه.

لذا ، كيف نختار من كل هذا التنوع؟ ولكن هذا ليس سوى جزء صغير. الفخ النموذجي الذي يقع عليه المبتدئ الذي لا يزال غير مطور هو اختيار الأداة. الإطار / المحرك واللغة. تتم قراءة العديد من المقالات ، تتم مشاهدة مقاطع الفيديو التعليمية ، في مكان ما تقال فيه أشياء رائعة عن شيء ما ، في مكان ما يتم سرد الأشياء السيئة عن نفسه ... لا يوجد نظام مثالي ولا وجود له ، وإلا فإن محرك اللعبة المثالي قد تم اختراعه منذ فترة طويلة (مع Ideal لغة البرمجة) ، وكل الشركات تبحث ببساطة عن "مبرمجين" ، وليس مبرمجين في أي نظام بيئي معين. نحن فقط نأخذ الأداة الأكثر ملاءمة لمهمتنا ، أو ما شابه ذلك تمامًا ، ويمكن للشخص الذي لا يختار البقاء في نفس المكان كما كان الحال منذ سنوات ، دون أي تقدم.
إذا كيف تختار؟ يمكننا فقط أن نأخذ أول واحد ، ونبدأ في فهم. لا أحب ذلك عند استخدامه لفترة أطول من أسبوع أو أسبوعين؟ نأخذ ما يلي ، ونكتب على الفور شيئًا بسيطًا مثل الأفعى ، على طول قراءة الوثائق للأداة المحددة والبحث في Google عن كل شيء آخر ، وكتابة مستند التصميم الخاص بـ Super Game ، والذي سيقتل Diablo و Doom في نفس الوقت. لماذا تبدأ بشيء بسيط عندما يكون لدينا بالفعل فكرة لعبة سوبر؟ كل شيء بسيط للغاية ، ومستوى المهارة لدى مطور مبتدئ دائمًا ما يكون منخفضًا للغاية بحيث سيعيد كتابة لعبته الفائقة عشرين مرة ، ولن ترقى النتائج إلى مستوى التوقعات ، وخلف هذا الإحباط هو تهدئة كاملة لفكرة كتابة لعبتك والبرمجة بشكل عام. في بداية التدريب ، نقوم بأشياء بسيطة يمكنك أن تشعر بها على الفور واللعب مع الأصدقاء هناك ، والتنافس في السجلات. هذا هو حافزنا ، هذا فرحنا من التعليم الذاتي ونشاط الدماغ المثمر ، وهذا شيء لا يسمح لنا بالاحتراق. بعد الأفعى ، يمكنك أولاً إلقاء نظرة على هذا الثعبان ومحاولة إعادة كتابته "بالطريقة العادية" ، لأن الثعبان الأول ، حتى وإن كان يعمل بشكل ممتاز ، سيكون له هيكل داخلي يشبه الوحش ، وسيكون تغيير شكل الثعبان أمرًا صعبًا للغاية ، وستكون إضافة مكافأة جديدة إليه أكثر صعوبة . ثم أعد كتابته مرة أخرى ، أو انتقل إلى شيء آخر ، وإلا فإن هذا الثعبان يجلس بالفعل في الكبد. الآن سنصنع ، على سبيل المثال ، كرة القفز من الجدران ، والتي تحتاج إلى الدخول إلى الحلبة ، لا يهم ما ستكون في الواقع فكرة.

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

2. كيفية الدراسة؟


هنا واحدة من المهارات المفيدة للغاية تسمى "googling" مفيدة لنا. يعد الإنترنت مصدرًا ضخمًا للمعلومات ، والتي عادةً ما يتم التقليل من أهميتها في ذاكرتي ، والصفحة الثانية من محرك البحث لا يمكن الوصول إليها بالفعل. لذلك ، نتعلم أن نوجه هذه الأسئلة إلى محرك البحث بحيث يعطي العينة التي نحتاجها. بشكل عام ، في البداية ، ستنخفض دروس الفيديو. ويمكنك قراءة الكتب المدرسية. تتمتع دروس الفيديو بميزة أنها تعطي على الفور نتيجة ملموسة في وقت قصير ، وهو أمر مفيد جدًا للدوافع ، لكنهم يواجهون مشكلات كبيرة مع اكتمال المعلومات ، لذلك لا أحد ألغى الكتب المدرسية والوثائق. يمكنك البحث عن أمثلة على الكود على github وإلقاء نظرة عليها ، وهذا درس مفيد للغاية ، يمكنك من خلاله تعلم ما لا يقل عن الكتب المدرسية. نحن ننظر إلى كل شيء غير مفهوم في رمز شخص آخر ، وننظر على الشبكة لمعرفة ما كان عليه هنا. ثم نستخدم (أو لا ، الكالينجيون). يتم تشجيع سرقة الأفكار والمفاهيم فقط (إذا كان الرمز تحت ترخيص مجاني). إذا كان شيئًا ما معقدًا تمامًا ، ولكنه ضروري للغاية - لا يُسمح بالاتصال بالأشخاص الآخرين في المنتديات وغرف الدردشة ، لكن من السهل جدًا البدء في إساءة استخدام هذه الطريقة ، لذلك لا ينصح بذلك وفقط إذا تم خبزه بالكامل ، ولم تنجح عدة ساعات من البحث المختص. من مجالات الرياضيات ، أنصحك بشدة بقراءة وفهم الجبر المتجه ، والهندسة التحليلية ، ونظرية الاحتمالات ، والكثير من الكلمات الذكية ، نظرًا لأن هذه مجالات عالمية تمامًا لا تفيد في الألعاب فقط. من اللغات - الإنجليزية واضحة ، ومعظم الوثائق مكتوبة باللغة الإنجليزية. استخدام المترجمين ليس ممنوعًا. مرة أخرى ، نحن في أمس الحاجة إلى تعلم كيفية التعلم والبحث عن المعلومات ، وسوف يكون مفيدًا في كل مكان ودائمًا ، وليس فقط في هذا المجال. ومع ذلك ، ينبغي ألا يحجب التدريب الممارسة والعكس صحيح. من المستحسن الحفاظ على نسبة الوقت بين الكتابة والدراسة على مستوى 20/80 ، وبعد ذلك ، يمكن إضافة الممارسة فقط ، الطلاب الأبدية جيدون ، ولكن غير عملي. موازنة الوقت.

3. مطلوب شيء أكثر خطورة؟


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

4. أين تبحث عن المكتبات؟


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

5. الخاتمة.


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

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

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

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

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

شكرا لقراءتك ، هذا المقال يخضع للنقد والإضافات.

Source: https://habr.com/ru/post/ar470199/


All Articles