مرحبا بالجميع ، أيها الأصدقاء الأعزاء! أجلس هنا ، انظر إلى ورقة التعليمات البرمجية التي لا نهاية لها ، وإجراء مراجعة مع جرة من بو الأحمر. لقد مر عام. عام ، لعنة ، سنة واحدة فقط - الكثير والكثير في نفس الوقت. لدينا خطط نابليون لهذا العام ، والآن يبدو أننا لم يكن لدينا الكثير من الوقت. من ناحية أخرى ، تمكنا من القيام بشيء يستحق الدخول في سجلات ayty التي تحمل علامة "الخرف والشجاعة". أود أن أسمي هذه القصة "كيف تدق محرك سيارتك بالأدوات وتصبح من الصفر في غضون عام واحد فقط." سيتم إصدار المنشور في عدة مجلدات ، لكن إلى أين تذهب ، يجب أن تبدأ من مكان ما. لذلك دعونا نذهب!
منذ عام بالضبط ، بدأنا بمشروع ، أخطط الآن للكتابة عنه بالتفصيل الكامل. من ذروة التجربة أستطيع أن أقول بأمان: هذا هو واحد من أكثر الأشياء الخطرة والطموحة التي بدأناها من أي وقت مضى. أعتقد أن تجربة فريقنا ستكون مفيدة لمطوري الألعاب الآخرين ، لكنه على الأقل سيسلي اللاعبين.
أود هنا أن أقدم نفسي: اسمي إيفان ، أنا المدير التقني لشركة شابة لكن طموحة. آخر 5 سنوات كنت أطور محركات تجارية. في الأعوام السبعة الماضية ، عمل في شركة ألعاب كبيرة ، حيث كان يعمل على محرك لعبة متعددة اللاعبين للجلسات. حسنًا ، قبل ذلك ، في جميع أماكن العمل السابقة ، أنشأ محركات أو اللعبة بأكملها. وتوضيحًا مهمًا: لقد حدث أن خبرتي في تطوير المحركات تقريبًا مرتبطة بمنصات متنقلة.
كان أول مشروع شاركت فيه هو تطوير محرك ثلاثي الأبعاد متوافق مع OpenGL للأجهزة المحمولة لموتورولا. ثم كان هناك محرك للألعاب غير الرسمية ، حيث كان عملاؤنا الفنون الإلكترونية ، Chillingo ، Big Fish Games وغيرها من الشركات البارزة وغير البارزة. بعد ذلك ، تم استخدام هذا المحرك في مشروع لعبة كبيرة.
بشكل عام ، تطور المحرك الذي عملت عليه على مر السنين. لقد كانت تقنية مفتوحة المصدر ، وبدأنا في تطويرها عندما كانت الشركة تحت رعايتنا صممنا ألعاب لعملائنا كانت صغيرة جدًا. واصلنا الانتهاء منه ، وأصدرنا أخيرًا واحدة من أول لعبة MMO لإطلاق النار على نظام iOS / Android ، مما حقق نوعًا من الاختراق في السوق التي ما زالت ناشئة لرماة الهواتف المحمولة.
منذ حوالي عام ، أخذت قلبي وقررت أن أغادر الشركة ، وأترك المشروع محبوبًا وعزيزًا على قلبي ، للذهاب في رحلة مجانية. لم يكن الأمر سهلاً ، لقد شككت لفترة طويلة ، لكن التجربة المتراكمة والمعرفة المكتسبة على مدار سنوات العمل تشير إلى أنه يمكن تجميع كل أمتعتي في شيء لا أقل أو ربما أكثر برودة. لقد كان لدي فكرة عن كيفية القيام بذلك ، لكنني لم أكن متأكدة من أننا يمكن أن نفعل ذلك بمساعدة فريق صغير ، أننا سنتمكن من إنتاج تكنولوجيا عالية الجودة وشائعة في السوق في وقت قصير. لكن ، كما تعلمون ، فإن الثروة تفضل الشجعان ، ونجحنا. بسرعة كبيرة ، قمنا بتجميع فريق من المحترفين ، مدفوعين برغبة مشتركة - لإنتاج تقنية جديدة وفريدة تمامًا من شأنها أن تُظهر للسوق كيفية تحقيق أقصى استفادة من الأجهزة المحمولة الحديثة.
وهنا بدأت المتعة. في غضون شهر من وجود بدء تشغيل اللعبة لدينا ، تم تشكيل خطة. شيء جديد تمامًا وفريد تمامًا ، يتجاوز كل الحلول الحالية. يبدو طموحا جدا وبارد ، أليس كذلك؟ لذلك هو! ولكن كانت هناك مخاطر. لقد وضعنا هدفًا - لتحقيق فكرتنا غير المتشددة في غضون عام واحد ، وفي عام ونصف العام لإطلاق مباراتنا الأولى.
وأنا أعلم ، في هذه اللحظة ، يبدو الأمر سخيفًا. ولكن - بشكل غير متوقع - وجدت هذه الفكرة المجنونة في فريقنا العديد من المؤيدين (وهذا ما أثبت مرة أخرى مدى أهميتها عند محاولة تحويل الجبال للحصول على دعم نفس المغامرين ذوي الأفكار المتشابهة). إنها خطيئة يجب إخفاؤها ، وفكرة تقليص محركك الخاص تحفز المبرمجين حقًا على الاستغلال. تذكر الكثيرون التاريخ الطويل لألعاب 4A ، حيث ابتكر المطورون ، بعد أن تركوا شركة GSC ، من الصفر محركًا لمباراة المترو المشهورة. يبدو لي أن نجاح اللاعبين من 4A يحفز أكثر من فريق واحد من البرامج كما ألهمنا.
بشكل عام ، قررنا. ستكون هذه قصتي. في مدونتنا ، مع زملائي ، سوف أخبركم عن المعذبة التي ولدت بها تقنيتنا ، والتي من خلالها شقنا طريقنا إلى النجوم ولماذا اتخذنا بالضبط تلك القرارات التي اتخذناها في النهاية. سأخبرك بترتيب زمني عن تاريخ محرك Blitz من أول يوم من التطوير إلى الإصدار النهائي. دون أي تجميل للمطبخ الداخلي ، فقط الحقيقة النقية.

السؤال الأول الذي من المحتمل أن تطرحه هو: "لماذا لا الوحدة أم غير الواقعية؟" حسنًا ، السؤال منطقي وصحيح تمامًا.
بشكل عام ، اختيار محرك الأحلام - المحرك الذي ستجعل منه اللعبة التي ستكسب الملايين ، سيواجه جميع مطوّري البرامج المستقلة خيارًا: Unity أو Unreal. في الواقع ، كلاهما لهما إيجابيات وسلبيات ، لكن لماذا لم يناسبنا؟
لنبدأ مع الوحدة. هناك بعض الأسئلة عليها ، باستثناء سؤال واحد: هو C # ، وننشره في C ++. تبعا لذلك ، تختفي الوحدة. إذا كنت ترغب في تقديم المشورة لنا بشأن الوحدة ، لأنها تقنية ممتازة تتيح لك الكتابة بلغة C ++ برغبة كبيرة ، فلنكن صادقين: إنها ليست لغة C ++ كاملة. ونحن لسنا المطورين C # ونحن لا نخطط لتصبح بعد. المشكلة الثانية هي أنه على الرغم من الجهود التي يبذلها مطورو Unity ، فإنها ليست أسرع التقنيات من حيث الأداء. القرارات المتخذة تفرض قيودًا ، بما في ذلك على الأداء.
غير واقعي - على ما يبدو ، في ++ ، وكتب الرجال معقولة. لكن المحرك بدأ يكتب منذ حوالي 10 سنوات. الحلول المعمارية المستخدمة هناك هي أحدث الحلول لتلك الفترة. لكن العالم قد تغير ، وعلى مدى 10 سنوات ظهرت العديد من الأفكار الجديدة والتقدمية. ربما ليس أصليًا لكتابة UE5 ، ولكن يكفي لتحقيق انفراج لائق. قررنا الرهان على هذه الحلول والنهج المعمارية الجديدة.
"نعم ، محرك Unreal رائع ، وقد كتبه المحترفون في لغة C ++ ،" سيقول القارئ اليقظ. بالطبع هو كذلك. ولكن اسمحوا لي أن أذكركم: هدفنا هو الضغط على معظم أجهزة المحمول ودفع هذه الصناعة إلى الأمام. يعد Unreal Engine محركًا للأغراض العامة ، وهذا ليس سيئًا ، فهو يعطي ميزة عالمية. تم تصميم هذه التقنيات للألعاب في أنواع مختلفة ، وهذه الميزة تحمل قيودًا معمارية على مطوري المحرك. وفي البداية ، خططنا لكسر الحدود والقوالب النمطية ، وعدم ملاءمتها.
في النهاية: اختر الوحدة - اختر بيئة غريبة بالنسبة لنا ، واختر غير واقعي - قم بعمل مشروع متوسط.
يعلم الجميع أن الرماة الحديثة الراقية على الكمبيوتر مصنوعة على محركات الاستوديو الخاصة بهم. لدى EA محرك DICE ومحرك Frostbyte ، و Activision و Ubisoft لديهما حلول تكنولوجية خاصة بهما ، كما قامت 4A Games أيضًا بتصميم محركها الخاص ، و id Software لديه id Tech. مطورو أعلى الرماة على لوحات المفاتيح تفعل الشيء نفسه. نعم ، بالطبع ، يستغرق العمل والوقت والمال وكل شيء آخر في هذا الموقف أكثر. ولكن من ناحية أخرى ، لديك سيطرة كاملة على التكنولوجيا: يمكنك اختيار الحلول التي ستكون أسرع وأكثر فعالية من الحلول الجاهزة "للجميع". كل شيء ، في الواقع ، هو في التخصيص: أنت تقرر ما هو مهم بالنسبة لك ، وتؤكد عليه. صُممت وحدات التحكم الحصرية للضغط على أقصى درجة من الحديد الكابولي الفائق القوة. وهذا هو ما نحتاجه ، ليس فقط من لوحات المفاتيح ، ولكن من الهواتف المحمولة!
لكننا قررنا الخروج من الاتجاه المعاكس: لا تحاول إنشاء حل للحديد العلوي ، ولكن أولاً انظر إلى أضعف الأجهزة التي نحتاج بالتأكيد إلى دعمها. أخذنا في الاعتبار خصائصها وبدأنا في البحث عن التقنيات التي تسمح لنا بالعمل على هذه الأجهزة بجودة عالية. وهذا هو ، ضغط الحد الأقصى من بارد البصرية من الحد الأدنى من الخصائص. ونعم ، بالطبع ، يجب أن تكون الحلول بحيث يمكننا في وقت لاحق تحسينها بسهولة دون قيود على الأجهزة المحمولة الراقية ، حتى مستوى وحدة التحكم وجودة الكمبيوتر.
وتستند جميع الرماة المحمول الحديثة تقريبا على الوحدة أو غير واقعي. لقد فهمت بالفعل كل شيء عن خططنا الطموحة لتحويل الصناعة ، وبالتالي فإن حقيقة أننا قررنا تقديم ابتكارات بالفعل في هذه المرحلة لن تكون مفاجأة لك. تجاهلنا معضلة Unity vs Unreal التقليدية ، وبدأنا في خفض محركنا.
لتبدأ - سأريك الفيديو. هذا ما حدث في السنة. لقد بذلنا قصارى جهدنا للضغط على أقصى حد من الأجهزة المحمولة وإنشاء منتج يمكنه ، على الأقل ، التنافس مع ألعاب سطح المكتب ، الاقتراب منها بجودة عالية. في الواقع ، كما قلت بالفعل ، فإن هدفنا الرئيسي ، بغض النظر عن مدى قد يبدو مثيرًا للشفقة ، هو جعل ألعاب الهاتف المحمول أفضل كثيرًا ودفع هذه الصناعة إلى الأمام.
هناك مثل هذه القاعدة "تعرف على جهازك". أهميتها يصعب المبالغة في تقديرها. لقد رأينا في كثير من الأحيان كيف تفعل الفرق العليا شيئًا مستحيلًا لوحدات التحكم - لأنهم يعرفون ماذا يبنون منه ، ويقررون مسبقًا أنهم سيحاولون تجاوزه. كنا نرغب دائمًا في صناعة أدوات إطلاق النار ، لكننا قمنا بتقييم نقاط قوتنا بوقاحة: اليوم أصبح سوق إطلاق النار على لوحات المفاتيح وأجهزة الكمبيوتر الشخصية ضخمًا ومليئًا بالمنتجات عالية الجودة. في الوقت نفسه ، يُحرم سوق الهاتف المحمول من الاهتمام بشكل غير مستحق ، على الرغم من أنه يمكن فعل الكثير هناك. بشكل عام ، جاء كل شيء معًا: قررنا تصحيح الوضع.
بإيجاز ، لقد شكلنا هذا الاتجاه العام:
- التكنولوجيا الخاصة
- مستوى جودة وحدة التحكم على منصات المحمول
- التركيز الرئيسي هو على الرماة
- جلسة لعبة محرك الشبكة
- البنية التحتية لتشغيل اللعبة
- وفي الواقع ، لعبة رائعة.
خططنا لتنفيذ كل هذا في 1.5 سنوات.
بطبيعة الحال ، من زملائنا في ورشة العمل ، سمعنا باستمرار أن صنع محركك الخاص مع Unity و Unreal هو خرف (وبدون الكثير من الشجاعة). لقد عرض علينا عددًا كبيرًا من الحلول الجاهزة التي يقوم بها شخص ما بالفعل. ولكن كان لدينا رأي مختلف تماما. لقد قررنا أن نجربها ، والآن يمكنني أن أقول بكل فخر إننا بصحة جيدة. المحرك موجود بالفعل وهو واعد للغاية. بالضبط الطريقة التي أردناها. نحن نعمل بنشاط على لعبتنا الجديدة ، ونخطط لإطلاقها بالفعل هذا العام.
لن أخفي ، فالناس ما زالوا متشككين في فكرتنا عندما ، عندما نلتقي ، نتشارك في خططنا. لكن كل شيء يتغير عندما نخرج iPad ونعرض أفضل الممارسات ومقاطع الفيديو. يفهم الناس ما كان كل شيء. نعرض جدول لعبتنا في مقابلات الموظفين الجدد ، وهم لا يعتقدون أن هذا منتج للهواتف المحمولة. في بعض الأحيان يحددون ثلاث مرات ما إذا كنا نمزح. المنتج الثوري يتطلب حلولاً مبتكرة. نعم ، كان هذا العام صعبًا ، وكان علينا العمل كثيرًا. ولكن لدينا الآن محركًا ثوريًا ولعبة BattlePrime ممتازة وقصة مضحكة ستكون مثيرة للاهتمام لكثير من المطورين.
عادة بعد مشاهدة هذا الفيديو ، قيل لنا أنهم لا يؤمنون. وهو أمر محتمل في الإصدار النهائي ، كل شيء سيكون مختلفًا. بشكل عام ، ليس من المعتاد في صناعتنا أن نثق في المقطورات ... لكنك تصدق ذلك حقًا. وأخبرنا في التعليقات كيف أنت!
نريد أن نقول كيف طورنا محرك Blitz ، ولهذا سأصدر سلسلة من المقالات حول سنة تطورنا.
الجزء الثاني:
habr.com/en/post/465343