Steam创意工坊mod下载技术方案

warning: 这篇文章距离上次修改已过428天,其中的内容可能已经有所变动。

之前玩饥荒这个游戏感觉挺合胃口的,不过是在wegame上玩的。玩了一段时间发现了不少不便利的地方:

  1. WeGame社区无人维护(天天就那几篇帖子,内容质量也不行,基本上沦为留言板了)
  2. WeGame专有服务器毫无体验(每次开个房间不是一般的麻烦,如果mod更新或者游戏更新那更是不得了的事了。)
  3. WeGame对外不提供API供玩家DIY(这一点对标一下steam,确实差了很多)

综上,决定转战Steam。但是也要解决几个问题:

  1. 基于Steam API可以达到很便利操作游戏的地步,如开房间、更新游戏、更新Mod、设置Mod等等。(具体操作面板可以基于开源,也可以自研)
  2. 社区维护度好(这个应该是众所周知了)
  3. 游戏体量大,质量高(wg来来回回就这么几个游戏,阿西。来自sw国行勇士的怨念)

经过一段时间研究,发现了几个关键的技术点,能保证可创造出一个操作性与交互性非常不错的产品:

WebAPI

SteamWebAPI

官方API文档, 这里提供了搜索的接口。但是需要key,这里需要看下官方demo的下载写法看一看是怎么调用的了。

SteamKit2

SteamKit2

这是官方封装的SDK,可以很方便的操作各式官方API

创意工坊/游戏本体下载

DepotDownloader

这是官方的项目,基于 SteamKit2的方案。示例用法如下:

DepotDownloader.exe -app 322330(appId) -pubfile 2701285237(这是mod的id)

这样就可以下载mod了,也可以下载app。但是代码看起来比较乱,可以考虑抽离出来这一部分单独重构一下。

Web API 找到一个很类似的,但是返回的数据太少:
QueryFiles

饥荒后台面板

dst-admin

这个面板是基于 SteamCmd实现的,里面关于游戏的启动,监控都值得借鉴。不过美中不足的是作者只做了单房间的功能,整个架构也是基于单房间的。所以作者也一直没表露出要做多房间的支持,不过听说有在计划(大多数玩家都比较期待的功能)

计划

结合上述两个项目,可以自行开发一套游戏管理面板了。核心功能/创意:

  1. Mod搜索,下载,更新管理
  2. Mod界面化友好化配置(不需要接触代码,做到和饥荒游戏里设置一样)
  3. 游戏下载(对!初始安装是不集成游戏的,也可以弄集成的版本)、更新管理
  4. 多房间管理
  5. 多层世界管理(一个房间超过2个世界的搭建方式)
  6. 世界配置界面化,友好化。支持预设功能(参考游戏本身的预设功能)
  7. 备份/回档(集成文件管理,做到云备份,也可以做一个分享平台)
  8. 房间管理(关于房间管理想分成两个部分,一部分是和 dst-admin一样的方案,直接集成命令输入。另一部分是基于一个本地化和面板通信的mod组成,这样可操作性会远远强于解析文件)

注意事项

  1. 启动多个存档的时候需要注意一点:需要用不同的token, 不能共用token。但是可以同一个账号生成多个。链接
none
最后修改于:2023年09月20日 15:10

评论已关闭