本文档用于给服务端和后台配置设计提供一份可直接落地的顺序赛基础模板。
目标是先把入口配置结构定稳,后续程序功能再逐步细化。
适用于最基础的顺序打点玩法:
推荐主配置结构如下:
{
"schemaVersion": "1",
"version": "2026.03.25",
"app": {},
"map": {},
"playfield": {},
"game": {},
"resources": {},
"debug": {}
}
{
"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
}
}
appid
活动或配置实例 idtitle
活动标题locale
语言环境maptiles
瓦片根路径mapmeta
地图 meta 地址declination
磁偏角initialView.zoom
初始缩放级别playfieldkind
当前为 coursesource.type
当前推荐为 kmlsource.url
KML 地址CPRadius
检查点绘制半径,单位米metadata
路线元数据game.sessionstartManually
是否需要先点击开始按钮requiresStartPunch
是否必须先打开始点requiresFinishPunch
是否必须打终点autoFinishOnLastControl
是否打完最后一个检查点自动结束maxDurationSec
最大比赛时长game.punchpolicy
当前推荐 enter-confirmradiusMeters
正常打点半径game.sequenceskip
顺序赛跳点规则enabled
是否允许跳点radiusMeters
跳点半径,必须大于打点半径requiresConfirm
是否必须用户确认后跳点当前基础版建议先关闭:
"enabled": false
game.guidanceshowLegs
是否显示腿线legAnimation
是否显示当前腿动画allowFocusSelection
顺序赛一般为 falsegame.visibilityrevealFullPlayfieldAfterStartPunch
开始点打卡后是否显示完整路线game.finishfinishControlAlwaysSelectable
顺序赛一般为 falsegame.telemetry通用体能参数。
game.feedback反馈 profile 绑定。
resources资源 profile 绑定。
debug调试相关开关。
顺序赛当前阶段建议至少保证以下字段存在:
map.tilesmap.mapmetamap.declinationplayfield.kindplayfield.source.typeplayfield.source.urlplayfield.CPRadiusgame.modegame.punch.policygame.punch.radiusMetersgame.session.requiresStartPunchgame.session.requiresFinishPunch如果服务端还没有全部配置细项,建议先采用以下默认值:
{
"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
}
}
}
当前客户端迁移时,建议服务端先完成:
map / playfield / game / resources / debug优先把“入口结构”夯实,再逐步扩玩法参数。
顺序赛配置当前阶段建议:
playfield.kind = coursegame.session / game.punch / game.sequence / game.guidance 承载玩法规则