Phát hành trình cài đặt

Tài liệu này hướng dẫn bạn cách xuất bản trò chơi trên Google Play Games trên máy tính bằng trình cài đặt trò chơi.

Với quy trình do nhà phát triển cài đặt, trình cài đặt trò chơi mà bạn cung cấp phải quản lý việc cài đặt, cập nhật và gỡ cài đặt trò chơi.

Trước khi bắt đầu

Tích hợp SDK Google Play Games vào trò chơi của bạn.

Đóng gói trò chơi dưới dạng tệp WAB

Google Play Games trên máy tính yêu cầu bạn tải trình cài đặt trò chơi lên Google Play Console dưới dạng tệp gói ứng dụng Windows (WAB). Để tạo tệp WAB, hãy làm theo các bước sau:

  1. Tải công cụ xuất bản trên Play xuống. Bạn có thể chạy công cụ này trên dòng lệnh Windows hoặc PowerShell.

  2. Tạo tệp cấu hình xuất bản trên Play bằng tên bất kỳ. Ví dụ: play_publishing_config.xml có định dạng sau:

    <?xml version="1.0" encoding="UTF-8"?>
    <play-publishing-config version="1.0">
      <application>
        <package-name>PACKAGE_NAME</package-name>
        <version-name>VERSION_NAME</version-name>
      </application>
      <installer requiresElevation=INSTALLER_REQUIRES_ELEVATION acceptsCommandLineArguments=ACCEPTS_COMMAND_LINE_ARGUMENTS>
        <path>INSTALLER_PATH</path>
        <installation-path-registry-location>
          <key-name>UNIQUE_REGISTRY_PATH</key-name>
          <value-name>InstallLocation</value-name>
        </installation-path-registry-location>
      </installer>
      <launcher requiresElevation=LAUNCHER_REQUIRES_ELEVATION>
        <launch-path-registry-location>
          <key-name>UNIQUE_REGISTRY_PATH</key-name>
          <value-name>InstallLocation</value-name>
        </launch-path-registry-location>
        <executable-invocation>
          <filename>RELATIVE_PATH_TO_LAUNCHER_EXE</filename>
          <arguments>LAUNCHER_ARGS_IF_ANY</arguments>
        </executable-invocation>
      </launcher>
      <uninstaller requiresElevation=UNINSTALLER_REQUIRES_ELEVATION>
        <uninstall-path-registry-location>
          <key-name>UNIQUE_REGISTRY_PATH</key-name>
          <value-name>UninstallString</value-name>
        </uninstall-path-registry-location>
      </uninstaller>
    </play-publishing-config>

    Thay thế nội dung sau:

    • PACKAGE_NAME: Tên gói của trò chơi. Đây là giá trị nhận dạng duy nhất sẽ được liên kết với trò chơi của bạn trên Google Play. Ví dụ: com.yourcompany.yourgame. Tên gói phải tuân thủ các quy tắc sau:
      • Mã ứng dụng phải có ít nhất 2 phân đoạn (gồm một hoặc nhiều dấu chấm).
      • Mỗi phân đoạn phải bắt đầu bằng một chữ cái.
      • Tất cả ký tự phải có dạng chữ-số hoặc dấu gạch dưới ([a-zA-Z0-9_]).
    • VERSION_NAME: Chuỗi phiên bản của trò chơi. Đây có thể là một chuỗi tuỳ ý, nhưng phải là duy nhất trên tất cả các WAB đã tải lên cho trò chơi của bạn. Ví dụ: 1.0, 1.0.1-beta, 2025.11.24, v1.rc1.

      • INSTALLER_REQUIRES_ELEVATION: Cho biết liệu tệp thực thi của trình cài đặt có cần chạy dưới dạng Quản trị viên để hoàn tất quy trình cài đặt hay không.

        • "true": Chạy tệp thực thi với tư cách Quản trị viên.
        • "false": Chạy tệp thực thi với tư cách là người dùng hiện tại.
      • ACCEPTS_COMMAND_LINE_ARGUMENTS: Giá trị boolean cho biết liệu trình cài đặt có thể chấp nhận đối số dòng lệnh để bật tính năng tự động phát hay không. Đây là thuộc tính không bắt buộc và giá trị mặc định là false. Để biết thêm thông tin, hãy xem phần Bật tính năng Tự động phát.

      • INSTALLER_PATH: Đường dẫn đến tệp trình cài đặt trong WAB. Đường dẫn này có thể là tuyệt đối hoặc tương đối so với thư mục mẹ của cấu hình xuất bản trên Play. Ví dụ: path\to\test\installer. Hãy nhớ sử dụng authenticode và tính năng ký mã để ký tệp thực thi của trình cài đặt trò chơi.

      • UNIQUE_REGISTRY_PATH: Đường dẫn khoá đăng ký Windows. Đường dẫn này phải được cung cấp tương ứng với một phân vùng đăng ký, chẳng hạn như HKEY_LOCAL_MACHINE hoặc HKEY_CURRENT_USER; đừng thêm tên phân vùng vào chuỗi đường dẫn. Ví dụ: nếu trình cài đặt của bạn ghi vào HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName, chỉ định Software\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName. Google Play Games trên máy tính sẽ tìm kiếm đường dẫn này trong nhiều nhóm để xác định các giá trị cần thiết cho việc khởi chạy và gỡ cài đặt.

        Tệp thực thi được chỉ định trong INSTALLER_PATH phải tạo các khoá đăng ký này. Trước khi quá trình cài đặt hoàn tất, bạn phải tạo các cặp khoá đăng ký và tên giá trị được chỉ định trong installation-path-registry-location, launch-path-registry-locationuninstall-path-registry-location. Mặc dù ví dụ này sử dụng InstallLocationUninstallString, nhưng bạn có thể chỉ định bất kỳ tên nào trong các thẻ <value-name> này, miễn là trình cài đặt của bạn tạo các mục đăng ký tương ứng cho cả ba. Google Play Games trên máy tính sử dụng các giá trị này để khởi chạy và gỡ cài đặt trò chơi. Nếu trò chơi của bạn sử dụng một trình chạy, thì đường dẫn này phải trỏ đến khoá đăng ký chứa thông tin cài đặt cho trình chạy, đồng thời giá trị trong mục đăng ký do launch-path-registry-location chỉ định phải trỏ đến thư mục của trình chạy.

        Đường dẫn này phải là duy nhất trên máy của người dùng. Ví dụ:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName.

        Nếu trình cài đặt trò chơi của bạn là một ứng dụng 32 bit chạy trên Windows 64 bit, thì Windows sẽ sử dụng chuyển hướng sổ đăng ký để ghi các mục trong sổ đăng ký trong HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node. Ví dụ: thao tác ghi vào HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName sẽ được chuyển hướng đến HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName.

      • LAUNCHER_REQUIRES_ELEVATION: Cho biết liệu trình chạy hoặc tệp thực thi trò chơi có cần chạy với tư cách Quản trị viên mỗi khi được chạy hay không.

        • "true": Chạy tệp thực thi với tư cách Quản trị viên.
        • "false": Chạy tệp thực thi với tư cách là người dùng hiện tại.
      • RELATIVE_PATH_TO_LAUNCHER_EXE: Đường dẫn đến trình chạy hoặc tệp thực thi trò chơi trong thư mục cài đặt. Bạn phải thêm tên tệp thực thi của trình chạy hoặc trò chơi. Ví dụ: nếu tệp trình chạy hoặc tệp trò chơi của bạn có tên là mygame.exe và nằm trong {INSTALL_DIR}\Resources\mygame.exe, thì bạn phải đặt Resources\mygame.exe

      • LAUNCHER_ARGS_IF_ANY: Mọi đối số dòng lệnh cần được truyền vào trình chạy hoặc trò chơi của bạn. Bạn không bắt buộc phải nhập thông tin này.

        • Trong trường hợp có nhiều đối số liên kết với một tệp thực thi, bạn cần phân tách các đối số đó bằng dấu cách.
        • Các đối số cần được thêm tiền tố "--" hoặc "-", nếu tệp thực thi yêu cầu.
      • UNINSTALLER_REQUIRES_ELEVATION: Cho biết liệu tệp thực thi của trình gỡ cài đặt có cần chạy với tư cách Quản trị viên để hoàn tất quy trình gỡ cài đặt hay không.

        • "true": Chạy tệp thực thi với tư cách Quản trị viên.
        • "false": Chạy tệp thực thi với tư cách là người dùng hiện tại.

    Ví dụ về tệp cấu hình xuất bản trên Play

    Hãy xem xét một trò chơi có tên là MyGame, với trình cài đặt trò chơi game_installer.exe, trình chạy trò chơi launcher.exe. Ví dụ này cũng cho thấy cách sử dụng CDATA. Sau đây là giao diện của play_publishing_config.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <play-publishing-config version="1.0">
      <application>
        <!-- The package name for your game. -->
        <package-name>com.mycompany.mygame</package-name>
        <!-- The game's version string. -->
        <version-name>1.0.0</version-name>
      </application>
      <!-- If requiresElevation is "true", installer runs as Administrator
           and a UAC prompt is displayed. This is required for system-wide
           installs (e.g., to Program Files) or writing to HKLM. -->
      <!-- If acceptsCommandLineArguments is "true", the installer must
           be able to accept command-line arguments to enable the auto-play
           feature. -->
      <installer requiresElevation="true" acceptsCommandLineArguments="true">
        <!-- Path to your installer executable. -->
        <path>game_installer.exe</path>
        <!-- The registry location where the installer writes the installation path. -->
        <installation-path-registry-location>
          <!-- Registry key path (typically under HKLM or HKCU).
               game_installer.exe MUST create this key. -->
          <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey</key-name>
          <!-- game_installer.exe, specified in <path>, creates the registry
               value called 'InstallLocation' within
               SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey
               by the time it exits. -->
          <value-name>InstallLocation</value-name>
        </installation-path-registry-location>
      </installer>
    
      <!-- If requiresElevation is "true", launcher runs as Administrator
           and a UAC prompt is displayed on every game launch. -->
      <launcher requiresElevation="true">
        <!-- Specifies the registry location where Google Play Games reads the installation path
             in order to launch the game. -->
        <launch-path-registry-location >
          <!-- Registry key path (typically under HKLM or HKCU) where
               the launch path can be found. -->
          <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey</key-name>
          <!-- Google Play Games reads the installation directory from this
               registry value, for example InstallLocation, to launch the game. -->
          <value-name>InstallLocation</value-name>
        </launch-path-registry-location>
        <executable-invocation>
          <!-- Game executable or launcher filename, relative to the
               directory path specified in the InstallLocation registry value. -->
          <filename>launcher.exe</filename>
          <!-- Optional arguments to pass to the executable.
               CDATA is used here to avoid issues with special characters
               like & or >. -->
          <arguments><![CDATA[arg1&arg2>arg3]]></arguments>
        </executable-invocation>
      </launcher>
    
      <!-- If requiresElevation is "true", uninstaller runs as
           Administrator and a UAC prompt is displayed for uninstall. -->
      <uninstaller requiresElevation="true">
        <!-- Registry key where Google Play Games finds the
             uninstallation command. -->
        <uninstall-path-registry-location>
          <!-- Registry key path (typically under HKLM or HKCU) where
               uninstall command can be found. -->
          <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey</key-name>
          <!-- game_installer.exe also creates the registry value, for example, 'UninstallString'
               within SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey,
               containing the command Google Play Games executes to uninstall
               the game. -->
          <value-name>UninstallString</value-name>
        </uninstall-path-registry-location>
      </uninstaller>
    </play-publishing-config>
    
  3. Chạy công cụ xuất bản của Play trên dòng lệnh Windows hoặc Powershell.

    playpublishingtool.exe build-installer-bundle --input=PLAY_PUBLISHING_CONFIG_PATH --output=WAB_OUTPUT_PATH
    

    Để ghi đè một tệp WAB hiện có có cùng tên, hãy dùng đối số --force.

    playpublishingtool.exe build-installer-bundle --input=PLAY_PUBLISHING_CONFIG_PATH --output=WAB_OUTPUT_PATH --force
    

    Thay thế nội dung sau:

    • PLAY_PUBLISHING_CONFIG_PATH: Đường dẫn đến cấu hình xuất bản trên Play. Ví dụ: path\to\play_publishing_config.xml.
    • WAB_OUTPUT_PATH: Đường dẫn đến tệp WAB. Ví dụ: path\to\output_bundle.wab.

    Cách sử dụng công cụ xuất bản của Play

    Giả sử bạn có tệp nhị phân công cụ phát hành trên Play playpublishingtool.exe, cấu hình phát hành trên Play play_publishing_config.xml và trình cài đặt trò chơi game_installer.exe trong thư mục đang hoạt động.

    Thư mục làm việc hiện tại của bạn sẽ có dạng như sau:

    .\
    ├── game_installer.exe
    ├── play_publishing_config.xml
    ├── playpublishingtool.exe
    

    Để tạo một WAB có tên là installer_bundle.wab trong cùng một thư mục, lệnh sẽ có dạng như sau:

    playpublishingtool.exe build-installer-bundle --input=play_publishing_config.xml --output=installer_bundle.wab
    

    Với đối số --force, lệnh sẽ có dạng như sau:

    playpublishingtool.exe build-installer-bundle --input=play_publishing_config.xml --output=installer_bundle.wab --force
    

    Nếu thành công, bạn sẽ thấy kết quả tương tự như sau:

    Successfully built the installer bundle at installer_bundle.wab
    

    Tìm tệp WAB trong thư mục:

      .\
      ├── game_installer.exe
      ├── installer_bundle.wab
      ├── play_publishing_config.xml
      ├── playpublishingtool.exe
    

    Bật tính năng Tự động phát khi cài đặt Trò chơi gốc trên máy tính (Không bắt buộc)

    Google Play Games trên máy tính cho phép bạn bật tính năng "tự động phát". Tính năng này sẽ tự động khởi chạy trò chơi ngay sau khi quá trình cài đặt hoàn tất. Tính năng này mang đến trải nghiệm liền mạch cho người dùng bằng cách chuyển người chơi trực tiếp vào trò chơi, được xác thực đầy đủ trong hệ sinh thái Google Play Games trên máy tính.

    Cách hoạt động

    Khi bạn bật tính năng này, Google Play Games trên máy tính sẽ truyền mã thông báo phiên đến quy trình cài đặt của bên thứ ba (3P) bằng cách sử dụng đối số dòng lệnh. Sau đó, trình cài đặt của bạn sẽ chịu trách nhiệm trích xuất mã thông báo này và dùng mã thông báo đó để chạy tệp thực thi trò chơi trong một bối cảnh đã xác thực.

    Điều kiện tiên quyết

    Để sử dụng tính năng này, trình cài đặt bên thứ ba phải có khả năng xử lý các đối số dòng lệnh.

    Các bước triển khai

    1. Bật tính năng Tự động phát trong Cấu hình xuất bản trên Play

      Để chọn sử dụng tính năng này, hãy thêm thuộc tính acceptsCommandLineArguments vào phần tử <installer> trong play_publishing_config.xml.

      Ví dụ về đoạn trích trong nội dung của play_publishing_config.xml:

           <installer requiresElevation="true" acceptsCommandLineArguments="true">
              <path>path/to/installer.exe</path>
              <installation-path-registry-location>
                <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\key</key-name>
                <value-name>InstallPath</value-name>
              </installation-path-registry-location>
           </installer>
      • Thuộc tính: acceptsCommandLineArguments
      • Loại: Boolean
      • Mặc định: false
      • Hành vi: Khi bạn đặt giá trị này thành true, GPG sẽ thêm mã thông báo phiên vào các đối số dòng lệnh khi thực thi trình cài đặt.
    2. Xử lý mã thông báo phiên trong trình cài đặt

      Khi ứng dụng GPG khởi chạy trình cài đặt của bạn, trình cài đặt đó sẽ nhận được mã thông báo phiên dưới dạng đối số dòng lệnh.

      • Định dạng đối số: --g_session_token=<TOKEN>

      Việc bạn phải làm:

      • Trích xuất: Trình cài đặt phải phân tích cú pháp các đối số dòng lệnh để truy xuất chuỗi mã thông báo.
      • Truyền tải: Nếu quy trình cài đặt của bạn liên quan đến việc khởi chạy một trình chạy hoặc quy trình trò chơi phụ, thì trình cài đặt của bạn chịu trách nhiệm truyền mã thông báo phiên một cách an toàn đến quy trình trò chơi cuối cùng sử dụng SDK.
      • Khởi chạy: Sử dụng mã thông báo phiên được cung cấp để khởi động tệp thực thi trò chơi. Điều này đảm bảo trò chơi chạy trong một bối cảnh GPG đã xác thực. Nếu không, InitializeSDK sẽ không thành công và người chơi sẽ cần khởi động lại trò chơi.
    3. Xử lý lỗi và dự phòng

      • Truy xuất mã thông báo: Nếu vì bất kỳ lý do nào mà GPG không thể tạo hoặc truyền mã thông báo phiên (ví dụ: không tạo được mã thông báo), thì quy trình cài đặt vẫn sẽ tiếp tục. Tuy nhiên, trình cài đặt của bạn sẽ được khởi chạy mà không có đối số --g_session_token.
      • Tính ổn định: Trình cài đặt của bạn phải được thiết kế để xử lý các trường hợp không có mã thông báo phiên. Trong những trường hợp như vậy, trình cài đặt sẽ tiến hành cài đặt tiêu chuẩn; bạn không nên kích hoạt tính năng khởi chạy trò chơi tự động vì InitializeSDK sẽ không hoạt động.
      • Lỗi trình cài đặt: Bạn chịu trách nhiệm về độ ổn định và khả năng xử lý lỗi của trình cài đặt cũng như trình tự khởi chạy trò chơi mà trình cài đặt đó khởi tạo. GPG không kiểm soát các quy trình diễn ra trong trình cài đặt sau khi trình cài đặt được khởi chạy.

Phát hành trò chơi bằng Play Console

Sau khi bạn tạo thành công WAB cho trò chơi, hãy tải WAB đó lên Play Console và quản lý các chế độ cài đặt cũng như yêu cầu của WAB. Làm theo các bước để xuất bản trò chơi:

Thêm hệ số hình dạng dành cho Google Play Games trên máy tính

Bạn chỉ cần thực hiện bước này trong lần đầu tiên xuất bản trò chơi.

  1. Trong Play Console, trên trình đơn bên trái, hãy chọn Kiểm thử và phát hành > Thiết lập > Cài đặt nâng cao (đường liên kết trực tiếp).
  2. Chuyển đến thẻ Hệ số hình dạng rồi thêm Google Play Games on PC trong trình đơn thả xuống + Thêm hệ số hình dạng.

  3. Nhấp vào nút Quản lý tương ứng với hệ số hình dạng Google Play Games trên máy tính ở bên phải.

  4. Chọn mục Dùng một kênh chuyên dụng cho trò chơi trong gói ứng dụng Windows.

  5. Nhấp vào Lưu rồi nhấp vào Lưu một lần nữa trên hộp thoại xác nhận.

Bật chế độ Xuất bản có quản lý

Để bật tính năng xuất bản có quản lý, hãy làm theo các bước sau.

  1. Trên trang Tổng quan về việc xuất bản, trong phần Xuất bản có quản lý, hãy nhấp vào Bật chế độ xuất bản có quản lý.
  2. Một hộp thoại sẽ xuất hiện. Chuyển sang chế độ Xuất bản có quản lý đang bật cho kênh.
  3. Nhấp vào Lưu.

Tải tệp WAB lên

Để tải tệp WAB lên, hãy làm theo các bước sau:

  1. Trong Play Console, trên trình đơn bên trái, hãy chọn Kiểm thử và phát hành > Cài đặt nâng cao (đường liên kết trực tiếp).
  2. Trong trang Cài đặt nâng cao, hãy nhấp vào thẻ Hệ số hình dạng.
  3. Trong thẻ Hệ số hình dạng, hãy nhấp vào + Thêm hệ số hình dạng rồi chọn Google Play Games trên máy tính để thêm.
  4. Trong phần Google Play Games trên máy tính, hãy nhấp vào Quản lý.
  5. Chọn Dùng một kênh chuyên dụng cho trò chơi trong gói ứng dụng Windows.
  6. Nhấp vào Lưu.
  7. Trong Play Console, trên trình đơn bên trái, hãy chọn Kiểm thử và phát hành > Bản phát hành công khai (đường liên kết trực tiếp).
  8. Trong trang Phát hành công khai, hãy chọn Chỉ Google Play Games trên máy tính (Windows) trong trình đơn thả xuống về hệ số hình dạng.
  9. Trong thẻ Gói ứng dụng Windows, hãy nhấp vào Chỉnh sửa rồi tải tệp WAB lên.

Định cấu hình các yêu cầu đối với máy tính Windows

Cách định cấu hình các yêu cầu đối với máy tính Windows:

  1. Trong Play Console, trên trình đơn bên trái, hãy chọn Tăng số lượng người dùng > Sự hiện diện trong Cửa hàng Play > Cài đặt cửa hàng (đường liên kết trực tiếp).
  2. Trong phần Yêu cầu đối với máy tính, hãy nhấp vào nút Chỉnh sửa ở bên phải.
  3. Cập nhật các trường rồi nhấp vào Lưu.

Định cấu hình hình ảnh về tính năng mua hàng trong ứng dụng

Đây là bước không bắt buộc. Cách định cấu hình hình ảnh về giao dịch mua hàng trong ứng dụng:

  1. Trong Play Console, trên trình đơn bên trái, hãy chọn Phát triển người dùng > Sự hiện diện trong Cửa hàng Play > Trang thông tin trên Cửa hàng Play(đường liên kết trực tiếp).
  2. Trong phần Trang thông tin mặc định trên Cửa hàng Play trong thẻ Trang thông tin, hãy nhấp vào nút -> (mũi tên) ở bên phải. Thao tác này sẽ đưa bạn đến trang Trang thông tin mặc định trên Cửa hàng Play.
  3. Chuyển đến phần Google Play Games trên máy tính rồi tải hình ảnh lên tại Hình ảnh về tính năng mua hàng trong ứng dụng của Google Play Games trên máy tính (Windows).
  4. Nhấp vào Lưu.

Gửi các thay đổi đi xem xét

  1. Trong Play Console, trên trình đơn bên trái, hãy chọn Tổng quan về việc xuất bản.
  2. Trong phần Các thay đổi chưa được gửi đi xem xét, hãy nhấp vào Gửi các thay đổi đi xem xét.

Khi Nhóm xem xét phê duyệt các thay đổi của bạn, người dùng sẽ có thể tìm thấy trò chơi của bạn trên Google Play.