项目介绍
MCPGame
一个使用Node.js后端的多人控制面板游戏,具有虚拟房屋环境和互动元素。
特点
- 具有户外环境的沉浸式第一人称3D虚拟房屋
- 细节丰富的房屋,包括内部和外部特征
- 可以进出房屋的互动门
- 拥有树木、植物和装饰元素的花园区域
- 具有图像生成能力的互动电视
- 访问MCP系统的计算机终端
- 现实的移动和碰撞检测
- 实时服务器通信
安装
- 安装依赖项:
npm install
- 运行服务器:
npm start
或者为了开发自动重启:
npm run dev
服务器将在3002端口启动。
游戏控制
- 移动:WASD键
- 环顾四周:鼠标移动(点击游戏以启用)
- 互动:靠近互动对象时按ENTER键
- 退出界面:ESC键
- 退出鼠标锁定:ESC键
互动元素
户外环境
- 探索带有树木和花床的地形
- 跟随通往房屋入口的小路
- 靠近门口时按ENTER键进入/离开房屋
电视系统
- 靠近电视并按ENTER键访问遥控器
- 在电视屏幕上生成图像
- 在终端界面上输入图像生成提示
MCP终端
- 找到电脑桌并按ENTER键访问终端
- 向MCP系统发送命令
- 访问各种虚拟工具(电子邮件、网络搜索等)
技术细节
- 使用Three.js进行3D渲染
- 第一人称相机带指针锁定控制
- 带有程序放置树木的户外环境
- 使用Express.js服务器进行后端通信
- 使用Canvas库进行图像生成
- 使用RESTful API进行服务器通信
MCP Game 图像系统
本文件解释了MCP Game中的图像显示系统是如何工作的。
概述
该系统在虚拟房屋中的电视上显示来自server/openai-server/public/image目录的现有图像。为了避免因生成新图像而导致的500内部服务器错误,系统现在检查指定目录中的现有图像。
工作原理
- 虚拟房屋中的电视显示存在于
server/openai-server/public/image目录中的图像。
- 系统每10秒检查一次新图像。
- 当用户通过电视遥控接口请求新图像时,系统从目录中随机选择一张图像。
添加新图像
要在电视上添加新图像:
- 将图像文件(jpg、jpeg、png、gif、webp)放入
server/openai-server/public/image目录。
- 系统会自动检测并显示它们。
- 文件应适合网页显示(建议尺寸:800x450像素)。
使用方法
- 靠近虚拟房屋中的电视。
- 按Enter键访问电视遥控控制界面。
- 输入与显示图像相关的任何命令。
- 系统将从目录中的可用图像中选择并显示一张。
故障排除
- 如果没有显示图像,请检查
server/openai-server/public/image目录是否存在且包含图像文件。
- 确保服务器运行在正确的端口上(默认:3002)。
- 检查浏览器控制台是否有与图像加载相关的错误消息。
技术细节
- 系统不再尝试直接生成图像,避免了500内部服务器错误。
- 请求时从目录中随机选择图像。
- 当没有可用图像时,系统提供适当的反馈。
连接到MCP后台服务器
MCPGame可以连接到外部MCP后台服务器,以启用终端和电视交互的高级AI功能。
配置
- 打开
main.js文件,并找到顶部的配置部分:
// --- 配置 ---
const MCP_BACKEND_URL = 'http://localhost:3001'; // MCP终端后端连接
const IMAGE_SERVER_URL = 'http://localhost:3002'; // 图像服务器连接
- 更新
MCP_BACKEND_URL指向您的MCP后台服务器:
- 对于本地开发:
http://localhost:PORT(用您的后端端口号替换PORT)
- 对于生产环境:使用部署的后端服务器的完整URL
必需的API端点
您的MCP后台服务器应实现以下端点:
GET /api/status - 返回MCP系统的状态
POST /api/query - 接受用户查询并返回AI响应
响应格式
查询端点应返回如下格式的JSON:
{
"response": "要显示在终端上的文本",
"spokenResponse": "可选的语音合成文本"
}
测试连接
- 启动您的MCP后台服务器
- 启动MCPGame服务器(
node server.js)
- 在浏览器中打开游戏
- 与虚拟房屋中的计算机终端互动
- 使用终端时,游戏将连接到您的MCP后台服务器