Construct2/3

创建于:2017-02-24

创建人: iconboy

103 信息 412 成员
Construct2/3 引擎开发专题

【经验】Steam4C2插件使用总结

potion 2017-02-26

我的RunningDead已经基本完成了,还在做最后的成就调试工作。虽然因为工作原因发布日期遥遥无期,但还是要趁现在把正在用的Steam4C2写一下使用总结,做个备忘。


1 准备工作

Steam4C2是C2的插件,使用者可以通过这款插件,结合steamwork的SDK进行steam游戏的接入开发。

在一切开始前,你需要有一款通过绿光的游戏,这样你会成为steamworks。虽然绿光很快就没了,但不妨碍,新的发行方式同样会使你成为steamworks的开发者。

在steam发布游戏,C2目前能够做到的方式只有使用NW.js将游戏打包为exe。其实如果你没有做steam成就或overlay的需求,那么通过绿光后直接用steamworks的工具包上传游戏包就行了。但如果你想要添加成就或overylayUI,那么就需要用到Steam4C2插件了。

那么首先第一步,你需要购买下载插件。目前插件分为basic版和完整版,据说完整版有更多的内容,比如steam云的操作以及使用steamwork的统计系统,这是我问作者问题的时候作者说的,具体没看到不好瞎说。但感觉basic版本已经够用了。

Steam4C2的插件分为不同的版本,下载时需要选择与NW版本对应的插件:


同时要确保你的steamworks的SDK下载的是最新的版本。

目前NW.js 0.19.2的插件版本针对于nw0.19.0-rc1似乎有BUG,最好避开

下载后的压缩包里包括3个文件:

NW19-rc1-Steam4C2-Basic-V1.3.c2addon是插件本体,直接将其拖入C2,点击安装后重启C2即可安装成功。

Basic_Features_list.pdf是功能说明文件,里面列举了basic版本中支持的各种功能

Quick_Start.pdf是简单的安装和使用说明,参考里面的内容安装你会被坑,请对照下面的部分避免被坑。


在你下载的steamworks文件夹内,找到redistributable_bin文件夹,在这个文件夹里可以看到以下文件:

将你需要dll文件导入到C2的Files文件夹里,在我的项目中,我只提供win64的版本,所以只导入了win64文件夹里的steam_api64.dll文件

其次,你需要将steam_app_id.txt导入Files文件夹里,这个文件内只存放一串ID,这个ID就是你的游戏在Steam的唯一数字ID。

注意!坑的地方来了!

appid是用来与你在steam的游戏ID做对应关系的,官方文档和steamwork提供的文件都是这steam_app_id.txt,然而我无论如何都无法调通。

最后我不得不写信给作者。他提示让我试试将文件名改为steam_appid.txt,奇迹发生了,我TM居然连上了。

所以各位如果遇到同样的问题,请修改文件名。

最终C2的Files里添加了这两个文件:

2 调试方法

好了,万事具备,可以开始正式使用插件了。

但在使用之前,你需要首先使用steamworks将自己的游戏进行第一次上传。这样以后你就可以不用每次都上传steam后再测试了。

而此时,在Steam的游戏库中就有你的游戏了,当然只有你自己能看到。


以下几点要注意

在C2中,使用预览是无法调试steam4C2功能的,必须导出NW.js

导出后可以测试steam是否连通,如果连通了,屏幕右下角就会弹出steam的小弹窗

导出后可以在本地测试steam的成就功能

OverlayUI的功能必须上传至steam,从steam打开的游戏才可以测试(Overlay就是steam自己的UI,可以打开steam的社区,聊天等东西,我这次没有使用)

Steam成就需要在steamwork的网站页面里配置后才能弹出,配置内容包括图片和名字,可以做本地化。这部分后面会细说。

Steam的游戏库中可以看到自己游戏的成就,但看起来会和其他已上线游戏不一样。其他游戏可以看到未解锁成就的ICON,但我自己的只能看到最近解锁的那个,锁定成就那里会出现+X的数字,这个应该是正式发布后才会正常的。

3 Steamworks成就配置

接下来,就可以开心的添加Steam成就了。

登陆你的steamworks,找到统计与成就的页签,选择进入成就界面。注意统计功能目前无法使用,自己写代码去连估计是可行的,或者按作者说的,买完整版插件。

点击新成就创建你的成就,其中API名称为C2里会使用到的成就的KEY,这个名字可以自己起,也可以干脆用默认的。

进度状态是与统计系统关联的,因为Basic版不支持,所以这次我没有使用。

显示名称和描述分别是成就的标题和描述,一般描述会写成就的达成条件。

设置部分不用管,隐藏功能可以使成就在steam的成就列表里隐藏,这次我隐藏了“长者”的成就。

两个图标,分别是已达成和未达成,需自己制作上传。图片需为64x64的JPG

保存后还可以再编辑,也可以删除。

在统计与成就的页签下还有一个成就本地化的页签,点开后可以开启不同语言版本的成就,我勾选了中文和英文:

一旦勾选,在成就界面就可以选择语言填写不同的成就描述了:

本地化成就还允许填写本地化字符串,可以做多语言成就的key使用。


一切都好了以后,成就就算添加完成了。使用steamworks的发行功能提交编辑的修改。


4 C2成就编写

以下是Steam4C2的event:

以下是action:


回到C2开始编写成就。涉及到成就达成的条件每个游戏都不一样,这里就不再赘述。

在我的游戏中,我使用了字典配置了所有24个成就的开启状态,并将这些值使用webstorage保存在本地。

当判断成就达成就Unlock对应的成就key:

因为成就只会Unlock一次,所以我也懒得再判断是否成就达成了就不再开启成就了。但测试的时候,可以自己设置快捷键重置成就状态。

最后一个小坑标注:因分辨率的不同使得游戏在全屏的情况下会出现左右的黑边裁切。而steam的成就tips很可能会因此被裁掉一半,感谢一下傅老师帮我解决了这个问题。修改全屏下的显示效果即可。

以下是最终的成就提示效果,不要在意右侧的成就调试信息……


另外,overlay虽然我没用到,也截个图给大家:


鉴于最近发生的一些事,最后标注一下 —— 本文只在Indienova发,请自觉勿转载。

近期喜欢的会员

 
小彤 2017-02-26

讚喔

 
慕雪白羊 2017-02-26
希望以后会有机会用到
 
傅老師 2017-02-27

干貨!! 

 
totoyan 2017-02-27

potion 哇塞!!这篇干货无敌了!赶紧收藏学习!感谢potion大分享!

 
StoneFan1987 2017-02-27

好赞!以后做STEAM可以少踩好多坑!

 
jokemon 2017-03-01

先驱者干货,坑帮大家趟了一遍~

 
邱天 2017-03-08

感谢楼主,硬梆梆的干货!

 
PixelGuy 2017-10-12

很好!

 

加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册