- 多人联机游戏支持
- 高效的碰撞检测方法
- 多种存档与读档方式
- 高效的多线程动态无限地图生成与局部刷新方法
- 30 种人物皮肤随机出现(多人模式下)
- 5 种游戏场景随机出现(经典 / 冰雪 / 月下沙滩瓜田 / 南瓜田 / 奇异)
- 多端多操控模式支持(PC 端, 移动端, VR 端, PS4/5 手柄支持, Xbox 手柄支持)
- 多种参数可调(视角 / 雾气 / 场景大小 / 操纵范围 / 音量 / 线程数 / 操作灵敏度 / 语言 / 操作模式 / 十字准星颜色 / 背包模式 / 作弊模式)
- 双语言支持(中文 / 英文)
- 原版音效
- PWA 支持
-
PC 端
- 空格键: 跳跃
- E 键: 开关背包
- Q 键: 切换作弊模式
- 鼠标移动: 变换朝向
- WSAD 键: 前后左右移动
- 数字键: 切换手持方块
- 滚轮滚动: 切换手持方块
- 点击物品框: 切换手持方块
- Shift 键: 作弊模式时下降
- 鼠标左/右击: 摧毁/创建方块
- ESC 键: 取消鼠标锁定/显示菜单
-
移动端
- 拖动屏幕: 变换朝向
- 点击物品框: 切换手持方块
- 点击激活的物品框: 打开背包
-
Xbox 手柄(使用 Xbox one 测试)
-
PS 手柄(使用 PS4 测试)
-
VR 端
- 转动头显: 变换朝向
- 使用遥控器: 摧毁方块
-
前端
# 安装pnpm > npm install -g pnpm # 安装全部依赖 > pnpm install # 安装某个依赖 > pnpm install xxx -D/-S # 运行 > pnpm dev # 打包 > pnpm build
-
后端
# 进入后端目录 > cd server # 安装全部依赖 > pnpm install # 编译TS代码 > tsc # 执行后端程序(如果不需要PM2等进程管理工具) > node ./dist/index.js # 安装PM2 > pnpm install -g pm2 # 注册PM2监视 > pm2 start --watch ./dist/index.js # 如需反向代理, 请将 /socket.io 代理到 localhost:9000 并配置同源策略
程序运行后会输出如下提示
ThreeCraft v1.0.2 game server running at: > Local: http://localhost:9000 > Network: http://xxx.xxx.xxx.xxx:9000 YOU MUST ENTER THE ADDRESS LIKE http://xxx.xxx.xxx.xxx:9000 IN GAME, NO PART CAN BE OMITTED!
在游戏中连接服务器时候请务必输全
http://xxx.xxx.xxx.xxx:9000
, 不要省略http://
或:9000
如果前端运行在 https 上, 那么后端也应该运行在 https 上. 可能需要一些反向代理工具实现 https
- 项目整体结构参考了 vyse12138/minecraft-threejs, 这个项目很棒. 非常感谢这个项目!
- 移动端游戏手柄的实现参考了bobboteck/JoyStick.
- 项目的后端整体结构参考了 Merlin218/UNO-server. 非常感谢这个项目!