背景
Pixonic、 一間總部設於莫斯科的電玩遊戲開發人員,他們對於這點充滿自信 尋求升級行動應用程式、 遊戲玩家的目標對象該公司的知名遊戲之一 War Robots 享受 12 人與玩家對玩家 (PvP) 互動體驗的一種體驗,玩家可以操控遊戲並與他人合力 即時戰場上精心打造而成的機器人
War Robots 於 2014 年發行,最初是為 Android 早期世代的裝置具備觸控板式動作,不需使用滑鼠輸入。 Pixonic 團隊因為熱愛遊戲,所以認為應用程式需要極高 進行修改,以便在更多裝置上提供優質使用者體驗。 例如筆電和平板電腦目前可在任何 Android 裝置上暢玩《 War Robots》 因為Chromebook 搭載完整的 Android 架構 特定容器內的 PodPixonic 也稍微調整了編碼設定, 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 推出了最新最佳化功能。因為遊戲過程 利用大螢幕上更多加大的空間,War Robots 還能帶領玩家展開精彩戰鬥 比起以往,更具臨場感和吸引力事實上,使用者工作階段 與其他 Android 裝置相比早期的意見回饋已 有些玩家甚至發現 BlueStacks 比 Chromebook 最佳化的遊戲更順暢模擬器。
Pixonic 的開發人員計劃根據他們的成功經驗,更新《War Robots》圖形 ,讓遊戲過程更接近電腦品質 無須專人管理
查看針對 ChromeOS 最佳化應用程式的最佳做法。