
用GMMGame Mod Manager这类工具管理游戏的朋友多半都遇到过同一个麻烦自己从网上淘来的绿色版、社区汉化版、开源小游戏GMM根本不认识只能眼睁睁看着别人库里整齐的游戏封面和“一键启动”按钮干瞪眼。我前段时间试了一个办法把AI当成一个会写配置的助手专门对付“自定义游戏添加”这个脏活累活效果出乎意料地稳今天把整套思路和踩过的坑都整理出来。这套玩法适合谁如果你手头有一堆非平台下载的独立游戏、从网盘捡回来的汉化版、或者自己写着玩的游戏原型想统一收进一个管理器里管理启动和模组目录那么这篇文章就是给你写的。全程不需要你会复杂的脚本只要会复制粘贴、会点“确定”就能复现。我会把GMM识别自定义游戏背后的文件结构拆开讲清楚再给你一份可以直接抄的AI提示词模板最后还会聊到怎么让AI Agent自动扫描目录、批量生成配置省掉手动一个个填表的苦差事。1. 项目思路为什么GMM添加自定义游戏这么麻烦1.1 GMM到底在管理什么先回到一个基础问题上GMM这类游戏管理器本质上就是一个“游戏档案库”。它管理的不是游戏本体文件而是游戏的元信息——游戏叫什么、启动文件在哪个路径、图标用哪张图、模组目录放在哪、有没有特殊启动参数。真正运行游戏的时候GMM只是把启动命令交给系统然后自己退到后台。所以添加自定义游戏这个动作核心就是“告诉GMM路怎么走”。听起来简单实际操作却很闹心。大多数游戏管理器的默认逻辑是扫描已经安装的、带标准元数据的游戏比如从某些平台下载的游戏通常自带清单文件而自定义游戏没有这种东西只能靠“手动添加”功能来补。问题就出在“手动添加”四个字上。你打开添加窗口会看到一长串输入框名称、游戏ID、执行文件路径、工作目录、图标路径、封面图路径、模组安装目录、启用参数……这些字段对不懂配置的人来说先是不知道要填再是不知道往哪填。我见过不少朋友填到一半提示“路径无效”直接把窗口关了。1.2 常规添加方式的三个痛点我长期往GMM里塞各种奇怪的游戏总结下来手动添加有三个绕不开的痛点。第一个痛点是路径识别失败。很多人把游戏解压后文件夹里塞着一堆不知道干嘛用的文件到底哪个是主程序有些游戏的主程序藏在二级甚至三级目录里还有的游戏启动器是Launcher.exe真正的游戏核心却是另一个Game.exe。你选错了执行文件GMM虽然能把这个游戏加进列表但点启动的时候要么弹窗报错要么一闪而过什么都不发生。第二个痛点是图标和封面缺失。没有封面图的管理器界面跟文件夹列表没什么区别丑得让人没有打开的欲望。手动去网上找封面、下载图片、裁剪尺寸、填路径一套下来比玩游戏还累。第三个痛点是规则配置复杂。模组目录、存档目录、启动参数、环境变量这些进阶字段每多填一个出错概率就翻一倍。尤其是一些需要特殊参数才能启动的Mod版游戏参数写错了游戏根本跑不起来而你完全不知道是哪个字段惹的祸。所以我的想法很直接把“填表”这件事交给AI。AI最擅长的事情恰恰就是“根据描述生成结构化内容”。1.3 为什么AI适合干这件事很多人一听到“AI生成配置”第一反应是不靠谱AI写出来的代码都能跑错配置文件能信这个想法可以理解但忽略了问题的本质。添加自定义游戏需要的不是创造力而是“信息提取字段映射”的重复劳动。你告诉AI一个游戏的实际情况比如“这个游戏在D盘Games目录下主程序是game.exe图标是ico后缀的”AI要做的只是把这些信息塞进对应的JSON字段顺便帮你检查路径格式、补全默认参数。这类任务正好是当前大模型最稳定的能力范围不涉及复杂的逻辑推理和长上下文。另一个原因是GMM的自定义游戏配置格式是固定的字段就那几个。固定的输入、固定的输出出错面天然就小。哪怕AI生成的内容有偏差也就是路径写错、字段名拼错这种低级错误一眼就能看出来比手动琢磨快得多。2. 核心细节自定义游戏定义文件到底长什么样2.1 先说清楚这类管理器到底要哪些信息在写提示词之前你得先了解GMM侧到底需要哪些核心信息。不同名称的GMM工具细节会有差异但核心字段是高度一致的。字段含义是否必填我的建议id游戏唯一标识通常英文数字必填用纯小写英文和连字符不要有空格name游戏展示名称必填写中文或英文都行但别用特殊符号executable启动程序的路径必填用绝对路径别用相对路径workingDirectory程序工作目录推荐不填可能导致存档位置异常gamePath游戏根目录推荐有些GMM用这个字段判断Mod扫描范围icon图标文件路径选填支持ico还是png要先确认cover列表封面图路径选填有了它列表才好看modsDirectory模组安装目录选填玩Mod必备launchArguments启动参数选填需要特殊参数时才填enabled是否启用选填默认true就行以上这些字段AI在生成时都需要有清晰的定义。如果提示词里只说“帮我添加一个游戏”它就会瞎猜气氛到了甚至会给你编一个不存在的路径。所以写提示词的第一步是先给AI一份“字段字典”。2.2 解析执行路径这一块AI最容易出幺蛾子如果你只用AI来生成这些字段我最想提醒的是executable和workingDirectory这两个字段。这两个是游戏能不能正常启动的关键也是AI幻觉的重灾区。有个很常见的翻车场景你把游戏解压目录结构发给AI说“入口在win64文件夹里面”AI很可能会自作聪明地填一个“../win64/Game.exe”之类的相对路径。这种路径在配置里十有八九是错的。更稳妥的写法是在提示词里明确要求“所有路径必须使用绝对路径无法确定绝对路径时请输出完整目录树让用户确认”。还有一种情况是AI会“脑补”主程序名字。比如你说这个游戏是某个引擎做的它能联想到“那肯定有个Engine.exe”实际上一查根本没有这个文件。对付这个毛病我习惯在提示词里追加一句“如果你不确定主程序的确切文件名必须写unknown严禁编造文件名。”这一句话能省掉后面大量排查时间。2.3 写提示词的正确姿势逼出结构化输出现在把提示词模板给你。这套模板我实测下来对主流对话式大模型都有效不需要额外调参复制过去改一改就能用。你是一个游戏管理器配置助手。请根据用户提供的游戏信息生成一份用于添加自定义游戏的JSON配置。要求只输出JSON不要输出任何解释文字。字段必须包含id、name、executable、workingDirectory、gamePath、icon、cover、modsDirectory、launchArguments。所有路径必须使用绝对路径使用正斜杠“/”分隔。如果没有信息对应字段填null严禁编造路径或文件名。executable必须是实际存在的可执行文件不确定时填null。id只允许小写字母、数字和中划线。最后额外输出一行“未确认项”列出所有为null的字段。以下是游戏信息 游戏名称PixelForge 游戏目录E:/Games/PixelForge 其他说明这是一个开源像素风平台跳跃游戏主程序可能在根目录或win64子目录中请帮我确认。这段提示词的巧妙之处一是强制“只输出JSON”避免每次都要从一堆废话里捞配置二是明确“null要比瞎编好”把AI幻觉锁死三是留了一行“未确认项”让AI主动暴露信息缺口方便你下一步补齐。3. 实操过程从一条手输记录到AI一键生成3.1 准备阶段先把游戏的底细摸清楚动手之前先做一次人工信息采集。这个步骤不能省它决定AI生成结果的准确性。我以手头一个开源像素游戏“PixelForge”为例。这个游戏是朋友从社区下到的绿色版解压在E:/Games/PixelForge。我先打开这个目录观察里面的文件结构根目录下能看到PixelForge.exe、assets文件夹、mods文件夹还有一个README.txt。同时我看到win64子目录里也放了一个版本但经过判断根目录这个PixelForge.exe才是官方发布的主程序win64里的可能是旧版遗留。这一步就是人工先做路径排查。别急着把整个目录树丢给AIAI看到两个exe会发蒙。先把你要用的主程序选出来把目录结构整理成一个简要清单。对于不确定的信息明确写在“待确认”里而不是让AI猜。3.2 让AI生成定义文件把信息整理成提示词输入给AI。我这边得到的输出大致长这样{ id: pixelforge, name: PixelForge, executable: E:/Games/PixelForge/PixelForge.exe, workingDirectory: E:/Games/PixelForge, gamePath: E:/Games/PixelForge, icon: E:/Games/PixelForge/assets/icon.ico, cover: null, modsDirectory: E:/Games/PixelForge/mods, launchArguments: [], enabled: true }注意几个细节。AI顺着目录树里的assets文件夹推断出图标是icon.ico我在原始提示词里并没有明确提到这个文件同时它把modsDirectory自动填成了mods目录。这两个推断恰好是对的但“恰好”不代表每次都对所以我不会直接保存而是逐个核对。我把executable这一行拿去系统的文件管理器里走了一遍确认PixelForge.exe确实存在icon.ico也确认存在。cover窗口是空的因为我没有提供封面图AI老老实实填了null没有自作主张去网上找一张不存在的图。这一步的输出已经比我自己手动创建配置文件快了八成。3.3 把配置落盘到GMM目录并验证确认无误后把JSON保存成一个独立配置文件。不同GMM工具的读取路径有差异常见的做法是在GMM安装目录下的custom-games或user-games文件夹里新建一个以游戏ID命名的.json文件然后把内容粘贴进去。这里有一个常见的坑Windows记事本默认保存编码可能是ANSI而GMM读取配置通常要求UTF-8。直接新建记事本文件默认不一定是UTF-8多语言字符容易变成乱码。我习惯的做法是用VS Code或者更简单的Notepad打开右下角把编码切换成UTF-8再保存否则列表里游戏名会显示成乱码或直接读取失败。保存后重启GMM在游戏列表里就能看到PixelForge了。点一次启动游戏正常弹窗说明执行路径和工作目录都配对成功再检查一次模组目录确认GMM能识别mods文件夹这条自定义游戏就算加得彻底不是那种“列表里有但启动不了”的半成品。4. 进阶让AI Agent自动完成“扫描目录→生成配置→入库”4.1 为什么我决定把流程脚本化手动添加一两个游戏用AI提示词已经很快了。但如果你跟我一样手里有几十个绿色版游戏要从旧笔记本迁移到新环境一个个复制目录、写提示词、复制输出、保存文件还是会烦。这时候就该上AI Agent了。这里说的AI Agent不是要你去搭一套复杂的Agent框架。你完全可以用一个几十行的Python脚本调用任何一个支持接口的大模型把手动流程自动化。我甚至不建议为了这种小任务上Spring AI那种重量级框架杀鸡用牛刀维护成本反而高。一个脚本加一份提示词模板就够了。4.2 自动化脚本的核心流程脚本需要做四件事扫描目录、生成提示词、调用LLM、校验并落盘。核心伪代码逻辑大致是这样import os import json GAME_ROOT E:/Games OUTPUT_DIR E:/GMMConfigs def collect_game_info(folder): exes [] for root, dirs, files in os.walk(folder): for f in files: if f.lower().endswith((.exe, .bat)): exes.append(os.path.join(root, f)) info { path: folder, main_exe: choose_main_exe(exes), all_exes: exes } return info def build_prompt(info): # 把第2.3节的提示词模板套进来 return f...{json.dumps(info, ensure_asciiFalse)}...choose_main_exe函数值得多说两句。它不需要多聪明只要遵循几个简单规则优先选根目录下的exe其次选名字和文件夹名一致的exe最后选最近修改的exe。命中率在大多数简单场景下能到八成以上剩下两成由AI兜底返回null再交给人工处理。构建好提示词后调用你熟悉的LLM接口。如果你不想依赖云端本地用Ollama跑一个小模型也完全够用因为任务简单不需要参数很大的模型。返回的文本先提取JSON部分不要直接相信它就是纯JSON再交给json.loads做一次语法校验能过才算第一步成功。4.3 脚本的容错设计这是我在踩坑之后补的第一次写脚本的时候我天真地认为AI输出永远是合法JSON。后来发现它会偶尔在JSON外面包一层代码块标记或者末尾多一句“祝您游戏愉快”。所以extract_json这一步最好用正则把最外层的大括号内容抠出来再解析别直接用json.loads硬怼。第二层容错是“路径存在性校验”。拿到AI生成的配置后脚本要遍历所有非空路径字段用os.path.exists检查一遍。不存在的路径直接丢弃把对应的字段改回null而不是让错误配置进库。这样做的原因是一条坏配置一旦进了GMM你很难在列表里快速定位是哪一条。第三层是“重复ID检查”。有些游戏文件夹名很像比如PixelForge_Hard和PixelForge_TestAI生成的ID可能都是pixelforge。脚本在落盘前检测到重名ID自动给后面的追加-1、-2后缀。这个小细节帮我省掉了不少列表里出现两只“pixelforge”的尴尬。4.4 人工兜底不要把AI Agent完全放开最后必须泼一盆冷水不要让这个自动化流程完全无人值守。路径校验只能保证“文件存在”不能保证“启动后不弹错”。有些游戏需要管理员权限有些游戏需要特定的系统组件这些信息很难从目录结构里看出来。所以我的做法是脚本批量生成完配置后会在终端里列一张“待人工确认清单”把executable为null或存在多个候选exe的游戏单独拎出来。我只需快速扫一眼这张清单必要时手动调整一下剩下的绝大多数游戏都能一次导入成功。自动化帮你省掉90%的重复劳动剩下10%的脑力活还是留给人类比较稳妥。5. 常见问题与排查技巧实录5.1 高频问题速查表自打把这套流程分享给朋友之后我被问过的问题能排出一个小表格。挑几个典型的列出来现象可能原因处理方式游戏添加后不显示在列表里JSON文件编码不是UTF-8或字段名拼错检查编码改用UTF-8保存核对字段名是否与GMM文档一致游戏图标显示空白icon路径错误或格式不支持确认icons目录下文件存在把ico转成png测试一次点击启动没反应executable路径错误、工作目录不对先去资源管理器确认exe能手动启动再核对工作目录是否填了有Mod目录但GMM扫描不到modsDirectory没填或路径不是绝对路径补上modsDirectory的绝对路径中文游戏名乱码文件编码不是UTF-8用记事本打开另存为UTF-8编码AI生成的JSON解析失败输出里混了代码块标记或说明文字用正则提取最外层大括号内容再二次解析5.2 我的几条避坑心得最后分享几个从实战里磨出来的心得这些东西官方文档不会写但碰上一次就能让你老半天白干。第一别让AI有机会编路径。AI最让人头疼的能力之一就是一本正经地胡说八道。你在提示词里只要给了“可以自由发挥”的空间它就敢给你填一个“C:/Program Files/Default Company/Game.exe”这种看起来很合理但实际不存在的路径。我在提示词里加了“不存在的字段填null”之后翻车率直接降了一大半。第二路径里的斜杠一定要统一。GMM在Windows下虽然也能识别反斜杠但JSON字符串里的反斜杠需要转义特别容易出错。我统一用正斜杠“/”AI生成的路径也强制用正斜杠省去了转义的烦恼也避免了在某些工具中路径解析失败的概率。第三我建议把“确认主程序”这个动作前置。不要一上来就把整个目录丢给AI最好你先自己用眼睛扫一眼目录确认哪个exe是真正的入口。这一步看起来多余实际上是你对AI输出的唯一制衡点。我自己花30秒扫目录要比事后花3分钟找启动失败的原因划算得多。还有个偏方如果某款游戏的图标始终显示不出来可以试试把icon字段留空但把封面图cover字段填上。有些GMM版本对列表封面的兼容性比图标好至少一眼能认出游戏不至于满屏都是默认小方块。说实话用AI添加自定义游戏这件事技术上并没有多高深核心就一句话把机械的信息整理工作交给模型把关键路径的确认权留在自己手里。这个思路不只能用在GMM上你看别的需要手工录入配置的场景其实也是同一个套路。我现在的习惯是遇到任何“填写模板字段”的重复工作第一反应不是打开记事本而是先问自己一句这个能不能让AI先跑一遍我再给它兜底