主题
官方示例画廊(code_sample / data_sample)
星火 2.0 提供两个内置示例项目模板,覆盖从 2D/3D 玩法、物理、联机同步到 UI 与各子系统的用法:
code_sample— 代码驱动示例合集,src/下 30+ 个可运行的示例游戏 / 演示(每个目录一个)。data_sample— 数据编辑器 + 触发器驱动的示例工程,演示以 GameData / 触发器为主的开发方式。
如何打开
在编辑器中新建项目时选择 code_sample 或 data_sample 模板即可打开对应示例工程。进入后:
- 先按下方「我想做 X」表定位候选示例;
- 再进入对应目录阅读核心的
*GameMode*.cs、*.Client.cs、*.Server.cs; - 若该目录存在
README.md,优先阅读它。
各示例通过 src/GlobalConfig.cs 的 AvailableGameModes 注册,可在运行时切换 GameMode 查看。
我想做 X,看哪个示例
| 我想…… | 推荐示例 | 核心模式 / API |
|---|---|---|
| 从零跑一个默认 3D 可控示例 | NormalTest/ | 默认模式、UI 初始化、基础交互 |
| 3D 生存刷怪(类吸血鬼幸存者) | VampireSurvivors3D/ | 敌人刷新、追击、被动能力、C/S 协作 |
| 3D 塔防 | TowerDefenseGame/ | 网格建造、炮塔升级、波次刷新、协议通信 |
| ARPG(技能 + 背包 + 物品) | ARPGTemplate/ | Ability、Item、AI、ScopeData 扩展 |
| 剧情 / 角色驱动 RPG | XianJianQiXiaZhuan/ | 自定义 ScopeData、C/S 分层 |
| 2D 平台跳跃 | MarioGame/ | 2D 物理、平台碰撞、角色控制 |
| 2D 卡牌 / 回合交互 | BalatroGame/ | Canvas 字体绘制、卡牌流程 |
| Canvas 字体 / 文本演示 | XiBaoMeme/ | Canvas 文本 API、轻量 UI |
| 2D 吸血鬼幸存者 | VampireSurvivor/ | Canvas 渲染、对象池、碰撞 / 刷怪 |
| 单机 FlappyBird | FlappyBirdGame/ | Canvas 循环、UI 管理、粒子、分数持久化 |
| 2048 这类网格 UI 游戏 | Game2048/ | 非 Canvas UI、状态机、输入处理 |
| 3D 物理入门(跳跃平台) | JumpJumpGame/ | RigidBody、CollisionShape、ApplyImpulse、OnCollisionBegin |
| 3D 物理进阶(障碍赛) | FallGuysGame/ | Constraint(Hinge)、Kinematic、CCD、Raycast、CollisionLayer/Mask |
| 沙盒 / 粒子玩法 | SandtrisGame/、GravitySandbox/ | 物理 / 粒子、实时模拟 |
| GameGraph 普通/透明画中画与 RenderToTexture | RendererViewportSample/ | Renderer.SetupMainViewport、GameOverlay.xml、SetViewport、Texture2D.CreateRenderTarget |
| 运行时生成图片并上传 3D 纹理 | RuntimeTextureSample/ | Image、Texture2D.CreateFromImage、MaterialPBR(Texture2D)、StaticMeshComponent、CustomGeometryComponent |
| 制作体素贴图、顶点光照、透明裁剪和半透明表面 | VoxelMaterialSample/ | MaterialVertexColor、VertexColorMaterialMode、MeshBuilder.SetColors、CustomGeometry.DefineColor |
| 代码生成运行时粒子 | RuntimeParticleBuilderSample/ | ParticleSystem.CreateRuntime、AddSpriteEmitter/AddMeshEmitter/AddBeamEmitter/AddRibbonEmitter、ExportEffect |
| 联机连续运动同步(推荐范式) | HybridFlappyBird/ | replicated Node + PropertyHostComponent、CanvasAnimated、客户端零外插 |
| 联机连续运动同步(⚠️ 旧范式,仅迁移对照) | FlappyBirdMultiplayer/ | PropertyObject 全量同步 + 手搓外插 → 改用上一行 |
| 联机棋盘游戏(五子棋) | Gomoku/ | 服务端权威状态、ProtoCustomMessage |
| 位置走 node、数据走属性组件(含逐属性隐私 / 反作弊) | PropertyHostSample/、PropertyHostPrivacySample/ | AddPropertyHost、[PropertyHostFacet]、逐属性 SyncType |
| 自定义消息通信 | TypedMessageTest/ | Typed message、双端处理 |
| 用户云数据同步 | UserCloudDataTest/ | 用户数据读写、同步流程 |
| AI 行为系统 | AISystemTest/ | WaveAI、AIThinkTree、行为编排 |
| 场景精确视野 / 扇形视野 | SceneVisionSample/ | GameDataScene.Vision、UnitVisionConfig、UnitProperty.Sight |
| Buff 系统 | BuffTest/ | Buff 生命周期、状态叠加 |
| AVG / 对话系统 | AVGSystem/ | AVG 流程、UI 与脚本协同 |
| 物品 Mod 扩展 | ItemModTest/ | Item Mod 注入、扩展点 |
| 新 UI 设计系统 / 流式布局 | UIFrameworkTest/、ModernUITest/ | 流式 UI API、VStack/HStack、响应式 |
| 长按 / 触控行为 | TouchBehaviorTest/ | TouchBehavior、交互事件 |
| 大列表虚拟化 | VirtualizingPanelTest/ | VirtualizingPanel、性能优化 |
| 官方内置 UI 组件 | GameUITest/ | 摇杆、Buff 列表等内置组件 |
示例目录(全量)
> 来源:code_sample/src/GlobalConfig.cs 的 AvailableGameModes 与 code_sample/src/EXAMPLES_INDEX.md。
入门与 2D 玩法
| 示例 | 目录 | 说明 |
|---|---|---|
| 默认 3D 示例 | NormalTest/ | 基础游戏流程与 UI 初始化 |
| FlappyBird(单机) | FlappyBirdGame/ | IThinker 循环、Canvas、粒子、分数管理 |
| 2048 | Game2048/ | 非 Canvas UI、状态机、输入处理 |
| 马里奥(2D 平台) | MarioGame/ | 2D 物理、角色控制、碰撞检测 |
| Balatro(卡牌) | BalatroGame/ | Canvas 字体、回合流程、UI 状态 |
| 喜报 Meme(文本) | XiBaoMeme/ | Canvas 文本 API、字体绘制 |
| 吸血鬼幸存者(2D) | VampireSurvivor/ | Canvas 渲染、对象池、碰撞 |
| 沙子俄罗斯方块 | SandtrisGame/ | 粒子 / 网格行为、实时更新 |
3D 玩法与物理
| 示例 | 目录 | 说明 |
|---|---|---|
| 吸血鬼幸存者(3D) | VampireSurvivors3D/ | 刷怪、追击、被动能力、C/S 分层 |
| 塔防 | TowerDefenseGame/ | 网格建造、塔升级、波次、协议消息 |
| ARPG 模板 | ARPGTemplate/ | Ability / Item / AI / 配置化 ScopeData |
| 仙剑(复杂 RPG) | XianJianQiXiaZhuan/ | 自定义 ScopeData、多文件模块化、C/S 分离 |
| 跳一跳(物理入门) | JumpJumpGame/ | RigidBody、CollisionShape、ApplyImpulse |
| 糖豆人(物理进阶) | FallGuysGame/ | Constraint、Kinematic、CCD、Raycast、CollisionLayer/Mask |
| 引力沙盒 | GravitySandbox/ | 轨道 / 重力模拟 |
联机与同步
| 示例 | 目录 | 说明 |
|---|---|---|
| 混合同步 FlappyBird(推荐) | HybridFlappyBird/ | 位置走 replicated node 原生平滑、数据走 [PropertyHostFacet]、客户端零外插;CanvasAnimated 多人同场 |
| FlappyBird 多人版(⚠️ 已弃用) | FlappyBirdMultiplayer/ | 旧范式:PropertyObject 全量同步 + 手搓外插。连续运动联机请改用 HybridFlappyBird |
| 五子棋(联机) | Gomoku/ | 服务端权威状态、ProtoCustomMessage、棋盘同步 |
| 属性宿主组件 | PropertyHostSample/ | 位置走 node、数据走 PropertyHostComponent |
| 属性宿主隐私 / 反作弊 | PropertyHostPrivacySample/ | 公开属性双方可见、私有属性仅 owner 可见 |
| 自定义消息 | TypedMessageTest/ | Typed message、请求 / 响应 |
| 用户云数据 | UserCloudDataTest/ | 用户数据 API、同步策略 |
GameGraph / 渲染 / 粒子
| 示例 | 目录 | 说明 |
|---|---|---|
| 渲染视口 | RendererViewportSample/ | 主视口接管、普通/透明画中画并排对照、RenderToTexture |
| 运行时程序化纹理 | RuntimeTextureSample/ | Image 上传、PBR 绑定、StaticMesh / CustomGeometry 对照 |
| 体素顶点颜色材质 | VoxelMaterialSample/ | 2×4 对照贴图乘顶点色、受光/无光、不透明/裁剪/混合 |
| 运行时粒子构造 | RuntimeParticleBuilderSample/ | sprite / mesh / beam / ribbon 发射器、ExportEffect |
| 基础图元 | PrimitiveShapeTest/ | 图元绘制、可视化调试 |
VoxelMaterialSample 是贴图顶点色材质的验证夹具:上排使用 MeshBuilder + StaticMeshComponent,下排使用 CustomGeometryComponent,四列依次为 LitOpaque、UnlitOpaque、LitAlphaCutout、UnlitAlphaBlend。对应变体已进入 Editor、Windows、Android 和 iOS shadercache,样例还提供结构化材质快照与画质切换工具。
系统与 UI
| 示例 | 目录 | 说明 |
|---|---|---|
| AI 系统 | AISystemTest/ | WaveAI、AIThinkTree、自动测试序列 |
| 场景视野 | SceneVisionSample/ | 精确视野、单位扇形视野 |
| Buff 系统 | BuffTest/ | Buff 生命周期、叠加与触发 |
| AVG / 对话 | AVGSystem/ | 对话 / 剧情流程、UI 交互 |
| 物品 Mod | ItemModTest/ | Mod 扩展点、物品系统注入 |
| 现代流式 UI | ModernUITest/、UIFrameworkTest/ | VStack/HStack、Flex、响应式布局 |
| 内置 UI 组件 | GameUITest/ | 摇杆、Buff 列表等 |
| 触控行为 | TouchBehaviorTest/ | TouchBehavior、按钮交互 |
| 虚拟化列表 | VirtualizingPanelTest/ | 大列表渲染优化 |
data_sample(数据 + 触发器驱动)
data_sample 演示以数据编辑器 GameData + 触发器为主的开发方式(src/ScopeData.cs、src/CustomTriggerCodes.cs、TriggerGenerated/),适合以配置和触发器逻辑为核心、少写或不写手写玩法代码的项目。相关文档见 触发器系统 与数据编辑器相关指南。