Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/KairuiLiu/ThreeCraft
⛏ MineCraft release based on three.js
https://github.com/KairuiLiu/ThreeCraft
javascript-game minecraft threejs threejs-webgl-game typescript
Last synced: 2 months ago
JSON representation
⛏ MineCraft release based on three.js
- Host: GitHub
- URL: https://github.com/KairuiLiu/ThreeCraft
- Owner: KairuiLiu
- License: gpl-3.0
- Created: 2022-04-25T14:51:09.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-08-05T06:42:35.000Z (over 2 years ago)
- Last Synced: 2023-03-04T16:48:01.701Z (almost 2 years ago)
- Topics: javascript-game, minecraft, threejs, threejs-webgl-game, typescript
- Language: TypeScript
- Homepage: https://mc.liukairui.me/en
- Size: 17.2 MB
- Stars: 26
- Watchers: 2
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README-CN.md
- License: LICENSE
Awesome Lists containing this project
README
### ✨ 特性
- 多人联机游戏支持
- 高效的碰撞检测方法
- 多种存档与读档方式
- 高效的多线程动态无限地图生成与局部刷新方法
- 30 种人物皮肤随机出现(多人模式下)
- 5 种游戏场景随机出现(经典 / 冰雪 / 月下沙滩瓜田 / 南瓜田 / 奇异)
- 多端多操控模式支持(PC 端, 移动端, VR 端, PS4/5 手柄支持, Xbox 手柄支持)
- 多种参数可调(视角 / 雾气 / 场景大小 / 操纵范围 / 音量 / 线程数 / 操作灵敏度 / 语言 / 操作模式 / 十字准星颜色 / 背包模式 / 作弊模式)
- 双语言支持(中文 / 英文)
- 原版音效
- PWA 支持### 🎮️ 操作方法
- **PC 端**
- **空格键**: 跳跃
- **E 键**: 开关背包
- **Q 键**: 切换作弊模式
- **鼠标移动**: 变换朝向
- **WSAD 键**: 前后左右移动
- **数字键**: 切换手持方块
- **滚轮滚动**: 切换手持方块
- **点击物品框**: 切换手持方块
- **Shift 键**: 作弊模式时下降
- **鼠标左/右击**: 摧毁/创建方块
- **ESC 键**: 取消鼠标锁定/显示菜单- **移动端**
- **拖动屏幕**: 变换朝向
- **点击物品框**: 切换手持方块
- **点击激活的物品框**: 打开背包- **Xbox 手柄(使用 Xbox one 测试)**
- **PS 手柄(使用 PS4 测试)**
- **VR 端**
- **转动头显**: 变换朝向
- **使用遥控器**: 摧毁方块### 🛠️ 安装
- 前端
```bash
# 安装pnpm
> npm install -g pnpm# 安装全部依赖
> pnpm install# 安装某个依赖
> pnpm install xxx -D/-S# 运行
> pnpm dev# 打包
> pnpm build
```- 后端
```bash
# 进入后端目录
> 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:9000YOU 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
### 📃 文档
- [开题报告.pdf](./doc/opening-report/build/slides-export.pdf)
- [总体设计.md](./doc/overall-design)
- [结题报告.md](./doc/final-report)### 🥰 参考
- 项目整体结构参考了 [vyse12138/minecraft-threejs](https://github.com/vyse12138/minecraft-threejs), 这个项目很棒. 非常感谢这个项目!
- 移动端游戏手柄的实现参考了[bobboteck/JoyStick](https://github.com/bobboteck/JoyStick).
- 项目的后端整体结构参考了 [Merlin218/UNO-server](https://github.com/Merlin218/UNO-server/). 非常感谢这个项目!