حقّقت Pixonic زيادة في التفاعل بنسبة% 25 على نظام التشغيل Chrome من خلال تحسين التطبيق ليلائم الشاشات الكبيرة.

خلفية

Pixonic، وهو فريق من مطوري ألعاب الفيديو يقع مقره في موسكو، يفخر بالسعي إلى كل فرصة لترقية تطبيقاتها المتوافقة مع الأجهزة الجوّالة والوصول إلى جمهور أوسع من اللاعبين. ومن أشهر ألعاب الشركة War Robots، وهي تجربة تضم 12 شخصًا يتنافس فيها لاعب ضد لاعب (PvP) حيث يمارس لاعبو هذه الألعاب ويتنافسون فيها على روبوتات مخصصة في ساحة معركة حية.

تم إطلاق War Robots في عام 2014، وتم تصميمها أصلاً لأجهزة الجيل المبكر من Android مع حركة تعتمد على لوحة اللمس وبدون إدخال الماوس. لاحظ فريق Pixonic كونه من اللاعبين الشغوفين به، ولذلك أدرك أنّ التطبيق يحتاج إلى بعض التعديلات لتقديم تجربة مستخدم رائعة على مجموعة أكبر من الأجهزة، مثل أجهزة الكمبيوتر المحمول والأجهزة اللوحية. كانت لعبة War Robots قابلة للتشغيل على أي جهاز Android بما أن أجهزة Chromebook تعمل بإصدار كامل من إطار عمل Android داخل حاوية. ومن خلال إجراء بعض التعديلات الإضافية على الترميز، تمكّنت Pixonic من الاستفادة من الإمكانات الكاملة لنظام التشغيل ChromeOS.

إليك كيف حسّن فريق Pixonic تجربة War Robots للحصول على أفضل تجربة على الشاشات الأكبر حجمًا.

الإجراءات التي اتخذتها الشركة

لبدء التحسينات، أضافت Pixonic علامة بيانات وصفية في AndroidManifest.xml لإعلام النظام بأنّه جاهز لتوفير الدعم الكامل لنظام التشغيل ChromeOS ويحتاج إلى إيقاف محاكاة اللمس:

<uses-feature android:name="android.hardware.type.pc" android:required="false" />

تضبط Pixonic أيضًا قيمة minSdk في التطبيق على 24 ليتمكّن محرّك ألعاب Unity من تلقّي نقرات الماوس مباشرةً وجميع أحداث واجهة برمجة التطبيقات المتعلّقة بالحركة (وليس فقط أحداث لوحة اللمس).

إتاحة استخدام الماوس ولوحة المفاتيح

في الألعاب التي تعتمد على لاعب ضد لاعب (PvP)، مثل War Robots، تصبح عملية التحرّك والتصويب أسهل بكثير باستخدام لوحة مفاتيح وماوس، لا سيما على الأجهزة ذات الشاشات الكبيرة. لذا، كانت الخطوة التالية هي إعادة كتابة التعليمات البرمجية الخاصة بلوحة المفاتيح والماوس لوضع المعركة في اللعبة مع الاحتفاظ بعناصر التحكم في الشاشة التي تعمل باللمس.

بهدف توفير عناصر التحكّم المناسبة في الوقت المناسب، كتب فريق Pixonic تعليمات برمجية جديدة للتحقّق من وضع اللعب الحالي لدى المستخدم:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    boolean hasQwertyKeyboard = newConfig.keyboard == Configuration.KEYBOARD_QWERTY && newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO;
    try {
        UnityPlayer.UnitySendMessage("Receiver", "ConfigChange", new JSONObject().put("keyboard", hasQwertyKeyboard).toString());
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

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

War Robots في وضع الكمبيوتر المحمول.

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

War Robots في وضع اللعب على الأجهزة اللوحية أو الأجهزة الجوّالة

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

public boolean setPointerVisibility(boolean visible) {
    View = activity.findViewById(android.R.id.content);
    view.setPointerIcon(PointerIcon.getSystemIcon(activity, visible ? PointerIcon.TYPE_DEFAULT : PointerIcon.TYPE_NULL));
}

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

تعديل الفيديوهات التعليمية وآليات اللعب

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

برامج تعليمية حول أسلوب اللعب في وضع الكمبيوتر المحمول من خلال إدخال لوحة المفاتيح والماوس

برنامج تعليمي حول أسلوب اللعب في وضع الجهاز اللوحي مع عناصر تحكّم في الشاشة التي تعمل باللمس

عندما يكون اللاعبون في وضع الكمبيوتر المحمول، توقِف Pixonic أيضًا عناصر التحكّم في الكاميرا التي تعمل باللمس (لأنّ اللاعبين يتحكّمون في الكاميرا باستخدام الماوس) بينما تعمل جميع أزرار أسلوب اللعب كالمعتاد. للتمييز بين اللمسات وحركات الماوس، يستخدم الفريق السمة Input.touchCount (في نصوص Unity البرمجية):

if(Input.touchCount > 0) {
    // this is screen touch event
} else {
    // this is mouse (touchpad) event
}

إتاحة النوافذ المتعددة

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

لإجراء ذلك، وضعت Pixonic علامة على UnityPlayerActivity للإشارة إلى أنّه يمكن تغيير حجمه:

<activity android:name="com.unity3d.player.UnityPlayerActivity" ....
    android:resizeableActivity="true">

مع الأخذ في الاعتبار أنّ واجهة اللعبة تبدو قابلة للتشغيل في نطاق أبعاد معيّن فقط، وضع الفريق حدًا أدنى لأحجام النوافذ المتوافقة:

<activity … >
    <layout android:gravity="center" android:minHeight="800dp" android:minWidth="1200dp" />
</activity>

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

<application>
    <meta-data android:name="WindowManagerPreference:FreeformWindowSize" android:value="maximize" />
    <meta-data android:name="WindowManagerPreference:FreeformWindowOrientation" android:value="landscape" />
    ….
</application>

تم تشغيل War Robots في وضع النوافذ.

ضمنت هذه التحسينات أيضًا عدم توقّف اللعبة مؤقتًا وأنّ المعركة تتغيّر تدريجيًا عندما يتسع نطاق اللاعبين ويقلّصون فترات اللعب.

النتائج

وبفضل مكتبة شاملة من الموارد المتوفرة على الإنترنت، استغرقت العملية بأكملها أسبوعان فقط من فريق تطوير Pixonic المكوَّن من خمسة أعضاء.

سبق أن لعب أكثر من 100,000 لاعب War Robots على ChromeOS منذ أن طرحت Pixonic أحدث التحسينات. أصبحت معارك War Robots أكثر تشويقًا وتشويقًا من ذي قبل نظرًا لسهولة الاستفادة من المساحة المضافة على الشاشات الأكبر حجمًا. في الواقع، تكون جلسات المستخدم أطول بنسبة 25% على أجهزة Chromebook مقارنةً بأجهزة Android الأخرى. كانت التعليقات المبكرة إيجابية للغاية، ولاحظ بعض اللاعبين أن اللعبة المحسّنة لأجهزة Chromebook تعمل بشكل أكثر سلاسة من محاكي BlueStacks.

بسبب النجاح الذي تم تحقيقه، يخطط مطوّرو Pixonic لتحديث رسومات War Robots على جميع أجهزة Android لجعل أسلوب اللعب أقرب إلى تجربة بجودة الكمبيوتر الشخصي.

اطّلِع على بعض أفضل الممارسات من أجل تحسين تطبيقاتك لنظام التشغيل ChromeOS.