關(guān)于NodeAddOn鏈接Steam那點(diǎn)事兒。

跳票好些個日子。因?yàn)榻恿藗€小活兒。給一個JS寫得游戲連接Steam。由于后續(xù)怕自己沒時間,所以寫一些東西作為備份,供后人參考??

首先是環(huán)境,我用的Electron,由于游戲本身導(dǎo)出的是NW.js (實(shí)在是維護(hù)太慢了,我怕之后出什么坑不好解決,所以換了Electron)。
環(huán)境版本 9.0.4?
Greenwork自己Prerelease版本其實(shí)更新到4.0, 但是舊的版本有個很大的問題:就是沒有把Chrome無觸發(fā)自動播放音頻的限制去掉。所以只好用比較新的版本。
然后說下原理
SteamworkSDK(C++) ->動態(tài)鏈接庫->Greenworks NodeAddon ->Electron框架->前端JS方法庫->游戲引擎的插入代碼。
其中,Steamwork?SDK是官方提供的,不需要瞎搞。 Greenworks提供了源碼,需要集成。Electron框架已然神牛逼,也不需要瞎搞。前端JS代碼,也還算OK吧。底層處理的好的話,前端JS代碼和游戲引擎的插入代碼,都會輕松很多。
所以問題來了,就是NodeAddon的集成。。。
安裝Nodegyp.
git clone greenworks源碼。
使用命令。。(注意版本?。。。。?/p>
把生成好的文件(.Node和動態(tài)鏈接庫都要!?。?!)拷貝進(jìn)項(xiàng)目
在Electron中的主文件中引用,并定義前端的IPC事件。
在前端文件中調(diào)用IPC發(fā)消息給Electron主文件
游戲引擎中調(diào)用下前端文件的方法。
搞好了。
注意:
Steam有兩個動態(tài)鏈接庫,一個公用 一個 API 都需要拷貝
一定要注意生成版本 Steamworks的版本和Electron的版本都要對應(yīng)!??!
打包時候,因?yàn)橛袆討B(tài)鏈接庫,asar加密不能全放里面加密。抽取部分。

我知道我寫了你們也聽不懂。反正我搞好的生成版本已經(jīng)交付。
Greenworks prerelease可以管我要(私信)(Electron 9.0.4)。更上層點(diǎn)的代碼自己寫。
不會寫我?guī)湍憬榻B程序員啊~抽10% ←開玩笑啊。

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