Information
                                    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服务器进行后端通信
画布库用于图像生成
RESTful API用于服务器通信
MCP Game 图像系统
本文件解释了MCP游戏中图像显示系统的工作原理。
概述
该系统从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文件,并找到顶部的配置部分:
javascript
// --- Configuration ---
const MCP_BACKEND_URL = 'http://localhost:3001'; // MCP终端后端连接
const IMAGE_SERVER_URL = 'http://localhost:3002'; // 图像服务器连接2. 将 MCP_BACKEND_URL 更新为指向您的 MCP 后端服务器:
对于本地开发: http://localhost:PORT(将 PORT 替换为您的后端端口号)
对于生产环境: 使用部署的后端服务器的完整 URL
必需的 API 端点
您的 MCP 后端服务器应实现以下端点:
GET /api/status - 返回 MCP 系统的状态
POST /api/query - 接受用户查询并返回 AI 响应
响应格式
查询端点应以如下 JSON 格式返回响应:
json
\{
"response": "在终端中显示的文本",
"spokenResponse": "可选的语音合成文本"
\}
测试连接
启动您的 MCP 后端服务器
启动 MCPGame 服务器 (node server.js)
在浏览器中打开游戏
与虚拟房屋中的计算机终端进行交互
当您使用终端时,游戏将连接到您的 MCP 后端服务器
                                
                             
                                             
                                                        
                                                        
                                                    
                                                    
                                                