Steam创意工坊mod下载技术方案
warning:
这篇文章距离上次修改已过428天,其中的内容可能已经有所变动。
之前玩饥荒这个游戏感觉挺合胃口的,不过是在wegame上玩的。玩了一段时间发现了不少不便利的地方:
- WeGame社区无人维护(天天就那几篇帖子,内容质量也不行,基本上沦为留言板了)
- WeGame专有服务器毫无体验(每次开个房间不是一般的麻烦,如果mod更新或者游戏更新那更是不得了的事了。)
- WeGame对外不提供API供玩家DIY(这一点对标一下steam,确实差了很多)
综上,决定转战Steam。但是也要解决几个问题:
- 基于Steam API可以达到很便利操作游戏的地步,如开房间、更新游戏、更新Mod、设置Mod等等。(具体操作面板可以基于开源,也可以自研)
- 社区维护度好(这个应该是众所周知了)
- 游戏体量大,质量高(wg来来回回就这么几个游戏,阿西。来自sw国行勇士的怨念)
经过一段时间研究,发现了几个关键的技术点,能保证可创造出一个操作性与交互性非常不错的产品:
WebAPI
官方API文档, 这里提供了搜索的接口。但是需要key,这里需要看下官方demo的下载写法看一看是怎么调用的了。
SteamKit2
这是官方封装的SDK,可以很方便的操作各式官方API
创意工坊/游戏本体下载
这是官方的项目,基于 SteamKit2
的方案。示例用法如下:
DepotDownloader.exe -app 322330(appId) -pubfile 2701285237(这是mod的id)
这样就可以下载mod了,也可以下载app。但是代码看起来比较乱,可以考虑抽离出来这一部分单独重构一下。
Web API 找到一个很类似的,但是返回的数据太少:
QueryFiles
饥荒后台面板
这个面板是基于 SteamCmd
实现的,里面关于游戏的启动,监控都值得借鉴。不过美中不足的是作者只做了单房间的功能,整个架构也是基于单房间的。所以作者也一直没表露出要做多房间的支持,不过听说有在计划(大多数玩家都比较期待的功能)
计划
结合上述两个项目,可以自行开发一套游戏管理面板了。核心功能/创意:
- Mod搜索,下载,更新管理
- Mod界面化友好化配置(不需要接触代码,做到和饥荒游戏里设置一样)
- 游戏下载(对!初始安装是不集成游戏的,也可以弄集成的版本)、更新管理
- 多房间管理
- 多层世界管理(一个房间超过2个世界的搭建方式)
- 世界配置界面化,友好化。支持预设功能(参考游戏本身的预设功能)
- 备份/回档(集成文件管理,做到云备份,也可以做一个分享平台)
- 房间管理(关于房间管理想分成两个部分,一部分是和
dst-admin
一样的方案,直接集成命令输入。另一部分是基于一个本地化和面板通信的mod组成,这样可操作性会远远强于解析文件)
注意事项
- 启动多个存档的时候需要注意一点:需要用不同的token, 不能共用token。但是可以同一个账号生成多个。链接
评论已关闭