في ديسمبر من العام الماضي ، في مؤتمر الألعاب 2017 ، قدمنا
تقريرًا تحدثنا فيه عما إذا كانت الشركات العاملة في صناعة الألعاب تحتاج إلى كتابة محركاتها الخاصة.
الوحدة في مواجهة مجموعة متنوعة من محركات الألعاب
لماذا في العالم الحديث ، حيث يوجد عمالقة مثل الوحدة ، يفعلون شيئًا خاصًا بهم ، ويكتبون محركات ألعابهم الخاصة؟
إليك شريحة تحتوي على بيانات من Unity Technologies حول استخدام محركات الألعاب المختلفة في عام 2017. في العام المقبل ، سيتغير الوضع ، كما تفهمون. ما يهمنا هنا هو 41٪ ، أي محركات التصميم الخاص بنا. إذا نظرت إلى أكبر 5 شركات ممثلة في المؤتمر ، فسيكون لكل منها محركها الخاص. اتضح أنه في معظم الشركات التي تمثل صناعة الألعاب ، يتم استخدام نوع من التطوير الداخلي. ليس هذا هو القرار الأكثر منطقية في العالم دائمًا ، ولكنه كذلك.
ما هي التقنيات الأساسية التي يمكن للشركات التي تفكر في تطوير مشروع لعبة الاختيار من بينها؟
جيش الأمم السبع
يمكن أن يستمر الهرم الذي تراه على الشريحة لأعلى ولأسفل. من الواضح تماما أنه يحد لك. أسفل - نظام التشغيل ، حتى أقل - بعض التقنيات الأساسية. أعلاه هي إضافات على المحركات ، مجموعة أدوات جاهزة تأتي مع الألعاب ، مثل أدوات Neverwinter Nights. مهما فعلت ، بطريقة أو بأخرى ، ستجد نفسك داخل هذا الشيء.
لنفترض أنني أريد أن أكون في المستوى الثاني من هذا الهرم أدناه. ومع ذلك ، تؤدي جميع المسارات في نهاية المطاف إلى أعلى الهرم. سنستخدم شيئًا من القائمة الحالية ، ولكن من المهم جدًا أن نرى في الزاوية اليسرى العليا من المستوى العلوي للهرم ، أي محركات التصميم الخاص بنا.
الآن نقوم بتحليل الوقت والجهد والمال المطلوب لتطوير اللعبة.
العودة إلى الأساسيات
إذا كان المخطط الدائري بالكامل المعروض على الشريحة عبارة عن لعبة ، فإن المحرك هو قطاعه الأزرق. في عالم مثالي ، عند تطوير لعبة ، يمكنك إخراج هذا القطاع الأزرق ووضعه باللون الأحمر أو الأصفر أو الأخضر. يمكنك تغيير حرف "U" كبير إلى حرف "U" كبير آخر ، أو أخذ حرف "x" صغير ، وسيعمل ما تختاره هناك. في الواقع ، الأمر ليس كذلك ، لكن يجب أن نسعى لتحقيق ذلك. تتم ملاحظة صورة مماثلة ، عندما يتعلق الأمر بالمشاريع الحقيقية ، باستمرار في صناعة الألعاب. يحدث أيضًا أن المخطط بأكمله مشغول بالمحرك ، ولكن هذا صحيح فقط لبعض المنتجات التجريبية.
في هذه الحالة ، يتم توزيع المال والوقت وكل شيء آخر بهذه الطريقة. مهما فعلت ، يجب عليك التعامل مع كل ما يقع في المنطقة الخضراء من الرسم التخطيطي. لا يتغير من محرك إلى آخر. ونتيجة لذلك ، إذا كان لديك موارد كافية لدعم العملية الكاملة للعمل على مشروع لعبة ، فلن يكون تطوير المحرك مكلفًا للغاية. ومع ذلك ، إذا بدأ شخص ما في الشركة يتحدث عن تطوير محركه الخاص ، فمن المرجح أن يواجه مجموعة معينة من الاعتراضات. اعتبرهم.
شهر أسطوري للإنسان
لنفترض أنك قررت إنشاء محركك الخاص وإخبار صانع القرار بشأنه. ورداً على ذلك ، ستسمع عن نفس الشيء الذي يمكن رؤيته على الشريحة: "ستفعل ذلك لفترة طويلة ، إنه أمر محفوف بالمخاطر ، وغير منطقي ، ولن يساعدنا في تحقيق أهدافنا". ما الذي يمكن الاجابة عليه؟ النقطة هنا هي أن كل هذه الاعتراضات ، باستثناء الأخيرة ، لا تصمد أمام الانتقاد.
تطور طويل للمحرك؟ ولكن إذا سارت التنمية بمحركها بشكل أسرع ، فهذا ليس حجة. ربما ، بشكل عام ، لا أحد يعرف ما هو "العقلاني". لذلك ، كل هذه الاعتراضات غير موضوعية للغاية.
النقطة الأخيرة المتعلقة بما إذا كان محركك يساهم في تحقيق الأهداف مهمة جدًا. إذا كان هدفك هو كسب بفضل منحة من Unreal 4 ، فربما لا تحتاج إلى إنشاء محرك خاص بك ، لأنه لا يؤدي إلى هذا الهدف. إذا كان لديك هدف ، تحتاج في إطاره إلى القيام بشيء ما بشأن تقنيات معينة ، فأنت لست بحاجة إلى كتابة محركك الخاص - فأنت بحاجة إلى أخذ ما هو. ولكن من المستحيل دائمًا استخدام المحركات الجاهزة بفاعلية. لماذا ، على الرغم من ذلك ، اكتب محركك الخاص؟
13 أسباب
متى قد تحتاج إلى محركك الخاص؟ لنحلل هذه الشريحة بالنقاط:
- الوقت إلى السوق - الوقت المناسب لتسويق المنتج. هذا أمر خطير حقًا. تم تطوير نصف المحركات المستخدمة الآن في الشركات الكبيرة على وجه التحديد لأنه في تلك اللحظة عندما احتاجت هذه الشركة إلى احتلال مكانة بسرعة ، كان تطوير محركها أسرع من أخذ شيء آخر وإتقانه.
هذه قصة لك. كانت لدى إحدى الشركات مهمة للمبرمجين على الموقع تبدو على النحو التالي: "الرجال ، إذا كنت ترغب في العمل معنا ، يرجى كتابة الكويكبات ، والتي يجب أن تعمل على منصة أندرويد دون استخدام مكتبات خارجية. نعتقد أن 8 ساعات كافية بالنسبة لك. لقد حان الوقت. " ثم تم زيادة الوقت إلى 12 ساعة. ربما يبدو مضحكا. في البداية شاهدت هذا ، من الخارج ، ثم نظرت إلى هذه الشركة وطلبت مني أن أخبركم عما أرسلوه في شكل رد على هذه المهمة. كما اتضح ، اجتاز الاختيار أكثر من مائتي برنامج ، أي أنه تم إطلاق هذه البرامج وعملها. هذا يعني أنه إذا أردت فجأة نشر "الكويكبات" لنظام Android ، فهناك ما لا يقل عن 200 شخص يمكنهم القيام بذلك في 8 ساعات. أنا لا أقول أنه يمكن بيعها. لكني أخبرت هذه القصة بحقيقة أنه في كثير من الأحيان ، يكون المحرك هو الوقت المناسب للسوق. قل ببساطة لأن لديك احتياجات صغيرة لدرجة أنك ستدرس التوثيق لنفس Unreal لفترة أطول من مجرد اتخاذ وإعداد الوثائق الخاصة بك.
- رب المنصة هو سيد المنصة. هناك منصات لا توجد أدوات جاهزة لها. على سبيل المثال ، STB ، جهاز فك التشفير (مستقبل التلفزيون الرقمي) - صندوق للتلفزيون الكبلي ، وهو موجود على الطاولة عند كل ثالث أمريكي.
لدى وارنر 120 مليون مستخدم لهذه الخدمة. إذا قمت بكتابة برامج هناك ، بما في ذلك الألعاب ، فلديك دولار من الصندوق. هذا هو 120 مليون دولار في السنة. في الوقت نفسه ، لا يمكن لأي شخص آخر الكتابة عن هذا الشيء إلا أنت. لأنه لا يوجد DirectX ، لا يوجد شيء على الإطلاق. إذا كنت تستطيع كتابة برامج لـ STB ، فأنت سيد المنصة ، ولديك هذه المئات وعشرين مليون دولار سنويًا. لماذا لا تكتب محركك الخاص؟
من الواضح أننا نتحدث الآن أكثر عن شيء مثل ألعاب وحدة التحكم ، ولكن مع ذلك ، قد يكون ذلك ضروريًا في بعض الحالات. هنا ، على سبيل المثال ، ماكينات القمار. بالطبع ، هناك الآن ، بشكل رئيسي أجهزة الكمبيوتر. لكن أمامنا جهاز حديد منفصل وسوق ضخم ، حيث يمكن كتابة شيء خاص بنا.
يمكننا القول أننا مهتمون بالهواتف ، لكننا نتحدث عن ملايين الدولارات. لماذا لا تكتب للأجهزة الأخرى؟ ونتيجة لذلك ، هناك أسباب واضحة للغاية للقيام بذلك.
أو ، على سبيل المثال ، لدينا أحدث الساعات الذكية. لم تصل إليهم SDK بعد ، ولا أحد يفهم ما يجب فعله بها ، وإذا كان بإمكانك ، بمفردك ، كتابة منتج عالي الجودة لهم ، فإنك ، على سبيل المثال ، تكسب دولارًا من كل جهاز. إذا تم بيعها مليونين - فستحصل على مليوني دولار. كتابة هذه ليست صعبة ، ولكن لهذا تحتاج إلى إنشاء محرك خاص بك ، لأنه لا يوجد غرباء ، ومصنعي هذه الأجهزة لن يصنعوا محركات عامة لتطويرها.
- الأجهزة الضعيفة والمفتوحة هي أجهزة صغيرة ولكنها فخورة. إذا كنت تصنع ألعابًا للهواتف المحمولة ، فقم بتجميع بعض الإحصائيات على الأقل ، فأنت تعلم أنه مع الأجهزة من أجهزة Apple ، يكون كل شيء طبيعيًا أو أقل ، ولكن مع نظام Android الأساسي ، فإن هذه مجرد كارثة.
نصف الأجهزة في السوق مبنية على شرائح ARM Mali-400 ، أي هاتف اقتصادي هو Mali-400. وإذا كنت تحصل على أموال مقابل ما تفعله مع تطبيقات الهاتف ، فيجب عليك الكتابة لهذه الأجهزة الصغيرة ولكن الفخورة التي لن تغادر السوق بعد وستتركها قريبًا.
علاوة على ذلك ، في حالة iPhone ، يمكنك القيام ببعض الرهانات على الأقل قيد التقدم. على سبيل المثال ، من المتوقع أن يعمل Unreal تحت iPhone 10 ، على الرغم من أنه حتى يتم وضع كل هذا في الاعتبار ، سيكون هناك بالفعل بعض iPhone 12 أو 15 أو 17. ولكن في حالة العالم بشكل عام ، يكون من الصعب إحراز تقدم على المدى القصير. لأن ترقية الأجهزة بطيئة للغاية.
إذا كنت تريد صورة تنافسية ، وإذا كانت مهمة للغاية ، فلا تذهب إلى الأجهزة منخفضة الطاقة. ولكن يجب أن تضع في اعتبارك أن جميع المحركات الحديثة لا تتقلص كثيرًا. إذا كنت لا ترغب في الحصول على صورة تنافسية ، فعليك أن تأخذ في الاعتبار إمكانيات الهواتف الضعيفة. لذلك ، إذا كنت في موقف لا تهتم فيه بأسرع الأجهزة ، على سبيل المثال ، أنت الموزع الوحيد في مكان ما في البرتغال أو البرازيل ، فعليك التفكير في الأمر.
- اللغة الخاصة بالأفكار الخاصة - اللغات الخاصة بالأفكار الخاصة. عندما تصنع المحرك بنفسك ، يمكنك استخدام هذا المفهوم. الحقيقة هي أن المشكلة الرئيسية في صناعتنا هي أن مجال مصمم اللعبة هو فقه اللغة. يفكر بلغة عادية. لا يمكنه فعل أي شيء آخر. لكن المبرمج يعتقد في مجال البرمجة وهناك فجوة بينهما. ونتيجة لذلك ، فإن تكرارًا معينًا ، والذي يجب أن يتكرر باستمرار ، يكلف ، على سبيل المثال ، دولارين. وأنت تنفق هذا المال باستمرار.
تحاول المحركات القياسية تغطية الجميع. في الواقع ، نرى كيف يحاولون إجراء تحويلات المجال الطبيعية من لغة إلى لغة ومن الفضاء إلى الفضاء. ولكن للجميع. ولديك أفكارك الخاصة ، ويمكنك تنفيذها مباشرة ، مما يجعل مجموعتك من الأدوات. من الواضح أن كل هذا ، في شكل المكونات الإضافية ، يمكن القيام به فوق المحركات الموجودة ، ولكن محركها يفتح إمكانيات مختلفة تمامًا.
- ميكانيكا فريدة = محركات فريدة - ميكانيكا فريدة = محركات فريدة. كتب أصدقائي Minecraft في السنة الخامسة عشرة باستخدام Unity. هل كان هناك أي جدوى من فعل كل هذا - سؤال مفتوح. لكنهم اختاروا المحرك وبدأوا العمل. ومع ذلك ، من الواضح أن المحرك كان يزعجهم للغاية. كان صعب عليهم. كان لديهم تكرارات طويلة جدا. بعد التشاور معهم ، كتبوا ، حرفيا في ثلاثة أيام ، تقديمهم الخاص. علاوة على ذلك ، فإن بقية المدونة المسؤولة ، على سبيل المثال ، عن بناء العالم ، بالطبع ، لم تختف. انتهى كل شيء في C # ، توقفت عن كونها في الوحدة. وبدأ العمل في الغليان. لا أعرف ما إذا كانوا قد تمكنوا من جني الأموال من ذلك ، ولكن الاستنتاج الرئيسي من هذه القصة هو أنهم لم يضطروا في البداية إلى استخدام Unity.
أي أن هناك عددًا كبيرًا من الميكانيكا التي لا تناسبها المحركات القياسية والكبيرة والعالمية لمجرد أنها مصممة لكل شيء. لذلك ، إذا توصلت إلى شيء خاص غدًا ، فإن نوعًا ما من آليات voxel المعقدة ، فإن العمل مع المحركات القياسية سيكون غير ملائم لك. أي أن هناك ميكانيكا لا تناسبها المحركات القياسية ، وهي سهلة التنفيذ بشكل مستقل.
- اللعبة ليست عرضًا - اللعبة هي كل شيء آخر - اللعبة ليست عرضًا ، اللعبة هي كل شيء آخر. لقد تحدثنا بالفعل عن هذا. إذا كانت مشكلتك الوحيدة هي رسم شيء ما ، أو ، على سبيل المثال ، استخدام الصوت لإنشاء لعبة متعددة المنصات ، فحينئذٍ يمكنك مشاهدة قصص مشابهة في الهرم التي نوقشت سابقًا. إذا قلت: "أريد تشغيل الصوت على ثلاث منصات" ، فأنت لا تحتاج إلى حرف "U" كبير لهذا - سيكون "c" صغيرًا كافيًا.
فكرنا في أسباب تطوير محركنا. دعونا الآن نتحدث عن المزايا التي توفرها الشركة في تطوير محركها الخاص.
مزايا تطوير المحرك الخاص بك
ضع في اعتبارك مزايا تطوير محركك الخاص ، بناءً على الأفكار الرئيسية المطروحة على الشريحة:
- غالبًا ما يكون الشراء أفضل من الرهن العقاري - غالبًا ما يكون الشراء أفضل من الرهن العقاري. تطوير اللعبة هو المال على أي حال. هناك طرق لتحقيق الدخل باستخدام أي شراء ليس فقط أفضل من الرهن العقاري ، ولكن هذا هو الخيار الوحيد.
إذا عمل شخص ما على تقنيات الهاتف المحمول ، فأنت تفهم كل شيء. إذا كان الصندوق الموجود على المحرك يقول: "10 بالمائة من الإتاوات" ، فهذا غير مقبول بشكل قاطع ، فلن تكسب الكثير. يمكنك الحصول على ربح مائة بالمائة ، لكنك تعمل من 2. أي إذا كان لديك حقوق ملكية ، فهذا سبب اقتصادي بحت للتخلي عن المحرك. ولكن يجب أن أقول أن ثلاثة ، أو بالأحرى - اثنين من أكثر المحركات شعبية في الوقت الحالي - هذه مجرد مسألة خصومات. أي أن هذا الخيار يختفي على الفور.
- النوعية أفضل من العالمية على المدى الطويل - على مسافة طويلة ، الأدوات المتخصصة دائمًا أفضل من الأدوات العالمية. من الواضح أن العالمية أبطأ دائمًا ؛ فهي أقل إنتاجية وأقل تحديدًا من الأشياء المتخصصة. المحرك المكتوب لمهمة معينة سيتعامل معها بشكل أفضل وأسرع من أداة عالمية. على مسافة طويلة ، الأدوات الخاصة أكثر ربحية من الأدوات العالمية.
- يتم تطوير الأدوات وخطوط الأنابيب داخل - إنشاء خطوط الأنابيب وأدوات التطوير داخليًا. يتم توجيه أي محرك اخترعه أشخاص خارج شركتك بعدة أشياء. الأول هو أفضل الممارسات. أي أن محرك شركة أخرى لا يركز على كيفية رسم فنانك ، ولكن على كيفية رسم الفنانين ، وهو مثالي من وجهة نظرهم. من الممكن أن يرسم فنانونك بشكل مختلف. لديهم خط أنابيب خاص بهم وينجحون.
أمامك خياران: إما إعادة تدريبهم كما ينبغي من وجهة نظر أفضل الممارسات ، أو استخدم خيارًا خاصًا بك. هناك أمثلة بسيطة. لنفترض أنك تقول ، "نحن نستورد نماذج ثلاثية الأبعاد". أنت لا تعرف ما هو على الجانب الآخر. لذلك ، تحتاج إلى تنسيق وسيط. تنسيق وسيط فليكن FBX. FBX يشوب كل من يفعل ذلك. وليس لديك مكان تذهب إليه ، لأنك لا تعرف ما سيتم القيام به هناك ، فلن تكتب المكونات الإضافية لـ 450 من أدوات النمذجة ثلاثية الأبعاد.
عندما تعمل داخل شركتك ، يمكنك تنفيذ نفس خط الأنابيب الذي تمتلكه بالفعل وتضع على رأسك ما تفعله. في الواقع ، هذا مهم جدا. والحقيقة أن كل هذا له علاقة بوقت التطوير ، وبالتالي بالتكلفة. لذلك ، عندما تتطور في المنزل ، يمكنك التخلص من خط الأنابيب الذي لديك بالفعل. خلاف ذلك ، سيكون لديك وثيقة تسمى "قاعدة تحميل النماذج ثلاثية الأبعاد وإنشاء مواد للفنانين" والتي ستكون أكثر من مستند تصميم ، وهو خطأ.
- وقت رد الفعل - وقت رد الفعل. نحن نتحدث عن وقت رد فعل الشركة المصنعة للمحرك على طلباتك ، حول إمكانية تجهيز المحرك بوظائف جديدة ، وحول البحث التشغيلي للتقنيات الجديدة.
لنفترض ، في المكتب التالي ، أشخاص يصنعون المحرك. كل من حاول إصلاح الخلل في المحرك العام ، أي كتابة Unity أو Epic في أداة تتبع الأخطاء ، يعرف أنه من الأفضل عدم البدء حتى. وإذا كان المطورون يجلسون في المكتب التالي ، فيمكنك الاتصال بهم وحل المشكلة في 15 دقيقة.
وينطبق الشيء نفسه على اقتراح الوظائف الجديدة ، إذا كان لديك الحق في القيام بذلك. يتم تبسيط دراسة التقنيات الجديدة أيضًا باستخدام محركاتنا الخاصة.
افترض أن المبرمج الخاص بك ذهب إلى مؤتمر واستمع إلى محاضرة حول شيء جديد هناك. حاول ذلك على الفور ، ولديك فكرة عن هذا الجديد وتعلم ما إذا كنت بحاجة إليه أم لا. يمكنك الرد مباشرة لتجربة شيء مثير للاهتمام من عالم العلوم. وهذا ، بالمناسبة ، يعني أن الشركة قد يكون لها شخص يسمى "باحث". في الوقت نفسه ، يمكنك إجراء بحث حول نفس Unreal ، لأنه يأتي في المصدر.
- الأداء - الأداء. صناعة الألعاب هي دائما إنتاجية. النهج الأول لتحقيق الأداء العالي هو استخدام الحلول المخصصة. كلما كانت الحلول أكثر تحديدًا ، زادت إنتاجيتها. النهج الثاني - بالمناسبة ، عزيزي ، هو تحسين المحركات الجاهزة. كيف سيبدو هذا بالضبط - يعتمد بشكل كبير على هذه المحركات.
إن تطوير محركك ليس ميزة فقط. هذه أيضا مخاطر. اعتبرهم.
المخاطر المرتبطة بتطوير محركك الخاص
فكر في المخاطر المصاحبة لتطوير واستخدام محركاتنا الخاصة:
- وقت التطوير - وقت التطوير. يتقاطع هذا المفهوم مع ما تحدثنا عنه عند دخول السوق. يمكن أن يكون تطوير المحرك طويلاً وسريعًا بما يكفي. لكن وقت تطوير المحرك ، على أي حال ، يساهم في وقت التطوير الكلي للمشروع. لذلك ، هذا أيضًا خطر. على سبيل المثال ، أنا أعرف الفرق التي يميل فيها وقت تطوير المحرك إلى ما لا نهاية.
- الحالات النهائية لقفل البائع - الحالات النهائية للتجليد مع المورد. وهذا لا ينطبق فقط على الشركات الكبيرة ، ولكن أيضًا على الشركات الصغيرة. دعنا نقول أنك استأجرت Vasya ، كتب المحرك ، ثم وقع في الحب ، استقال منك ، ولا أحد يفهم ما كتبه. ونتيجة لذلك ، فإن قفل المورد لديك أسوأ من Google. لأنه لا يزال بإمكانك كتابة رسالة إلى Google ، على الرغم من أنهم لن يجيبوا ، ولكن هنا مع رحيل المبرمج انتهى كل شيء. والنتيجة هي فقدان وقت التطوير وعواقب أخرى غير سارة. يجب أن تكون قادرًا على تجنب هذه المخاطر.
- إعادة اختراع العجلة - اختراع العجلة. النقطة هي أننا نعيش في عالم ما زلت تخترع فيه الدراجات. عند تطوير المحرك ، اتضح أن مصنع الدراجات يتم نقله من رمز اللعبة إلى رمز المحرك ، على الرغم من أنه لا ينتمي إلى هناك.
- نظام بيئي مغلق - نظام بيئي مغلق.كل ما يتم داخل الشركة ينتمي لهذه الشركة. أنا أعرف مجموعة من الشركات التي لديها شيء مثل لغة البرمجة النصية الخاصة بهم. قد يكون نوعًا من XScript يعمل فقط كجزء من حلها.
المبرمجون الذين يعرفون هذه التقنية ، في الواقع ، لا يمكنهم فعل شيء أكثر. يمكن اعتبار هذا أحد العوامل التي تساعد على الاحتفاظ بالموظفين. لذلك ، فإن الإجابة على سؤال ما إذا كان جيدًا أو سيئًا ، وما إذا كان استخدام التقنيات الخاصة بك يمثل خطرًا على الحالة المحددة. على سبيل المثال ، نحاول ألا نستخدم مفاهيم اختراعنا. على سبيل المثال ، أعرف شركة لديها Lua ، مكتوبة بقوة ، مع بناء جملة باسكال. يمكن إتقانها ، لكن هذه المعرفة ميتة ، مثل اليونانية. نحن نحاول جاهدين ألا نتصرف.القضية الرئيسية للحياة والكون وكل ذلك
ضع في اعتبارك قضية مهمة جدًا. ما هي الموارد المطلوبة في المقام الأول لتطوير محركك الخاص؟ مورد بدونه لا معنى للتفكير في صنع محركك الخاص أم لا. الجواب عليه ، بالطبع ، ليس 42. والسؤال هو - ما هو مطلوب على الأقل ليتمكن من القول: "نعم ، لدينا شيء على الأقل ، يمكننا البدء في فعل شيء ما." الجواب على هذا السؤال هو أن المبرمجين مطلوبون لتطوير محركك الخاص.المبرمجين
من أجل إنشاء محرك خاص بك ، أنت بحاجة إلى مبرمجين. إذا كنت لا تعرف ، google الفرق بين الكلمتين "developer" (المطور) و "programmer" (programmer). هذا مهم جدا. المطورين هم المجموعة الرئيسية. يتم ترتيب صناعة الألعاب بحيث لا يمكن تسمية معظم الأشخاص فيها مبرمجين. عذرا ، لكنهم مطورين. المطورون غير قادرين على جعل المحرك بشكل صحيح. مرة أخرى ، إذا نظرت إلى الفرق بين الأول والثاني ، فإن المطورين يصنعون الألعاب ، والمبرمجون يصنعون الأدوات. يصنع المطورون منتجًا ، وتربح الشركة من المنتج ، ولكن يجب أن يصنع المبرمجون الأدوات ، وإلا فلن تعمل ببساطة.من ناحية ، إنه عالم مفتوح للغاية الآن. على سبيل المثال ، أنا أعرف رمز Unreal 4 و CryEngine ، فهو مفتوح. يمكن لأي شخص يريد أن يعرف رمز الوحدة ، وهناك كمية كبيرة من المواد ذات الصلة. هذا يعني أن شخصًا مبرمجًا ويقرأ اللغة الإنجليزية يمكنه القيام بذلك. لا يوجد علم الصواريخ هناك. ولكن من ناحية أخرى ، كما اتضح ، من الصعب جدًا العثور على المبرمجين الذين يقرؤون باللغة الإنجليزية. لذلك ، يجب أن تعرف مكان العثور عليها ، ويجب أن تكون قادرًا على تجنيدهم واستخدامهم والترويج لهم. إذا كنت تعرف كيف ، يمكنك التفكير بالفعل في محركك. إذا لم يكن لديك مثل هؤلاء الناس ، فإنك لن تنجح بعد. ومن الأمثلة على ذلك الظلام. لا يعني ذلك وجود حلول سيئة وجيدة. هناك أشياء لا يمكن أن تعمل في البداية.يجب أن يكون المبرمجون قادرين على التوظيف. تعرف على كيفية التوظيف - يمكنك صنع محرك. لا تعرف كيفية التوظيف - فأنت بحاجة لاتخاذ شيء جاهز. علاوة على ذلك ، الشيء المضحك هو أنه عندما تأخذ شيئًا جاهزًا ، فعندئذ إذا كنت شركة كبيرة ، فأنت لا تزال بحاجة إلى شخصين من هؤلاء المبرمجين الذين يقرؤون باللغة الإنجليزية.إذا كانت هناك حاجة إلى المبرمجين لتطوير المحرك ، فلدينا على الفور بعض الأسئلة. أين تبحث عن المبرمجين؟ كيفية تنظيم عملهم؟ ما الذي يجب الانتباه إليه عند التفكير في مسارات تطوير شركات الألعاب؟وباء تقني
الآن من المناسب تذكر جانب آخر من البحث عن الموظفين ، والذي يتعلق بشكل أساسي بالشركات الكبيرة. هذه الشركات لديها العديد من الأساليب لتعيين الموظفين.أولاً ، يمكنك تجنيد الأشخاص ، والعمل ، وترتيب التدريب ، وتدريبهم داخل الشركة ، والنمو بطريقة ما إلى المستوى المطلوب. هذا نهج طبيعي. في الوقت نفسه ، يتم أيضًا حل العديد من المشاكل التكنولوجية ، لأنه من الأسهل العثور على لغة مشتركة مع شخص يدرك في البداية ثقافة الشركة ويدرس تقنيات معينة.ثانياً ، هناك نهج نعترف به مبدئياً. كيف يعمل الكفير؟ يحول كل شيء إلى نفسه. أنت تأخذ اللبن ، ترمي الكفير هناك - ولا يوجد حليب ، كل شيء تحول إلى كفير. يبدو هذا بالنسبة لنا: "يا شباب ، لنأخذ 5 مبرمجين أقوياء ، سيكون مركزًا للتكنولوجيا الداخلية." وأخبر الجميع أنه إذا كنت تستطيع تحمل تكاليف قسم RnD ، إذا كنت شركة كبيرة ، فقم بذلك. دعهم لا يفعلون أي شيء مفيد من وجهة نظر المال. إذا كانت الشركة قد عززت مكانتها في السوق وطرأ سؤال حول مكان التوسع ، فقد يكون إنشاء قسم RnD هو الجواب على هذا السؤال. عندما تكون الشركة غنية بالفعل ، فهي ليست خسارة أموال ، لأنها تخسر بالفعل الكثير من المال على الكفاءة التي تعمل عليها صناعة الألعاب لدينا الآن لدرجة أنها لن تلاحظ تكاليف البحث.الآن فكر في النهج ، وهو أن الشركة ستنظم فريقًا يصنع المحرك أو بعض الأشياء الأخرى المثيرة للاهتمام. هذا عمل للمستقبل. يمكنك إجراء المقابلات ، قل أنك تعطي المال ، لديك مهمة مثيرة للاهتمام ، أنت تصنع المحرك. يمكنك الاختيار من بين المتقدمين ، ويأتي إليك الناس ، وداخل الشركة لديك دائمًا مثل هذه الأجواء عندما يمكنك تحفيزها وتشجيعها ، ونتيجة لذلك ، تحقيق أهدافك.على سبيل المثال ، لدي بعض الوحدات التي يتم تطويرها من قبل شركات الأغذية ، لأنها تحتاج إليها. أي أن الفيزياء أمرت ، وبدلاً من رؤية بعض الأشياء الخاصة بنا ، نقول: "دعونا نفعل ذلك. لقد توصلنا للتو إلى واجهات مشتركة ، معممة إلى حد ما ، وسوف تفعل ذلك ". وكجزء من المهام النموذجية ، هذا جيد جدًا. هذا ، من حيث المبدأ ، من الجيد نشر التكنولوجيا داخل الشركة.إذا كانت الشركة كبيرة بالفعل لدرجة أنها تستطيع أن تفعل شيئًا مثيرًا للاهتمام داخلها ، فإنها تؤتي ثمارها حتى من وجهة نظر المال. لذلك ، إذا استطعت ، جربها. يمكن أن يبدو كما تريد - على سبيل المثال ، تم إنشاء فرع غير واقعي خاص بك وهناك نعالج كل شيء بالطريقة التي تريدها. على سبيل المثال ، قمت بعمل متصفح في إحدى الشركات التي تتناسب مع 2.5 ميغابايت من الذاكرة. وعمل. لماذا - لا أعرف ، لكن الأمر كان مثيرًا للاهتمام بلا حدود.أعلاه ذكرنا مشكلة شركات الألعاب ، وهي تنظيم التفاعل الفعال بين المبرمجين والمصممين. دعونا نتناول هذه المشكلة بمزيد من التفصيل.عالمين
حان الوقت لتظهر لك مكان عمل مصمم الألعاب لدينا. هذه صورة حقيقية. يتم عرض بعض العروض التوضيحية هنا ، وتنفيذ السلوك ، وبعد ذلك بقليل سنتناول ذلك بمزيد من التفصيل.يتعايش عالمان في صناعة الألعاب. يركز الناس إما على حل المشكلات التكنولوجية ، أو على السرد. وفي الوسط - نوع من الحرف اليدوية. أي أنه لا توجد أدوات عمليًا. كلمات، كلمات، كلمات - فرقعة - كود. مرة أخرى الكلمات - ومرة أخرى رمز. نحن نعتقد أن الأدوات مطلوبة تسمح لك بالاتصال بما سينتج عن العمل في اللعبة ، أو مصمم ألعاب ، أو مدير ، أو موظفين آخرين ليسوا مبرمجين.على الشريحة ، يمكنك رؤية شجرة السلوك ، شجرة السلوك. من حيث المبدأ ، هذا شيء مأخوذ للتو من ويكيبيديا ، ولكن أمامنا تم أخذه من هناك من قبل Unreal. لا حرج في ذلك. لذا ، فإن التوثيق لهذا يكمن على موقع Unreal ، لم يكن من الصعب بالنسبة لنا أن نجعل واجهة مناسبة متوافقة مع ما يتم في Unreal. أي أنه يمكنك أخذ أي مثال من موقع إجراء Anryl ، وهو مثال على السلوك نفسه ، نظرًا لأن التنسيق هو نفسه تمامًا ، وإعادة كتابته على هذا النحو ، وسوف يعمل. هذا يعني أنني جعلت حياتي أسهل ، وأنا لا أكتب وثائق. وهناك الكثير من هذه الأشياء.في المثال من الشريحة ، يحدث شيء ما ، يجري سلطعون ويقبض على شخص ما ، بشكل عام ، لا يهم. في الداخل ، يحل المبرمج المشاكل التي تبدو مثل "اذهب إلى ..." ، "أطلق النار على ..." ، "احسب المسافة" - وهذا كل شيء. كل السلوك الآخر مكتوب في هذا المحرر من قبل شخص ليس له أي علاقة بالبرمجة. وهذا يعمل ، بدلاً من ترجمة النص إلى رمز. علاوة على ذلك ، بالحديث عن التوازن ، دعنا نقول. ما هو التوازن؟ هذه هي 15 عاملاً يمكن تغييرها. وها هو السلوك وليس المعاملات.هذا ، على سبيل المثال ، وصف سلوك "الدوريات" من قبل مصمم اللعبة ، وليس المبرمج. هذا يعني أننا اتخذنا الخطوة التي لا يتخذها معظم الناس. إنهم ببساطة يكتبون في وثيقة تصميم: "الدوريات". ويمكن للمبرمج ترجمة ذلك في 50 طريقة مختلفة. ما هي الدوريات على الإطلاق؟ وهنا يكتب مصمم اللعبة بالضبط ما يعنيه. وهذا انتصار يا أصدقائي. لهذا تحتاج إلى أدواتك الخاصة. من أجل تسهيل الانتقال من التعريف اللفظي لرؤيتك الذي يرى اللعبة ، إذا جاز التعبير ، داخل رأسه ، إلى المبرمجين. خلاف ذلك ، سوف يتوقفون عن كونهم مبرمجين ، وسيصبحون مطورين وسيزيلون العشب طوال حياتهم.الملخص
لتلخيص. تحدثنا عن أسباب كتابة محركك الخاص. لنفترض ، إذا نظرت إلى الأجهزة القديمة ، فهذا ليس جيدًا ولا سيئًا. أي أنك تريد تشغيل ألعابك على نطاق معين من الأجهزة التي لم تعد تدعمها المحركات التجارية. في نفس الوقت ، تريد أن تبدو حديثة. كيف تحقق ذلك؟ اكتب بنفسك.هل تريد امتلاك منصة؟ هل لديك مشروع محدد لا يتطلب ببساطة استخدام حلول عالمية؟ أو ، على العكس من ذلك ، هل لديك مشروع كبير ومعقد للغاية ولديه صورة محددة؟ في هذه المواقف ، مرة أخرى ، يمكنك التفكير في محركك. في نفس الوقت ، من أجل صنع محركك الخاص ، تحتاج إلى موارد. والموارد مبرمجون.ونتيجة لذلك ، إذا كانت لديك أسباب لكتابة محركك ، ولديك الموارد - خذ واكتب.سؤال وجوابسؤال
ما هي قيمة محركك إذا قمت بتقييمه من حيث المال والعمل؟
→ الإجابة
, , , . , . , , . , , Lua, , JavaScript , . , , , , , — . . — 3D, , . , , «» 8 , , , .
?
, . . , . , Lua, , , , Qt — .
, Lua, -, , ?
نعم إنه كذلك. في الواقع ، نحن نعمل على إدخال هذا في مصدر مفتوح ، وكتابة التوثيق ، ونظام التجميع ، والأمثلة.
سؤال
شركتنا لديها وجهات نظر مماثلة جدا لوجهات النظر الخاصة بك ، ولدينا أيضا مشاكل مثيرة للاهتمام. أود أن أعرف - ما هي نسبة تكاليف العمالة الخاصة بك في لعبة أو محرك أو أدوات؟ بمعنى ، كم عدد الأشخاص الذين يعملون على محرك ، في لعبة ، كم عدد الألعاب التي تستخدم محركًا واحدًا؟
الجواب
لدينا الآن محركان ، الإصدار السابق والآخر. أي أن هذا ليس إعادة بيع ديون. هذا محرك جديد تماما إذا تحدثنا عن تكاليف العمالة ، يمكننا القول أن شركتنا كبيرة ، توظف حوالي 500 شخص ، المبرمجين حوالي 250 ، 5 مكاتب. يعمل فريق المشروع على الألعاب. المشروع هو نوع من الألعاب ، ويشارك فيه عدد من الأشخاص. فريق تطوير المحرك هو فريق منفصل. هذا هو نفس الكفير الذي تحدثت عنه ، وحدات النخبة ، هناك أموال ونهج مختلفة قليلاً لبناء الفريق. الآن نحن متقدمون قليلاً على التطور. تم إطلاق مباراتين جديدتين على محرك جديد. هذا مؤلم للغاية ، لأن مطوري اللعبة ليسوا مرتاحين للغاية ، لأنهم يعملون في موقف يمكن فيه أخذ شيء منهم حرفياً والانفجار. ولدينا فريق محرك - هذا هو 6 أشخاص. أوامر المنتجات ، في المتوسط ، شخص من أربعة مبرمجين ، لا يتداخلون.
سؤال
بالمحرك هل تقصد أدوات أيضا؟
الجواب
نعم ، لدينا فريق منفصل لتطوير الأداة. كان لدينا مثال سيئ للغاية. أدوات واجهة المستخدم الرسومية سيئة التصميم. لأن أي مبرمج عادي يعتقد أنه بسيط للغاية. حاولنا الاستعانة بمصادر خارجية. لأنه واضح - أنت تعطي الواجهة الكاملة ، لديك كل شيء ، تقول: "إنشاء نافذة ورسم الأزرار - وهذا كل شيء". لكن هذا المشروع فشل ، لذلك نحن أنفسنا نقوم بذلك ، نعمل بشكل مؤلم مع Qt ، لأنه من المهم بالنسبة لنا أن يعمل هذا على جميع منصات سطح المكتب الثلاثة. لذلك ، نقوم بذلك بأنفسنا. ولدينا 6 أشخاص يفعلون أحدهما والآخر والثالث. لكننا ما زلنا متقدمين قليلاً على طلبات المنتج.
سؤال
هل من الواقعي بيع محركك الآن؟
الجواب
لا. الآن لا يمكنك بيع محركك. يمكنك بيع النظام البيئي. أي أنه من المستحيل العمل على مخطط "أعطني المال ، وسأعطيك محركًا". انتبه إلى عدد الشركات التي لدينا محرك خاص بنا ، وعدد الشركات التي تبيع المحركات. في الواقع ، لا أحد منهم يبيع المحركات. بالنسبة للمبتدئين ، يعد هذا صداعًا كبيرًا إلى حد ما من وجهة نظر أنه يجب تحويله إلى منتج. ما يصلح لك داخل الشركة لا يمكن بيعه بأي شكل من الأشكال. يجب عليك ، على الأقل ، كتابة وثائق يفهمها الآخرون. عليك فقط توظيف بعض جيش المتطوعين الذين سيبشرون هذا العمل. وليس من الواضح ما الذي ستحصل عليه من هذا. وإذا قمت بعمل لعبة متنقلة على هذا المحرك ، فمن الممكن أن تستيقظ كمليونير. لذلك ، من أجل القيام بهذه الأشياء ، يجب على المرء أن يكون من المعجبين ، يجب أن يتأكد المرء من أنك تفعل. لقد تحدثت عن الأسباب التي يمكن أن تؤدي إلى تطوير محركك ، وهنا لديك سبب آخر. لنفترض أنك تعتقد أنك ستجعل المحرك أفضل من Unreal. إذا كان الأمر كذلك ، فانتقل إلى السوق. لكنني لا أعتقد أنني سأفعل أفضل من غير الواقعي.
سؤال
أفهم أن محركك الجديد هو C ++ و Lua؟
الجواب
نعم ، C ++ ، Lua والمزيد JavaScript.
سؤال
لماذا سي ++؟ هل كانت هناك أي خيارات ، أو هل تعلم بوضوح ما الذي ستأخذه؟
الجواب
انظروا ، هناك مثل هذا وزارة الدفاع. كل شخص ثان تقابله يخبرك: "جولانج" أو يقول لك: "صدأ". ولو كانت الآن ، أعتقد بشكل أساسي. ولكن عندما تأتي إلى الشركة كرئيس لعملية تطوير المحرك ، وكان ذلك قبل عام ، فأنت بحاجة إلى وضع بعض الخطط ، وعليك تضمين عنصر "اقرأ عن الذهاب" في هذه الخطط. هنا ، الأداء مهم ، ولكن في C ++ كنا نعمل لفترة طويلة ، نحن نعرف كيفية استخدامه.
لماذا نستخدم لوا؟ لأنها لغة استخفاف ، فهي رائعة للتضمين. لماذا جافا سكريبت؟ لأنه حدث. لأنه لا يوجد شيء في السوق باستثناء V8 و Webkit. وهذه هي monstroids. كما قلت ، لقد صنعنا متصفحًا يستهلك 2.5 ميغابايت من الذاكرة ، وهناك محرك جافا سكريبت يجتاز جميع الاختبارات. لدينا ، وهذا هو السبب - جافا سكريبت. ونتيجة لذلك ، على سبيل المثال ، يمكنك أن تأخذ أولئك الذين يعرفون JS وكتبوا مواقع الويب على React.
سؤال
أخبرني ، هل تستخدم شجرة السلوك فقط للتحكم في السلوك ، أم تستخدمه للتحكم في ميكانيكا اللعبة وتعزيز تقدم اللعبة؟
الجواب
الآن للسلوك ، ولكن لا يزال لدينا بعض الميكانيكا البديلة. لا يزال لدينا ، على سبيل المثال ، شبكات بتري مع محرر ، وهنا المشكلة مختلفة قليلاً ، وهي أنه من الصعب شرح شبكات بتري لمصمم ألعاب. هناك بعض الأشياء الأخرى مع المحررين التي تسمح لك برسم ، على سبيل المثال ، آلة حالة محدودة. ونحن نحاول صنع شيء من كل ذلك. أحتاج الآن إلى جعل الأشخاص الذين يكتبون نصوصًا كتابية في هذا النموذج. لذا نجحت شجرة السلوك ، ولم يتم تضمين الباقي حتى الآن في سير العمل.
سؤال
ما مدى صعوبة التنبؤ بتطور التكنولوجيا في المستقبل؟ أي مدى صعوبة التنبؤ بظهور بعض المزالق وما شابه؟
الجواب
في الوقت الحالي ، أرى مشكلة واحدة. الآن تبدو تقنية WebAssembly مثيرة للاهتمام. الفلاش مات. بطبيعة الحال ، نريد نشرها في مكان آخر على الويب. إن نقل لعبة ، على سبيل المثال ، من Unity إلى WebGL هي مهمة لا يمكن حلها بنقرة زر واحدة. أي أننا الآن ننظر إلى WebAssembly ولم يتضح بعد ما إذا كان هذا هو المعيار أم لا ، أو ابدأ العمل معه الآن ، أو انتظر. في تكنولوجيا الهاتف المحمول ، لا يحدث شيء خاص أيضًا. لا توجد انفجارات فردية حتى الآن ، ولكن إذا حدث ذلك ، فسنستعد.
في النهاية ، أود أن أقول أنه مع التصميم المعياري العادي ، مع التصميم العادي ، وآمل بشدة أن تكون طبيعية معنا ، عندما تظهر تقنيات جديدة ، يمكنك ببساطة إزالة المحرك القديم ، ووضع المحرك الجديد هناك ، وسيعمل كل شيء.