关于PGMMVJH的SteamWorksApi支持

这是基于 Pixel Game Maker MV Player Open Source Edition 修改的 JHVersion,加了成就相关的 Steamworks API 的 jsb 绑定。

下载替换

编译好的版本下载 PGMMVJH/releases

  • 解压下载的PGMMVJH.zip压缩包
  • 打开Pixel Game Maker安装目录,使用player-win文件夹替换Pixel Game Maker安装目录中的player-win文件夹。
  • 检查player-win文件夹中的steam_appid.txt,修改为需要调试的游戏id,没有可以填480用于测试
  • 打开Pixel Game Maker安装目录的resource文件夹,使用debugMenuRuntime.zipruntime.zip文件替换官方的文件

480是官方案例中用于测试的游戏id

使用Steamworks js Api

所有 API 都在 Agtk.steam 对象下,详情请看github中的调用文档SteamInterfaceDesc

初始化

Pixel Game Maker的对象面板新建一个对象(或者用现有的),添加其他运行动作,选择执行脚本,填下面的代码:

// 看看你的可执行文件是否通过 Steam 启动(可以忽略这一步)
var steamAppId = 2692950;
Agtk.log("[STEAM]steam初始化情况:" + Agtk.steam.steamapi_restarappifnecessary(steamAppId));  // 输出: true 或 false
// 执行初始化
var result = Agtk.steam.steamapi_init();
Agtk.log("[STEAM]steam初始化情况:" + result);

触发成就解锁

和上一步一样,用下面的 JS 代码:

Agtk.log("[STEAM]准备解锁成就");
var achievementName = "NEW_ACHIEVEMENT_1_3";
var unlockResult = Agtk.steam.steamuserstats_unlockedachievement(achievementName);
if(unlockResult && Agtk.steam.steamuserstats_storestats()){
  Agtk.log("[STEAM]解锁成就" + achievementName + "成功");
}else{
  Agtk.log("[STEAM]解锁成就" + achievementName + "失败");
}

使用调试参数单独调试

  • 在 Steam 中找到Pixel Game Maker的安装目录
  • 选择在安装目录下的player-win文件夹中的player.exe创建桌面快捷方式
  • 找到项目的目录下的test.json文件例如C:/Users/Jerry/Documents/PGMMV/Project2/data/test.json
  • 现在修改刚刚创建的快捷方式属性中的目标属性如下所示
    "I:\SteamLibrary\steamapps\common\Pixel Game Maker\player-win\player.exe" 0 C:/Users/Jerry/Documents/PGMMV/Project2/data/test.json zh_CN 0
    

    该方式可以脱离Pixel Game Maker调试Steamworks api
    每次有修改需要在Pixel Game Maker中点击试玩游戏(F5)等待Pixel Game Maker试玩窗口打开后关闭再启动快捷方式才能使用最新修改调试
    这套方法只是用来调试 Steamworks api 的——直接在Pixel Game Maker里按试玩游戏(F5)是测不了 Steamworks api 的

编译指南

拉取github中的代码 JHPGMMV 下载SteamWorks SDK

  • 把压缩包解压后的sdk/public/steam复制到项目的Player/Classes/External目录
  • 把压缩包解压后的sdk/redistributable_bin复制到项目的Player/Classes/External/steam目录
  • 在项目的Player/Classes/External/steam下创建steam_appid.txt文件
  • 修改上一步创建的steam_appid.txt文件,填入你的steam游戏ID,没有可以填480用于测试

480是官方案例中用于测试的游戏id
Steamworks SDK 访问协议:Steamworks SDK Access Agreement
更多版本下载:steamworks sdk downloads list

打开项目里的install目录,运行build_player_buildCache.bat编译。成功后在同目录下会生成playerdebugMenuRuntimeruntime三个文件夹,按官方说明替换编辑器里的对应文件就行。

编译文件替换官方版本player.exe

  • 打开Pixel Game Maker安装目录,使用player文件夹里面的内容替换Pixel Game Maker安装目录player-win中的内容。
  • 分别压缩上一步编译生成的debugMenuRuntimeruntime目录生成debugMenuRuntime.zipruntime.zip文件
  • 打开Pixel Game Maker安装目录的resource文件夹,使用debugMenuRuntime.zipruntime.zip文件替换官方的文件

项目的由来

感谢 VUEKO 的支持,才有了这个支持 Steam 成就的引擎版本。可以购买游戏来支持 VUEKO: Welcome to Planet E1d0r4d0!

以及 VUEKO 的新作品: To the Stars

Thanks to VUEKO’s support, this engine version with Steam achievements is now possible. You can support VUEKO by purchasing his games: Welcome to Planet E1d0r4d0! To the Stars

我的 discord:discord