พัฒนาเกมสำหรับทุกหน้าจอ

เมื่อพัฒนาเกมสำหรับ Android สิ่งสำคัญคือการคาดการณ์ประสบการณ์ของผู้เล่นที่อาจเกิดขึ้นได้หลากหลาย และปรับตัวให้เข้ากับความต้องการในการโต้ตอบแบบเรียลไทม์ของผู้เล่น การรองรับประสบการณ์การเล่นที่แตกต่างกันจะช่วยเพิ่มความยืดหยุ่นในการเล่นเกม ซึ่งจะช่วยให้คุณขยายการเข้าถึงเกมได้

ความแตกต่างที่เฉพาะเจาะจงในประสบการณ์ของผู้เล่นมีดังนี้

  • รูปแบบของอุปกรณ์: แม้ว่าโทรศัพท์จะมอบประสบการณ์การใช้งานอุปกรณ์ Android แบบดั้งเดิม แต่ก็สามารถโต้ตอบกับเกมในรูปแบบอื่นๆ ได้ อุปกรณ์ ChromeOS สามารถเรียกใช้คอนเทนเนอร์ Android ที่แสดงเกมของคุณได้ แท็บเล็ต ที่ใช้ Android รองรับระดับความเที่ยงตรงที่แตกต่างกันหลายระดับ อุปกรณ์ Android TV รองรับประสบการณ์การใช้งานที่สมจริงและมีรายละเอียดมากขึ้น ผู้เล่นสามารถ จำลองสภาพแวดล้อมแบบหลายหน้าต่างได้โดยใช้เครื่องมือขยายจอแสดงผล และเมื่อใช้โทรศัพท์แบบพับได้ ผู้เล่นจะเปลี่ยนขนาดหน้าจอระหว่างเซสชันการเล่นเกมได้
  • วิธีการโต้ตอบ: ผู้เล่นสามารถป้อนข้อมูลได้โดยการแตะหน้าจอของอุปกรณ์ แต่จะใช้เมาส์ ทัชแพด แป้นพิมพ์ หรือคอนโทรลเลอร์แทนก็ได้ นอกจากนี้ ความพร้อมใช้งานของเครื่องมือขยายการแสดงผลและอุปกรณ์พับได้ยังช่วยให้ผู้เล่นได้สัมผัสประสบการณ์การเล่นเกมของคุณบนหน้าจอที่ใหญ่ขึ้น ทำให้เซสชันการเล่นเกมที่ยาวนานขึ้นและอินเทอร์เฟซที่ซับซ้อนมากขึ้นเป็นไปได้
  • การรองรับฮาร์ดแวร์: อุปกรณ์บางรุ่นที่ใช้ Android ไม่มีฮาร์ดแวร์ที่ มักพบในอุปกรณ์พกพา เช่น กล้องด้านหลัง GPS และ การเชื่อมต่อเครือข่าย เกมควรปรับให้เข้ากับฮาร์ดแวร์ที่มี และจัดการสถานการณ์ที่ฟีเจอร์บางอย่างไม่พร้อมใช้งานได้อย่างราบรื่น

คู่มือนี้จะนำเสนอแนวทางปฏิบัติแนะนำที่เกี่ยวข้องกับการพัฒนาเกมสำหรับหน้าจอประเภทต่างๆ และการโต้ตอบของผู้ใช้ นอกจากนี้ คู่มือนี้ยังให้คำแนะนำเกี่ยวกับ การออกแบบเกมและการพัฒนากลยุทธ์การทดสอบที่มีประสิทธิภาพด้วย

แนวทางปฏิบัติแนะนำในการออกแบบเกม

เมื่อวางแผนการออกแบบและสถาปัตยกรรมของเกม ให้ทําตามแนวทางปฏิบัติแนะนํา ที่อธิบายไว้ในส่วนต่อไปนี้

ตอบสนองต่อการเปลี่ยนแปลงการกำหนดค่าด้วยตนเอง

เมื่อระบบ Android ตรวจพบการเปลี่ยนแปลงการกำหนดค่า เช่น การเปลี่ยนแปลง ขนาดหน้าจอ การวางแนวหน้าจอ หรือวิธีการป้อนข้อมูล ระบบจะรีสตาร์ท กิจกรรมปัจจุบันโดยค่าเริ่มต้น หากต้องการรักษาสถานะภายในแอปหรือเกม กิจกรรมจะเรียกใช้ onSaveInstanceState() โดยค่าเริ่มต้นก่อนที่จะรีสตาร์ท และ onRestoreInstanceState() หลังจากรีสตาร์ท อย่างไรก็ตาม กระบวนการนี้กำหนดให้กิจกรรมต้องโหลดบริการและทรัพยากรที่เกี่ยวข้องทั้งหมดซ้ำ ดูข้อมูลเพิ่มเติมเกี่ยวกับลักษณะการทำงานเริ่มต้นนี้ได้ที่คู่มือการจัดการการเปลี่ยนแปลงการกำหนดค่า

เซสชันการเล่นเกมทั่วไปจะมีการเปลี่ยนแปลงการกำหนดค่าหลายอย่าง หากเกมของคุณ ปล่อยให้ระบบจัดการการเปลี่ยนแปลงการกำหนดค่าแต่ละครั้ง ฉากของเกมจะถูกทำลาย และรีสตาร์ทซ้ำๆ ซึ่งจะทำให้ประสิทธิภาพของเกมลดลง ด้วยเหตุนี้ เราจึงขอแนะนำให้คุณจัดการการเปลี่ยนแปลงการกำหนดค่าเหล่านี้ด้วยตนเองในเกม

หากต้องการดูวิธีเพิ่มตรรกะการเปลี่ยนแปลงการกำหนดค่านี้ลงในเกม โปรดดูส่วนเกี่ยวกับวิธีสร้างตัวแฮนเดิลการเปลี่ยนแปลงการกำหนดค่าที่กำหนดเอง

สร้างสถาปัตยกรรมที่ยืดหยุ่น

หากต้องการเพิ่มการรองรับเกมในอุปกรณ์ให้ได้มากที่สุด ให้ทำตามแนวทางปฏิบัติแนะนำต่อไปนี้

  • ทำให้ Android App Bundle ใช้งานได้แทน APK แต่ละรายการ Android App Bundles ช่วยให้คุณแพ็กเกจอาร์ติแฟกต์ที่มีความละเอียดและโมเดลสถาปัตยกรรมที่แตกต่างกัน เช่น x86, ARM ลงในอาร์ติแฟกต์เดียวได้ นอกจากนี้ Android App Bundle ยังรองรับขีดจำกัดด้านขนาดที่สูงขึ้นสำหรับเกมของคุณ โดย APK ฐานแต่ละรายการอาจมีขนาดใหญ่ถึง 150 MB และตัว Bundle เองอาจมีขนาดหลายกิกะไบต์
  • เพิ่มการรองรับสถาปัตยกรรม x86 ขั้นตอนนี้จะช่วยปรับปรุงประสิทธิภาพของเกมในอุปกรณ์ที่ไม่รองรับ ARM เนื่องจากอุปกรณ์เหล่านี้จะสามารถ เรียกใช้คำสั่งได้โดยไม่ต้องแปลก่อน

เพิ่มการรองรับ Vulkan

การรองรับ Vulkan จะช่วยให้เกมของคุณมีประสิทธิภาพด้านกราฟิกสูงขึ้น อุปกรณ์ส่วนใหญ่รองรับกราฟิก API นี้

สร้างตัวแฮนเดิลการเปลี่ยนแปลงการกำหนดค่าที่กำหนดเอง

หากต้องการประกาศประเภทการเปลี่ยนแปลงการกำหนดค่าที่เกมของคุณจัดการเอง ให้เพิ่มแอตทริบิวต์ android:configChanges ลงในองค์ประกอบ <activity> แต่ละรายการในไฟล์ Manifest ที่แสดงถึงหน้าจอหรืออินเทอร์เฟซที่ซับซ้อน

ข้อมูลโค้ดต่อไปนี้แสดงวิธีประกาศว่าเกมของคุณรองรับการเปลี่ยนแปลงขนาดหน้าจอ การวางแนวหน้าจอ และวิธีการป้อนข้อมูล

<activity ...
    android:configChanges="screenSize|orientation|keyboard|keyboardHidden">
</activity>

เมื่อมีการเปลี่ยนแปลงการกำหนดค่าที่ประกาศไว้ ตอนนี้ระบบจะเรียกใช้เมธอดอื่น onConfigurationChanged() ในเมธอดนี้ ให้เพิ่มตรรกะเพื่ออัปเดต UI ของเกม

  • อัปเดตปัจจัยที่มีผลต่อขนาดและการวางแนวของหน้าจอ โปรดทราบว่าในบางครั้งการปรับขนาด UI ของเกมตาม มิติเดียวอาจดีกว่าในแง่ของ ประสิทธิภาพ
  • ระบุวิธีการป้อนข้อมูลที่เหมาะสมที่สุดสำหรับผู้เล่น

จัดการการเปลี่ยนแปลงการกำหนดค่าหน้าจอ

เกมจะจัดการการเปลี่ยนแปลงขนาดและการวางแนวหน้าจอด้วยตนเองทุกครั้งที่คุณรวมค่า screenSize และ orientation ตามลำดับในแอตทริบิวต์ android:configChanges คุณสามารถใช้ค่าใหม่เหล่านี้เพื่ออัปเดตเนื้อหาของฉากและ พื้นที่ป้อนข้อมูลของผู้เล่น หากต้องการคำแนะนำเกี่ยวกับวิธีออกแบบเลย์เอาต์ของเกมเพื่อให้ อัปเดตได้ง่ายขึ้น โปรดดูคำแนะนำเกี่ยวกับการรองรับหน้าจอขนาดต่างๆ

ในการติดตั้งใช้งาน onConfigurationChanged() ของเกม ให้ใช้ออบเจ็กต์ Configuration ที่ส่งเข้ามาและออบเจ็กต์ Display ของ Window Manager เพื่อ กำหนดค่าที่อัปเดตสำหรับขนาดหน้าจอและการวางแนวหน้าจอ ตามลำดับ

ข้อมูลโค้ดต่อไปนี้แสดงวิธีรับขนาดหน้าจอและ การวางแนวที่อัปเดตแล้วของเกม

Kotlin

override fun onConfigurationChanged(newConfig: Configuration) {
    super.onConfigurationChanged(newConfig)
    val density: Float = resources.displayMetrics.density
    val newScreenWidthPixels = (newConfig.screenWidthDp * density).toInt()
    val newScreenHeightPixels = (newConfig.screenHeightDp * density).toInt()

    // Get general orientation; either Configuration.ORIENTATION_PORTRAIT or
    // Configuration.ORIENTATION_LANDSCAPE.
    val newScreenOrientation: Int = newConfig.orientation

    // Get general rotation; one of: ROTATION_0, ROTATION_90, ROTATION_180,
    // or ROTATION_270.
    val newScreenRotation: Int = windowManager.defaultDisplay.rotation
}

Java

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    float density = getResources().getDisplayMetrics().density;
    int newScreenWidthPixels = (int) (newConfig.screenWidthDp * density);
    int newScreenHeightPixels = (int) (newConfig.screenHeightDp * density);

    // Get general orientation; either Configuration.ORIENTATION_PORTRAIT or
    // Configuration.ORIENTATION_LANDSCAPE.
    int newScreenOrientation = newConfig.orientation;

    // Get general rotation; one of: ROTATION_0, ROTATION_90, ROTATION_180,
    // or ROTATION_270.
    int newScreenRotation = getWindowManager().getDefaultDisplay()
            .getRotation();
}

โปรดทราบว่าการเปลี่ยนท่าทางของอุปกรณ์แบบพับได้จะเปลี่ยนการกำหนดค่า แม้ว่าแอปจะทำงานในโหมดเต็มหน้าจอก็ตาม ด้วยเหตุนี้ แอปของคุณอาจต้องจัดการการเปลี่ยนแปลงขนาดหน้าจอหรือความหนาแน่นของพิกเซล หากผู้ใช้พับหรือกางอุปกรณ์ขณะที่เกมกำลังทำงานอยู่

คุณภาพหน้าจอเฉพาะเกม

ส่วนต่อไปนี้จะอธิบายวิธีปรับการตอบสนองของเกมต่อการเปลี่ยนแปลงขนาดหรือการวางแนวหน้าจอ โดยขึ้นอยู่กับคุณภาพของเกม

โหมดเต็มหน้าจอ

ในบางแพลตฟอร์ม เช่น ChromeOS แอปและเกม Android จะสามารถแสดงในหน้าต่างและ ปรับขนาดได้โดยค่าเริ่มต้น หากเกมควรทำงานในโหมดเต็มหน้าจอเสมอ คุณ สามารถตั้งค่าแอตทริบิวต์ android:resizeableActivity เป็น false ในองค์ประกอบ <activity> รายการใดรายการหนึ่ง ดังที่แสดงใน ข้อมูลโค้ดต่อไปนี้

<activity ...
    android:resizeableActivity="false">
</activity>

คุณยังตั้งค่าแอตทริบิวต์ android:resizeableActivity เป็น false เพื่อป้องกันไม่ให้เกิดการเปลี่ยนแปลงการกำหนดค่าตามขนาดได้ด้วย อย่างไรก็ตาม คุณควรเพิ่มแอตทริบิวต์นี้เป็นเพียงวิธีแก้ปัญหาชั่วคราวเพื่อวัตถุประสงค์ในการทดสอบเท่านั้น เว้นแต่เกมจะทำงานในโหมดเต็มหน้าจอเสมอ

การวางแนวหน้าจอ

หากเกมของคุณต้องอาศัยเซ็นเซอร์ของอุปกรณ์ที่มีการวางแนวที่เฉพาะเจาะจง ให้ระบุค่าสำหรับ android:screenOrientation ใน กิจกรรมของเกม ดังที่แสดงในข้อมูลโค้ดต่อไปนี้ การตั้งค่านี้จะช่วย ป้องกันไม่ให้ฉากในเกมพลิกกลับด้านโดยไม่คาดคิด

<activity ...
    android:screenOrientation="landscape">
</activity>

คุณภาพหน้าจอเฉพาะอุปกรณ์

ส่วนต่อไปนี้จะอธิบายวิธีจัดการการเปลี่ยนแปลงการกำหนดค่าตามหน้าจอ โดยพิจารณาจากคุณภาพเฉพาะที่อุปกรณ์บางเครื่องมี

สัดส่วนภาพ

อุปกรณ์บางรุ่นรองรับสัดส่วนการแสดงผลที่แตกต่างกัน ตัวอย่างเช่น อุปกรณ์แบบพับได้ได้รับการออกแบบมาให้รองรับสัดส่วนภาพ 21:9 เมื่ออยู่ในสถานะพับ หากต้องการจัดการ สัดส่วนภาพที่อาจแตกต่างกันนี้ ให้ทำอย่างน้อย 1 อย่างต่อไปนี้

  • กำหนดเป้าหมายเป็น Android 8.0 (ระดับ API 26) ขึ้นไป
  • ทำให้ฉากและอินเทอร์เฟซของเกมปรับขนาดได้ ตั้งค่า android:resizeableActivity เป็น true ในอุปกรณ์ที่ใช้ Android 7.0 (ระดับ API 24) ขึ้นไป
  • ประกาศสัดส่วนภาพสูงสุดที่รองรับ ในแอตทริบิวต์ <meta-data> ที่เชื่อมโยง กับเกม ให้ตั้งค่า android.max_aspect เป็น 2.4 ดังที่แสดงในข้อมูลโค้ด ต่อไปนี้ อย่างไรก็ตาม โปรดทราบว่าสัดส่วนภาพที่ใหญ่กว่าสัดส่วนภาพที่คุณระบุจะทำให้เกมปรากฏเป็นมีแถบดำด้านบน-ล่างของภาพภายในจอแสดงผล

    <application>
    <meta-data android:name="android.max_aspect"
               android:value="2.4" />
    </application>

กิจกรรมหลายอย่างปรากฏพร้อมกัน

อุปกรณ์รุ่นใหม่ๆ หลายรุ่นรองรับเลย์เอาต์หน้าจอที่หลากหลาย ซึ่งรวมถึงการแยกหน้าจอ โหมดภาพซ้อนภาพ และพื้นที่แสดงผลขนาดใหญ่ เมื่อใช้เลย์เอาต์ใดเลย์เอาต์หนึ่งเหล่านี้ ระบบจะแสดงกิจกรรมหลายอย่างพร้อมกันได้

ในอุปกรณ์ที่ใช้ Android 9 (ระดับ API 28) ขึ้นไป กิจกรรมที่มองเห็นได้ทั้งหมดที่ด้านบนจะกลับมาทำงานพร้อมกันได้ อย่างไรก็ตาม ทั้งเกมและ OEM ของอุปกรณ์ต้องเลือกใช้ฟังก์ชันนี้เพื่อให้ลักษณะการทำงานนี้ ใช้งานได้ คุณเพิ่มการรองรับภายในเกมได้โดยตั้งค่า android.allow_multiple_resumed_activitiesเป็น true ในไฟล์ Manifest ของเกม ดังที่แสดงในตัวอย่างโค้ดต่อไปนี้

<application>
    <meta-data android:name="android.allow_multiple_resumed_activities"
               android:value="true" />
</application>

จากนั้นคุณสามารถทดสอบเกมในอุปกรณ์ต่างๆ เพื่อดูว่าอุปกรณ์ใดบ้างที่ให้การสนับสนุนจาก OEM ที่จำเป็นต่อการทำงานของโหมดหลายหน้าต่างอย่างถูกต้อง

ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าเกมให้ปรากฏเป็นส่วนหนึ่งของ การแสดงผลแบบหลายหน้าต่างได้ที่ดูคำแนะนำเกี่ยวกับวิธีเพิ่มการรองรับ การทำงานแบบหลายหน้าต่าง

จัดการโมเดลการโต้ตอบประเภทต่างๆ

เกมของคุณจะจัดการการมีอยู่และความพร้อมใช้งานของแป้นพิมพ์ด้วยตนเองทุกครั้งที่คุณรวมค่า keyboard และ keyboardHidden ตามลำดับในแอตทริบิวต์ android:configChanges คุณสามารถใช้ค่าใหม่เหล่านี้เพื่ออัปเดตวิธีการป้อนข้อมูลหลักของเกม

เมื่อกำหนดค่าเกมให้รองรับข้อมูลจากผู้ใช้หลายประเภท โปรดคำนึงถึงสิ่งต่อไปนี้

  • ตรวจหาวิธีการป้อนข้อมูลแทนที่จะตรวจหาอุปกรณ์แต่ละเครื่อง แนวคิดนี้ช่วยให้ปรับปรุงประสบการณ์ของผู้เล่นได้ง่ายขึ้นโดยไม่ต้องมุ่งเน้นที่อุปกรณ์เฉพาะที่ผู้เล่นอาจมีมากเกินไป
  • ระบุแอตทริบิวต์ keyboardHidden ในรายการการเปลี่ยนแปลงการกำหนดค่าที่จัดการด้วยตนเอง วิธีนี้จะช่วยให้เกมติดตามได้ว่าเมื่อใดที่แป้นพิมพ์ ต่ออยู่กับอุปกรณ์แต่ใช้ไม่ได้
  • กำหนดวิธีการป้อนข้อมูลที่พร้อมใช้งานในปัจจุบัน โดยเรียกใช้ getInputDeviceIds() เมื่อเริ่มเกมและหลังจากเปลี่ยนการกำหนดค่าแต่ละครั้ง

    คุณมักจะกำหนดวิธีที่ผู้เล่นวางแผนที่จะโต้ตอบกับเกมได้ โดยอิงตามอุปกรณ์อินพุตที่ต้องการ ดังนี้

    • โดยปกติแล้ว ผู้เล่นจะใช้แป้นพิมพ์หรือเกมคอนโทรลเลอร์เพื่อกดปุ่มตามลำดับอย่างรวดเร็ว
    • โดยปกติแล้วผู้เล่นจะใช้หน้าจอสัมผัสหรือทัชแพดเพื่อทำท่าทางที่ซับซ้อนมากขึ้น
    • โดยปกติแล้วผู้เล่นจะใช้เมาส์เพื่อป้อนข้อมูลที่มีความแม่นยำสูงขึ้น

ส่วนต่อไปนี้จะแสดงแนวทางปฏิบัติแนะนำสำหรับอุปกรณ์ป้อนข้อมูลบางประเภท

แป้นพิมพ์

เมื่อสร้างเลย์เอาต์แป้นพิมพ์สำหรับเกม ให้พิจารณาว่าผู้เล่นจะไปยังส่วนต่างๆ ในฉากที่กำหนด รวมถึงวิธีโต้ตอบกับการตั้งค่าของเกมอย่างไร

โดยปกติแล้ว แป้น WASD หรือแป้นลูกศรจะเหมาะที่สุดสำหรับการควบคุมการเคลื่อนที่ของตัวละคร นอกจากนี้ คุณควรกำหนดคีย์เฉพาะสำหรับการกระทำหรือทักษะที่สำคัญแต่ละอย่าง ซึ่งตัวละครที่ควบคุมได้สามารถทำได้ภายในเกม ลองเพิ่มการรองรับการเชื่อมโยงคีย์ที่กำหนดเองในเกมเพื่อเพิ่มประสบการณ์การใช้งานของผู้เล่นให้ได้สูงสุด

นอกจากนี้ ผู้เล่นควรเปิดเมนูของเกมและไปยังส่วนต่างๆ ได้ โดยใช้แป้นพิมพ์ Esc เป็นการแมปทั่วไปสำหรับการหยุดฉากชั่วคราวและ แสดงเมนูของเกม

ดูข้อมูลเพิ่มเติมเกี่ยวกับการรองรับอินพุตจากแป้นพิมพ์ในเกมได้ที่คำแนะนำ เกี่ยวกับวิธีรองรับการไปยังส่วนต่างๆ ด้วยแป้นพิมพ์ รวมถึงคำแนะนำเกี่ยวกับวิธีจัดการการดำเนินการด้วยแป้นพิมพ์

เกมคอนโทรลเลอร์

ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการอินพุตของคอนโทรลเลอร์ในเกมได้ที่ดูคำแนะนำ เกี่ยวกับวิธีรองรับเกมคอนโทรลเลอร์

เมาส์หรือทัชแพด

หากเกมรองรับการป้อนข้อมูลของผู้เล่นจากเมาส์หรือทัชแพด โปรดทราบว่า ผู้เล่นจะโต้ตอบกับอุปกรณ์ในลักษณะอื่นๆ นอกเหนือจากการเล่นเกมของคุณ โปรดทราบว่าการขอการจับพอยน์เตอร์จะส่งผลให้ระบบนำอินพุตของเมาส์ทั้งหมดไปยังเกมของคุณ ดังนั้นหลังจากที่เกมมีข้อมูลที่ต้องการแล้ว ให้ปล่อยการจับเคอร์เซอร์เพื่อให้ผู้เล่นกลับมาควบคุมเมาส์ของอุปกรณ์ได้ตามปกติ

ในอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป คุณสามารถใช้ Mouse Capture API เพื่อช่วยในกระบวนการจับเคอร์เซอร์ได้ ในเกมที่ตอบสนองต่อ อินพุตที่มีความแม่นยำสูง คุณจะรับพิกัดปัจจุบันของเคอร์เซอร์ได้โดยเรียกใช้เมธอด getX() และ getY()

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มการรองรับอินพุตจากเมาส์และทัชแพดในเกมได้ที่คู่มือเกี่ยวกับวิธีติดตามการสัมผัสและการเคลื่อนไหวของเคอร์เซอร์ รวมถึงคู่มือเกี่ยวกับวิธีจัดการ ท่าทางสัมผัสแบบมัลติทัช

ทดสอบเกม

ก่อนเปิดตัวเกม ให้ทดสอบว่าเกมตอบสนองต่อการเปลี่ยนแปลงการกำหนดค่าอย่างไรโดย ทำตามขั้นตอนที่อธิบายไว้ในส่วนต่อไปนี้

อัปเดตแผนการทดสอบ

เมื่อตรวจสอบฟังก์ชันการทำงานของเกม ให้รวมกรณีทดสอบต่อไปนี้

  • ย่อและขยายหน้าต่างที่มีเกม (ไม่เกี่ยวข้องหากเกมของคุณอยู่ในโหมดเต็มหน้าจอเสมอ)
  • เปลี่ยนขนาดหน้าจอ
  • เปลี่ยนการวางแนวหน้าจอ (ไม่เกี่ยวข้องหากเกมของคุณมี การวางแนวคงที่)
  • เชื่อมต่อและยกเลิกการเชื่อมต่ออุปกรณ์อินพุต เช่น แป้นพิมพ์และเมาส์
  • ดำเนินการโหมดหลายหน้าต่าง หากเกมรองรับ

นอกจากนี้ โปรดพิจารณาอัปเดตระบบควบคุมคุณภาพของเกมเพื่อให้คุณ เพิ่มประสิทธิภาพสำหรับประสบการณ์การเล่นเกมที่หลากหลายมากขึ้นได้

ดูแนวทางปฏิบัติแนะนำเกี่ยวกับการทดสอบเกมได้ที่คู่มือหลักพื้นฐานของ การทดสอบ

ใช้เครื่องมือทดสอบและแก้ไขข้อบกพร่อง

คุณทดสอบได้โดยใช้เครื่องมือต่างๆ ที่แพลตฟอร์มรองรับ ดังนี้