TypePHP 编译器 https://swoole.com/aot/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
韩天峰 348c3d01fc feat(minecraft-demo): add C++ backend and Godot extension for Minecraft demo 2 months ago
..
cpp-src feat(minecraft-demo): add C++ backend and Godot extension for Minecraft demo 2 months ago
deps/lodepng feat(minecraft-demo): add C++ backend and Godot extension for Minecraft demo 2 months ago
php-src feat(minecraft-demo): add C++ backend and Godot extension for Minecraft demo 2 months ago
textures feat(minecraft-demo): add C++ backend and Godot extension for Minecraft demo 2 months ago
1.png feat(minecraft-demo): add C++ backend and Godot extension for Minecraft demo 2 months ago
2.png feat(minecraft-demo): add C++ backend and Godot extension for Minecraft demo 2 months ago
3.png feat(minecraft-demo): add C++ backend and Godot extension for Minecraft demo 2 months ago
LICENSE.Craft.md feat(minecraft-demo): add C++ backend and Godot extension for Minecraft demo 2 months ago
README.md feat(minecraft-demo): add C++ backend and Godot extension for Minecraft demo 2 months ago
main.php feat(minecraft-demo): add C++ backend and Godot extension for Minecraft demo 2 months ago
project.yml feat(minecraft-demo): add C++ backend and Godot extension for Minecraft demo 2 months ago

README.md

TypePHP Minecraft Demo

这是一个不依赖 Godot 的方块世界渲染示例,技术路线参考 Craft:

  • Win32/WGL 创建窗口和 OpenGL 上下文。
  • 使用 Craft 的 texture.png 方块 atlas、sky.png 天空贴图和 lodepng 加载 PNG。
  • 使用方块六面 tile 映射、可见面剔除、植物交叉面、水面和云层透明绘制。
  • PHP/TypePHP 负责世界生成、chunk 队列、角色移动等业务逻辑。
  • C++ 只负责窗口、输入、OpenGL 渲染、贴图加载和 chunk mesh 缓存。
  • 渲染时参考 Craft 的 chunk 可见性策略,只绘制相机附近且位于视野方向内的 chunk。

当前范围只实现基础世界画面渲染:

  • 天空贴图背景
  • 河流和湖泊
  • 山峰和高地
  • 草地、沙地、泥土、石头、雪地
  • 树干、树叶、草和花朵
  • 云层和远处线性雾
  • 第一人称飞行观察
  • 居中准星
  • 初始化进度 UI
  • chunk display list 缓存、视野剔除和透明层远近排序

不包含联机、背包、建造、存档等复杂系统。

编译

php bin\compiler.php examples\minecraft-demo\project.yml

编译产物输出到仓库根目录:

minecraft_demo.exe

运行

.\minecraft_demo.exe

操作

  • W/A/S/D 移动
  • 鼠标移动视角
  • Space 上升
  • Shift 加速并下降
  • Esc 弹出退出确认框

项目结构

main.php                         PHP 世界规则和主循环
php-src/craft.stub.php           C++ 渲染 API 的 PHP 声明
cpp-src/craft_backend.cc         Win32/WGL/OpenGL 后端
deps/lodepng/                    PNG 加载
textures/texture.png             Craft 方块 atlas
textures/sky.png                 Craft 天空贴图
LICENSE.Craft.md                 Craft MIT License

授权

textures/texture.pngtextures/sky.png 和 lodepng 来自 Craft 项目及其依赖。Craft 使用 MIT License,许可证已保留在 LICENSE.Craft.md