设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2123|回复: 20
打印 上一主题 下一主题

[原创发布] RpgMakerMv接入steam成就的若干问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
233
在线时间
15 小时
注册时间
2025-2-6
帖子
9
跳转到指定楼层
1
发表于 2025-2-7 22:47:41 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 波鲁克 于 2025-3-29 16:14 编辑

最近做了点mv接入steam成就的工作,遇到了不少问题。在此记录,以备其他用户参考。

在论坛搜索steam成就的问题,大概会找到几个帖子,这里我贴两个。我主要是参考第一个。
https://rpg.blue/thread-490052-1-1.html
https://rpg.blue/thread-484006-1-1.html

先介绍下用到的几个文件和它们的作用。有些工作我并没有做过,因此说法不一定准确。

1 steamSdk。毫无疑问,接入steam成就肯定得调用steamSdk的api。

2 GreenWorks.js。steamSdk一般需要用c++调用。但有些游戏不是c++写的,,比如rm用js。
这些语言调用c++库需要做点额外的工作,greenworks的作用就是如此。它是为js开发的游戏准备的。

3 OrangeGreenWorks.js 。它是对greenworks做了一层封装。greenworks对rm开发者还是不够直观。
orangeGreenWorks把steam的api暴露出来,无论是使用还是阅读,它的风格与rm默认脚本类似。

4 nw.js。nw.js可以把前端项目打包成pc端的应用程序,据说rmmv本身就是nw.js做的。
上面两个帖子提到的下载nw.js库应该是用于生产环境的。不要下载sdk版本是用于开发者调试的。

接下来进入正题。接入成就过程中遇到了什么问题,以及是如何解决的。

1 按上面的文章下载相应的文件,放到正确的文件夹内。按f8打开控制台看看有没有报错。
如果你是在2025前后这个时间点,使用上面两个帖子提供的下载链接的文件,十有八九是要报错的。
而且错误提示也不直观,网上搜到资料很少。后来翻github上greenworks的页面,才知道greenworks
对nw.js和steamSDK的版本有要求。必须根据nw.js的版本来找对应的greenworks和steamSDK。

如何确定nw.js版本?测试游戏的时候按f8打开控制台 console页面下输入process.versions即可查看nw.js版本


查看rm使用的nw.js版本之后,根据github上greenworks对应的版本信息下载正确的greenworks和steamsdk。实际上最新的steam的sdk搜一下就能在官网上下载,但是老版本的下载颇费周折。

这一步之后控制台不再报错。我个人猜测,说不定可以使用其他版本的nw.js版本的文件替换发布之后游戏文件夹的文件但是我没有尝试过。

2 游戏打包发布之后,必须上传到steam,成就才能触发。电脑安装steam客户端,使用本地工程测试时无法触发成就。



因为成就需要steam的appId,本地工程不可能有这个id。至于怎么使用orangegreenworks的api,我以后再补充。熟悉默认
脚本,这个文件一看便知。

3 如果前面没有出现错误,到这里已经可以触发steam成就了。不过这里还有个问题。全屏模式下steam成就不会弹出。
这时候你需要打开工程文件夹下package文件 加入两个浏览器命令参数
"chromium-args": "--in-process-gpu",(下图的中的-disable开头的这个命令不要用,会导致steamdeck出现色调问题)
文件会变成这样



以上虽然不能完美解决弹窗问题,但是接入的成就系统足够使用了

评分

参与人数 2+2 收起 理由
梦路 + 1 塞糖
葱葱 + 1 我很赞同

查看全部评分

Lv1.梦旅人

梦石
0
星屑
233
在线时间
15 小时
注册时间
2025-2-6
帖子
9
20
 楼主| 发表于 2025-4-16 09:12:53 | 只看该作者
青衣blackcloth 发表于 2025-4-11 23:52
我现在遇到了新的问题  成就已经接入并且正常触发了,但部分玩家因为成就接入的问题打不开游戏了,打开就 ...

如果是mz的话我就没办法了,没用过这个版本。不过我建议你去谷歌上搜一搜,mv接入steam成就的坑,我几乎都是通过谷歌搜索解决的。

点评

感谢回复, 我目前在某个大佬的帮助下,通过谷歌找到了兼容0.68版本的成就,所以解决了这个问题  发表于 2025-4-18 18:10
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5313
在线时间
804 小时
注册时间
2019-11-7
帖子
330
19
发表于 2025-4-11 23:52:29 | 只看该作者
波鲁克 发表于 2025-4-3 11:14
你说的更高版本应该是用了mz吧。具体支不支持我不太清楚。根据你的nw.js版本选greenworks和steamsdk ...

我现在遇到了新的问题  成就已经接入并且正常触发了,但部分玩家因为成就接入的问题打不开游戏了,打开就闪退,想知道大老知道可能是什么原因吗,目前还没有头绪。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
233
在线时间
15 小时
注册时间
2025-2-6
帖子
9
18
 楼主| 发表于 2025-4-3 11:14:23 | 只看该作者
青衣blackcloth 发表于 2025-3-31 22:47
他这个能支持高版本nwjs吗,如果只支持低版本也搞不定,加密后不支持低版本的nwjs了 ...

你说的更高版本应该是用了mz吧。具体支不支持我不太清楚。根据你的nw.js版本选greenworks和steamsdk
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5313
在线时间
804 小时
注册时间
2019-11-7
帖子
330
17
发表于 2025-3-31 22:47:16 | 只看该作者
他这个能支持高版本nwjs吗,如果只支持低版本也搞不定,加密后不支持低版本的nwjs了
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
548
在线时间
55 小时
注册时间
2025-2-15
帖子
34
16
发表于 2025-3-29 20:53:10 | 只看该作者
波鲁克 发表于 2025-3-29 16:19
"chromium-args": "--in-process-gpu",这个命令的作用是在全屏模式下触发steam成就
如果你说的窗口最大化 ...

嗯,我知道是可以看见边框的,所以我说:反正窗口最大化跟全屏也是差不的。
所以,我还写了按下F4切换全屏和窗口化的脚本,就是在调用steam成就的时候短暂的窗口最大化,等个多少帧、多少秒再自动全屏就好了。
我只是随便说一说,这些脚本我是直接复制过来的,而不是特意写出来的。
我希望的是:RPG maker的那个公司跟SRPG Studio的那个公司学一下,在下次更新中直接包含这些东西,或者是来一个官方插件。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
233
在线时间
15 小时
注册时间
2025-2-6
帖子
9
15
 楼主| 发表于 2025-3-29 16:19:01 | 只看该作者
写给妖精的情诗 发表于 2025-3-29 13:41
//自定义窗口大小
var x = 1920;
var y = 1080;

"chromium-args": "--in-process-gpu",这个命令的作用是在全屏模式下触发steam成就
如果你说的窗口最大化可以触发触发成就 可以不用这个命令
但是印象中我这边窗口最大化是可以看见边框的,有点影响游戏体验
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
548
在线时间
55 小时
注册时间
2025-2-15
帖子
34
14
发表于 2025-3-29 13:42:18 | 只看该作者
本帖最后由 写给妖精的情诗 于 2025-3-29 13:59 编辑

過去の更新履歴|SRPG Studio ~ シミュレーションRPG作成ソフト
https://srpgstudio.com/update/history2021.html
我没有购买安装SRPG Studio,所以搜索到上面这个帖子,截取一段之后拿到百度翻译如下。

更新2021/6/7(Ver1.233)
【要求】Dlsite版的SRPG Studio也可使用Steam API。
此次以后的更新,安装文件夹不仅仅game.exe,game_s.exe也被输出。
在选中“使用Steam API”的状态下发布游戏时
game_s.exe改名为game.exe并输出到公共文件夹。
因为game_s.exe链接了steamapi.lib,所以这个文件可以调用SteamAPI(steam_api.dll的函数)。
但是,Dlsite版SRPG Studio不附带steam_api.dll
此文件将从SteamWorks SDK中单独下载并放置在公共文件夹中。
【要求】即使在Steamworks中未设定“实绩”的状态下,也能够尝试Steam API
单击功能区上的root.msg(root.getSteamManager().getAppID());中描述的相应参数的值
如果显示的值是Steam赋予的值,则Steam API可以正常使用。
【BUG】修正“返回基本BGM”在回想事件以外的场合也不能正常工作的问题
【BUG】修正结尾后返回标题画面时,瞬间显示地图的问题
【BUG】修正在事件中捕捉并立即发布时跳过介入时的问题


2021/6/4更新(Ver1.232)
【要求】大幅刷新地图文件的格式
在现有映射的导出中。创建了smap和.sysmap,但是从这个版本开始只有.smap。
以往。smap中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
作为样本,可以阅读官方下载素材的PV素材的一幅画地图。
【要求】在Steam版的SRPG Studio的文件菜单中追加“Steam设定”
如果要在Steam上发布游戏,请在此设置游戏的APPID。
如果设置此设置,则在游戏发布时将输出steam_appid.txt和steam_api.dll。
【要求】追加root.getSteamManager().setAchievement作为脚本方法
要调用此方法,必须在Steamworks中为游戏设置“实际”。
此外,必须在“Steam设置”对话框中选中“使用Steam API”。
在“脚本执行/代码执行”中,root.getSteamManager().setAchievement(‘API名称’);中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
【BUG】修正了在回忆事件中选择“返回基本BGM”时,即使事件结束也不会返回画面BGM的问题
【BUG】修正参照脚本_slideObject时未进行null检查的问题
【BUG】修正了在“事件条件/项目”中使用ID变量时,在编辑器侧标记为“无”的问题
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
548
在线时间
55 小时
注册时间
2025-2-15
帖子
34
13
发表于 2025-3-29 13:41:04 | 只看该作者
//自定义窗口大小
var x = 1920;
var y = 1080;
window.resizeTo(x, y);
window.moveTo((screen.width-x)/2, (screen.height-y)/2);

//图形。_请求全屏()
Graphics._requestFullScreen()

//按下F4切换全屏和窗口化那个功能的脚本。
var keyCode = 115; // F4 key code
document.dispatchEvent(new KeyboardEvent('keydown', {
keyCode: keyCode
}));

//窗口最大化。
window.moveTo(0, 0);
window.resizeTo(screen.width, screen.height);

楼主说:
需要打开工程文件夹下package文件 加入两个浏览器命令参数
"chromium-args": "--in-process-gpu",
不知道可不可以用窗口最大化来规避全屏,反正窗口最大化跟全屏也是差不的的。

【全网首发】SRPG Studio-触发Steam成就_哔哩哔哩
https://www.bilibili.com/video/BV1sQ4y1Z7wz/?spm_id_from=333.1387.upload.video_card.click&vd_source=fd84198c79e8abb85db5da3c83dba99e
还有就是,上面这个视频的置顶评论说:
注意:在1.232版本之后,即可以通过在脚本中调用 root.getSteamManager().setAchievement来激活Steam成就。
建议使用官方提供的方式来对接Steam成就。

那么,RPG maker的那个公司自己就在steam上架了好些游戏,他们应该向SRPG Studio学习这个做法的,
直接把steam的云存档、成就、菜单之类的东西都直接写在代码那里,或者是来一个官方插件,然后跟我们说一声使用什么脚本来调用就好了。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
233
在线时间
15 小时
注册时间
2025-2-6
帖子
9
12
 楼主| 发表于 2025-3-12 11:56:39 | 只看该作者
青衣blackcloth 发表于 2025-3-11 14:25
他这个会影响steam启动游戏的快慢吗,可能是错觉了  接入了之后启动游戏变慢了 ...

印象中是不会引起这个问题的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-8 15:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表