关于PGMMVJH的SteamWorksApi支持

这个Pixel Game Maker MV Player Open Source Edition JHVersion是根据Pixel Game Maker MV Player Open Source Edition修改而来的版本,该版本添加了成就相关的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对象面板创建一个新的对象或者使用现有对象,添加其他运行动作。 选择执行脚本,填入下面的JS代码。

// 查看您的可执行文件是否通过 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/redistrbutable_bin复制到项目的Player/Classes/External/steam目录
  • 在项目的Player/Classes/External/steam下创建steam_appid.txt文件
  • 修改上一步创建的steam_appid.txt文件,填入你的steam游戏ID,没有可以填480用于测试

480是官方案例中用于测试的游戏id
SteamworksSDK访问协议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花钱让我做一个pgmmv的成就系统,我制作了两套方案,其中一套经过商量决定开源。

购买游戏支持vueko Welcome to Planet E1d0r4d0!

我的discord discord