Implement dual-scrolling cloud fog with RGBA mask bridge (R unlock, G select blink, B dissolve) and a pre-pass shadow, plus example and unit tests following the common SLG FoW presentation pattern. Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
7.5 KiB
7.5 KiB
EVEngine 示例总览
所有示例的统一运行方式(<platform> = win32 / linux / macosx):
make run/<platform>-debug GAME=examples/<name>
部分示例另有 Makefile 快捷入口:make devlab / basic / ecs / rpg / inventory / building。
新手建议顺序:devlab → basic → 你感兴趣的玩法示例 → 程序化生成示例。
开发者体验
| 示例 | 演示能力 |
|---|---|
| devlab | 运行时即编辑器:--debug 下的控制台 / REPL、快照、暂停、热重载、错误切片、AI 面板(旗舰示例,先跑这个) |
| ai-game | AI 驾驶真实游戏:Agent 通过 MCP 读状态 / 改数值 / 截图 / 快照复位(含一键复现脚本 agent_demo.py) |
| ai-editor | AI 现场生成项目专属编辑器:eve mcp 无头主机 + JSON View + ViewModel 双向绑定(含 editor_demo.py) |
新增人物动画示例:Character Motion Lab — 三个人物、八种免费动作、跨骨架重定向、同步播放与逐帧观察。
入门与基础
| 示例 | 演示能力 |
|---|---|
| basic | Tilemap、Box2D 物理、粒子、基础 2D 绘制;另含两个 UI 变体(ui_demo.nut / ui_component.nut) |
| ecs | 脚本 ECS(Component / Entity / System);gpu_main.nut 为 compute shader 变体 |
| scene-ecs | 场景树与脚本 ECS 打通:SceneEntity 行为、eve.view 批量查询 |
2D 玩法系统
| 示例 | 演示能力 |
|---|---|
| rpg | RPG 五系统:属性 / 效果 / 状态 / 技能 / 结算(最小可玩动作 RPG) |
| inventory | 背包:物品定义、主背包 / 任务栏 / 仓库、装备穿脱、跨包转移 |
| cardgame | 可玩的双人德州扑克:四轮下注、AI、七选五牌型、真实烧牌与 52 张 CC0 牌面 |
| dialogue | 对话 + Avatar:Squirrel generator 剧情、i18n 翻译表、分层立绘、程序化台词池(.dnut) |
| galgame | 完整视觉小说《潮汐电台》:原创美术、分支结局、AUTO/SKIP/回想与存读档 |
| building | 建筑放置:地形约束、道路邻接、鬼影预览、旋转拆除 |
| building-tilemap | 在等距 / 六角 tilemap 上放置建筑(2D 精灵穿插) |
| pixelworld | Noita 风格的分块沙、水、油、火焰与蒸汽像素物质仿真 |
| iso-grid-walk | 独立 2.5D PNG 经可插拔 pipeline 生成 TileSet,方格移动与 A* |
| dynamic-water-grid | 双网格岸线、逐格守恒水量、等距连续水面 Shader 与素材替换契约 |
| metroidvania | 物理驱动的横版动作游戏:连击、蹬墙跳、空中冲刺、Boss |
| commandery-rts | 将领行政 RTS:框选/编队移动、占领经济点、生产、军饷与叛乱 |
| hex-levels | 六边形引擎功能测试关卡:寻路 / FOV / 光照 / 掉落 / WFC(31 关) |
| map-fog | 大地图迷雾:MapFog 双层云 + mask(解锁 / 选中 / 溶解) |
| i18n | 本地化:翻译表、占位符、复数规则、热重载 |
3D 玩法与镜头
| 示例 | 演示能力 |
|---|---|
| camera-controllers | 第三人称相机:follow / orbit / topdown / firstperson / cinematic |
| building-3d | 3D 地面放置:射线求交、网格吸附、鬼影与放置会话 |
| climbing-playground | 攀爬与跑酷:真实物理探测、低/高跨越、翻越、空中抓边、阻挡与移动平台 |
| daynight | 昼夜循环:太阳轨道、程序化天空盒、月光 / 星光 / 火焰 / 萤火虫 |
| weather | 天气系统:雨 / 雪 / 雷暴 / 雾 / 风,实时滑块 |
| softbody | 布料与 2D 流体解算器(拖拽 / 排斥 / 吸引) |
| lattice-deform | 3D 晶格缩放变形:squash & stretch、局部鼓起、波浪 |
| sprite-stack | 伪 3D:把 3D 模型切成多层 RGBA 叠片渲染 |
| armored-command-3d | 3D RTS 展示:骨骼坦克、编队命令、齐射与指挥所坍塌 |
程序化生成
| 示例 | 演示能力 |
|---|---|
| procgen | 六种地图算法(BSP / Cellular / Drunkard / Maze / 地形 / WFC)+ 纹理配方 |
| procgen-script-pipeline | 纯脚本 PointSet 组合、确定性 seed、事务式 hot reload |
| pcg-biome | UE PCG 风格空间数据、多层运行时 Cell、时间预算与 Scene 实例批次 |
| roguelike-generator | 种子驱动的房间走廊地牢:autotile、装饰、2D ↔ 2.5D |
| tree-generator | 确定性树木:Weber-Penn / 空间殖民两种骨架算法 |
| bush-generator | 低多边形灌木配方(mesh.bush)与参数实时调节 |
| bush-fog-volumes | 程序化灌木穿过全局与局部体积雾的深度、透明度和多视角检查 |
| rock-generator | 岩石配方:变形 + 程序化石材纹理 + 自动 LOD |
| skyscraper-generator | 退台塔楼配方:窗格、尖顶、程序化立面纹理 |
| housegen | 房屋布局生成 + GLB kit 实例化 |
| linear-structures | 线性可拼接结构:栅栏 / 石墙 / 桥 / 长城 / 树篱 / 拒马 |
渲染与效果
| 示例 | 演示能力 |
|---|---|
| outline | 屏幕空间描边(G-buffer 深度 + 法线) |
| waterfall-demo | 瀑布流动着色器(条纹 / 湍流 / 泡沫) |
| virtualgeometry | 虚拟几何体:cluster DAG + GPU 剔除 + 软件光栅化(Vulkan/WebGPU) |
| tensor | 张量编译管线:策略网络 / conv / SDPA / 批量模拟(纯计算) |
工具与扩展
| 示例 | 演示能力 |
|---|---|
| composable-editor | 可组合编辑器 SDK:C++ Workspace、动态面板、MVVM、ECS,以及游戏/编辑器共享运行时 |
| terrain-editor | 运行时生成的地形编辑器:Viewport 内嵌 3D、笔刷、轨道相机 |
| editor-api-v2 | Editor API V2 同构演示:游戏注入命令,玩家通过 discovery → plan → execute 建造场景 |
| ai-stage | AI 空舞台:scene_director 搭台 kit + MCP,供 Agent 摆物 / 调光 / 截图 / 质检 |
| model-converter | 驱动 Blender 把 OBJ 转换成 GLB 并回载(modelconverter 插件) |
| native-plugin | 原生插件:用 SDK 编译动态库,脚本直接调用 |
| live2d-backend-plugin | Live2D 后端替换骨架:不改游戏脚本换 Cubism 运行时 |
与设计目标对照
想理解这些示例在证明引擎的哪些设计主张,见根目录 Readme.md 的「设计思路」状态表;
开发者体验类的设计价值(热重载、快照、暂停调试、AI/MCP)集中在 devlab 与 ai-stage 中体现。