أعمال Tragicomedy في NaN: كيف صنعنا لعبة على JS وأطلقناها على Steam

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


ما نوع هذه اللعبة؟ ومن نحن؟


نحن فريق من ثلاثة أشخاص ( GRaAL ، A333 ، icxon ) ، بإرادة القدر تسمى Volcanic Giraffe دون أي نية. لقد عملنا معًا لفترة طويلة ، وشارك ثلاثة منا في مسابقة Ludum Dare (مسابقة كتابة مباراة نهاية الأسبوع) ، وقرروا ذات مرة تقديم أحد الحرف اليدوية لدينا يسمى Protolife.

باختصار: هذا دفاع برج غير عادي ، حيث يجب عليك تشغيل مؤشر بطل وبناء دفاع عن الكتل ضد الكتلة الحيوية الحمراء المتزايدة باستمرار.

من التعليقات على مشروع المادة:
icxon : تحتاج إلى كتابة القليل عن طريقة اللعب أولاً. ثم بعض لقطات الشاشة التي يفهم فيها الفجل ما يحدث

إذا كنت ترسم بمزيد من التفاصيل ، فماذا في اللعبة:

  1. هناك مجموعة من المستويات ، في كل مستوى هناك قاعدتنا وصورتنا الرمزية - باني روبوت.
  2. يمتلئ جزء من المستوى بالكتلة الحيوية المتزايدة الحمراء التي تفرز أطنانًا من الغوغاء.
  3. بطبيعة الحال ، يركض الغوغاء إلى القاعدة ويحاولون سحقها. ونحن نبني دفاعا من الأبراج ولا ندع ذلك يتم.

"ولكن ما هو غير عادي؟" - تسأل. والاختلافات الرئيسية من معظم الدفاع عن البرج هي كما يلي:

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


  • النموذج 1: مسدس بسيط
  • النمط 2: الجدار
  • النمط 3: مسدس AA. هنا يجب عليك أيضًا استخدام بلورات صفراء ، والتي تم تعدينها بالفعل أكثر صعوبة
  • قالب 4: رشاش

وهكذا تذهب اللعبة: نركض ، نبني ، نحصل على إجابة ، نصلحها بسرعة. يتم الحصول على التصور المباشر لعملية تطوير اللعبة.

لكن مثل هذه اللعبة لم تنجح على الفور. مرة أخرى في أبريل 2017 ، في Ludum Dare 38 ، بدا الأمر كما يلي:

إذا لم تنتبه إلى الاختلاف في الجدول الزمني ، فيبدو أنه لم يتغير الكثير. بالفعل في إصدار LD كان هناك منشئ المؤشر ، وبناء الأبراج من الكتل والمواجهة مع الكتلة الحيوية الحمراء. تركناها لأنها عملت وأحبها الناس.

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

أود أن أخبركم عن مثل هذه القرارات.

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

قصة خلق مملّة.


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

بطريقة ما دخل كونواي وماثيسون وبيتري إلى الحانة ...
ويقول النادل: غير محدد ليس دالة.

عشية LD38 ، اتضح أن الأمر مروع: سيحلق زميلنا والفنان الوحيد A333 جميع LD على المحيط الأطلسي ، ولن يكون بمقدورنا مساعدتنا. لذلك ، كان من الضروري جعل اللعبة غير متسقة للجدول الزمني مع القوات المتبقية.

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

هذه قصة ، ليست مثيرة للاهتمام ، كما حذرت.

"لكن أليكسي ، ماذا كتبتيه بحق الجحيم؟" سؤال معقول. والحقيقة هي أن التعليق الأول تقريبًا على اللعبة بدا وكأنه "لول ، لقد سرقتم جميعًا من Creeper World". بعد قراءة اللعبة في وقت لاحق LD نفسها ، أفهم لماذا يعتقد الناس ذلك. ولكن لا يزال حزينا قليلا.

إذا شعرت فجأة بالإهانة لأنك قضيت وقتًا في هذا الإزعاج ، فعندئذٍ أكتب لي عزاء كود PM "أشياء مملة" في PM ، وسأرسل لك أحد المفاتيح العشرة إذا لم تكن قد انتهت في ذلك الوقت. لسوء الحظ ، انتهت المفاتيح أيضًا.

اختيار لعبة للتنفيذ الكامل


كما يحدث في كثير من الأحيان ، بمجرد أن فكرنا جميعًا في ثلاثة منا - ولكن حان الوقت لمحاولة صنع لعبة كاملة. غالبًا في هذه المرحلة ، يتم أخذ نوع من المفهوم من الرأس ، "لعبة الأحلام" ، ويتم العمل معها. ثم كم هو محظوظ التخمين مع رغبات الجمهور.

تم تبسيط مهمتنا قليلاً بسبب وجود "محفظة" صغيرة على Ludum Dare. رأينا كيف يتفاعل الناس مع الألعاب المختلفة ، ويمكننا المقارنة. حازت Protolife على أكبر استجابة ، وقد تم الإشادة بها للأصالة ولعب مثير للاهتمام - وهذا بمستوى صفر من الرسومات و 4 مستويات فقط!

بالإضافة إلى ذلك ، ساعدتنا itch.io في اتخاذ القرار الذي نشرنا فيه حرفنا. كما اتضح ، هناك أشخاص يذهبون إلى itch.io للعب ألعاب الويب. البعض منهم يحبون نوع الدفاع عن البرج ، ودخل 5-10 أشخاص (وما زالوا يأتون!) للعب ذلك Protolife القديم كل يوم .
إحصائيات المكالمات قبل إصدار اللعبة على Steam

يمكن القول ، كان هذا أول بحث تسويقي لدينا. اعتقدنا وقررنا أن "دفاع برج غير قياسي" يمكن أن يطلق النار بشكل جيد. لا يوجد الكثير من دفاعات البرج ، والعديد منها مشابه لقطرتين من الماء ، ويمكننا أن نبرز بينهم.

بالنظر إلى المستقبل ، يمكنني أن أقول إن التكتيكات آتت أكلها.

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

Counter-Council: إذا لم تكن خائفًا من أن نصف الأشخاص سيلعبون "لعبة الأحلام" ، فمن يهتم؟ افعلها! ربما محظوظ.

المحرك: ليس الحل الأفضل


صنعنا الإصدار على Ludum Dare على محرك Phaser.js . نحن نعرف ذلك جيدًا ، ونعرف جافا سكريبت جيدًا ، وألعاب الويب تحصل على مزيد من التعليقات ، وهي مريحة للغاية وسهلة التعلم - قصة خرافية ، وليس محركًا.

وواجهنا سؤالًا مهمًا: تغيير المحرك أو ترك كل شيء كما هو؟

كان السؤال معقدًا. لم يكن أي منا يعرف أو يدرس أي محرك آخر في ذلك الوقت. إن قضاء الوقت في الدراسة أمر جيد ، ولكن كان من الممكن أن تفقد كل الحماس. ثم - ماذا تأخذ؟ جافا سكريبت - اللغة الوحيدة التي يعرفها كل منا ، والتي تستخدم محرك C ++ / Java / C # - تعني على الفور خسارة نصف المطورين. وبدا أن محركات مستوى الوحدة مرهقة للغاية بالنسبة لـ "لعبة ثنائية الأبعاد بسيطة".

ثم: هناك بالفعل لعبة. يبقى تحديث الجرافين ، لإكمال المستويات - وهذا كل شيء. العمل لبضعة أشهر. ثم الدراسة وإعادة الكتابة ...

بشكل عام ، قررنا البقاء في Phaser.js. والأسوأ من ذلك - قررنا البقاء على نفس أساس الكود ، أي قم ببناء لعبة فوق النموذج الأولي لودوم داري.

من التعليقات على مشروع مادة
a333 : عذرًا ، لم يكن لدي هذه الصورة مع عكاز بدلاً من برج إيفل "

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

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

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

في الواقع ، ما هي مشكلة Phaser.js؟

  • المحرك ، كما قد تعتقد ، قائم على الويب. هل تعرف كيف تطلق لعبة ويب على Steam؟ هذا صحيح ، قدمه مع Chrome باستخدام nw.js أو Electron. أعتقد أن مساوئ هذا النهج لا تحتاج إلى شرح.
  • من المؤكد أن أداء جافا سكريبت جيد جدًا ، لكن الشفرة الأصلية ستعمل بشكل أسرع ، ويمكنك حفظها في المطابقات.
  • التحكم بجعله ضعيف جدا. تقدم Phaser نفسها كل شيء ، وتقوم بذلك بشكل جيد بشكل عام ، ولكن في بعض الأحيان تريد الدخول في العملية أو القيام بشيء ما على webGL بنفسك. للأسف ، الشيء الوحيد الذي يسمح به Phaser هو تطبيق تظليل الجزء على الشاشة ككل أو على بعض النقوش المنفصلة على الشاشة ، وكذلك باعتدال. لا يسمح بالعمل مع تظليل الرأس على الإطلاق (والعمل بالفعل مع القمم) ، والعديد من القرارات في اللعبة معهم ستكون أسهل بكثير.
  • مشاكل مع عدد كبير من النقوش المتحركة (الكائنات النشطة) على الشاشة. علاوة على ذلك ، فإن "العدد الكبير" هو بضعة آلاف وليس ملايين. و "الكائن النشط" سيكون حجرًا كاذبًا بدون رسوم متحركة. لكل علامة ، سوف يمر Phaser عبر جميع الأشياء ويقوم بعمل سحري خاص للمراحل ، ويمسح الوقت من منطق اللعبة.

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

حرب الأنماط


هل ما زلت تتذكر "التصميم الأصلي" للنسخة الأصلية من اللعبة؟


بالطبع ، لها سحرها الخاص ، لكنها لم تكن مناسبة لمنتج جاد. نعم ، وعاد فناننا للتو من رحلة عمل ، فما هو الجلوس؟

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

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


المرشح 2: واقعي ، رائع ، قاس. هنا يمكنك بالفعل رؤية قصة أو سياق معين. بشكل غير متوقع ، لا يعمل التباين فقط في الألوان ، ولكن أيضًا في الأشكال - مبانينا مرتبة أكثر ومربعة ، ومباني العدو - مستديرة وغير منتظمة الشكل.



هذا لا يعني أننا ترددنا لفترة طويلة جدًا. تخيلنا أيًا من "لقطات الشاشة" نود أن نلعب أكثر ، ولم يكن لدى المرشح الأول فرصة للبقاء على قيد الحياة. لم تكن لدينا فكرة عما سيكون لدينا في المؤامرة ، حيث يحدث كل هذا ، وما يحدث - ولكننا اخترنا الخيار الثاني.

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

لكننا أردنا أن نلعب الخيار الثاني.

لذلك تم استبدال الكائنات الحية الدقيقة وطبق بتري بكوكب بعيد ، وروبوتات ، وكائن غريب غامض.

النصيحة العادية غير المطلوبة رقم 3: افعل ما تريد أن تلعبه بنفسك.

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

الكتلة الحيوية الرابحة ، الدودة الكامنة


لقد ذكرت تباين الألوان والأشكال ، وإذا قارنت ذلك الرسم والنسخة النهائية - فقد ازداد التباين فقط. قارن - مربعات مبانينا ومباني العدو المستديرة والاستدارة العامة للكتلة الحمراء.


بالمناسبة ، الكتلة الحمراء ، مثل كل شيء تقريبًا في اللعبة ، في مكان ما داخل منطق اللعبة تتناسب مع الشبكة بنفس طريقة الكتل. لكنها تبدو في نفس الوقت فوضوية ، كما لو كانت غير مرتبطة بالشبكة.

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

بين الدوائر هناك خطوط - اتصالات. إذا كانت الكتلة الحيوية تحتاج إلى النمو في بعض الخلايا ، فسيتم اختيار الدوائر المناسبة التي تتقاطع مع الخلايا الضرورية ، ويحدث النمو فيها على طول الخطوط.


إليك ما تبدو عليه الحركة:


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


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

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

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

النصيحة المضادة: إذا كنت قد حددت بالفعل تاريخ إصدار ووقعت عقدًا مع ناشر - ربما يجب ألا تجرب.

الرسوم المتحركة للكتلة الحيوية


في الرسوم المتحركة أعلاه ، يمكنك ملاحظة الرسوم المتحركة الخاملة للكتلة الحيوية - حتى في حالة الراحة ، فهي تتنفس بشكل مكثف ، ويبدو أن البراعم الحمراء تفتح وتغلق مرة أخرى. في عالم مثالي ، ستكون هذه العفاريت مع الرسوم المتحركة التي رسمها الفنان بعناية ، والتي يتم ترتيبها في نفس النمط مع الدوائر. في الواقع ، ستكون هذه الآلاف من كائنات اللعبة التي لا يمكن لـ Phaser.js ببساطة التعامل معها. وهذه حقيقة مثبتة بالفعل - في الإصدار مع Ludum Dare واجهت بالفعل فرامل جهنمية عندما ملأت الكتلة الحيوية نصف الخريطة على الأقل ، ولم يكن هناك حتى أي رسوم متحركة خاملة هناك.

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

يحتاج جهاز التظليل إلى معرفة ما وكيفية رسمه بطريقة أو بأخرى. ما هي طرق نقل المعلومات إلى جهاز تظليل:

  • كود صلب في كود التظليل نفسه. في حالتنا ، لا يصلح هذا ، ولكن بشكل عام أحيانًا يكون هذا الخيار منطقيًا للنظر فيه.
  • عبر متغيرات موحدة (هذه متغيرات هي نفسها لأي بكسل في الصورة)
  • عن طريق متغيرات متغيرة (متغيرات محرفه بين ذروتين)
  • من خلال القوام (ترميز بعض القيم باللون)

الطريقة الثالثة قد تكون مفيدة لنا ، ولكن في حالة Phaser.js فهي غير متاحة لنا. لن تمر كثيرًا من خلال الزي الرسمي (على سبيل المثال ، لن تتناسب مجموعة من الدوائر مع نصف قطرها مع الزي الرسمي - هناك قيود). الملمس يبقى.

الحيلة هي: أرسم أولاً ولاية واحدة (قل ، براعم مغلقة) باللون الأزرق:


ثم تكون الحالة الثانية (البراعم المفتوحة) حمراء:


إذا قمت بجمعها معًا ، فستحصل على فوضى أرجوانية:


من ناحية أخرى ، يرى التظليل الملمس ، ويرى الوقت الحالي ، ومع فترة معينة يظهر لنا أن الحالة "الزرقاء" ، ثم "الحمراء" ، تتدفق بسلاسة بينهما. حسنًا ، في حد ذاته تطبيق لوحة الألوان المطلوبة. اتضح مثل هذا:


من التعليقات على مشروع المادة:
a333 : آه هذه هي الطريقة التي يعمل بها هذا
icxon : إنه رائع لأنني ما زلت لا أفهم كيف يعمل
نفس الشيء ، ولكن مع مثال المستطيلات:

الملمس:

الرسوم المتحركة النهائية:

يتم تحديث الملمس فقط عندما ينمو / ينهار ، تعمل بقية الرسوم المتحركة GPU فقط.

رعاية اللاعب


في عملية التطوير ، حاولنا ألا ننسى اللاعبين الذين يرون لعبتنا لأول مرة. الأمر ليس بهذه البساطة كما يبدو - بعد فترة من الوقت تصبح العين غير واضحة ، وتبدأ في التفكير في كل شيء واضح تعرفه بالفعل كمطور.

لقد فهمنا ذلك ، وبالتالي تم إجراء أول اختبار تجريبي قبل 8 أشهر من الإصدار - بمجرد أن أصبح لدينا المستويات العشرة الأولى و 40-50٪ من المحتوى جاهزًا. لقد أعطى هذا الاختبار التجريبي تعليقات تصميم ممتازة المستوى سأتحدث عنها في وقت ما في المرة القادمة. في الوقت نفسه ، علمنا أن لدينا بعض التوقعات الجيدة لبعض النقاط.

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

الحل: أولاً ، نعرض الضرر الذي لحق بالقاعدة في دوائر متحدة المركز تمر عبر نصف خريطة.


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


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

الحل: سحب الدم بعد قتل الأعداء. بعد فترة ، يظهر أثر واضح على الأرض ، يمكنك التركيز عليه:


سؤال: ولكن ، في الواقع ، لماذا ضرب المسار؟ هل تعرف كيفية تنفيذ A *؟

الجواب: نفذت مجموعة مرات :) جربنا بصدق مع العدو AI. كان لدينا ديدان ذكية تبحث عن الطريق ، وأطلق الرصاص المراوغة. أصبح من المستحيل اللعب. لم يتمكن اللاعب من بناء دفاع فعال ولم يكن سعيدًا بمشاهدة كيفية عمله. تراجعت متعة اللعبة. هذا لا يعني أن الأعداء "الأذكياء" سيئون. فقط للميكانيكا المختارة - عندما تكون مبانينا ثابتة - لم يكن مثل هؤلاء الأعداء مناسبين. بالنسبة لـ "الأعداء الأذكياء" ، يجب أن ترفق بندقية آلية بروبوت أو أرجل لأبراج. وهذه لعبة مختلفة تمامًا - ليست اللعبة التي يحبها الناس على LD والحكة.
من التعليقات على مشروع المادة:
icxon : ولكن لا يزال هناك طين . ولا يزالون
يتحايلون GRAAL : فكر قليلاً من الخيال

هم حقاً ، لكنهم يتهربون بتكاسل أكثر بكثير من النسخة الأصلية.الحالة

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

الحل: يمكن رؤية مقذوف طائر فوق ضباب الحرب. وهذا يمنح اللاعب الفرصة لملاحظة التهديد واتخاذ الإجراءات.


يتحدث عن قذائف. دعونا صرف الانتباه عن مشاكل اللعب- UX.

معالجة الاصطدام


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


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

بشكل عام ، هذه المشكلة لها حلول ، غالبًا ما التقيت بمقالات حول هذا الموضوع (هنا أحدها ). نظرًا لأن لدينا شبكة منطقية على الشاشة ، ومعظم الكائنات النشطة لا تتجاوز حجم خلايا اللعبة 2x2 ، قررنا استخدام هذه الشبكة لتحديد التصادمات.

تحتوي كل خلية على قائمة بالكائنات الموجودة في تلك الخلية. هناك أجسام ثابتة (مثل الكتل أو الحجارة) تشغل خلية واحدة بالضبط ككل ولا تتحرك في أي مكان. وهناك خلايا ديناميكية تتحرك على طول الشبكة ، "تتدفق" من خلية إلى أخرى.


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

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


إذا كانت الخريطة كبيرة ، فإن الخلايا في الشبكة تصبح أيضًا كثيرة ، وتبدأ جميع التحديثات والفحوصات في وقت أطول. أيضا ، تبدأ المشاكل إذا كان هناك أي مباني / وحدات بحجم عدة خلايا - بالنسبة لهم يجب عليك التحقق من المزيد من الخلايا حولها.

لتسوية هذه اللحظات ، وضعنا خلية كبيرة بحجم 16 × 16 فوق الشبكة الرفيعة. يعتبر كل شيء هو نفسه بالنسبة لها ، ويتم استخدامه لفحص الحالات بسرعة عندما لا يوجد شيء في دائرة نصف قطر عدة خلايا حول الأشياء ولا يمكن التحقق من التصادمات.

الروابط والمسح الموعودة


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

حسنًا ، إذا كانت هناك فجأة أي أسئلة محددة حول كيفية القيام بذلك ، أو لماذا يتم ذلك - اكتب في التعليقات. سنجيب إذا تذكرنا :)

روابط للعبة:


شكرا لكم جميعا على اهتمامكم.

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


All Articles