# GameMaker Adapter

IGP SDK 的 GameMaker Studio 2 适配层。首期范围：**Windows 平台**、**授权验证 + 成就**。

## 首期能做什么

- 初始化 SDK 并连接本地桌面端（desktop session）
- 读取当前授权状态 / 主动请求授权
- 解锁成就、上报成就进度
- 查询 desktop capabilities
- 通过事件队列感知连接状态、授权状态、成就结果、错误

## 首期明确不做

- room / 房间系统
- realtime / 实时消息
- 对战 / KCP

以上能力后续版本再开放。

## 目录结构

- `runtime/` — GML 运行时入口。面向 GMS2 开发者的对外 API。
  - `runtime/API-SHAPE.md` — **公开 API 参考**（先看这份）
  - `runtime/igp_gms2_windows_runtime.gml` — 拷进工程的 GML 脚本
- `bridge/` — C# 原生桥（`IGP.GamemakerDesktopBridge.Native.dll`）。GML 通过 `extension_define_function` 调用。
  - `bridge/IGP.GamemakerDesktopBridge.Native.dll` — 可直接放进工程 Included Files 的构建产物
  - `bridge/IGP.GamemakerDesktopBridge*/` — 源码（如需自定义构建）

## 从哪里开始

按以下顺序阅读：

1. [`runtime/API-SHAPE.md`](./runtime/API-SHAPE.md) — 公开函数、事件、错误码
2. [`../../samples/gamemaker/windows-auth-achievements/INTEGRATION.md`](../../samples/gamemaker/windows-auth-achievements/INTEGRATION.md) — 接入步骤
3. [`../../samples/gamemaker/windows-auth-achievements/project/IGP.WindowsAuthAchievements.yyp`](../../samples/gamemaker/windows-auth-achievements/project/IGP.WindowsAuthAchievements.yyp) — 可直接打开的示例工程
4. [`../../docs/architecture/gamemaker-windows-boundary.md`](../../docs/architecture/gamemaker-windows-boundary.md) — GML 与原生桥的责任边界（进阶阅读）

## 相关 contracts

跨引擎语义定义见 `core/contracts/`：

- [`achievements.md`](../../core/contracts/achievements.md) — 成就能力语义
- [`error-model.md`](../../core/contracts/error-model.md) — 错误码与错误模型
- [`runtime-events.md`](../../core/contracts/runtime-events.md) — 运行时事件（GMS2 0.0.1 只映射其中 5 类：`connection_state_changed`、`authorization_state_changed`、`achievement_result`、`error_reported`、`detached`；room / realtime 相关事件**不在首期**）
