添加Steam插件和成就设置

官网的参考资料很重要:Online Subsystem Steam | 虚幻引擎文档

本人使用的是UE4.27.2, Windows 11操作系统。

首先,在ue4项目的插件设置中,勾选Online Subsystem 和 Online Subsystem Steam, 然后重启编辑器。

subsystem.jpg

然后在项目文件夹下的Config/DefaultEngine.ini添加以下内容:

[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=2066920
bRelaunchInSteam=true
GameVersion=1.0.0.0
Achievement_0_Id="ACH_WORLD_1"
Achievement_1_Id="ACH_WORLD_2"
Achievement_2_Id="ACH_WORLD_3"
Achievement_3_Id="ACH_BOSS"
Achievement_4_Id="ACH_FINISH_ALL"
Achievement_5_Id="ACH_IMPOSSIBLE"
Achievement_6_Id="ACH_WHAT"

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

其中SteamDevAppId是你的AppId,是要在Steamwork里申请的,具体怎么申请,其他人的博客已经写的很详细了,可以参考这篇。我申请的时候,立马给我回复说税务信息的地址无法审核,我就给他发送了我的身份证复印件,然后说明这个就是我的地址。第二天就通过了,但是要注意,通过的时候是不会给你发邮件的,你要自己上Steamwork查看。AppId的位置如下图所示:

appid.jpg

配置文件中还有这些成就设置,其中后面的内容是在Steamwork上设置的成就Id,如下图所示。前面的变量名按顺序设置即可,我不知道为啥变量名要这样,但是反正能运行……

Achievement_0_Id="ACH_WORLD_1"
Achievement_1_Id="ACH_WORLD_2"
Achievement_2_Id="ACH_WORLD_3"

注意,Steamwork成就设置中的未达成图标要求是黑白颜色,但是它不会自动给你转换成黑白的,你要手动上传一张黑白图片……

关于UE4如何解锁Steam成就,可以参考这篇博客

测试Steam插件能否启用

有几种测试方法,首先确保已经打开了Steam,在项目文件xxx.uproject上右键点launch game可以测试。打包成开发版运行可以测试。

打开程序如果右下角弹出Steam,说明插件启用了。

打包发行版还需要的操作

去掉打包设置中的“包括先决条件安装程序”,可以帮你减少40M,这些程序可以让Steam帮我们安装,需要进行一些设置,这些设置后面会讲。

很多教程不讲发行版应该怎么配置,搞得我研究了半天,最后发现还是官网文档能够解决问题。

你需要下载最新的Steam SDK,SDK需要解压并复制到:/YourUnrealEnginePath/Engine/Source/ThirdParty/Steamworks/Steam[当前版本]/sdk

注意是Source!

如下图所示:

官网说还要修改sdk文件夹的名称、以及一个.cs文件,使其对应sdk版本,我在修改完之后无法导出,所以就没有修改,直接把154版的sdk复制到151版里面了。

在SDK的目录下、安装好的Steam安装目录下找到一些文件,复制到引擎目录中,最终使

YourUnrealEnginePath/Engine/Binaries/ThirdParty/Steamworks/Steamv151/Win64下包含以下文件:

  • steam_api64.dll

  • steamclient64.dll

  • tier0_s64.dll

  • vstdlib_s64.dll

注意是Binaries!

YourUnrealEnginePath/Engine/Binaries/ThirdParty/Steamworks/Steamv151/Win32下包含以下文件,由于win32位已经不能导出了,所以32位文件夹不包含以下文件也可。

  • steam_api.dll

  • steamclient.dll

  • tier0_s.dll

  • vstdlib_s.dll

有些人的Steam SDK版本不同,这个没啥太大关系,最新的是154,我直接放151的文件夹下。

然后你就可以在UE4里打包发行版了,这时候应该不会在输出日志中出现Steam有关的警告了。

但是,这时直接运行发行版游戏还是不会显示Steam,插件无法运行。但是如果你把游戏上传到了Steam,游戏里的Steam插件是能够正常运行并解锁成就的。这是因为不经由Steam启动的话,steam_appid.txt就不会生成,游戏就不能判断你的AppId,就无法启动插件。

所以如果你要测试发行版的话,需要新建一个“steam_appid.txt”, 里面只写上你的AppId。比如我就直接写个2066920,然后保存。放在xxx-Win64-Shipping.exe相同目录下即可,如下图。这样运行就能显示Steam了,也能正常解锁成就。

当然也可以直接传到Steam上,再下载下来测试,也是可以的,不需要填写steam_appid.txt

游戏上传!

由于我的游戏打包出来就300M,小于2G,所以是采用直接上传的方式,不使用steamcmd.

把你的游戏压缩成ZIP文件,不要包含父级文件夹,而是直接选中WindowsNoEditor下的文件和文件夹压缩成ZIP。

首先你需要新建Depot,如下图。Depot在我的理解就是存储不同操作系统、不同语言、DLC和本体的内容的仓库。我们先新建了一个Windows 64位的Depot,然后点击发布。

不要被发布这个词吓到了,在游戏没定价、没过审时,任何发布别人都是看不到的。这里的发布就相当于保存的意思。

然后在菜单-SteamPipe-生成版本里,选择

不使用 steamcmd,直接将 depot 以 ZIP 文件上传(最大 2048MB)。请点击此处

然后上传即可。commit时把“将分支生成版本设置上线”设置为default.

在安装,通用安装中,选择添加新的启动选项。

这时候有人就会卡在这里,因为可执行文件的设置不正确。如果你压缩ZIP时包含了父级文件夹,可执行文件就应该设置成“父级文件夹名称xxx.exe”,这样才能通过。但我们没包含父级文件夹,所以直接输入“xxx.exe”即可。工作目录不用填。

然后就是安装-可再发行文件,这里我们要勾选这两个选项 Direct X June 2010和Visual C++ Redist 2022。这样就不用打包先决条件安装程序了。我在虚拟机里重新安装了一个Windows 10 试了一下,这样设置确实就可以正常运行游戏了。

为什么会这样设置,因为我刚开始没勾这些选项就上传程序审核。结果审核直接告知ue4启动器需要勾这些选项,还主动帮我勾上了,非常人性化。

桌面图标

本来不是件大事,偏偏Steam不说清楚,一般人可能也不知道。在菜单安装-客户端图像-客户端图标中,要上传一个ico,要求需包含一张32x32的图标。我以前一直不知道一个ico文件可以包含许多尺寸的图片,就只传上去了一个32x32的,结果很模糊。

我推荐用破解版icofx,直接导入一张图片就能导出包含一堆尺寸的ico文件,上传上去即可。桌面图标就很清晰了。

Steam DRM反盗版

Steam DRM(Steamworks 文献库)这样描述Steam DRM的功能:

Steam DRM 包装器是 Steam 平台的一个重要部分,因为它验证了游戏的所有权,并通过在启动游戏之前启动 Steam,确保 Steamworks 功能正常运作。

Steam DRM 包装器自身并非一个反盗版方案。 Steam DRM 包装器防范的是非常随意的盗版行为(如将所有游戏文件复制至另一台电脑),并进行一些模糊处理,但是蓄意攻击者很容易就可以将其移除。

在菜单里找到安全性-DRM,把exe文件上传上去再下载回来替换掉原来的exe文件,再打包上传到depot就行了。下载速度比较慢,大概就50KB/s,不知道为什么。

exe文件记得选Binary里的较大的那个xxx-Win64-Shipping.exe

Linux我试了一下,游戏居然打不开了,不知道啥问题,我就没给Linux版加DRM了。

由于每次打包游戏都会生成新的exe文件,所以建议你在游戏基本完工的时候再添加反盗版DRM.

告知EPIC、编写EULA、添加Credits

做完这些杂七杂八的事情,把商店页面和程序都搞好了,还没完。还要做许多跟EPIC公司有关的事情。这些事情都列在了EPIC官网上。

首先是要提交一个游戏即将上架的表单,这个表单还要过google验证码……有点难搞。这个表单在上面那个链接里。

每个季度,你都需要提交你的财务方面的信息,因为你一旦营收超过10万美元,就需要交5%的引擎费用了。这个表单也在上面那个链接里。

EULA是最终用户许可协议,有一份EPIC的官方模板,改好后放在Steam的EULA设置里。[Product] 需要替换成你的游戏名称。[Licensor] 替换成你的名字或公司名称,[Licensor’s]同理,[Agreement] 可以替换成EULA。

在游戏的制作人员名单(Credits)中,需要添加以下内容,在上面那个官网链接有:

[Product Name] uses Unreal® Engine. Unreal® is a trademark or registered trademark of Epic Games, Inc. in the United States of America and elsewhere. Unreal® Engine, Copyright 1998 – xxxx, Epic Games, Inc. All rights reserved.

其中,xxxx替换成你的游戏发行的年份,[Product Name]替换成你的游戏名。

更新游戏

还是跟之前一样上传depot,上传完之后,生成版本列表里面会出现新的一行,单击旧的一行的ID,单击移除生成版本来删除旧文件。

Steam会自动增量更新,还是很方便的。我每次重新上传depot后,Steam内更新游戏都只下载了10M左右,但是修改了100多M的文件。

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/mariocanfly/p/16451147.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!