欢迎光临散文网 会员登陆 & 注册

关于NodeAddOn链接Steam那点事儿。

2020-06-29 13:29 作者:暗切线  | 我要投稿

跳票好些个日子。因为接了个小活儿。给一个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的集成。。。

  1. 安装Nodegyp.

  2. git clone greenworks源码。

  3. 使用命令。。(注意版本!!!!)

  4. 把生成好的文件(.Node和动态链接库都要!!!!)拷贝进项目

  5. 在Electron中的主文件中引用,并定义前端的IPC事件。

  6. 在前端文件中调用IPC发消息给Electron主文件

  7. 游戏引擎中调用下前端文件的方法。

  8. 搞好了。

注意:

  1. Steam有两个动态链接库,一个公用 一个 API 都需要拷贝

  2. 一定要注意生成版本 Steamworks的版本和Electron的版本都要对应!!!

  3. 打包时候,因为有动态链接库,asar加密不能全放里面加密。抽取部分。

我知道我写了你们也听不懂。反正我搞好的生成版本已经交付。

Greenworks prerelease可以管我要(私信)(Electron 9.0.4)。更上层点的代码自己写。

不会写我帮你介绍程序员啊~抽10% ←开玩笑啊。

交流群:711929228

本期问题:yuv420p指的是啥?

答案:像素格式。


关于NodeAddOn链接Steam那点事儿。的评论 (共 条)

分享到微博请遵守国家法律