作品登录Steam的大大们能否讲解一下具体流程?

(1)Steam SDK导入项目都有哪些流程?
(2)登录Steam需要打包吗?
(3)还有其他注意事项吗?
PS:我们团队的作品已经通过了GreenLight,谢谢大大们的解答!

在加入 Epic 以前我做过一个项目登录 Steam,简单过程给楼主参考。

首先,请浏览 http://www.steampowered.com/steamworks/ 网站。

(1)Steam SDK导入项目都有哪些流程?
> SDK 很简单,最基础的一个整合就是游戏启动的时候调用 SDK 里一个初始化的函数(具体名字我已经忘记了。。。)这个函数是为 DX 提供一个 Steam overlay,就是一般游戏中按 SHIFT+TAB 会呼出的 Steam 系统界面。做了这个就够上 Steam 的基础要求了(至少我当初是这样,不知道现在要求是否变得更多)。除了这个最简单的以外,Steam SDK 中对各个功能都是独立开的,比如 Friend,Chat,Achievement 甚至 workshop,这些复杂的我都没有做过整合。另外如果游戏有内购的话,需要调用 STEAM 提供的内购接口,micro transaction 部分。没有内购就无所谓了。

(2)登录Steam需要打包吗?
> 需要。游戏最终执行文件需要 include 相关头文件和 link 相关 steam lib(还有dll)

(3)还有其他注意事项吗?
> 我当时做了一次,总的来说还是很平顺的,如果游戏自带 launcher 的话和 Steam 的整合可能不太友好。其他都没有太大问题。当然我也没有做深度整合,如果整和完整的 SDK 估计工作量还是很大的。取决于你要用到STEAM多少功能。

感谢TIANMIN的回答,我之前看了Rama的教程https://wiki.unrealengine.com/Steam,_Using_the_Steam_SDK_During_Development#Overview还有orfeasel的教程http://orfeasel.com/category/ue_tuts/steam-integration/,感觉流程是不是有些太简单了。
我们的项目原本是完全用蓝图功能制作,后来转换成C++项目的,所以对C++项目的开发还不是很了解。这个项目是一个VR体验的游戏,只要能够上Steam就可以了,内购等其它功能暂时没有考虑添加。
下面还有几个不懂的地方想请教:SDK的初始化函数要加入到哪个cpp呢?

QUOTE 出来,你帖子里一些字符被超链吃掉了。

对 Steam 最最小程度的整合是挺简单的,我快速浏览了一下你给的链接,看起来就是一步步怎么做的说明。

我前面给出的也只是泛泛的描述,建议你还是看个下 steamworks 的文档,也未必是初始化函数,可能申明一个全局变量也能完成初始化。我这边并没有办法帮你过一遍这个流程。而且我看到有一个编译时的 bUsesSteam 标记,在你贴的文章里已经提到了。我不知道 UE4 是不是已经做了这个整合……这个问题我留给论坛里其他坛友来和你交流吧~对 C++ 如果一点都不熟悉的话,我建议你们找个会 C++ 的人来做这件事情比较捷径。

Hi Marin

没忍住仔细看了一下,你贴的第二个链接中的第一篇文章: http://orfeasel.com/steam_integration_p1/ 比较清晰的讲了整个流程。按照他的步骤做就可以了,这个步骤下,不需要关心 Steam 初始化入口的问题了,UE4 已经整合好了。注意文章中的 Steamworks 版本号,你可能需要根据你的实际情况修改这个编号。当然如果你能够和文章中的版本完全匹配起来是最方便了(UE 4.14, Steamworks 1.32)。

这里还有一点漏了说,你需要去 Steam 申请一个 appid,否则如果按照那篇文章介绍的,他用了 SteamDevAppId=480,这个 ID 是 Spacewar。每个游戏都应该有自己一个独立的 ID。