You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GameMaker Studio 2游戏中接入Steam API与成就系统?

实现《Jump By Coronho: Chapter 2》Steam成就系统的实操指导

一、YOYO扩展基础配置

  • 先在GameMaker项目设置的Steam标签下,填写游戏对应的Steam App ID,测试阶段可使用Steam官方测试ID 480。
  • 游戏启动时(比如第一个房间的Create事件)必须优先初始化Steam:
    if !steam_initialised() {
        steam_activate(你的游戏AppID);
    }
    

二、Steam成就核心操作

1. 成就定义与同步

  • 先在Steamworks Partner后台的Achievements页面创建成就,记录每个成就的唯一API名称(如ACHIEVEMENT_FIRST_CLEAR)。
  • 游戏启动后拉取玩家已有成就数据:
    steam_user_stats_request_current_stats();
    
    此函数必须在所有成就操作前调用。

2. 解锁成就

当玩家达成触发条件时,执行以下代码解锁并同步:

// 避免重复解锁
if !steam_user_stats_get_achievement("ACHIEVEMENT_FIRST_CLEAR") {
    steam_user_stats_set_achievement("ACHIEVEMENT_FIRST_CLEAR");
    steam_user_stats_store_stats(); // 同步到Steam服务器
}

3. 查询成就状态

需要在游戏内展示成就进度或状态时使用:

// 检查成就是否已解锁
var unlocked = steam_user_stats_get_achievement("ACHIEVEMENT_FIRST_CLEAR");

// 获取渐进式成就的进度(需先在后台配置统计项)
var jump_count = steam_user_stats_get_stat_int("STAT_TOTAL_JUMPS");

三、调试与验证

  • 必须通过Steam客户端启动游戏(直接在GameMaker运行可能不加载Steam环境),按Shift+Tab打开Steam overlay查看成就状态。
  • 若测试无响应,检查:
    • Steam账号已加入游戏的测试组(Steamworks后台需设置测试分支);
    • 后台创建的成就已发布到测试分支。

四、YOYO扩展无文档的替代思路

如果扩展封装的功能不足,可通过GameMaker的external_call直接调用Steam SDK原生函数,但需提前编译对应平台的Steam SDK动态链接库——不过多数场景下,YOYO扩展已覆盖成就核心操作,优先使用扩展函数即可。

内容的提问来源于stack exchange,提问作者Behind The Mask

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 00:04:59