从本地服务器启动

为简化游戏开发和测试流程,您可以从本地服务器运行游戏。测试可在生产环境开发环境下进行。

本地服务器运行游戏后,您可以使用SDK的所有功能。

生产环境

注意

适用于游戏提交审核前的最终测试阶段。此模式下游戏将与真实的Yandex Games平台交互。

特点:

  • 游戏通过真实地址在yandex.com/games打开
  • 需将外部主机添加至CSP规则才能发送请求
  • 显示真实广告
  • 玩家通过Yandex Passport授权
  • 玩家数据和排行榜数据保存在服务器
  • 商品目录从服务器加载,购买操作在服务器处理
  • 可通过地址栏参数&debug-mode=16使用调试面板

可通过以下方式配置生产环境的本地游戏运行:

手动配置本地服务器

  1. 配置localhost服务器
  2. 草稿模式下打开游戏
  3. 在地址中添加参数?game_url=https://localhost

备注

出于安全考虑,game_url参数仅支持localhost域名。

使用npm包配置本地服务器

  1. 按照Node.JS官网说明安装npm

  2. 通过npm安装@yandex-games/sdk-dev-proxy包:

    npm install -g @yandex-games/sdk-dev-proxy
    
  3. 启动游戏。可选择:

    npx @yandex-games/sdk-dev-proxy -h <本地服务器地址>
    
    npx @yandex-games/sdk-dev-proxy -p <游戏文件夹路径>
    

    该包会在游戏所在服务器上代理SDK资源的请求。

若指定--app-id参数,启动时将直接在yandex.com/games打开您的游戏:

npx @yandex-games/sdk-dev-proxy -p <游戏文件夹路径> --app-id=<游戏ID>

若不指定--app-id,控制台将显示服务端游戏模板链接和本地服务器链接。

启动参数

参数

说明

--help

显示帮助信息

--host, -h

游戏本地服务器主机地址(例如用于webpack-dev-server

--path, -p

游戏资源所在文件夹路径

--port

服务器开放端口(默认8080)

--app-id, -i

游戏草稿ID

--csp, -c

添加带有Content-Security-Policy的meta标签,与服务端index.html中创建的标签一致

--log, -l

在控制台记录请求日志(默认开启)

--tld

修改yandex.tld域名,例如改为yandex.com(默认为ru

--dev-mode

设为true时在开发环境下运行游戏(默认为false,即生产环境)

开发环境

备注

无需注册Yandex Games平台或创建游戏草稿。

适用于积极开发和调试游戏逻辑阶段。此模式下游戏不与真实Yandex Games平台连接,所有SDK调用均被mock替代,可实现快速页面重载和更新查看。

特点:

  • 游戏直接在https://localhost打开
  • 无CSP限制,可向任何外部主机发送请求
  • 使用占位广告替代真实广告,所有回调函数执行方式与生产环境一致
  • 通过模拟浏览器对话框实现玩家授权
  • 玩家数据和排行榜数据保存在localStorage
  • 商品目录从本地文件加载,玩家购买记录保存在localStorage
  • 可通过浏览器地址栏设置参数进行调试
  • 浏览器控制台自动按模块分类记录所有SDK调用日志

开发环境同样可通过npm包@yandex-games/sdk-dev-proxy运行。配置说明与生产环境相同,只需在启动时添加--dev-mode=true参数。

可选择:

npx @yandex-games/sdk-dev-proxy -h <本地服务器地址> --dev-mode=true
npx @yandex-games/sdk-dev-proxy -p <游戏文件夹路径> --dev-mode=true

浏览器地址栏可用参数

export interface SDKMocks {
    /** 是否允许添加快捷方式至桌面? */
    canShowPrompt?: boolean;
    /** 玩家是否已授权? */
    isAuthorized?: boolean;
    /** 游戏是否锁定屏幕方向 */
    lockedOrientation?: ELockedOrientation;
}

/** 移动端游戏锁定屏幕方向设置 */
export enum ELockedOrientation {
    /** 仅支持横屏 */
    LANDSCAPE = 'landscape',
    /** 支持双方向 */
    NONE = 'none',
    /** 仅支持竖屏 */
    PORTRAIT = 'portrait',
}

示例

localhost:8080?mocks={"canShowPrompt":true,"isAuthorized":true,"lockedOrientation":"landscape"}

本地商品目录设置

为模拟商品目录,请在项目根目录创建purchases-catalog.json文件,添加与开发人员控制台相同或计划添加的商品列表。开发环境下SDK将从该文件加载商品列表。

示例

[
    {
        "description": "Well styled modern avatar image",
        "id": "avatar",
        "imageURI": "{path-to-image}",
        "price": "100 RUB",
        "priceCurrencyCode": "RUB",
        "priceValue": "100",
        "title": "Premium avatar",
        "getPriceCurrencyImage": "return ''"
    }
]

调用购买功能时将显示模拟对话框,包含购买成功和取消选项,便于测试两种场景。

横屏模式

竖屏模式

用于模拟真实对象的测试替身,在不依赖外部资源或组件的情况下测试代码

可在 '' 中填入图片路径

上一篇
下一篇