Tiny World Builder 微型世界建造器
一款运行在浏览器中的自包含 3D 体素世界编辑器,可搭建、雕刻、飞行浏览并分享微缩世界,基于 Three.js 与原生 JavaScript 实现。
爱鲜报评分
0 人评分
1.6k
星数
否
中文
JavaScript
主语言
是
活跃
13
贡献者
人工分析
EDITORIAL推荐理由
Tiny World Builder 把「我的世界」式的体素建造体验压缩进单个网页,无需安装客户端即可在浏览器里搭地形、放房屋、种庄稼、养动物。它内置地形雕刻、车辆 AI 路网、天气与时间等系统,还支持导出与分享,非常适合做创意原型、教学演示或轻量沙盒游戏。代码为单文件原生 JS,架构清晰,是研究浏览器 3D 编辑器实现的好素材。
适用场景
- 浏览器内 3D 体素沙盒建造与地形雕刻
- 微缩世界创意原型与教学演示
- 体素/Three.js 渲染与邻接规则学习
- 路网与车辆 AI 仿真压力测试
- 静态站点部署的在线小游戏或互动展示
优点
- 纯浏览器运行,无需安装,打开网页即可建造
- 功能丰富:地形雕刻、道具放置、车辆 AI、天气时间系统
- Three.js 自托管,部署不依赖运行时 CDN
- 支持本地存档、导出、分享与种子化可复现地图
- 单文件原生 JS 架构,模型与渲染分离,便于阅读改造
缺点
- 核心代码约 2.9 万行单文件,阅读与二次开发门槛较高
- AGPL-3.0 许可证对商业闭源使用有较强约束
- 账号登录依赖 Netlify Identity 与钱包会话,自部署需额外配置
- 缺少中文文档,界面与说明以英文为主
Tiny World Builder 微型世界建造器
Tiny World Builder 是一个完全运行在浏览器中的 3D 体素世界编辑器:你可以在网页里搭建地形、放置房屋与动物、雕刻山川河流,还能切换相机模式自由飞行浏览,最后把作品保存、导出或分享给他人。
项目基于 Three.js 与原生 JavaScript 实现,无需安装客户端,打开网页即可开始建造。
核心功能
- 建造(Build):放置地形、道具、房屋、道路、庄稼与动物。
- 雕刻(Sculpt):抬升、下沉、上色地表,塑造悬崖与河流。
- 飞行(Fly):切换等距 / 柔和 / 透视相机,从任意角度探索世界。
- 分享(Share):保存、二次创作、导出,并把世界开放给真实玩家。
工具与规则
内置工具覆盖 Grass、Path、Water、Stone、Lava、Sand、Snow 等地形,以及 House、Tree、Fence、Bridge、Crop、Cow、Sheep 等对象。
渲染器会对地形与对象做归一化处理:
- 庄稼会自动在下方生成泥土;
- 桥梁会强制生成水面;
- 普通物体不会漂浮在水面上;
- 道路、海岸线、桥梁、栅栏、房屋、岩石都具备邻接感知,放置相邻方块时会自动重绘周边,使道路衔接、河流生成河岸、栅栏连成墙、房屋组合成 L/T/+/方形建筑。
操作方式(节选)
| 操作 | 输入 |
|---|---|
| 放置 | 点击格子 |
| 擦除 | 按 E 后点击,或选择橡皮擦 |
| 旋转视角 | 拖拽 |
| 缩放 | 滚轮 |
| 抬升 / 下沉地形 | 悬停格子上按 R / F |
| 切换工具 | 1–9 及工具栏字母快捷键 |
| 返回选择模式 | Esc |
| 切换相机 | P 或 I |
| 清空为草地 | C |
车辆运行时(Road AI)
项目内置了一套可复现的路网与车辆 AI 演示,通过 URL 参数即可加载:
http://localhost:3000/tiny-world-builder?demo=vehicles&seed=tide-ridge-428
大规模路网压力测试支持 size、cars 等参数,车辆只在 path 或桥面格子上行驶;若在道路上放置岩石、树木等物体,会形成实时交通阻塞,车辆会绕行或在无替代路径时停下。
架构概览
项目为单个 <script> 块、约 2.9 万行原生 JS,按段落注释组织,模型划分清晰:
world[x][z]:每个格子的意图数据{ terrain, kind, floors }。cellMeshes['x,z']:每个格子对应的 Three.js 渲染组。setCell(x, z, opts):唯一的变更入口,负责更新数据、重建网格并重绘受邻接影响的邻居。
房屋集群使用 BFS 与 tryComposite / trySquare 判断是否合并为统一结构。此外还有预览板、AI 生成、本地存档槽、天气时间云层、命令面板,以及可选的 Mesh Terrain 体素地形雕刻器等系统,均通过同一套契约接入。
部署方式
应用可作为静态站点部署到 Vercel 或 Netlify,构建脚本会生成 dist/ 目录;Three.js r185 及其加载器、解码器自托管于 vendor/three/,部署不依赖运行时 CDN。
注意:项目采用 AGPL-3.0 许可证,商业闭源使用需谨慎评估;账号登录依赖 Netlify Identity 与钱包会话,自部署时需配置相应环境变量。
评论
- 暂无评论,来写第一条吧。