参考:
steamworks.net 官方文档的说明 http://steamworks.github.io/gettingstarted/
steam游戏上架流程一:使用官方SDK上传游戏 https://blog.csdn.net/qq_42672770/article/details/104425473
steam游戏上架流程二:steamworks.net SDK API对接unity https://blog.csdn.net/qq_42672770/article/details/104444771
steam游戏上架流程三: 游戏的发布配置与测试 https://blog.csdn.net/qq_42672770/article/details/104444894
steam游戏上架流程四:Steamworks的API 方法回调方式 https://blog.csdn.net/qq_42672770/article/details/104361853
steamwork.NET对官方C++的SDK API接口进行了C#封装, 但这只是方便开发调用 API, 你的游戏仍需要使用官方的SDK工具才能进行上传操作。
Steamworks SDK官方文档: https://partner.steamgames.com/doc/sdk
当然,如果不用API,也是可以用SDK tool 来上传游戏的。
<1.先在steamworks主页下载Steamwork SDK
SDK下载地址: https://partner.steamgames.com/downloads/steamworks_sdk.zip
<2. 解压后的文件夹下寻找两个脚本,路径:tools\ContentBuilder\scripts
将第一个app文件重命名,1000 改成自己的游戏编号,第二个depot文件也重命名,1001 改成自己的depot编号。
(steamworks有游戏的app编号,一般最后一位数字都是0,而depot是游戏的版本编号,差不多这么理解吧,depot除最后一位数字外其余数字都与app编号相同,所以depot有多个,用最后一位数字(123456789)区分。比如要上传游戏的第一个版本,app编号就是1000,depot编号就是1001,第二个depot编号就是1002。)
<3. 用笔记本的打开方式修改两个脚本的内容,
app的脚本:
第一行的 1000 改成自己的游戏app ID游戏编号1257870
最后一行两个 1001 改成自己的depot ID 编号1257871,就是把app游戏编号最后的 0 改成 1 。
depot的脚本:
把第二行的 1001 改成自己的depot编号。
找到上面的语句,把后面引号内的路径改成自己游戏所在的路径。不过我一般是把游戏复制放在SDK的content里:tools\ContentBuilder\content
<4. 解压的文件里找到下面run_build.bat 右键它选择编辑,打开是
把其中的 account 改成自己的steam账户名,比如假如我的是 z888483880,password 改成自己的账户密码,假如是: mima196665661,
还是那个 1000 改成自己的游戏app ID编号 , 比如我的是 1257870。保存后关闭。
<5. 运行上面步骤的那个 run_build.bat ,然后就开始上传了。中间可能会停顿下,要求输入steam的令牌密码。
D:\funtime\steamwork\steamworks_sdk_147\sdk\tools\ContentBuilder>builder\steamcmd.exe +login z888483880 mima196665661 +run_app_build_http ..\scripts\app_build_1257870.vdf
Redirecting stderr to 'D:\funtime\steamwork\steamworks_sdk_147\sdk\tools\ContentBuilder\builder\logs\stderr.txt'
[ 0%] æ£åœ¨æ£€æŸ¥å¯ç”¨æ›´æ–°...
[----] æ£åœ¨ä¸‹è½½æ›´æ–° (已下载 300,共 39,657 KB)...
[ 0%] æ£åœ¨ä¸‹è½½æ›´æ–° (已下载 2,680,共 39,657 KB)...
[ 97%] æ£åœ¨ä¸‹è½½æ›´æ–° (已下载 39,657,共 39,657 KB)...
[100%] 下载完æˆã€‚
[----] æ£åœ¨å®‰è£…æ›´æ–°...
[----] æ£åœ¨å±•开安装包...
[----] æ£åœ¨æ¸…ç†...
[----] 更新完æˆï¼Œæ£åœ¨å¯åЍ Steamcmd...
CWorkThreadPool::~CWorkThreadPool: work processing queue not empty: 8 items discarded.
Redirecting stderr to 'D:\funtime\steamwork\steamworks_sdk_147\sdk\tools\ContentBuilder\builder\logs\stderr.txt'
[ 0%] æ£åœ¨æ£€æŸ¥å¯ç”¨æ›´æ–°...
[----] æ£åœ¨éªŒè¯å®‰è£…...
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam API...OK.
Logging in user 'z888483880' to Steam Public ...
Enter the current code from your Steam Guard Mobile Authenticator app
Two-factor code: byrcg
Logged in OK
Waiting for user info...OK
[2020-02-22 11:50:02]: Starting appID 1257870 build (flags 0x0).
[2020-02-22 11:50:02]: Building depot 1257871...
Preparing update...
Building file mapping...
Scanning content.....
Uploading content
[2020-02-22 11:50:09]: Successfully finished appID 1257870 build (BuildID 47065346).
Steam>
接入问题:
*使用默认的appid 480可以获取到接口,替换为自己的appid报错steam api初始化失败?
应该是steam帐号里面没有该appid的游戏权限。
*Failed to load 'Assets/Plugins/x86_64/CSteamworks.dll' with error '找不到指定的模块。
还没找到解决办法
*下载报错 Steam安装失败(程序配置文件不可用)或 Failed to start game (invalid app config)
如果测试帐号可以下载安装,而黄色或者红色key不可安装,则是因为应用商店页面清单未完成并提交Valve审核,审核通过才可。具体可以参见steam开发者讨论区 https://steamcommunity.com/groups/steamworks/discussions/0/523897023725510452/
*如何只允许在Steam的某些地区销售?
需要联系Steam客服,说明限制地区和理由 https://partner.steamgames.com/home/contact
*如何测试应用?
在后台申请红色激活码,使用steam通过激活码进行下载测试。
红色激活码(只能内部使用)、黄色激活码(外部使用)、透明激活码(发布后使用)
*.ico和icns文件如何制作?
使用ico制作软件如IcoFX制作多个尺寸的ico文件,在线做只能输出一个尺寸。需要尺寸16 32 48 64 128 256越多越好。
*Mac发布后,steam安装显示0bytes。
相关程序包与 DLC商店程序包、促销或特殊用途程序包中添加所有depot即可。
*发布mac后打开闪退
发布steam应用mac版本时,确保playersetting下的Mac AppStore Validation取消掉,不然steam版本打开会闪退
1.调用 SteamAPI_Init() 返回初始化失败
测试时使用的自己的Steam账号一直提示失败,换成Steam开发者账号初始化成功;(猜测是产品未上线不能使用普通Steam账号)
2.调用SteamUser类的GetAuthSessionTicket获得的票据传给服务器向Steam后台验证一直验证失败
原因是服务器验证时未按照文档要求将票据转成十六进制, 当然了客户端也可以将票据转成十六进制,再传给服务器,如何转换请点击此处