لعبة ASCII - حل وسط من الأصالة والراحة

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



1. مجموعة الأحرف


تمامًا يتم عمل جميع الرسومات في اللعبة باستخدام الأحرف المكتوبة على لوحة المفاتيح. لكي تكون أكثر دقة ، يتم استخدام الأحرف من جدول ASCII من الحرف 32 إلى 126.



ومع ذلك ، يتم ترجمة النصوص في اللعبة بعدة لغات. الآن أنا أؤيد اللغة الروسية والإنجليزية في نفس الوقت ، لكني أريد إضافة المزيد ، بما في ذلك الصينية. من الواضح أن الأحرف من جداول ASCII ، حتى تلك الممتدة ، ليست كافية لهذه الأغراض.



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

2. دقة الحرف الفرعي


على عكس أوضاع النص ، يستخدم ASCIIDENT دقة البكسل لتحريك طبقات النص وتحريك النقوش المتحركة.



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

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

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

3. المنظر


تحتوي اللعبة على عدة طبقات نصية تتحرك بسرعات مختلفة ، مما يدرك تأثير اختلاف المنظر. تتداخل رموز الطبقات العليا مع رموز الطبقات السفلية. مع دقة الحرف الفرعي ، فإن معيار التداخل هو تراكب يزيد عن 50٪ من عرض و / أو ارتفاع خلية النص. باستخدام المخزن المؤقت البسيط z ، من السهل تنفيذ هذا التداخل.



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

4. الرسوم المتحركة


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



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


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

5. الضوء واللون والخط


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



لمحاكاة أوضاع الألوان القديمة ، قمت بعمل سبعة خيارات إضافية: ثلاثة أوضاع أحادية اللون ، وضعين 16 لونًا (DOS / Mac) ، 2 بت ووضع Game Boy. وضع خط LED متاح أيضًا. في هذا الوضع ، يتم فصل كل بكسل من كل حرف عن تلك المجاورة. يوضح الفيديو أدناه جميع الأوضاع - كيف تؤثر على الصورة.


جعلت خوارزمية تحويل اللون للأوضاع أحادية اللون هذا. أولاً ، أحسب سطوع اللون (R ، G ، B):

V = 0.3 * R + 0.59 * G + 0.11 * B

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

RR = sqrt (V) * (monoR1 * (1 - V) + monoR2 * V)

GG = sqrt (V) * (monoG1 * (1 - V) + monoG2 * V)

BB = sqrt (V ) * (monoB1 * (1 - V) + monoB2 * V)

اللون النهائي (RR ، GG ، BB)

بالنسبة للأوضاع ذات 16 لونًا ، أستخدم خوارزمية مختلفة. لكل لون (R ، G ، B) أنا أبحث عن أقرب لون في لوحة الألوان. هذا كل شئ.

يحتوي 2-bit ووضع Game Boy على أربعة ألوان فقط في اللوحة. البحث البسيط عن أقرب لون يعطي صورة داكنة جدًا. لذلك ، قبل البحث عن لون في لوحة الألوان ، أقوم بالتطبيع:

d = 1 / max (R ، G ، B)

normR = d * R ، normG = d * G ، normB = d * B

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

6. تعزية مع وضع نص صادقة


في عملية إنشاء اللعبة ، جاءت الفكرة لوضع محطات الكمبيوتر مع وضع نص صريح في عالم اللعبة. يمكنك الاقتراب منهم والتواصل والعمل / اللعب.

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

تتم كتابة جميع التطبيقات للمطاريف المدمجة (بما في ذلك أداة تحميل التشغيل) بلغة برمجة DUHASM. تشبه هذه اللغة Assembler ، ولكنها تحتوي على متغيرات وصفائف ديناميكية. هنا ، على سبيل المثال ، جزء من رمز لعبة Pi-astre Hanter:



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

عند الإطلاق ، تقوم اللعبة بتحميل التطبيقات من ملفات * .duhasm وتجميعها في كود بايت. عندما يقوم لاعب بتنشيط وحدة التحكم ، يتم تشغيل مترجم صادق.

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


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

استنتاج


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



شكرا للجميع! حتى!

All Articles