Pixonic meningkatkan engagement sebesar 25% di ChromeOS dengan pengoptimalan untuk perangkat layar besar

Latar belakang

Pixonic, sebuah tim developer game video yang berkantor pusat di Moskow, bangga akan setiap kesempatan untuk meningkatkan versi aplikasi selulernya dan menjangkau lebih banyak audiens di kalangan gamer. Salah satu judul perusahaan yang paling terkenal adalah War Robots, yaitu pengalaman Pemain-vs-Pemain (PVP) yang terdiri dari 12 orang, tempat pemain mengoperasikan dan mengadakan duel robot yang dibuat khusus di medan laga secara live.

Dirilis pada tahun 2014, War Robots awalnya dirancang untuk perangkat generasi awal Android dengan gerakan berbasis touchpad dan tanpa input mouse. Tim Pixonic, yang merupakan gamer yang gemar menonton sendiri, menyadari bahwa aplikasi ini memerlukan beberapa modifikasi untuk memberikan pengalaman pengguna yang luar biasa di berbagai perangkat yang lebih luas, seperti laptop dan tablet. War robots sudah dapat dimainkan di perangkat Android apa pun karena Chromebook menjalankan versi lengkap framework Android di dalam container. Dengan membuat beberapa penyesuaian {i>coding<i} lagi, Pixonic dapat mengambil memanfaatkan ChromeOS kapabilitas penuh.

Berikut cara tim Pixonic mengoptimalkan War Robots untuk mendapatkan pengalaman optimal di layar yang lebih besar.

Apa yang mereka lakukan

Untuk memulai pengoptimalan, Pixonic menambahkan tag metadata di AndroidManifest.xml yang memberi tahu sistem bahwa sistem siap untuk dukungan penuh ChromeOS dan perlu menonaktifkan emulasi sentuh:

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

Pixonic juga menyetel minSdk aplikasi ke 24 sehingga mesin game Unity dapat langsung menerima klik mouse dan semua peristiwa API terkait gerakan (bukan hanya peristiwa touchpad).

Dukungan keyboard dan mouse

Dalam game PvP pihak ketiga seperti War Robots, memindahkan dan mencapai tujuan jauh lebih mudah menggunakan keyboard dan mouse, terutama pada perangkat dengan layar yang lebih besar. Jadi, langkah selanjutnya adalah menulis ulang kode untuk dukungan keyboard dan mouse untuk mode pertempuran game sambil memegang kontrol layar sentuh.

Untuk memberikan kontrol yang tepat pada waktu yang tepat, tim Pixonic menulis kode baru untuk memeriksa mode gameplay pengguna saat ini:

@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();
    }
}

Jika keyboard QWERTY terdeteksi, game akan disesuaikan dengan mode desktop. Joystick gerakan di pojok kiri bawah menghilang, dan semua tindakan yang tersedia (seperti menyortir senjata, kemampuan, dan menu) diberi label dengan pintasan keyboard.

Robots War dalam mode laptop.

Jika keyboard tidak terdeteksi, joystick gerakan muncul di pojok kiri bawah, dan pintasan keyboard disembunyikan di tombol menu kanan bawah.

War Robots dalam mode gameplay tablet/seluler.

Selanjutnya, Pixonic ingin memastikan kursor tetap tersembunyi saat pemain menggunakan mouse untuk memutar kamera. Dengan menargetkan Android 7.0 (API level 24) atau yang lebih tinggi, tim dapat menetapkan ikon pointer apa pun. Dalam hal ini, tim menggunakan bitmap transparan untuk membuat kursor tidak terlihat selama gameplay:

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

Hal ini memastikan kursor akan dinonaktifkan dan tidak terlihat saat semua jendela lainnya ditutup dan pertempuran sedang berlangsung. Jika jendela pop-up muncul, seperti menu jeda, Pixonic membuat kursor terlihat, yang menampilkan ikon defaultnya.

Menyesuaikan tutorial dan mekanika gameplay

Untuk pengalaman pengguna yang lebih baik, Pixonic juga menulis kode baru untuk menampilkan berbagai tutorial gameplay berdasarkan mode perangkat pengguna saat ini. Jika pemain beralih antara gameplay tablet dan laptop selama pertempuran dan belum pernah melihat tutorial untuk mode lain, tutorial akan ditampilkan sebelum gameplay dilanjutkan.

Tutorial gameplay dalam mode laptop dengan input keyboard dan mouse.

Tutorial gameplay dalam mode tablet dengan kontrol layar sentuh.

Saat pemain dalam mode laptop, Pixonic juga menonaktifkan kontrol kamera layar sentuh (karena pemain akan mengontrol kamera dengan mouse) sementara semua tombol gameplay bekerja seperti biasa. Untuk membedakan sentuhan dari pergerakan mouse, tim menggunakan properti Input.touchCount (dalam skrip Unity):

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

Dukungan multi-aplikasi

Untuk langkah terakhir, Pixonic ingin memastikan game tidak terkunci dalam mode layar penuh saat diluncurkan. Mengaktifkan gameplay berjendela di ChromeOS memungkinkan pengguna untuk menonton streamer favorit mereka secara bersamaan sambil bermain, upgrade robotnya sambil membaca tentang kemampuan baru di situs game, atau menonton pertempuran di mode pasif saat menonton video terpisah.

Untuk melakukannya, Pixonic menandai UnityPlayerActivity sebagai dapat diubah ukurannya:

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

Perhatikan bahwa antarmuka game hanya terlihat dalam rentang dimensi tertentu, tim menetapkan ukuran jendela minimum yang didukung:

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

Untuk gameplay yang paling imersif, Pixonic menggunakan tag meta untuk menyetel mode layar penuh sebagai default dan orientasi lanskap seperti yang diinginkan.

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

War Robots diluncurkan dalam mode jendela.

Pengoptimalan ini juga memastikan bahwa game tidak dijeda dan bahwa HUD pertempuran yang diskalakan sesuai dengan saat pemain memperluas dan memperkecil jendela gameplay.

Hasil

Berkat library referensi online yang lengkap, seluruh proses ini hanya memerlukan waktu dua minggu bagi tim pengembangan Pixonic.

Lebih dari 100.000 pemain sudah memainkan War Robots di ChromeOS sejak Pixonic meluncurkan pengoptimalan terbaru. Karena gameplay kini dapat memanfaatkan ruang yang tersedia di layar yang lebih besar, pertempuran War Robots menjadi lebih mendalam dan menarik daripada sebelumnya. Bahkan, sesi pengguna 25% lebih lama di Chromebook dibandingkan dengan perangkat Android lainnya. Masukan awal sangat positif, dan beberapa pemain bahkan mencatat bahwa game yang dioptimalkan Chromebook berjalan lebih lancar daripada emulator BlueStack.

Berdasarkan keberhasilan mereka, developer Pixonic berencana mengupdate grafis War Robots di semua perangkat Android untuk menjadikan gameplay semakin dekat dengan pengalaman berkualitas PC.

Lihat beberapa praktik terbaik untuk mengoptimalkan aplikasi untuk ChromeOS.