用 一张方块贴图 和 一张点阵字,做出可存档的第一人称体素世界。
没有模型、没有字体引擎、没有天空盒。方块、快捷栏、菜单全部从这两张图里来;天空和昼夜是着色器画出来的。
当前版本:v0.3.0。设计笔记在 docs/v0.3.0。
macOS:
brew install glfw cmake
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
cd build && ./MinecraftLinux:
sudo apt install cmake g++ libglfw3-dev libgl1-mesa-dev
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
cd build && ./Minecraft在 build/ 里运行(CMake 会把 resources/ 拷到旁边)。存档写在当前工作目录的 saves/。
启动先到标题,不自动进世界。
| 页面 | 能做什么 |
|---|---|
| 标题 | 继续上次、打开存档、设置、退出 |
| 存档 | 按时间列出世界;进入、删除、新建 |
| 新建 | 起名;种子可手输或随机 |
| 设置 | 视野、视距、鼠标灵敏度、垂直同步、全屏、太阳/月亮、固定正午 |
| 暂停 | Esc。世界还在,模拟停下。可回标题或切档 |
| 游戏中 | 准星、九格快捷栏、选中方块描边 |
| 背包 | E。点选方块放进快捷栏。草地只有一种,放到哪个群系就用哪套草皮 |
菜单空闲时休眠,不空转 GPU。
| 标题 | 存档 |
|---|---|
![]() |
![]() |
| 继续上次、打开存档、设置、退出 | 按时间列出世界;进入、删除、新建 |
世界由三张独立的噪声决定:大陆度、温度、湿度。先分海陆,陆地上再按冷热干湿铺开 九个群系(加上海洋一共十个)。交界处高度平滑过渡,不会突然断成悬崖。
| 干燥 | 适中 | 湿润 | |
|---|---|---|---|
| 热 | 沙漠:平沙丘、仙人掌,沙下有沙砖,没有高山 | 稀树草原:黄绿草、橙色树干,树很稀 | 雨林:巨木、蕨类 |
| 温 | 戈壁:沙石地表、枯灌木 | 草原:开阔草地、野花 | 森林:橡树、起伏山地 |
| 冷 | 苔原:苔藓土夹残雪和碎石,无树,河不结冰 | 针叶林:云杉、群山,河不结冰 | |
| 极寒 | 雪原:整片积雪,无树,河面结冰 |
岸边:湿润地带草地直接入水;只有海洋和沙漠铺沙。
陆地上会切开弯曲的河。湿润区河网密,沙漠几乎没河。只有雪原把河面最上一格冻成冰,冰下仍是水;苔原和针叶林保持水面。冰雪不随昼夜融化。
三个寒带一眼能分开:雪原是极地寒漠,苔原是林木线以北的低植被(地面本身就是苔藓,再点缀蕨和枯灌木),针叶林才有云杉。
植物跟气候走:雨林密、针叶林有云杉、草原几乎无树、苔原无树、沙漠腹地寸草不生。
| 寒带 | 亚寒带 | 温带 |
|---|---|---|
![]() |
![]() |
![]() |
| 热带 | 山和水域 |
|---|---|
![]() |
![]() |
完整一天大约五分钟。按住 T 可以快进,方便看过渡。设置里打开 Fixed Noon 后锁在正午,时间不再走,T 也无效。
太阳从东边升起、西边落下,正午停在南边高空(约 50°),不在天顶——和北半球一样。墙面亮度跟朝向走:上午东墙先亮,正午顶面和南面最亮、北墙几乎只有天空散射,下午照射西面。树荫、屋檐看不到天的地方只剩间接光,会暗一截。通过日光和月光,让各个方向光照强度不同,贴近现实世界。
| 白昼日光 | 黄昏日落 | 夜间月光 |
|---|---|---|
![]() |
![]() |
![]() |
| 海上日落 | 远景雾 |
|---|---|
![]() |
![]() |
不按方块逐个提交。16×16×16 的一截先拼成一份网格,GPU 一次画完这一截。一整根柱子最多八段;全是空气的那段直接跳过。
看不见的面一开始就不会进网格:
- 两块实心石头贴在一起,中间那两面扔掉。
- 只留下露在空气、水、树叶旁边的外表面。
- 画的时候再关掉朝里的背面,镜头看不到的那一侧不占填充。
所以一座山看起来是成千上万块,真正画出去的几乎只有地表那一层皮。改一块只重做它附近那几截,不用重画整个世界。镜头背后和雾以外的区块也不送去画。
进世界时先生成镜头附近一圈,生成和网格分两条线程,远处再铺开,避免卡顿。可选择关闭日月和渲染距离来进一步降低 GPU 负荷。
| 键 | 作用 |
|---|---|
| WASD | 移动 |
| 空格 / Shift | 跳、潜行;飞行时升降 |
| V | 飞行 |
| 左键 / 右键 | 挖 / 放 |
| 1–9、滚轮 | 快捷栏 |
| E | 背包:点选方块放进快捷栏 |
| Esc | 暂停;背包里则关闭背包 |
| T | 按住加快昼夜(固定正午时无效) |
目前 GitHub Release 仍是 v0.2.0 的 Minecraft-v0.2.0-macos-arm64.zip。解压后直接运行 Minecraft。仅 Apple Silicon。若系统提示无法打开,在 Finder 里右键 → 打开。
存档写在运行目录下的 saves/,不会进 git。











