Pixonic 針對大螢幕進行最佳化調整後,在 ChromeOS 上的參與度提升了 25%

背景

Pixonic、 一家位於莫斯科的電玩遊戲開發人員團隊,他們對於這點感到自豪 尋求升級行動應用程式、 遊戲玩家的目標對象該公司的知名遊戲之一 War Robots 享受 12 人與玩家對玩家 (PvP) 互動體驗的一種體驗,玩家可以操控遊戲並與他人合力 即時戰場上精心打造而成的機器人

War Robots 於 2014 年發行,最初是為 Android 早期世代的裝置具備觸控板式動作,不需使用滑鼠輸入。 Pixonic 團隊因為熱衷於遊戲玩家,所以肯定應用程式需要 進行修改,以便在更多裝置上提供優質使用者體驗。 例如筆電和平板電腦目前在任何 Android 裝置上都能暢玩《 War Robots》 因為Chromebook 搭載完整的 Android 架構 特定容器內的 Pod透過一些程式碼調整,Pixonic 得以充分運用 ChromeOS 的功能。

來看看 Pixonic 團隊如何最佳化 War Robot 開發,在 大螢幕

具體措施

為了開始最佳化,Pixonic 在 AndroidManifest.xml 旨在告知系統已準備好全面支援 ChromeOS 而且需要停用觸控模擬功能:

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

Pixonic 也將應用程式的 minSdk 設為 24,讓 Unity 遊戲引擎 不僅可直接獲得滑鼠點擊,以及所有與動作相關的 API 事件 (不僅僅是 觸控板事件)。

鍵盤和滑鼠支援

在《War Robots》等第三人稱 PvP 遊戲中,移動和瞄準變得簡單許多 鍵盤和滑鼠,特別是在大螢幕裝置上。接下來 做法是為遊戲應用程式重新編寫鍵盤和滑鼠支援的程式碼 戰鬥模式,同時保留觸控螢幕控制選項

為了在適當時間提供適當的控制項,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

如果系統未偵測到鍵盤,左下角會顯示移動搖桿,右下方的選單按鈕則會隱藏鍵盤快捷鍵。

在平板電腦/行動裝置遊戲模式中戰爭機器人。

接著,Pixonic 希望確保游標在玩家使用滑鼠旋轉相機時保持隱藏狀態。指定 Android 7.0 (API 級別 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 在視窗模式下啟動。

這些最佳化做法也確保遊戲不會暫停, HUD 會隨著玩家展開和縮小遊戲視窗而調整畫面。

結果

因為我們擁有龐大的線上資源資料庫。 Pixonic 的五名成員開發團隊在短短兩週內就完成相關作業。

自從 ChromeOS 開始,有超過 100,000 名玩家在 ChromeOS 上玩過《 War Robots》 Pixonic 推出了最新最佳化功能。因為遊戲過程 利用大螢幕上更多加大的空間,Way Robots 還能 比起以往,更具臨場感和吸引力事實上,使用者工作階段 與其他 Android 裝置相比早期的意見回饋已 有些玩家甚至發現 Chromebook 最佳化的遊戲比 BlueStacks 更順暢模擬器。

在成功的基礎上,Pixonic 的開發人員打算更新所有 Android 裝置上的《War Robots》圖像,讓遊戲體驗更接近電腦品質。

查看針對 ChromeOS 最佳化應用程式的最佳做法。