GameMaker Studio 2开发工具

AGMS2是一个专为GameMaker Studio 2设计的开发工具集,包含本地MCP服务器、VS Code扩展和GML内置数据包,旨在提升GMS2项目的现代编辑器集成体验。

  • by Sayarinu
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Sayarinu/AGMS2

使用说明

AGMS2

AGMS2是一个GameMaker Studio 2工具单仓库,围绕三个部分构建:

  • 可以检查和修改的本地MCP服务器 .yyp, .yy,以及 .gml 文件
  • 一个与VS Code兼容的扩展,用于完全从编辑器编辑GMS2项目
  • GML内置/技能数据包,用于文档、提示和编辑器功能

目标是让GameMaker项目在VS Code、Cursor和VSCodium等现代编辑器中感觉像是一流的代码库。

包裹

  • packages/mcp-server
    GameMaker项目的本地MCP服务器。它公开了项目元数据、资产读/写、构建/运行命令、搜索和房间/对象转换工具。

  • packages/vsc-extension
    VS代码/游标扩展,带有GMS2资源管理器、GML语言工具、MCP生命周期管理和只读Web视图。

  • packages/gml-skills
    提示就绪的GameMaker指南,以及扩展语法、补全、悬停和签名帮助所使用的内置函数、变量和常量。

特点

MCP服务器

  • 打开a .yyp 项目和指标项目资产
  • 读取脚本、对象事件、房间、宏、扩展和项目元数据
  • 创建和编辑脚本、对象、房间、精灵和对象事件
  • 设置对象精灵和父对象
  • 重命名和删除资产
  • 搜索和替换 .gml
  • 添加和删除房间实例
  • 通过GameMaker CLI运行build/run/clean命令
  • 监视项目并在文件更改时刷新内部元数据
  • 发出MCP资源更改通知,以便编辑器客户端可以自动刷新
  • 公开用于编辑器集成的标准化资产索引

VS代码扩展

  • 自定义 gms2Explorer 反映GMS2 IDE的树视图
  • 直接从资源管理器打开脚本和对象事件文件
  • 上下文操作:
    • 创建对象
    • 创建脚本
    • 添加事件
    • 设定角色
    • 设置父级
    • 删除资产
  • 命令用于:
    • 开放项目
    • 刷新资源管理器
    • 建设项目
    • 运行项目
    • 创建对象
    • 创建脚本
    • 搜索GML
    • 添加事件
  • GML语言支持:
    • TextMate语法高亮显示
    • 语言配置
    • 内置补全
    • 资产名称填写
    • 悬停文档
    • 签名帮助
    • 转到定义
    • 轻量级诊断
  • 只读网络视图:
    • 房间预览
    • 对象检查器
  • 具有状态栏连接状态的自动MCP流程管理

GML数据/技能

  • 内置函数签名和描述
  • 内置常量和变量
  • 面向提示的GameMaker通用系统最佳实践参考

回购布局

AGMS2/
├─ packages/
│  ├─ gml-skills/
│  ├─ mcp-server/
│  └─ vsc-extension/
├─ package.json
├─ pnpm-workspace.yaml
└─ tsconfig.base.json

需求

  • Node.js 20+
  • pnpm
  • 如果你想运行实际版本,请安装GameMaker Studio 2

安装

从repo根目录:

pnpm install

既然扩展包有自己的依赖关系,这一点很重要。

运行MCP服务器

构建它:

pnpm --filter @agms2/mcp-server build

在项目上运行它:

node packages/mcp-server/dist/index.js --project "/absolute/path/to/MyGame.yyp"

可选SSE模式:

node packages/mcp-server/dist/index.js --project "/absolute/path/to/MyGame.yyp" --sse --port 3001

您还可以通过创建以下内容来配置GameMaker二进制文件 gms2-mcp.config.json 在项目根目录中:

{
  "gmsBinaryPath": "C:/Program Files/GameMaker/GameMaker.exe",
  "buildTarget": "Windows",
  "runtimePath": null,
  "watchMode": true,
  "logLevel": "info"
}

延期也通过了 gms2.gmsBinaryPath 和 gms2.buildTarget 启动服务器时通过环境变量。

运行扩展

VS代码/光标中最快的方法

  1. 运行安装一次:
pnpm install
  1. 构建MCP服务器:
pnpm --filter @agms2/mcp-server build
  1. 构建扩展:
cd packages/vsc-extension
node ./scripts/generate-gml-assets.mjs
node ./scripts/build.mjs
  1. 在VS Code或Cursor中打开仓库。

  2. 启动扩展开发主机:

    • 打开“运行和调试”面板
    • 选择 Run GMS2 Extension
    • 按 F5
  3. 在“扩展开发主机”窗口中:

    • 跑 GMS2: Open Project
    • 选择一个 .yyp
    • 等待状态栏显示 GMS2: Connected

已安装VSIX设置

如果您正常安装扩展 .vsix,还设置:

  • gms2.serverPath

将其指向您构建的MCP服务器文件:

/absolute/path/to/AGMS2/packages/mcp-server/dist/index.js

安装的扩展需要此功能,因为MCP服务器当前位于AGMS2存储库中,而不是打包的VSIX中。

手动命令行构建

如果你只想重建扩展包:

cd packages/vsc-extension
node ./scripts/build.mjs

观看模式:

cd packages/vsc-extension
node ./scripts/build.mjs --watch

出版

扩展

该扩展首先是为Open VSX设计的:

pnpm --filter agms2-vsc-extension package
pnpm --filter agms2-vsc-extension publish:ovsx

VSIX的GitHub发布也是自动化的。将扩展版本插入 packages/vsc-extension/package.json 或运行以下操作之一:

pnpm release:patch
pnpm release:minor
pnpm release:major

然后按 main。工作流程将构建 agms2-vsc-extension-<version>.vsix 并发布标记为的GitHub版本 v<version>.

市场

清单的结构使得如果需要,还可以添加VS代码市场发布路径。

重要说明

  • 扩展程序预期MCP服务器的构建输出为 packages/mcp-server/dist/index.js.
  • 对于正常安装的VSIX,设置 gms2.serverPath 明确地。
  • 构建和运行命令仅在配置GameMaker可执行路径时有效。
  • 目前的诊断是有意轻量级的。它们是警告,而不是完整的语义编译器。
  • 在此版本中,网络视图是只读的。

文档