这次我们来看一个很有意思的本地AI项目,它能把你的语音指令实时转换成游戏里的操作。想象一下,你对着麦克风喊“攻击”、“跳跃”、“格挡”,游戏角色就能立刻响应,这听起来像是科幻电影里的场景,但现在通过开源AI模型和本地部署,我们完全可以在自己的电脑上实现。这个项目的核心,就是将语音识别(ASR)和指令映射技术结合起来,打造一个低延迟、高可定制的“声控游戏助手”。
对于游戏玩家和技术爱好者来说,最关心的几个问题无非是:这东西到底能不能用?延迟高不高?对硬件要求怎么样?是不是支持所有游戏?本文就将围绕一个具体的实现案例——我们暂且称之为“声控游戏助手”——来拆解这些问题。文章会重点讲解其核心功能、本地部署的硬件门槛、启动方式、如何配置映射规则,以及最关键的实际效果测试。无论你是想体验前沿的AI应用,还是希望为自己的项目集成语音控制能力,这篇文章都能提供一套完整的落地思路。
1. 核心能力速览
这个“声控游戏助手”项目本质上是一个本地运行的语音指令映射服务。它不依赖于任何云服务,所有数据处理都在本地完成,保证了隐私和低延迟。下面通过一个表格快速了解它的核心特性:
| 能力项 | 说明 |
|---|---|
| 项目类型 | 本地语音指令映射工具 / 游戏辅助工具 |
| 核心功能 | 实时语音识别(ASR) + 自定义键盘/鼠标指令映射 |
| 硬件门槛 | 推荐GPU:支持CUDA的NVIDIA显卡(如GTX 1060 6G及以上)。 最低配置:仅CPU也可运行,但延迟会显著增加。 |
| 显存占用 | 使用轻量级ASR模型时,显存占用通常在1GB~3GB之间,具体取决于模型大小和音频流缓冲。 |
| 启动方式 | 主要通过Python脚本一键启动服务,提供Web配置界面和后台服务。 |
| 接口能力 | 提供本地HTTP API,用于接收语音流、返回识别文本、触发映射动作。支持WebSocket用于更低延迟的实时流。 |
| 批量/持续任务 | 支持持续监听麦克风输入,实现“常驻”声控模式。也支持处理预录制的音频文件进行批量指令测试。 |
| 延迟表现 | 在GPU支持下,端到端(语音输入到游戏动作执行)延迟可控制在200-500毫秒内,达到可玩级别。 |
| 游戏兼容性 | 理论上支持任何可通过模拟键盘、鼠标或游戏手柄输入进行操作的游戏。需要针对不同游戏自定义映射配置文件。 |
| 适合场景 | 单机游戏体验增强、无障碍游戏辅助、技术演示、AI与游戏交互的本地化研究。 |
从表格可以看出,这个项目的重点在于本地化和低延迟。它不是为了替代传统的键鼠操作,而是提供一种新颖的、可自定义的交互补充。接下来,我们看看它具体适合什么场景,又有哪些需要注意的边界。
2. 适用场景与使用边界
适用场景:
- 单机游戏体验创新:为《黑神话:悟空》、《艾尔登法环》等大型单机游戏增加语音控制维度,例如通过喊出招式名称来释放技能,提升沉浸感。
- 无障碍游戏辅助:为行动不便的玩家提供一种替代性的游戏操作方式,通过语音完成部分复杂或高频操作。
- 技术演示与开发:作为AI语音识别与实时系统集成的典型案例,供开发者学习如何构建低延迟的语音交互流水线。
- 直播与内容创作:为主播提供节目效果,实现“声控通关”等趣味性内容创作。
- 自动化测试:通过预录制的语音指令序列,对游戏UI或功能进行自动化测试。
使用边界与重要提醒:
- 仅限单机与本地合作游戏:严禁在任何多人竞技类网游(如《英雄联盟》、《CS:GO》、《永劫无间》等)中使用此类工具进行游戏。这很可能违反游戏用户协议,被视为外挂或作弊行为,导致封号等严重后果。本项目定位是单机游戏辅助与技术创新演示。
- 延迟与精度:语音识别存在一定的误识别率和延迟。在紧张激烈的战斗场景中,语音指令可能不如键鼠操作精准可靠。它更适合触发一些非即时、冷却时间长或宏命令式的操作。
- 环境噪音:需要相对安静的环境,背景噪音可能导致指令误触发。通常需要配置语音激活阈值(VAD)来过滤无效音频。
- 隐私安全:由于全程本地处理,语音数据不会上传至云端,隐私性较好。但仍需确保你的电脑没有恶意软件窃听。
- 版权与授权:项目使用的开源ASR模型(如Whisper、WeNet等)需遵守其对应的开源协议。用于演示的游戏应为自己拥有合法授权的版本。
明确边界后,我们就可以着手准备部署环境了。本地部署的第一步,永远是检查你的“装备”是否达标。
3. 环境准备与前置条件
在下载代码和模型之前,请先确认你的本地环境满足以下基本要求。一套清晰的环境清单能避免后续大部分依赖错误。
3.1 硬件与操作系统
- 操作系统:Windows 10/11 64位,或 Ubuntu 20.04/22.04 LTS。本文以Windows环境为例进行说明。
- CPU:现代四核或以上处理器(如Intel i5/i7/i9系列或AMD Ryzen系列)。
- 内存:至少8GB RAM,推荐16GB。
- GPU(推荐):NVIDIA显卡,显存4GB及以上(如GTX 1060 6G, RTX 2060, RTX 3060等)。GPU能大幅降低语音识别延迟。
- 存储空间:至少预留5-10GB空间用于存放模型文件、Python环境和项目代码。
- 音频设备:需要麦克风。建议使用耳机麦克风,以减少环境音干扰。
3.2 软件与驱动
- Python:版本 3.8 至 3.10。推荐使用 3.8 或 3.9,兼容性最好。请从Python官网下载并安装,务必勾选“Add Python to PATH”。
- CUDA 与 cuDNN:如果你使用NVIDIA GPU,需要安装对应版本的CUDA和cuDNN。例如,对于RTX 30/40系列显卡,CUDA 11.8是一个兼容性较广的选择。安装后,在命令行输入
nvidia-smi可以查看CUDA版本是否识别。 - Git:用于克隆项目代码。从Git官网下载并安装。
- FFmpeg:用于音频处理。这是一个关键依赖,很多音频读取库需要它。请下载FFmpeg并将其
bin目录添加到系统的环境变量PATH中。安装后,在命令行输入ffmpeg -version应能显示版本信息。
3.3 项目依赖概览项目通常需要以下Python核心库,我们会在下一步安装:
- 深度学习框架:PyTorch(GPU版本)。
- 语音识别模型:如
openai-whisper,funasr或wespeaker。 - Web框架:如
FastAPI或Flask,用于提供配置界面和API。 - 音频处理:
pyaudio,sounddevice,librosa。 - 输入模拟:
pynput或pyautogui,用于模拟键盘鼠标操作。 - 其他工具:
numpy,requests,websockets等。
环境检查无误后,我们就可以开始正式的安装与部署了。
4. 安装部署与启动方式
假设我们的项目代码仓库名为voice-game-assistant。以下是标准的部署启动流程。
4.1 获取项目代码打开命令行(CMD或PowerShell),切换到你希望存放项目的目录,然后克隆代码(请替换为实际的项目仓库URL)。
git clone https://github.com/username/voice-game-assistant.git cd voice-game-assistant4.2 创建并激活Python虚拟环境使用虚拟环境可以隔离项目依赖,避免包冲突。
# 创建虚拟环境 python -m venv venv # 激活虚拟环境 (Windows) venv\Scripts\activate # 激活虚拟环境 (Linux/macOS) # source venv/bin/activate # 激活后,命令行提示符前应显示 (venv)4.3 安装PyTorch(GPU版本)前往 PyTorch官网 获取适合你CUDA版本的安装命令。例如,对于CUDA 11.8:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118安装后,可以在Python中验证GPU是否可用:
import torch print(torch.__version__) print(torch.cuda.is_available()) # 应输出 True print(torch.cuda.get_device_name(0)) # 输出你的显卡型号4.4 安装项目依赖通常项目会提供一个requirements.txt文件。
pip install -r requirements.txt如果没有该文件,则需要根据项目文档手动安装核心依赖,可能包括:
pip install openai-whisper pip install fastapi uvicorn pip install pynput pip install sounddevice pip install websockets4.5 下载语音识别模型大多数ASR模型会在第一次运行时自动下载。但为了稳定,也可以手动下载。以Whisper模型为例,其模型文件通常较大(如base,small,medium)。你可以在代码中指定模型大小,程序会自动从Hugging Face或OpenAI服务器下载。请确保网络通畅。
4.6 启动服务项目的启动入口通常是一个Python脚本。常见的模式是启动一个Web UI用于配置,同时后台运行API服务。
# 示例启动命令,具体请查看项目的 README.md python app.py --host 0.0.0.0 --port 8000或者,有些项目可能将Web服务和核心服务分离:
# 启动核心语音识别与映射服务 python backend_service.py # 在另一个终端,启动Web配置界面 python web_ui.py启动成功后,命令行会显示服务运行的地址,例如http://127.0.0.1:8000。打开浏览器访问这个地址,就能看到配置界面了。
5. 功能测试与效果验证
服务启动后,我们进入最关键的环节:实际测试。我们将按照“基础配置 -> 语音识别测试 -> 指令映射测试 -> 游戏内集成测试”的顺序进行。
5.1 基础配置与设备检查首次访问Web界面,通常需要完成以下配置:
- 音频输入设备选择:在配置页面选择你的麦克风。可以测试录音,确保音量正常。
- 语音识别模型选择:选择平衡速度和精度的模型,如Whisper
base或small。模型越大越准,但也越慢。 - 语音活动检测(VAD)设置:调整阈值,确保只有你说话时才会触发识别,避免环境噪音误触发。
- 映射规则配置:这是核心。你需要创建一个配置文件(如JSON或YAML),将识别出的关键词映射到具体的键盘或鼠标操作。
一个简单的映射配置示例(command_map.json):
{ "commands": [ { "keyword": ["攻击", "打他"], "action": { "type": "keyboard", "value": "j" // 假设游戏里“J”键是普通攻击 } }, { "keyword": ["跳跃", "跳"], "action": { "type": "keyboard", "value": "space" } }, { "keyword": ["格挡", "防御"], "action": { "type": "keyboard", "value": "k", "press_duration": 0.5 // 按住0.5秒 } }, { "keyword": ["大招", "必杀技"], "action": { "type": "keyboard_combo", // 组合键 "value": ["ctrl", "u"] } }, { "keyword": ["向左看"], "action": { "type": "mouse_move", "value": {"x": -100, "y": 0} // 鼠标相对移动 } } ] }5.2 语音识别独立测试在配置界面,找到“测试”或“识别”区域。
- 点击“开始录音”或“测试麦克风”。
- 清晰地说出配置好的关键词,如“攻击”。
- 观察界面是否实时显示识别出的文本“攻击”。
- 测试目标:确认ASR模块工作正常,识别准确率可接受,延迟在1秒以内(理想情况几百毫秒)。
5.3 指令映射触发测试在识别测试通过后,开启“指令映射”或“执行模式”。
- 打开一个文本编辑器(如记事本),将光标聚焦在里面。
- 说出“跳跃”。观察记事本里是否输入了一个空格(Space键)。
- 说出“攻击”。观察是否输入了字母“j”。
- 测试目标:确认从语音识别到键盘模拟的整个链路畅通。这是游戏外的基础功能验证。
5.4 游戏内集成测试(以《黑神话:悟空》为例)重要:在启动游戏前,请务必关闭游戏内自带的语音聊天功能,以免冲突。
- 启动《黑神话:悟空》,进入一个安全的场景(如初始营地)。
- 将游戏设置为“窗口化全屏”或“窗口化”模式,确保声控助手程序在后台能正常获取焦点并发送指令(部分游戏在全屏独占模式下会屏蔽外部模拟输入,需要注意)。
- 在声控助手配置界面,加载为《黑神话:悟空》预先配置好的映射文件(需要你根据游戏键位自行编写,参考5.1节示例)。
- 开启声控模式。尝试说出“攻击”、“闪避”、“法宝”等指令。
- 观察与评估:
- 延迟:从说完指令到游戏角色做出动作,感知延迟是否可接受?战斗时是否跟手?
- 准确率:在游戏音效背景下,指令是否被正确识别?是否容易误触发?
- 实用性:哪些场景下声控更有趣或更便捷?(例如,触发一个冷却时间长的技能)哪些场景下反而累赘?
- 性能监控:打开任务管理器,查看GPU和CPU的占用情况。语音识别推理期间,GPU使用率应有明显波动。
通过以上四步测试,你就能全面评估这个声控助手在你的设备和游戏上的实际表现。接下来,我们看看如何以编程方式调用它的能力,实现更自动化的控制。
6. 接口API与批量任务
对于开发者而言,通过API调用服务比使用Web界面更灵活。这个项目通常会将核心功能封装为HTTP或WebSocket接口。
6.1 API服务概览启动服务后,常见的API端点可能包括:
POST /api/transcribe:接收音频文件(如WAV),返回识别文本。POST /api/command:接收文本命令,执行映射动作。WS /ws/stream:WebSocket连接,用于推送实时音频流,并接收实时识别结果和动作反馈。
6.2 实时音频流与指令触发示例以下是一个模拟客户端,通过麦克风采集音频并实时发送到服务端的Python示例:
import sounddevice as sd import websockets import asyncio import json import numpy as np async def send_audio_stream(): # 假设服务端WebSocket地址 uri = "ws://127.0.0.1:8000/ws/stream" async with websockets.connect(uri) as websocket: print("Connected to server. Start speaking...") def audio_callback(indata, frames, time, status): """声音回调函数,将音频数据发送给服务器""" # 将音频数据转换为字节流 audio_bytes = indata.tobytes() # 这里简单发送,实际可能需要添加帧头等信息 asyncio.run_coroutine_threadsafe(websocket.send(audio_bytes), loop) # 设置音频流参数 samplerate = 16000 # 16kHz采样率,Whisper常用 blocksize = 4000 # 每个块的大小 channels = 1 # 单声道 # 创建输入流 stream = sd.InputStream(callback=audio_callback, samplerate=samplerate, blocksize=blocksize, channels=channels) with stream: # 同时接收服务器返回的识别结果和动作反馈 async for message in websocket: result = json.loads(message) if 'text' in result: print(f"识别结果: {result['text']}") if 'action_triggered' in result: print(f"触发动作: {result['action_triggered']}") # 可以根据结果做更多逻辑处理 if __name__ == "__main__": loop = asyncio.get_event_loop() loop.run_until_complete(send_audio_stream())6.3 批量任务处理除了实时流,你也可以用API处理一批预录制的语音指令文件,用于自动化测试或生成指令集。
import requests import os import json def batch_process_commands(audio_folder, config_path): """批量处理音频文件夹中的指令""" with open(config_path, 'r', encoding='utf-8') as f: command_config = json.load(f) api_url = "http://127.0.0.1:8000/api/transcribe_and_execute" for audio_file in os.listdir(audio_folder): if audio_file.endswith('.wav'): file_path = os.path.join(audio_folder, audio_file) with open(file_path, 'rb') as f: files = {'audio': f} # 发送音频文件进行识别并执行 response = requests.post(api_url, files=files) result = response.json() print(f"文件: {audio_file}, 识别结果: {result.get('text')}, 执行动作: {result.get('action')}") # 使用示例 # batch_process_commands('./test_audios', './command_map.json')通过API,你可以将声控助手的能力集成到你自己的自动化脚本、机器人流程甚至智能家居控制中,想象力空间很大。
7. 资源占用与性能观察
本地部署AI应用,资源占用是必须关注的指标。它直接决定了你的设备能否流畅运行,以及延迟的高低。
7.1 显存与内存占用观察
- 观察工具:Windows任务管理器的“性能”选项卡,或更专业的
nvidia-smi命令(NVIDIA显卡)。 - 典型占用:
- GPU显存:加载一个Whisper
small模型,显存占用约1GB。推理时,根据音频长度会有小幅波动。如果使用更大的模型(如medium),显存占用可能达到2-3GB。 - 系统内存:整个Python进程(包含模型、音频缓冲等)通常占用500MB~1.5GB。
- GPU显存:加载一个Whisper
- 优化建议:如果显存紧张,可以尝试以下方法:
- 使用更小的ASR模型(如Whisper
tiny或base)。 - 降低音频采样率(如从16kHz降到8kHz),但可能会影响识别精度。
- 使用CPU进行推理(在启动命令或配置中设置
device=cpu),但这会显著增加延迟。
- 使用更小的ASR模型(如Whisper
7.2 CPU与延迟分析
- CPU占用:在GPU推理模式下,CPU占用主要来自音频采集、预处理和网络通信,通常不高(<30%)。在CPU推理模式下,单核或双核可能会满载。
- 延迟构成:
- 音频缓冲延迟:为了识别更准确,通常需要累积一小段音频(如1-3秒)再送识别。这是延迟的主要来源之一。
- 模型推理延迟:在GPU上,Whisper
small模型推理一段3秒音频可能只需100-300毫秒。 - 网络与处理延迟:进程内通信或本地API调用,通常可忽略不计(<50毫秒)。
- 输入模拟延迟:
pynput等库模拟按键的延迟极低。
- 总延迟估算:在GPU支持下,端到端延迟控制在200-500毫秒是合理且可实现的。对于非即时反应类游戏操作(如释放技能、使用道具)来说,这个延迟是可以接受的。
7.3 性能调优建议
- 首选GPU推理:这是降低延迟最有效的手段。
- 调整音频块大小:在Web配置中寻找“chunk_length”或“buffer_size”参数。较小的块能降低缓冲延迟,但可能影响识别准确性。需要根据实际体验权衡。
- 启用流式识别:如果ASR模型支持流式识别(如一些基于RNN-T的模型),可以极大降低延迟,实现“边说边识别”。Whisper本身不是为流式设计的,但社区有流式改造版本。
- 精简映射规则:避免过于复杂的正则表达式匹配,使用精确关键词列表匹配速度最快。
了解资源占用后,我们再来看看部署和使用过程中可能遇到哪些“坑”,以及如何解决。
8. 常见问题与排查方法
本地部署过程中,从环境配置到实际使用,可能会遇到各种问题。下表汇总了常见问题及其排查思路。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
启动服务时报错:ImportError或ModuleNotFoundError | Python依赖包未安装或版本冲突。 | 检查错误信息中缺失的模块名。运行pip list查看已安装包。 | 1. 重新安装requirements.txt。2. 手动安装缺失的包: pip install 模块名。3. 创建全新的虚拟环境重试。 |
| 启动服务时报CUDA相关错误 | PyTorch的CUDA版本与系统安装的CUDA版本不匹配;或显卡驱动太旧。 | 在Python中运行import torch; print(torch.cuda.is_available())。在命令行运行nvidia-smi。 | 1. 根据nvidia-smi显示的CUDA版本,重新安装对应版本的PyTorch。2. 更新显卡驱动到最新版。 |
| Web界面能打开,但麦克风无法录音 | 麦克风权限未开启;或pyaudio/sounddevice找不到指定设备。 | 1. 检查系统麦克风权限。 2. 在Python中测试 sounddevice.query_devices()列出设备。 | 1. 在系统设置中授予Python或终端麦克风权限。 2. 在Web配置界面手动选择正确的麦克风设备ID。 |
| 语音识别结果一直是空或乱码 | ASR模型未正确下载;音频格式或采样率不对。 | 1. 查看服务启动日志,是否有模型下载错误。 2. 录制一段WAV格式(16kHz, 单声道)的音频用其他工具测试。 | 1. 手动下载模型文件并放到指定目录(查看项目文档)。 2. 在代码或配置中强制指定音频参数(采样率16000,单声道)。 |
| 识别出文字,但游戏里没有触发动作 | 游戏窗口未聚焦;映射规则关键词不匹配;或输入模拟被游戏屏蔽。 | 1. 先在一个文本编辑器(如记事本)中测试映射是否生效。 2. 检查映射配置文件,关键词是否与识别文本完全匹配(包括中英文符号)。 3. 尝试以管理员身份运行Python脚本(Windows)。 | 1. 确保游戏运行在“窗口化”或“窗口化全屏”模式,并让助手程序在后台保持焦点模拟能力(部分工具需要)。 2. 在映射规则中使用更精确的关键词,或尝试模糊匹配。 3. 对于某些反作弊严格的游戏,外部模拟输入可能被完全屏蔽,这种情况无解。再次强调,请勿在多人网游中尝试。 |
| 延迟非常高(>2秒) | 使用了CPU模式;音频缓冲块设置过大;模型太大。 | 1. 任务管理器查看GPU是否被使用。 2. 查看配置中的 chunk_length或buffer_duration参数。 | 1. 确保使用GPU推理。 2. 减小音频缓冲块大小(如从3秒减到1秒),但需接受可能识别率下降。 3. 换用更小的ASR模型。 |
| 服务运行一段时间后崩溃 | 内存泄漏;或GPU显存溢出。 | 观察任务管理器,看内存或显存是否在持续增长直至占满。 | 1. 检查代码中是否有循环引用或未释放的大对象。 2. 尝试定期重启服务脚本。 3. 换用显存占用更小的模型。 |
大部分问题都可以通过日志信息定位。启动服务时,务必关注命令行输出的日志,那里包含了从模型加载、设备检测到每一次识别请求的详细信息。
9. 最佳实践与使用建议
为了让你的声控游戏体验更顺畅、更可持续,这里有一些从实战中总结的建议。
9.1 初次使用流程
- 环境隔离:坚持使用Python虚拟环境,避免污染系统环境。
- 模型先行:先单独测试语音识别模块,确保它能准确识别你的声音和指令词。可以用手机录几个指令音频文件进行测试。
- 映射后行:在文本编辑器里彻底测试通键盘鼠标映射,再进游戏。
- 游戏选择:首次体验,建议选择节奏较慢、对操作实时性要求不高的单机游戏,如《星露谷物语》、《文明》系列或一些回合制RPG。成功建立信心后,再尝试《黑神话:悟空》这类动作游戏。
9.2 配置与文件管理
- 分游戏配置:为每个游戏创建独立的映射配置文件(
game_a_commands.json,game_b_commands.json),方便切换。 - 关键词设计:
- 简短响亮:如“攻”、“跳”、“闪”,减少识别时间。
- 避免常见词:避免“是”、“好”、“那个”等日常高频词,防止误触发。
- 中英文混合:可以同时配置中文和英文指令,如
["攻击", "attack"]。
- 备份配置:将你的映射配置文件和模型文件备份到网盘或Git仓库中。
9.3 性能与稳定性
- 关闭无关程序:运行声控助手时,关闭不必要的浏览器标签、通讯软件,为AI推理释放更多GPU资源。
- 使用指向性麦克风:耳机自带麦克风或独立麦克风能有效降低环境噪音干扰,提升识别率。
- 定期重启服务:如果长时间运行,可以设置一个定时任务,每天重启一次服务进程,防止内存泄漏积累。
9.4 合规与安全提醒(再次强调)
- 绝对禁止用于网游:在多人线上竞技游戏中,任何形式的自动化、辅助工具都可能被检测为外挂。本项目和相关技术仅供单机游戏、技术研究和个人学习使用。
- 尊重版权:使用的开源模型请遵守其许可证(如MIT, Apache 2.0)。游戏软件本身应为自己购买的正版。
- 隐私意识:虽然本地处理,但请确保你的电脑安全,防止恶意软件利用此麦克风通道。
遵循这些实践,你不仅能快速上手,还能建立一个稳定、可维护的声控游戏环境。
从语音识别到游戏内动作执行,这条技术链路已经可以被个人开发者和小团队跑通。它的价值不在于颠覆传统操作,而在于打开了一扇新的大门:让游戏交互方式变得更加多元和可访问。对于开发者,它是一个绝佳的、充满趣味的AI集成案例;对于玩家,它是一种全新的、可自定义的沉浸式体验。
最值得尝试的,无疑是为你最爱的那款单机游戏,精心设计一套专属的语音指令,然后享受“言出法随”的操控感。最容易踩的坑,通常是环境配置和映射规则不匹配,按照本文的步骤和排查清单,大部分问题都能迎刃而解。
下一步,你可以探索更复杂的交互逻辑,例如:
- 连续指令组合:说“连续攻击三次”,自动触发三次“J”键。
- 条件触发:结合游戏状态(通过读取内存或截图分析),实现更智能的语音交互。
- 集成其他AI:将语音指令先交给大语言模型(LLM)理解意图,再转换为具体游戏操作,实现更自然的对话式控制。
本地AI的乐趣,就在于这种可深度定制和探索的可能性。希望这篇详细的指南能帮助你成功搭建属于自己的声控游戏世界。