【技术讨论】是否可以用 wasm 替代 TS 来写游戏业务逻辑

如题

微信小游戏支持 Unity 用的是 wasm 方案

现在 Cocos 的架构,需要同时维护一套 C++ 引擎和 JS 引擎,看到官方也在逐渐用 wasm 替代 JS 的模块,如 Spine,Box2d

由此联想到,是否游戏业务逻辑也可以使用 C++ 来写,编译为 wasm 后在 V8 运行,这样性能相比 JS 也会好很多,也能够在浏览器运行

理论可以,但是坑很多,用ts也是优势啊不然都是用c++别人为什么不用unreal,上手难度低不正是cocos优势吗,要是c++的话绝对劝退一大批人,c++玩的明白的不在乎哪个引擎,但是现实是市场上大量玩不明白的人

ts 我觉得绝对不能改成其他任何语言,但同时支持 wasm 很好,看引擎的 pr 现在已经在逐步支持和完善 wasm 模块和 c++ 扩展,理论上到最后应该是可以用 wasm 写业务逻辑,那么最后引擎将支持任何语言。

是的, ts 有 ts 的优势,其实最开始可以考虑用 wasm 来作为扩展,能够允许开发者把一些 ts 做不了的计算密集型的东西用 wasm 做

应该是一个趋势,后续看官网怎么样支持逻辑层代码也转成wasm

替代ts?ts是我用过最好用的语言 :rofl:

:rofl:

最后大家都统一成C#吧,不要再为难程序学这语言那语言了,最后几个引擎的各种库也都能共享~

我觉得wasm属于给TS做性能拓展的东西,先把wasm 模块支持做好,方便大家使用WASM来优化密集运算,再看下一步吧。。

是否能解决 代码加密的问题呢?

ts编译成wasm不是更好?

非常赞同!

我认为考虑到ts语言的学习优势, 其实可以考虑引擎支持assembly script, 因为as语言跟ts很像,学习很快上手, 而且也是直接编译做wasm

喜欢就用吧。
https://www.assemblyscript.org/introduction.html

1赞

好像不错。

u3d可以那是因为C#他可以转成cpp 然后cpp天然就支持转成wasm u3d而且还支持lua写的游戏逻辑 最后转成微信小游戏 不知道他怎么实现的

lua 虚拟机也是 cpp 写的,所以相当于是 V8 虚拟机跑 wasm,wasm 上跑 lua 虚拟机,lua 虚拟机再跑 lua,完美套娃。

1赞

可以去给微软提建议 直接把TS编译为WASM :grimacing:

之前面试,听说有个很牛逼的商业大作打算把cocos2d-x的成套c++代码改成wasm跑小游戏,问我会不会,我惊呆了。。。

1赞

卧槽,我也遇到过。听得我一脸懵逼。