从本地服务器启动
为简化游戏开发和测试流程,您可以从本地服务器运行游戏。测试可在生产环境和开发环境下进行。
本地服务器运行游戏后,您可以使用SDK的所有功能。
生产环境
注意
需完成Yandex Games平台注册并创建游戏草稿。
适用于游戏提交审核前的最终测试阶段。此模式下游戏将与真实的Yandex Games平台交互。
特点:
- 游戏通过真实地址在yandex.com/games打开
- 需将外部主机添加至CSP规则才能发送请求
- 显示真实广告
- 玩家通过Yandex Passport授权
- 玩家数据和排行榜数据保存在服务器
- 商品目录从服务器加载,购买操作在服务器处理
- 可通过地址栏参数
&debug-mode=16
使用调试面板
可通过以下方式配置生产环境的本地游戏运行:
手动配置本地服务器
- 配置
localhost
服务器 - 在草稿模式下打开游戏
- 在地址中添加参数
?game_url=https://localhost
备注
出于安全考虑,game_url
参数仅支持localhost
域名。
使用npm包配置本地服务器
-
按照Node.JS官网说明安装
npm
-
通过
npm
安装@yandex-games/sdk-dev-proxy包:npm install -g @yandex-games/sdk-dev-proxy
-
启动游戏。可选择:
代理到本地服务器指定游戏资源文件夹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
,控制台将显示服务端游戏模板链接和本地服务器链接。
启动参数
参数 |
说明 |
|
显示帮助信息 |
|
游戏本地服务器主机地址(例如用于 |
|
游戏资源所在文件夹路径 |
|
服务器开放端口(默认8080) |
|
游戏草稿ID |
|
添加带有 |
|
在控制台记录请求日志(默认开启) |
|
修改 |
|
设为 |
开发环境
备注
无需注册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 ''"
}
]
调用购买功能时将显示模拟对话框,包含购买成功和取消选项,便于测试两种场景。
横屏模式
竖屏模式
用于模拟真实对象的测试替身,在不依赖外部资源或组件的情况下测试代码
可在 ''
中填入图片路径