关于NodeAddOn链接Steam那点事儿。

跳票好些个日子。因为接了个小活儿。给一个JS写得游戏连接Steam。由于后续怕自己没时间,所以写一些东西作为备份,供后人参考??

首先是环境,我用的Electron,由于游戏本身导出的是NW.js (实在是维护太慢了,我怕之后出什么坑不好解决,所以换了Electron)。
环境版本 9.0.4
Greenwork自己Prerelease版本其实更新到4.0, 但是旧的版本有个很大的问题:就是没有把Chrome无触发自动播放音频的限制去掉。所以只好用比较新的版本。
然后说下原理
SteamworkSDK(C++) ->动态链接库->Greenworks NodeAddon ->Electron框架->前端JS方法库->游戏引擎的插入代码。
其中,Steamwork SDK是官方提供的,不需要瞎搞。 Greenworks提供了源码,需要集成。Electron框架已然神牛逼,也不需要瞎搞。前端JS代码,也还算OK吧。底层处理的好的话,前端JS代码和游戏引擎的插入代码,都会轻松很多。
所以问题来了,就是NodeAddon的集成。。。
安装Nodegyp.
git clone greenworks源码。
使用命令。。(注意版本!!!!)
把生成好的文件(.Node和动态链接库都要!!!!)拷贝进项目
在Electron中的主文件中引用,并定义前端的IPC事件。
在前端文件中调用IPC发消息给Electron主文件
游戏引擎中调用下前端文件的方法。
搞好了。
注意:
Steam有两个动态链接库,一个公用 一个 API 都需要拷贝
一定要注意生成版本 Steamworks的版本和Electron的版本都要对应!!!
打包时候,因为有动态链接库,asar加密不能全放里面加密。抽取部分。

我知道我写了你们也听不懂。反正我搞好的生成版本已经交付。
Greenworks prerelease可以管我要(私信)(Electron 9.0.4)。更上层点的代码自己写。
不会写我帮你介绍程序员啊~抽10% ←开玩笑啊。

交流群:711929228
本期问题:yuv420p指的是啥?
答案:像素格式。