5.7 KiB
5.7 KiB
顺序赛配置文档(基础版)
文档版本:v1.0 最后更新:2026-04-02
本文档用于给服务端和后台配置设计提供一份可直接落地的顺序赛基础模板。
目标是先把入口配置结构定稳,后续程序功能再逐步细化。
1. 适用玩法
适用于最基础的顺序打点玩法:
- 手动开始
- 先打开始点
- 按顺序打检查点
- 最后打终点
- 支持正常打点半径
- 预留后续扩展规则空间
2. 顶层结构
推荐主配置结构如下:
{
"schemaVersion": "1",
"version": "2026.03.25",
"app": {},
"map": {},
"playfield": {},
"game": {},
"resources": {},
"debug": {}
}
3. 完整示例
{
"schemaVersion": "1",
"version": "2026.03.25",
"app": {
"id": "lxcb-001",
"title": "雪熊领秀城区顺序赛",
"locale": "zh-CN"
},
"map": {
"tiles": "lxcb-001/tiles/",
"mapmeta": "lxcb-001/tiles/meta.json",
"declination": 6.91,
"initialView": {
"zoom": 17
}
},
"playfield": {
"kind": "course",
"source": {
"type": "kml",
"url": "lxcb-001/course/c01.kml"
},
"CPRadius": 6,
"metadata": {
"title": "校园经典路线",
"code": "c01"
}
},
"game": {
"mode": "classic-sequential",
"rulesVersion": "1",
"session": {
"startManually": true,
"requiresStartPunch": true,
"requiresFinishPunch": true,
"autoFinishOnLastControl": false,
"maxDurationSec": 5400
},
"punch": {
"policy": "enter-confirm",
"radiusMeters": 10
},
"sequence": {
"skip": {
"enabled": false,
"radiusMeters": 30,
"requiresConfirm": true
}
},
"guidance": {
"showLegs": true,
"legAnimation": true,
"allowFocusSelection": false
},
"visibility": {
"revealFullPlayfieldAfterStartPunch": true
},
"finish": {
"finishControlAlwaysSelectable": false
},
"telemetry": {
"heartRate": {
"age": 30,
"restingHeartRateBpm": 62,
"userWeightKg": 65
}
},
"feedback": {
"audioProfile": "default",
"hapticsProfile": "default",
"uiEffectsProfile": "default"
}
},
"resources": {
"audioProfile": "default",
"contentProfile": "default",
"themeProfile": "default-race"
},
"debug": {
"allowModeSwitch": false,
"allowMockInput": false,
"allowSimulator": false
}
}
4. 字段说明
app
id活动或配置实例 idtitle活动标题locale语言环境
map
tiles瓦片根路径mapmeta地图 meta 地址declination磁偏角initialView.zoom初始缩放级别
playfield
kind当前为coursesource.type当前推荐为kmlsource.urlKML 地址CPRadius检查点绘制半径,单位米metadata路线元数据
game.session
startManually是否需要先点击开始按钮requiresStartPunch是否必须先打开始点requiresFinishPunch是否必须打终点autoFinishOnLastControl是否打完最后一个检查点自动结束maxDurationSec最大比赛时长
game.punch
policy当前推荐enter-confirmradiusMeters正常打点半径
game.sequence
skip顺序赛跳点规则enabled是否允许跳点radiusMeters跳点半径,必须大于打点半径requiresConfirm是否必须用户确认后跳点
当前基础版建议先关闭:
"enabled": false
game.guidance
showLegs是否显示腿线legAnimation是否显示当前腿动画allowFocusSelection顺序赛一般为false
game.visibility
revealFullPlayfieldAfterStartPunch开始点打卡后是否显示完整路线
game.finish
finishControlAlwaysSelectable顺序赛一般为false
game.telemetry
通用体能参数。
game.feedback
反馈 profile 绑定。
resources
资源 profile 绑定。
debug
调试相关开关。
5. 当前阶段推荐必填字段
顺序赛当前阶段建议至少保证以下字段存在:
map.tilesmap.mapmetamap.declinationplayfield.kindplayfield.source.typeplayfield.source.urlplayfield.CPRadiusgame.modegame.punch.policygame.punch.radiusMetersgame.session.requiresStartPunchgame.session.requiresFinishPunch
6. 当前阶段建议默认值
如果服务端还没有全部配置细项,建议先采用以下默认值:
{
"game": {
"session": {
"startManually": true,
"requiresStartPunch": true,
"requiresFinishPunch": true,
"autoFinishOnLastControl": false
},
"punch": {
"policy": "enter-confirm",
"radiusMeters": 10
},
"sequence": {
"skip": {
"enabled": false,
"radiusMeters": 30,
"requiresConfirm": true
}
},
"guidance": {
"showLegs": true,
"legAnimation": true,
"allowFocusSelection": false
}
}
}
7. 适合当前客户端的迁移原则
当前客户端迁移时,建议服务端先完成:
- 将老字段逐步迁入
map / playfield / game / resources / debug - 保持基础字段完整
- 不急着一次性把所有高级规则上线
优先把“入口结构”夯实,再逐步扩玩法参数。
8. 一句话结论
顺序赛配置当前阶段建议:
- 用
playfield.kind = course - 用 KML 承载空间底稿
- 用
game.session / game.punch / game.sequence / game.guidance承载玩法规则 - 先把基础入口结构定稳,后续再细化跳点、惩罚、特殊引导等高级规则