ขับเคลื่อนเกมของคุณโดยใช้ Play Games PC SDK

Play Games PC SDK ช่วยให้คุณเข้าถึงบริการของ Google Play เพื่อสร้างและ สร้างรายได้จากเกมบน PC ได้ ขายเนื้อหาดิจิทัลโดยใช้การเรียกเก็บเงินของ Play, ลงชื่อเข้าใช้โดยใช้ Play Games ได้อย่างราบรื่น และตรวจสอบว่าผู้ใช้มีสิทธิ์ที่ถูกต้องในการเข้าถึงแอปพลิเคชันของคุณด้วย Play Integrity

หากพร้อมที่จะเริ่มแล้ว

สิ่งที่ต้องมีก่อน

  • สร้างข้อมูลแอปภายใน Play Console และอ้างสิทธิ์ชื่อแพ็กเกจ Play

  • ดาวน์โหลดและติดตั้ง Google Play Games สำหรับ PC แล้วลงชื่อเข้าใช้ด้วยบัญชี Google

ขั้นตอนที่ 1: เพิ่ม SDK ลงในโปรเจ็กต์

  • ดาวน์โหลด SDK ของ Play Games PC C++

  • คัดลอกโฟลเดอร์ส่วนหัวของ API includes/ ลงในโค้ดเบสของแอปพลิเคชัน

  • คัดลอกไฟล์ที่แจกจ่ายต่อได้จาก imports/ ลงในโปรเจ็กต์ของแอปพลิเคชัน

    • ลิงก์โปรเจ็กต์กับ play_pc_sdk.lib เพื่ออนุญาตให้เข้าถึงเนื้อหาของ play_pc_sdk.dll

ขั้นตอนที่ 2: เพิ่มไฟล์ Manifest

ก่อนที่จะใช้ SDK จากภายในเกมได้ คุณจะต้อง เชื่อมโยงไฟล์ปฏิบัติการของเกมกับชื่อแพ็กเกจ Play ที่คุณอ้างสิทธิ์ ภายใน Play Console โดยทำได้ด้วยการเพิ่มไฟล์ manifest.xml ใน ไดเรกทอรีเดียวกับไฟล์ที่เรียกใช้งานของเกม

ตัวอย่างmanifest.xmlเนื้อหา

<?xml version="1.0" encoding="utf-8"?>
<Manifest version="1">
    <Application>
        <PackageName>com.example.package</PackageName>
    </Application>
</Manifest>

ตัวอย่างmanifest.xmlตำแหน่งโฆษณา

C:\Program Files
└───Example Game
    ├───Game.exe
    └───manifest.xml

ขั้นตอนที่ 3: ลงนามดิจิทัลในเกม

ก่อนที่เกมจะใช้ SDK ได้ ไฟล์ปฏิบัติการของเกมต้องได้รับการลงนามแบบดิจิทัล โดยใช้ลายเซ็นดิจิทัล Authenticode ดูวิธีการลงนามในไฟล์ที่เรียกใช้งานได้ที่เอกสารประกอบเกี่ยวกับ SignTool

ขั้นตอนที่ 4: เริ่มต้น SDK

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

เริ่มต้นใช้ SDK โดยการเรียกใช้ GooglePlayInitialize เพื่อเริ่มต้น API ซึ่งจะตั้งค่าสถานะส่วนกลาง เชื่อมต่อกับรันไทม์ SDK และยืนยันว่าแอปพลิเคชันเริ่มต้นอย่างถูกต้อง คุณต้องเรียกใช้ฟังก์ชันนี้และมี การเรียกกลับการดำเนินการต่อที่เสร็จสมบูรณ์โดยมี InitializeResult::ok() เท่ากับ true ก่อนที่จะใช้ API อื่นๆ

// Initialize the SDK as part of the startup sequence of your application.
auto promise = std::make_shared<std::promise<InitializeResult>>();
GooglePlayInitialize(
  [promise](InitializeResult result) {
    promise->set_value(std::move(result));
  });

auto initialize_result = promise->get_future().get();
if (initialize_result.ok()) {
  // The SDK succeeded with initialization. Continue with the startup sequence
  // of the game.
  // ...
} else if (initialize_result.code() == InitializationError::kActionRequiredShutdownClientProcess) {
  // The SDK failed to initialize and has requested that your game process exit
  // as soon as possible.
  exit(1);
} else {
  // The SDK failed to initialize for an alternative reason. It is still
  // generally recommended that you exit the game process as soon as possible,
  // because it won't be possible to access any APIs in the SDK. Critical
  // operations such as verifying the user owns a valid license to your game
  // won't be possible.
  // ...
}

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

การตอบกลับที่ไม่สำเร็จอาจบ่งบอกถึงเงื่อนไขอย่างใดอย่างหนึ่งต่อไปนี้

  • ไม่ได้ติดตั้งรันไทม์ของ SDK, ไม่ได้ทำงานบนอุปกรณ์ หรือเป็น เวอร์ชันเก่าที่ไม่รองรับ SDK ที่ผสานรวมอยู่ในเกม

  • รันไทม์ของ SDK ยืนยันตัวตนแอปพลิเคชันของ เกมไม่ได้ ปัญหานี้อาจเกิดจาก manifest.xml ไม่ถูกต้อง หรือการใช้ SDK โดยไม่ได้เปิดใช้โหมดนักพัฒนาแอป ขณะพัฒนา หากไม่มีการดำเนินการนี้ ระบบจะกำหนดให้ไฟล์ปฏิบัติการของเกมต้อง ลงนามแบบดิจิทัลด้วยใบรับรองดิจิทัลที่ลงทะเบียนไว้กับชื่อแพ็กเกจ Play

  • ไม่ได้เปิดใช้ไฟล์ปฏิบัติการของเกมผ่านไคลเอ็นต์ Google Play Games

  • ผู้ใช้ที่ใช้งานอยู่ใน Google Play Games ไม่มีใบอนุญาตสำหรับแอปพลิเคชัน

ขั้นตอนที่ 5: (ไม่บังคับ) รองรับกระบวนการเกมหลายรายการ

หากเกมของคุณใช้หลายกระบวนการและวางแผนที่จะใช้ Play Games PC SDK จาก กระบวนการที่ Google Play Games บน PC ไม่ได้เปิดใช้โดยตรง คุณจะต้องทำตามขั้นตอนการผสานรวมเพิ่มเติมดังนี้

  1. กระบวนการที่ Google Play Games สำหรับ PC เปิดตัวโดยตรงต้อง ยืนยันการเริ่มต้นใช้งาน Play Games PC SDK ที่สำเร็จ

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

  2. หากต้องการใช้ Play Games PC SDK ในกระบวนการย่อย ให้ส่งต่อพารามิเตอร์บรรทัดคำสั่งไปยังกระบวนการย่อยที่สร้างขึ้น

    ตัวอย่างการส่งต่อพารามิเตอร์บรรทัดคำสั่ง

    Processes hierarchy tree:
    
    GooglePlayGames.exe
    └───YourGameLauncher.exe --foo=abc --bar=123
        └───YourGame.exe --foo=abc --bar=123
    

    ในตัวอย่างนี้ เราจะเห็นลำดับชั้นของกระบวนการที่ Google Play Games สำหรับ PC (GooglePlayGames.exe) เปิดตัวเกม (YourGameLauncher.exe) พร้อมพารามิเตอร์ตัวอย่างบางส่วน (--foo=abc --bar=123) จากนั้นเกมจะสร้างกระบวนการย่อย (YourGame.exe) ซึ่งใช้ Play Games PC SDK หากต้องการอนุญาต กระบวนการของเกมที่ Google Play Games สำหรับ PC เปิดใช้จะส่งต่อพารามิเตอร์บรรทัดคำสั่ง ที่ได้รับไปยังกระบวนการย่อย

  3. ออกจากการประมวลผลทั้งหมดเมื่อเกมหยุดทำงาน

    เมื่อผู้ใช้ปิดเกมหรือเกมออกเนื่องจาก SDK เริ่มต้นทำงานไม่สำเร็จ เช่น kActionRequiredShutdownClientProcess ให้ปิดกระบวนการทั้งหมด ที่เกมของคุณสร้างขึ้น ซึ่งจะช่วยให้มั่นใจได้ว่าในครั้งถัดไปที่ไคลเอ็นต์ Google Play Games สำหรับ PC เปิดเกมของคุณ การเปลี่ยนแปลงใหม่ๆ เช่น การเปลี่ยนไปใช้บัญชีที่ใช้งานอยู่อื่น จะมีผล

ขั้นตอนถัดไป

ใช้ SDK ขณะพัฒนาใน IDE โดยทำดังนี้

เพิ่มฟีเจอร์ Google Play บน PC ลงในแอปโดยทำดังนี้