文档版本:v1.0 最后更新:2026-04-07 13:05:00
本文档用于定义后台运维平台后续如何正式支持“游戏定制”,重点回答以下问题:
本文档是对 运维后台第一期方案 的补充,不替代第一期范围文档。前者回答“第一期做哪些后台模块”,本文档回答“后台长期如何支撑游戏定制”。
后台后续不应做成“全量 JSON 编辑器”,而应做成一套活动生产与发布平台。
游戏定制建议按以下 5 层支持:
这 5 层的核心原则是:
活动层回答“这是一场什么活动”。
建议后台在这一层支持:
这一层不应暴露大量技术字段,不直接暴露地图、瓦片、KML 原始对象。
地图与赛道层回答“这场活动在哪张地图、哪条赛道上运行”。
建议后台支持:
CourseSetCourseVariantassignmentMode这一层是后续游戏定制的核心层。
关键原则:
variantsession 最终只绑定一个 variantIdsession 绑定为准玩法层回答“这场活动按什么规则玩”。
建议后台支持:
不建议后台一开始就暴露底层散装字段。应继续坚持:
例如可以后台开放:
但不建议一开始开放:
运营内容层回答“活动如何展示、用什么内容表达”。
建议后台支持:
EventPresentationContentBundle这里已经和当前前后端第二阶段联调方向一致:
currentPresentationcurrentContentBundlelaunch.presentationlaunch.contentBundle建议后台在这一层承担:
canLaunch发布层回答“客户端最终实际消费什么”。
建议后台支持:
客户端最终应只认:
EventReleaselaunchmanifest/config/runtime/presentation/contentBundle 摘要建议后续后台围绕以下对象正式建设:
EventEventReleaseMapRuntimeBindingEventPresentationContentBundlePlaceMapAssetTileReleaseCourseSourceCourseSetCourseVariantGameTemplate对象分工建议如下。
负责活动业务壳:
负责客户端正式消费版本:
presentationIdcontentBundleIdruntimeBindingIdmanifestUrlconfigUrl负责把活动运营域和地图运行域绑定起来:
placeIdmapIdtileReleaseIdcourseSetIdcourseVariantIdconfigReleaseId负责活动展示与卡片/详情结构。
负责活动内容、资源、动画、音频、文创素材等静态资源引用。
负责玩法模板和规则层默认差异。
这层的作用不是替代程序默认值,而是让后台运营在不碰底层散装字段的前提下,选择“规则骨架”。
后台后续不要做成“所有变量都可配”,建议按 3 级开放:
必须在后台显式可见:
适合在后台标准表单中开放:
保留为高级区或后续阶段:
如果后台要开始支撑游戏定制,建议最小页面结构如下:
每页建议承担的职责:
runtimepresentationcontent bundle后台应优先支持“生产闭环”,而不是单独做配置编辑页。
建议最小生产流程为:
launch 消费建议发布前必须检查:
这也应与当前 backend 已收紧的 play.canLaunch 语义保持一致。
多赛道是后续后台必须重点支持的一条。
建议后台支持:
assignmentMode
manualrandomserver-assigned关键原则:
session 最终只绑定一个 variant建议后台后续支持的方向不是额外维护一套完全独立的预览地图资源,而是围绕:
来支持准备页地图预览。
当前推荐方案已经单独写在:
后台需要支持的最小数据包括:
nonesummaryfull建议后台支持游戏定制按以下顺序推进:
优先做:
先保证“活动能正式发布、能正式进入”。
优先做:
优先做:
GameTemplate优先做:
例如:
后台下一步不应做成“配置编辑器”,而应做成一套活动生产与发布平台。
游戏定制建议以后台五层模型推进:
只要这五层分清,后续游戏定制、活动运营、多赛道、准备页预览和发布闭环都能稳定扩展。